1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00
emacs/ChangeLog.4
2023-08-02 23:32:28 +02:00

117406 lines
3.7 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2023-07-30 Eli Zaretskii <eliz@maintain0p.gnu.org>
* Version 29.1 released.
2023-07-29 Vincenzo Pupillo <v.pupillo@gmail.com>
Update CMake support due to upstream changes (bug#64922)
A recent change in tree-sitter-cmake grammar support for CMake (commit
fe9b5e0), now put arguments are wrapped in a new argument_list node.
To support the old and new version of the grammar, a new function was
added on which string syntax highlighting now depends.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper
function to handle different tree-sitter-cmake version.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings): Use the new function to handle
the new argument_list node.
2023-07-24 Theodor Thornhill <theo@thornhill.no>
Remove nullptr named node from c++-ts-mode (bug#64818)
The nullptr node was changed from a named node to an unnamed node
upstream[0], which caused font locking to break. As this is a small
enough regression, no compat code is required.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove
node no longer in use.
[0]:
https://github.com/tree-sitter/tree-sitter-c/commit/c75868f8b508ae32a0c8490da91bb31b2b96430e
2023-07-24 Theodor Thornhill <theo@thornhill.no>
Make compat check also check typescript
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b):
Add argument so that we run the 'treesit-query-capture' when the
language is 'typescript', not only 'tsx'.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use supplied argument.
2023-07-23 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump Emacs version to 29.1.
2023-07-23 Eli Zaretskii <eliz@gnu.org>
Update AUTHORS and ChangeLog.4
* ChangeLog.4:
* etc/AUTHORS: Update for Emacs 29.1 release.
2023-07-22 Vincenzo Pupillo <v.pupillo@gmail.com>
Update JSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-javascript grammar support for
JSX (commit bb1f97b), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead
* lisp/progmodes/js.el (js-jsx--treesit-indent-compatibility-bb1f97b):
Indent helper function to handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-indent-rules): Use the new
function to handle both jsx_fragment and jsx_text.
* lisp/progmodes/js.el (js-jsx--treesit-font-lock-compatibility-bb1f97b):
Font lock helper function for handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Use the new
function to handle both nested_identifier and member_expression.
2023-07-22 Vincenzo Pupillo <v.pupillo@gmail.com>
Update TSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-typescript grammar support for
TSX (commit b893426), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--indent-compatibility-b893426): Indent helper function
to handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): use the new function to handle
both jsx_fragment and jsx_text.
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b): Font lock helper
function for handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use the new function to
handle both nested_identifier and member_expression.
2023-07-21 Philipp Stephani <phst@google.com>
Unbreak build with CHECK_STRUCTS.
The hash for the Lisp_Overlay structure has changed due to the (comment-only)
commit 7ac947f34c745c61f8acc1fe2452a2c720d57a0d.
* src/pdumper.c (dump_overlay): Update struct hash.
2023-07-21 Mattias Engdegård <mattiase@acm.org>
Revert "Improve commentary in nsfns.m"
This reverts commit 3af27a4b815906c2ee38cbaf3a765289b3df061a,
because it missed the point completely.
Please talk to the original author next time.
2023-07-20 Eli Zaretskii <eliz@gnu.org>
Fix NetBSD build --with-sound
* src/sound.c (alsa_write): Use ESTRPIPE only if defined.
(Bug#64698)
2023-07-20 Mauro Aranda <maurooaranda@gmail.com>
Fix typo in pre-filter for underline property
* lisp/cus-face.el (custom-face-attributes): Fix typo (Bug#64347)
2023-07-20 Po Lu <luangruo@yahoo.com>
Improve commentary in nsfns.m
* src/nsfns.m (lispString): Avoid C++ comment and make the
commentary actually relevant to the reason `make_string' is
used.
2023-07-20 Po Lu <luangruo@yahoo.com>
Fix typos and ommissions in cus-edit.el
* lisp/cus-edit.el (custom-display): Add missing display types.
2023-07-18 Mattias Engdegård <mattiase@acm.org>
Convert NUL-containing NSString objects to Lisp strings correctly
This cures the inability to paste text containing NUL from other
applications on macOS, introduced by mistake in 7e3c2b553f
(bug#64697).
* src/nsfns.m ([NSString lispString]): Use make_string instead of
build_string which relies on NUL-termination.
2023-07-15 Spencer Baugh <sbaugh@catern.com>
Ignore quit while getting interprogram paste in kill-new
On X, if the current selection owner is not responding to selection
requests, the user may want to take ownership of the selection. The
obvious way to do this is to kill some text (which a user might also
be doing just as part of normal editing at the time the selection
owner becomes nonresponsive). However, if
save-interprogram-paste-before-kill is non-nil, then killing text will
hang until the user quits, and this quit will abort the entire
kill-new, preventing the user from taking ownership of the selection.
Now instead if the user quits while we are attempting to retrieve the
selection from hanging owner, we will proceed to take ownership of the
selection as normal, resolving the problem.
(One example of a selction owner that might not be responding to
selection requests is another instance of Emacs itself; while Emacs is
blocked in call-process or Lisp execution, it currently does not
respond to selection requests.)
* lisp/simple.el (kill-new): Ignore quit while getting interprogram
paste (bug#64423)
2023-07-15 Wang Diancheng <dianchengwang@gmail.com> (tiny change)
* lisp/progmodes/gdb-mi.el: Fix interactive invocation of 'gud-go'.
Bug#64590.
2023-07-15 Valtteri Vuorikoski <vuori@notcom.org> (tiny change)
Fix NetBSD build with and without ncurses
* configure.ac (netbsd): Don't set TERMINFO=no unless the termcap
library is either -ltermcap or -lcurses. This prevents aborts
because on recent versions of NetBSD libtermcap is actually a
symlink to libterminfo. (Bug#64577)
2023-07-14 YugaEgo <yet@ego.team>
Improve documentation of 'enable-local-variables' in Emacs manual
* doc/emacs/custom.texi (Safe File Variables): Document ':all'.
(Bug#64621)
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Add documentation about remote access in Eshell
Do not merge to master. This is a backport of 438921161ac.
* doc/misc/eshell.texi
(Invocation): Mention the '*' prefix.
(Remote Access): New section...
(Commands): ... link to it.
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Document some missing Eshell commands
Do not merge to master. This is a backport of f7a899d7ca0.
* doc/misc/eshell.texi (Built-ins): Document 'eshell-debug'.
(Extra built-in commands): Document 'count', 'ff', and 'gf'.
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Document optional Eshell modules
Do not merge to master. This is a backport of 77f13edab0f.
* doc/misc/eshell.texi (Built-ins): Move disabled-by-default commands
to...
(Tramp extensions, Extra built-in commands): ...here
(Optional modules, Key rebinding, Smart scrolling): Add documentation.
(Bug and ideas): Documentation is no longer incomplete!
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Correct the Eshell documentation about how to write new modules
* doc/misc/eshell.texi (Writing a module): Fix the documentation.
'eshell-defgroup' doesn't exist anymore.
Do not merge to master. This is a backport of 77f13edab0f.
2023-07-13 Jim Porter <jporterbugs@gmail.com>
Restructure Eshell extension modules documentation
This adds a section for documenting all the optional modules.
Do not merge to master. This is a backport of f2981a1681d.
* doc/misc/eshell.texi (Extension modules): Move explanation about
writing modules to...
(Writing a module): ... here.
(Module testing): Remove. Testing an Eshell module doesn't require
any special documentation.
(Key binding, Smart scrolling, Electric forward slash): Move under...
(Optional modules): ... here.
(Directory handling, Terminal emulation): Remove. These modules are
enabled by default, and so are documented above.
(Tramp extensions, Extra built-in commands): New sections.
2023-07-13 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Replace duplicate text from epa.texi by a reference
* doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration):
Replace duplicate text from epa.texi by a reference to
that. (Bug#64154)
2023-07-13 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Add basic usage information and fix references
* doc/misc/epa.texi (Top): Add menu entry for new node GnuPG Pinentry.
(Quick Start): Add information on and reference to basic GnuPG
configuration.
(Encrypting/decrypting gpg files): Add usage information.
(GnuPG version compatibility): Update version information.
(GnuPG Pinentry): Add new node.
(Caching Passphrases): Describe mandatory gpg-agent usage for GnuPG
2.0 and later.
(Overview, Encrypting/decrypting gpg files, GnuPG version compatibility)
(Caching Passphrases, Bug Reports): Fix references, terminology,
mark-up, and index entries. (Bug#64154)
2023-07-13 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Add concept index, title-case structure titles
* doc/misc/epa.texi (Top, Overview, Commands, Key management)
(Cryptographic operations on regions, Cryptographic operations on files)
(Dired integration, Mail-mode integration)
(Encrypting/decrypting gpg files, Querying a key server)
(GnuPG version compatibility, Caching Passphrases)
(GNU Free Documentation License): Add concept index, title-case
structure titles. (Bug#64154)
2023-07-10 Eli Zaretskii <eliz@gnu.org>
Fix show-paren-mode when the parentheses is partially visible
* lisp/paren.el (show-paren-function): Support the case where the
open paren is partially visible, but enough so to not consider it
"off-screen". (Bug#64547)
2023-07-08 Gregory Heytings <gregory@heytings.org>
Merge branch 'scratch/bug64391' into emacs-29
2023-07-08 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-get-buffer-string): Stabilize.
2023-07-08 Michael Albinus <michael.albinus@gmx.de>
Fix stale cache in Tramp (don't merge)
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly):
Flush cache in time.
2023-07-07 Mattias Engdegård <mattiase@acm.org>
Mark failing icalendar test as unstable (bug#56241)
* test/lisp/calendar/icalendar-tests.el
(icalendar-export-bug-56241-dotted-pair):
This test started failing early July 2023 in multiple branches at
once without any change to the code and is likely sensitive to the
current date. Tag it to keep it quiet for now.
2023-07-06 Gregory Heytings <gregory@heytings.org>
Simplify after adding internal function to enter a labeled restriction
* src/editfns.c: (Finternal__labeled_narrow_to_region): Merge the
code of Finternal__label_restriction into this function.
(Finternal__label_restriction): Remove this function.
(syms_of_editfns): Remove the 'outermost-restriction' buffer local
variable, which is not used anymore, and the symbol of
'internal--label-restriction'.
(Fwiden): Remove the call to reset the 'outermost-restriction'
buffer local variable.
2023-07-06 Gregory Heytings <gregory@heytings.org>
Add internal function to enter a labeled restriction
* src/editfns.c (Finternal__labeled_narrow_to_region): New
function. A specific function is necessary to avoid unnecessary
slowdowns when 'narrow-to-region'/'widen' are called in a loop.
(Fnarrow_to_region): Remove the call to Fset, which has been moved
into Finternal__labeled_narrow_to_region.
(labeled_narrow_to_region): Use the new function.
(syms_of_editfns): Add the symbol of the new function.
* lisp/subr.el (internal--with-restriction): Use the new function.
2023-07-04 Robert Pluim <rpluim@gmail.com>
Improve natnump shortdoc
* lisp/emacs-lisp/shortdoc.el (number): Make it clear that zero
satisfies 'natnump'. Move 'natnump' next to 'cl-plusp' to highlight
the difference between them.
2023-07-04 Robert Pluim <rpluim@gmail.com>
correct info documentation of benchmark-call
* doc/lispref/debugging.texi (Profiling): 'benchmark-call' is a defun,
not a macro.
2023-07-03 Juri Linkov <juri@linkov.net>
* lisp/progmodes/grep.el (rgrep): Fix docstring.
Instead of the incorrect key `M-c' produce the right key
with \\<read-regexp-map>\\[read-regexp-toggle-case-fold].
2023-07-03 Spencer Baugh <sbaugh@catern.com>
Include a help-echo for flymake's modeline counters
This helps clarify what each of these numbers mean. This is inspired
by 'compilation-mode-line-errors' which does the same.
* lisp/progmodes/flymake.el (flymake--mode-line-counter): Add
help-echo to mode line properties. (Bug#64424)
2023-07-02 Eli Zaretskii <eliz@gnu.org>
Avoid errors in completion due to 'completion-regexp-list'
* doc/lispref/minibuf.texi (Basic Completion):
* src/minibuf.c (syms_of_minibuf) <completion-regexp-list>:
Document that global non-nil settings of 'completion-regexp-list'
are not safe.
* lisp/minibuffer.el (completion-pcm--merge-completions): Avoid
errors in 'try-completion' when PREFIX is nil. (Bug#64351)
2023-07-01 Alan Mackenzie <acm@muc.de>
C Mode: Don't fontify foo globally as type due to "struct foo"
This fixes bug#64322.
* lisp/progmodes/cc-langs.el (c-typeless-decl-kwds): Make the
entry for c-mode nil.
2023-07-01 Mattias Engdegård <mattiase@acm.org>
* lisp/rect.el (rectangle--duplicate-right): Fix rectangle dup bug.
This is a necessary adjustment to changes to rect.el in Emacs 29.
2023-07-01 Spencer Baugh <sbaugh@janestreet.com>
Add project command entries to the menu-bar
This will make it easier for new users to learn these increasingly
important and useful commands. (Bug#63469)
* lisp/menu-bar.el (menu-bar-file-menu): Add project-dired and
project-find-file entries.
(menu-bar-search-menu): Add project-find-regexp entry.
(menu-bar-replace-menu): Add project-query-replace regexp entry.
(menu-bar-shell-commands-menu): Add project-shell entry.
(menu-bar-buffers-menu-command-entries): Add project-switch-to-buffer
and project-list-buffer entries.
(menu-bar-project-menu): Add.
(menu-bar-tools-menu): Add "Project" submenu, and also project-compile
entry and change text for compile entry.
2023-06-30 Eli Zaretskii <eliz@gnu.org>
Improve documentation of registers
* doc/lispref/text.texi (Registers): Document buffers in
registers. Mention "frameset" as another name for "frame
configuration".
* doc/emacs/regs.texi (Registers, Configuration Registers)
(File and Buffer Registers): Clarify and improve wording. Add
cross-references and indexing.
(Configuration Registers): Rename the section to a more accurate
name. (Bug#64354)
* lisp/register.el (jump-to-register, point-to-register)
(register-alist, frame-configuration-to-register): Doc fixes.
(Bug#64353)
2023-06-29 Andrew G Cohen <cohen@andy.bu.edu>
Use a temporary buffer in nnagent-request-set-mark (bug#64117)
Commit cb12a84f2c519a48dd87453c925e3bc36d9944db inadvertently removed
the use of a temporary buffer in nnagent-request-set-mark. Bug and
fix reported by Jens Schmidt <jschmidt4gnu@vodafonemail.de>
* lisp/gnus/nnagent.el (nnagent-request-set-mark): Restore the use of
a temporary buffer that was inadvertently removed.
(cherry picked from commit 5075d752773c31d959272a7e2b73b1dc38ba184c)
2023-06-29 john muhl <jm@pub.pink> (tiny change)
Support cons cell as value of ':line-width' box attribute
* lisp/calculator.el (calculator-need-3-lines): Support
values of a face's ':line-width' box attribute that are
cons cells. (Bug#64344)
2023-06-29 Yuan Fu <casouri@gmail.com>
Add missing calls to treesit_record_change in editfns.c
These should be all that are missing. See the next commit for detail.
* src/editfns.c (Ftranslate_region_internal):
(Ftranspose_regions): Call treesit_record_change.
2023-06-29 Yuan Fu <casouri@gmail.com>
Call treesit_record_change in subst-char-in-region (bug#64329)
* src/editfns.c (Fsubst_char_in_region): Call treesit_record_change in
the else branch.
2023-06-29 Juri Linkov <juri@linkov.net>
* lisp/misc.el (duplicate-line-final-position): New defcustom (bug#64185).
* lisp/misc.el (duplicate-line): Use it.
* test/lisp/misc-tests.el (misc--duplicate-line): Add tests for
duplicate-line-final-position.
Don't merge to master.
2023-06-29 Daniel Martín <mardani29@yahoo.es>
Make js-beginning-of-defun return non-nil on success
The docstring of 'beginning-of-defun-function' says that the
function shall return non-nil when it found the beginning
of a defun. This is specially important because the calling
code decides when to move point depending on the return value.
* lisp/progmodes/js.el (js-beginning-of-defun)
(js--beginning-of-defun-flat): Return non-nil when the beginning
of a defun is found. (Bug#64283)
* test/lisp/progmodes/js-tests.el (js-mode-end-of-defun): Add a unit
test.
2023-06-27 Yuan Fu <casouri@gmail.com>
Tree-sitter use with-silent-modifications like jit-lock (bug#64321)
* lisp/treesit.el (treesit--font-lock-notifier): Use
with-silent-modifications when marking modified text to be fontified
by jit-lock. This is what jit-lock itself does.
2023-06-27 Stephen Berman <stephen.berman@gmx.net>
Fix todo-mode.el Commentary and a doc string (bug#64298)
* lisp/calendar/todo-mode.el: Explicitly note in the Commentary
that the Todo mode user manual is a separate Info manual in the
Emacs installation.
(todo-always-add-time-string): Replace doc string, which was
mistakenly retained in the initial merge of this version of
todo-mode.el, by a correct description of this user option.
2023-06-27 Stephen Berman <stephen.berman@gmx.net>
Prevent truncation of todo-mode categories sexp
* lisp/calendar/todo-mode.el (todo-delete-file)
(todo-move-category, todo-convert-legacy-files)
(todo-update-categories-sexp, todo-check-format):
Bind print-length and print-level to nil before using prin1
and related functions, to avoid truncating the todo categories
sexp and possibly corrupting the file format.
2023-06-27 Stephen Berman <stephen.berman@gmx.net>
Avoid making todo-mode buffers manually editable
* lisp/calendar/todo-mode.el (todo-add-category)
(todo-move-category, todo-edit-item--header)
(todo-set-item-priority, todo-move-item, todo-item-undone)
(todo-archive-done-item, todo-set-category-number): Restrict the
scope of nil buffer-read-only to the function calls that change
buffer text, thereby preventing todo mode buffers from becoming
manually editable and hence possibly corrupted when the minibuffer
is in use.
2023-06-26 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp mount-spec (don't merge)
* lisp/net/tramp-fuse.el (tramp-fuse-mounted-p): The mount-spec
could contain an optional trailing slash. (Bug#64278)
2023-06-25 Daniel Semyonov <daniel@dsemy.com>
Fix VC package build when doc file isn't in a subdir
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
Expand 'file' before attempting to get its directory. (Bug#64242)
2023-06-25 Michael Albinus <michael.albinus@gmx.de>
Fix type check in tramp-get-buffer-string
* lisp/net/tramp.el (tramp-get-buffer-string): Check, that BUFFER
is really a bufferp.
2023-06-25 Richard M. Stallman <rms@gnu.org>
Clarify list terminology
* doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed):
Mention "cons cell". Add index entries.
(car & cdr): Simplify etymology of `car' and `cdr'.
Explain why for some purposes they are better than `first' and `rest'.
Mention cons cells.
(cherry picked from commit 188c90c7c111dbbdc3edd29c23b59ade26f97bfd)
2023-06-24 Mattias Engdegård <mattiase@acm.org>
* lisp/emacs-lisp/shortdoc.el: More and better `substring` examples.
Suggested by Juri Linkov.
2023-06-24 Eli Zaretskii <eliz@gnu.org>
Fix "C-x RET r" when the new encoding is UTF
* src/fileio.c (Finsert_file_contents): Update point of
'conversion_buffer' before decoding the last block. (Bug#64253)
2023-06-23 Dmitry Gutov <dmitry@gutov.dev>
Fix "vc-print-log does not erase buffer" and associated problems
* lisp/vc/vc.el (vc-deduce-fileset): Make sure to retain the
buffer switch (if it did), bug#63949.
2023-06-23 Theodor Thornhill <theo@thornhill.no>
Add selector_expression indentation rule
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): New rule.
2023-06-22 Eli Zaretskii <eliz@gnu.org>
Add "nixd" LSP server to Eglot
* lisp/progmodes/eglot.el (eglot-server-programs): Add "nixd".
Patch by Brian Leung <leungbk@posteo.net>. (Bug#64214)
2023-06-22 Eli Zaretskii <eliz@gnu.org>
Fix building --with-native-compilation=aot from release tarball
* lisp/Makefile.in (%.eln): Pattern rule for AOT native
compilation.
(compile-eln-targets, compile-eln-aot): New targets for AOT native
compilation.
* src/Makefile.in (../native-lisp): If NATIVE_COMPILATION_AOT is
set, also native-compile all the other Lisp files.
(Bug#64167)
2023-06-21 Alan Mackenzie <acm@muc.de>
Fix bug#64152 (Minibuffer sometimes goes "modal")
In particular, when a frame has no minibuffer and is using that
of a different "normal" frame, C-x 5 o, etc., and GUI
operations fail.
Fix by partially reverting the commit from 2022-07-07 15:38:09
+0000 "Remove obscure, obsolete code from do_switch_frame". As
a consequent change, also revert the commit from 2022-07-08
20:19:03 +0000 "Remove now unused parameter TRACK from
do_switch_frame".
* src/frame.c (do_switch_frame): Restore the TRACK parameter.
Restore the code which redirects the frame focus when a new
frame gets selected.
* src/frame.c (Fselect_frame, Fhandle_switch_frame)
(delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/lisp.h (do_switch_frame prototype)
* src/minibuf.c (read_minibuf_unwind)
* src/window.c (Fset_window_configuration): Restore the TRACK
argument to do_switch_frame.
* src/xterm.c (x_try_restore_frame): Add a zero TRACK argument
to do_switch_frame.
2023-06-21 Eli Zaretskii <eliz@gnu.org>
Disable target-async by default in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-non-stop-setting): Disable until
bug#63084 is fixed. (Bug#64186)
2023-06-20 Filipp Gunbin <fgunbin@fastmail.fm>
Revert "Fix parsing of dn line if WITHDN is non-nil"
This reverts commits 71b27779a9a and d2246b26275, because they change
the return value of "ldap-search" in an incompatible way. The fix
(a different one) will be done on master instead (bug#64089).
2023-06-20 Eli Zaretskii <eliz@gnu.org>
Don't truncate filenames with "emacs.el" in them
* lisp/emacs-lisp/find-func.el (find-function-search-for-symbol):
Avoid false positives when looking for "emacs.el" matches the
likes of "emacs.elpa". (Bug#64143)
2023-06-20 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'minibuffer-message'
* doc/lispref/minibuf.texi (Minibuffer Misc): Clarify that
'minibuffer-message' behaves like 'message' if called from a
buffer that is not a minibuffer.
* lisp/minibuffer.el (minibuffer-message)
(set-minibuffer-message, clear-minibuffer-message): Doc fixes.
(Bug#64165)
2023-06-19 João Távora <joaotavora@gmail.com>
Eglot: again fix positions of coinciding inlay hint overlays (bug#64101)
This bug originated from the previous fix, and is reproducible on non
Mac OS platforms, as long as the very latest version (at time of
writing) of the rust-analyzer server is used.
* lisp/progmodes/eglot.el (eglot--update-hints-1): Reverse
priorities when pegging overlays after (i.e. when before-string is
used).
2023-06-18 Eli Zaretskii <eliz@gnu.org>
* lisp/ldefs-boot.el: Regenerate.
2023-06-18 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version to 29.0.92
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump version to 29.0.92.
2023-06-18 Mattias Engdegård <mattiase@acm.org>
Describe primarily the Emacs s-exp dialect for treesit queries
* doc/lispref/parsing.texi (Pattern Matching, Multiple Languages):
Writing tree-sitter queries as Emacs s-expressions is much more
convenient than using the native query notation inside a string,
so it makes sense to base the documentation on the former dialect
(bug#64017).
2023-06-18 Eli Zaretskii <eliz@gnu.org>
Fix documentation of :predicate in 'define-globalized-minor-mode'
* doc/lispref/modes.texi (Defining Minor Modes):
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
Document that :predicate creates a customizable user option.
(Bug#64048)
2023-06-17 Basil L. Contovounesios <contovob@tcd.ie>
Revert "Fix some tree-sitter :match regexps"
This reverts commit 95091b77f0bbb2ae1aa94ef4a413626e7d434d58
of 2023-06-17, mistakenly pushed to emacs-29.
The patch will be installed on master instead, and backported later,
after Emacs 29.1 is released (bug#64019).
Do not merge to master.
2023-06-17 Michael Albinus <michael.albinus@gmx.de>
Require ls-lisp in Tramp only when needed
* lisp/net/tramp-compat.el (ls-lisp): Require only on MS Windows.
(Bug#64124)
* lisp/net/tramp-sh.el (ls-lisp-use-insert-directory-program): Declare.
(tramp-sh-handle-insert-directory): Simplify.
* lisp/net/tramp.el (ls-lisp-use-insert-directory-program): Declare.
(tramp-handle-insert-directory): Require ls-lisp. Simplify.
2023-06-17 Alan Mackenzie <acm@muc.de>
After minibuffer action, don't make the minibuffer current
This fixes bug#63967.
* src/minibuf.c (minibuffer_unwind): After restoring the next
minibuffer outwards to the mini window (when
enable-recursive-minibuffers is non-nil), don't call
Fset_frame_selected_window, which used to set the current
window to be the mini window.
2023-06-17 Basil L. Contovounesios <contovob@tcd.ie>
Fix some tree-sitter :match regexps
The shy groups were caught by modified versions of the GNU ELPA
packages xr and relint:
- https://github.com/mattiase/xr/pull/6
- https://github.com/mattiase/relint/pull/14
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special
character in regexp.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
* lisp/progmodes/js.el (js--plain-method-re):
(js--treesit-font-lock-settings):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Replace character
alternative [\\d], which matches '\' or 'd', with the most likely
intention [0-9]. Fix shy groups mistyped as optional colons.
Remove unneeded numbered :match group in rust-ts-mode (bug#64019).
2023-06-17 João Távora <joaotavora@gmail.com>
Eglot: fix relative position of coinciding inlay hint overlays (bug#64101)
Only seems to happen on certain platforms, like Mac OS. Reason
unknown reason so far, but this defensive fix seems safe.
* lisp/progmodes/eglot.el (eglot--update-hints-1): Explicitly put
priority in inlay hint overalys.
2023-06-17 Eli Zaretskii <eliz@gnu.org>
Fix documentation of comment-dwim (bug#64104)
* lisp/newcomment.el (comment-dwim): Doc fix.
* doc/emacs/programs.texi (Comment Commands): More accurate
description of what 'M-;' does when there's no active region.
2023-06-17 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Fix parsing of dn line if WITHDN is non-nil
Function `ldap-search' errors out with `wrong-type-argument listp'
when called with WITHDN non-nil.
* lisp/net/ldap.el (ldap-search-internal): Parse the dn line
correctly so that `ldap-search' can grok it. (Bug#64089)
2023-06-15 Andreas Schwab <schwab@suse.de>
* doc/misc/calc.texi (Advanced Math Functions): Correct calc
algebraic syntax.
2023-06-15 Eli Zaretskii <eliz@gnu.org>
Consider 'dired-kill-when-opening-new-dired-buffer' in mouse clicks
* lisp/dired.el (dired-mouse-find-file): Honor the value of
'dired-kill-when-opening-new-dired-buffer'. (Bug#64079)
2023-06-15 Eli Zaretskii <eliz@gnu.org>
Fix Gamma function definition in calc.texi
* doc/misc/calc.texi (Advanced Math Functions): Fix definition
of Gamma function. Use @sup in @infoline lines. (Bug#64077)
2023-06-15 Eli Zaretskii <eliz@gnu.org>
Fix subscripts in the Calc manual
* doc/misc/calc.texi (Musical Notes): Use @sub instead of TeX-only
'_' notation. For the details, see the discussion in
https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00096.html.
2023-06-15 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'declare' forms
* lisp/simple.el (read-extended-command-predicate): Mention the
'(declare completion ...' form in the doc string.
* doc/lispref/functions.texi (Declare Form): Clarify
'completion-predicate' and 'modes'; add cross-references.
(Bug#64045)
2023-06-13 Basil L. Contovounesios <contovob@tcd.ie>
Improve tree-sitter docs
* doc/lispref/positions.texi (List Motion): Incorporate more
accurate description of treesit-defun-type-regexp from
'(elisp) Tree-sitter Major Modes', replacing that duplicate
entry (bug#64018).
* doc/lispref/parsing.texi (Parsing Program Source)
(Language Grammar, Using Parser, Retrieving Nodes)
(Accessing Node Information, Pattern Matching, Multiple Languages):
(Tree-sitter Major Modes):
* doc/lispref/modes.texi (Parser-based Font Lock): Improve wording,
grammar, punctuation, and markup. Fix typos.
(Parser-based Indentation): Ditto. Document indent rule presets
field-is, catch-all, nth-sibling, grand-parent, and
great-grand-parent.
* lisp/treesit.el (treesit-simple-indent-presets): Mention field-is,
catch-all, nth-sibling, grand-parent, great-grand-parent in
docstring.
(treesit-major-mode-setup, treesit-explore-mode): Improve
docstring/commentary grammar.
2023-06-13 Basil L. Contovounesios <contovob@tcd.ie>
Fix some Texinfo markup in manuals
* doc/emacs/macos.texi (Mac / GNUstep Customization):
* doc/lispintro/emacs-lisp-intro.texi (condition-case):
* doc/lispref/control.texi (pcase Macro):
* doc/lispref/debugging.texi (Internals of Debugger):
* doc/lispref/internals.texi (Building Emacs):
* doc/lispref/modes.texi (Imenu):
(Parser-based Font Lock, Parser-based Indentation):
* doc/lispref/parsing.texi (Retrieving Nodes, Tree-sitter C API):
* doc/lispref/processes.texi (Network, Bindat Types):
* doc/lispref/searching.texi (Rx Functions):
* doc/lispref/text.texi (Replacing):
* doc/lispref/windows.texi (Textual Scrolling):
* doc/misc/calc.texi (Killing From Stack, Customizing Calc):
* doc/misc/cc-mode.texi (Misc Font Locking, List Line-Up):
* doc/misc/ede.texi (ede-cpp-root-project)
(ede-proj-target-makefile, ede-sourcecode):
* doc/misc/ert.texi (Running Tests in Batch Mode):
* doc/misc/eudc.texi (Emacs-only Configuration, The Server Hotlist):
* doc/misc/eww.texi (Advanced):
* doc/misc/flymake.texi (Starting Flymake)
(Proc customization variables):
* doc/misc/tramp.texi (File name completion):
* doc/misc/gnus.texi (Summary Buffer Lines, Gnus Registry Setup)
(Fancy splitting to parent, Customizing the IMAP Connection)
(Mail Source Specifiers, Agent as Cache): Consistently mark up nil
and t as @code. Also fix the markup and wording of some surrounding
text (bug#64016).
* doc/lispref/display.texi (SVG Images, Icons):
* doc/lispref/modes.texi (Customizing Keywords): Prefer ASCII
apostrophe over Unicode right single quotation mark.
2023-06-13 Basil L. Contovounesios <contovob@tcd.ie>
Fix bol/bos anchors in tree-sitter :match regexps
Further regexp fixes to follow separately (bug#64019#29).
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings):
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
* lisp/progmodes/js.el (js--treesit-font-lock-settings):
* lisp/progmodes/python.el (python--treesit-settings):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
* lisp/progmodes/sh-script.el (sh-mode--treesit-settings):
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings):
* test/src/treesit-tests.el (treesit-query-api): Anchor :match
regexps at beginning/end of string, not line.
2023-06-12 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/subr.el (with-restriction): Tweak indent rule
2023-06-12 Eli Zaretskii <eliz@gnu.org>
Fix setting region in the minibuffer
* lisp/minibuffer.el (minibuffer-beginning-of-buffer): Fix setting
region. (Bug#64022)
2023-06-12 Michael Albinus <michael.albinus@gmx.de>
Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has started
* doc/misc/dbus.texi (Alternative Buses): Explain using
$DBUS_SESSION_BUS_ADDRESS after Emacs has started.
* src/dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Use egetenv.
2023-06-11 Eli Zaretskii <eliz@gnu.org>
Fix tex-mode display-buffer issues
* lisp/window.el (display-tex-shell-buffer-action): New defcustom.
* lisp/textmodes/tex-mode.el (tex-display-shell)
(tex-cmd-doc-view, tex-recenter-output-buffer): Use it.
(Bug#63956)
2023-06-10 Morgan Smith <Morgan.J.Smith@outlook.com>
Add test for when 'completion-auto-help' is 'visible'
* test/lisp/minibuffer-tests.el (completion-auto-help-test): Add
test for when 'completion-auto-help' is 'visible'. Also test
for successful completion message. (Bug#63913)
2023-06-10 Eli Zaretskii <eliz@gnu.org>
Avoid errors in 'apropos-documentation' after 'eval-buffer'
* lisp/apropos.el (apropos--map-preloaded-atoms): Support the case
where an element of 'load-history' has nil as its car. (Bug#63881)
2023-06-10 Daniel Martín <mardani29@yahoo.es>
Mention indent-rigidly in the Emacs manual
* doc/emacs/indent.texi (Indentation Commands): Rewrite the first
sentence of 'C-x TAB' to mention the command that it executes, and
without using passive voice. (Bug#63997)
2023-06-10 Morgan Smith <Morgan.J.Smith@outlook.com>
Don't ding when completion succeeded
* lisp/minibuffer.el (minibuffer-completion-help): Ensure 'ding'
is not called on a successful completion. Ensure 'ding' is not
called on a failure if 'completion-fail-discreetly' is set.
Also change "No completions" to "No match" as that is what is
used elsewhere. (Bug#63913)
2023-06-09 Eli Zaretskii <eliz@gnu.org>
Improve documentation of color-related functions
* doc/lispref/frames.texi (Color Names): Document
'color-name-to-rgb' and 'color-dark-p'.
2023-06-08 Eli Zaretskii <eliz@gnu.org>
Revert "* package.el (package--get-activatable-pkg): Prefer source packages"
This reverts commit fb87d5008e21d1bc03547c1edf2280fb4cb8311e.
It caused problems when new versions of packages are installed
without deleting old versions. (Bug#63757)
2023-06-08 Michael Albinus <michael.albinus@gmx.de>
Fix connection-local user options handling (bug#63300)
* lisp/files-x.el (connection-local-set-profiles)
(connection-local-set-profile-variables): Avoid saving the changed
user option to file unless triggered explicitly by user. (Bug#63300)
2023-06-08 Eli Zaretskii <eliz@gnu.org>
Document 'startup-redirect-eln-cache'
* doc/lispref/compile.texi (Native Compilation)
(Native-Compilation Functions): Document
'startup-redirect-eln-cache'.
* etc/PROBLEMS: Fix last change.
* etc/NEWS: Mark 'startup-redirect-eln-cache' as documented.
2023-06-06 Andrea Corallo <akrl@sdf.org>
Fix `emacs-lisp-native-compile-and-load' for C-h f (bug#58314)
* lisp/emacs-lisp/comp.el (comp-write-bytecode-file): New function
spilling code from `batch-byte+native-compile'.
(batch-byte+native-compile): Make use of.
* lisp/progmodes/elisp-mode.el
(emacs-lisp-native-compile-and-load): Produce the elc file and ask
to have it loaded.
2023-06-06 Theodor Thornhill <theo@thornhill.no>
Add 'infer' as a keyword to typescript-ts-mode (bug#63880)
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--keywords):
New keyword.
2023-06-04 Philip Kaludercic <philipk@posteo.net>
Revert changes to the order in which package descs are loaded
* lisp/emacs-lisp/package.el (package-load-all-descriptors): Remove
NOSORT argument to 'directory-files', reverting back to the behaviour
as of Emacs 28. (Bug#63757)
2023-06-04 Spencer Baugh <sbaugh@janestreet.com>
Handle point in last file-name component in minibuffer completion
This is a followup to commit e338a8ac41d4a9fd798dda90275abe75ac071335
(Handle point not at EOB in minibuffer-choose-completion).
That commit added a heuristic, but the heuristic was insufficient:
It still had the original wrong behavior when completing the last
file-name component (i.e., the completion category is 'file' and
there's no slash after point). This patch makes the heuristic
cover that case as well.
* lisp/minibuffer.el (minibuffer-next-completion)
(minibuffer-choose-completion): If in file completion and there's no
slash after point, clear what's after point when we complete.
(Bug#62700)
2023-06-03 Eli Zaretskii <eliz@gnu.org>
Avoid asking redundant question in emacsbug.el
* lisp/mail/emacsbug.el (report-emacs-bug-hook): Don't ask the
question about saving email setup if we cannot save it anyway.
(Bug#63816)
2023-06-03 Michael Albinus <michael.albinus@gmx.de>
* test/infra/Dockerfile.emba (emacs-base): Don't install gawk.
2023-06-03 Dmitry Gutov <dmitry@gutov.dev>
typescript-ts-mode: Add a rule for function_signature
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings):
Add a rule for function_signature (bug#63867)
2023-06-03 Mattias Engdegård <mattiase@acm.org>
* admin/unidata/emoji-zwj.awk: Avoid sprint buffer overflow
Some AWK implementations have a fixed buffer for sprintf; for mawk the
default size is 8192 bytes. Hoist a string concatenation from
a sprintf call to avoid running into that limit. See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2023-06/msg00090.html .
(cherry picked from commit b5f17fe07c6624380ba8d0c7a400a6b89f225209)
2023-06-03 Йордан Миладинов <yordanm@pm.me> (tiny change)
Fix apostrophe handling in rust-ts-mode and go-ts-mode (Bug#63708)
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--syntax-propertize):
Treat apostrophes as strings if used to define character literals.
Treat LT and GT as pairs if used to define type parameters (formerly
they were treated as pairs only for type arguments).
* lisp/progmodes/go-ts-mode.el (go-ts-mode--syntax-table): Treat
apostrophes as strings if used to define rune literals.
2023-06-03 Michael Albinus <michael.albinus@gmx.de>
* test/infra/Dockerfile.emba (emacs-base): Install also gawk.
2023-06-03 Eli Zaretskii <eliz@gnu.org>
Fix 'python-util-clone-local-variables'
* lisp/progmodes/python.el (python-util-clone-local-variables):
Avoid signaling an error when a local variable is unbound.
Patch by Ernesto Alfonso <erjoalgo@gmail.com>. (Bug#63818)
2023-06-03 kobarity <kobarity@gmail.com>
Revert "Enhance Python font-lock to support multilines"
This reverts commit 4915ca5dd4245a909c046e6691e8d4a1919890c8.
We have found that there are performance issues when editing a large
file. The issue can be reproduced as follows:
1. emacs -Q
2. Open large Python file (e.g. turtle.py in Python)
3. Near the top of the buffer, enter open paren and some characters.
The above commit extends the region to be font-locked using
`python-nav-end-of-statement'. However, if there are unbalanced
parens, it may move point to the end of the buffer. This causes
almost the entire buffer to be font-locked, which is not acceptable
for large files.
2023-06-03 Eli Zaretskii <eliz@gnu.org>
Fix typo in calc.texi
* doc/misc/calc.texi (Programming Tutorial): Fix a typo.
Suggested by Vladimir Nikishkin <lockywolf@gmail.com>.
2023-06-02 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.4.1
2023-06-02 Eli Zaretskii <eliz@gnu.org>
Avoid errors in 'delete-forward-char' deleting static compositions
* lisp/simple.el (delete-forward-char): Fix recognition of static
compositions. (Bug#63837)
2023-06-02 Robert Pluim <rpluim@gmail.com>
Make VS-15 and VS-16 compositions work correctly
There is a conflict between forward matching and backward matching
composition rules involving the same codepoint, which can cause the
backward matching ones not to be invoked. Ensure that VS-15 (U+FE0E)
and VS-16 (U+FE0F) are composed by forward matching rules instead in
order to avoid this issue.
* admin/unidata/emoji-zwj.awk: Add rules for CHAR+VS-15 and CHAR+VS-16.
* lisp/composite.el: remove backward matching rule for VS-15. (Bug#63731)
2023-06-01 Dmitry Gutov <dmitry@gutov.dev>
Fix project-name for vc-aware backend in non-file buffers
* lisp/progmodes/project.el (project-name): Make sure
project-vc-name is picked up from dir-locals in all
non-file-visiting buffers too (mentioned in bug#63469).
2023-05-31 Theodor Thornhill <theo@thornhill.no>
Add type_predicate 'is' as keyword in typescript-ts-mode (bug#63810)
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--keywords):
New keyword 'is'.
2023-05-31 Eli Zaretskii <eliz@gnu.org>
Fix infloop in info-look.el
* lisp/info-look.el (info-lookup-guess-gdb-script-symbol): Fix
infloop when there are no completions. (Bug#63808)
2023-05-31 Stephen Berman <stephen.berman@gmx.net>
Fix several todo-mode.el item editing bugs (bug#63811)
* lisp/calendar/todo-mode.el (todo-insert-item--basic): With
insertion type 'here', ensure item is inserted on the todo-mode
line where the command was invoked.
(todo-edit-item--cat, todo-edit-item--pos): New variables.
(todo-edit-item--text): Restrict the scope of nil-valued
buffer-read-only to the functions that change buffer text. If
user moved point while editing a single-line todo item or a done
item comment, or while inserting a done item comment, restore
point, and for comments, make sure the done items section is
displayed. For multiline items, set the new variables so
todo-edit-quit can use them.
(todo-edit-quit): Use the values of the new variables to restore
point in the todo-mode buffer if it had been moved while editing.
(todo-edit-item--header): Avoid clobbering match data when editing
a todo item header.
2023-05-31 Randy Taylor <dev@rjt.dev>
dockerfile-ts-mode: Prevent empty categories in imenu (Bug#63759)
* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode--imenu):
Don't include empty categories.
2023-05-31 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Brush up doc strings and terminology in plstore.el
* lisp/plstore.el (plstore-encoded, plstore-passphrase-callback-function)
(plstore--init-from-buffer, plstore-revert, plstore-close)
(plstore--merge-secret, plstore--decrypt, plstore--match, plstore-find)
(plstore-get, plstore-put, plstore-delete, plstore--insert-buffer)
(plstore-save, plstore--encode, plstore--decode)
(plstore--write-contents-functions, plstore-mode-decoded)
(plstore-mode): Brush up doc strings and documentation in general.
Fix terminology, in particular spurious occurences of all uppercase
"PLSTORE". (Bug#63627)
2023-05-31 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Add internal documentation on plstore.el
* lisp/plstore.el: Add internal documentation and some words of
warning in the user documentation. (Bug#63627)
2023-05-30 Theodor Thornhill <theo@thornhill.no>
Add compact_constructor_declaration font-locking to java-ts-mode
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
New pattern.
2023-05-29 Juri Linkov <juri@linkov.net>
* lisp/tmm.el (tmm-completion-delete-prompt): Add more checks (bug#63754).
In case when 'completions-header-format' is nil, the first 'mouse-face'
property is at the beginning of the buffer. So first use 'get-text-property'
at point-min.
2023-05-29 Eli Zaretskii <eliz@gnu.org>
Allow to disable the DWIMish behavior of 'x' in package menu
* lisp/emacs-lisp/package.el
(package-menu-use-current-if-no-marks): New defcustom.
(package-menu-execute): Use it. (Bug#62563)
* etc/NEWS: Announce the new option.
2023-05-29 Robert Pluim <rpluim@gmail.com>
Allow dired to invoke secondary browser
'browse-url-of-dired-file' always invokes the primary browser, but
sometimes it's handy to call a different browser, which is why
'browse-url-secondary-browser-function' exists.
* lisp/net/browse-url.el (browse-url-of-dired-file): Call
'browse-url-secondary-browser-function' when invoked with a prefix
argument.
* etc/NEWS: Announce the change.
2023-05-29 Robert Pluim <rpluim@gmail.com>
Add a binding for enriched-toggle-markup
* lisp/textmodes/enriched.el (enriched-mode-map): Bind
'enriched-toggle-markup' to 'M-o m'.
* etc/NEWS: Announce the change.
2023-05-29 Eli Zaretskii <eliz@gnu.org>
Fix order of tmm-menubar when 'tmm-mid-prompt' is nil
* lisp/tmm.el (tmm-prompt): Reverse 'tmm-km-list' when
'tmm-mid-prompt' is nil, to present the menu in the correct order.
Suggested by Thiago Melo <tmdmelo@gmail.com>.
2023-05-29 Michael Albinus <michael.albinus@gmx.de>
Fix regression when saving tramp-default-proxies-alist (Do not merge)
* lisp/net/tramp.el (tramp-add-hops): Suppress `signal-hook-function'.
Save `tramp-default-proxies-alist' only when changed.
2023-05-28 Yuan Fu <casouri@gmail.com>
Save the tree-sitter grammar recipe when installing a grammar
Raised in bug#63750, but not the main subject of it.
* lisp/treesit.el (treesit-install-language-grammar): Save the recipe
to treesit-language-source-alist when installation is successful.
2023-05-28 Robert Pluim <rpluim@gmail.com>
Add instructions and test file for VS-15/VS-16
* admin/notes/unicode: Add instructions for emoji-variation-sequences.txt
* admin/unidata/emoji-variation-sequences.txt: New file, imported from
Unicode 15.
2023-05-28 Michael Heerdegen <michael_heerdegen@web.de>
A better fix for "Fix cancellation of Wdired"
* lisp/wdired.el (wdired-abort-changes): Call
`dired-build-subdir-alist' instead of `dired-revert'.
(Bug#63676)
2023-05-27 Eli Zaretskii <eliz@gnu.org>
Fix tmm-menubar when 'tmm-completion-prompt' is nil
* lisp/tmm.el (tmm-prompt): Handle nil value of 'tmm-mid-prompt'.
(tmm-completion-delete-prompt): Don't rely on the exact text of
the completion heading line, as it is now a customizable format
string, and can be nil, meaning no heading line is inserted at
all. Instead, search for the first character of the menu based on
text properties used for it. (Bug#63754)
2023-05-26 kobarity <kobarity@gmail.com>
Use 'font-lock-extend-region-functions' in python-mode
* lisp/progmodes/python.el (python-font-lock-extend-region): Change
arguments and return value for 'font-lock-extend-region-functions'.
(python-mode): Change from
'font-lock-extend-after-change-region-function' to
'font-lock-extend-region-functions'. (Bug#63622)
2023-05-26 kobarity <kobarity@gmail.com>
Fix python-info-docstring-p
* lisp/progmodes/python.el (python-info-docstring-p): Stop using
python-rx string-delimiter.
* test/lisp/progmodes/python-tests.el
(python-font-lock-escape-sequence-bytes-newline)
(python-font-lock-escape-sequence-hex-octal)
(python-font-lock-escape-sequence-unicode)
(python-font-lock-raw-escape-sequence): Mark as expected failures
until another bug in 'python-info-docstring-p' is corrected.
(python-info-docstring-p-7): New test. (Bug#63622)
2023-05-26 Eli Zaretskii <eliz@gnu.org>
Fix cancellation of Wdired
* lisp/wdired.el (wdired-abort-changes): Call 'dired-revert'.
Patch by Stephen Berman <stephen.berman@gmx.net>. (Bug#63676)
2023-05-26 Mattias Engdegård <mattiase@acm.org>
Handle #@00 in new reader in a compatible way (bug#63722)
This was a regression from Emacs 28.
* src/lread.c (skip_lazy_string, read0): Make #@00 read as nil, which
is a quirk from the old reader that we preserve for compatibility.
* test/src/lread-tests.el (lread-skip-to-eof): Verify it.
Reported by Richard Newton.
2023-05-25 Po Lu <luangruo@yahoo.com>
Don't mark selection request events
* src/pgtkterm.c (mark_pgtkterm): Prevent crash by not marking
selection request events, which don't have Lisp_Object members.
2023-05-25 Po Lu <luangruo@yahoo.com>
Disable cairo-xcb support by default
* INSTALL (--with-cairo-xcb): Document new option.
* configure.ac (USE_CAIRO_XCB): Implement new option.
2023-05-25 Juri Linkov <juri@linkov.net>
* lisp/progmodes/project.el: Move :safe from defcustom to autoload (bug#63469)
(project-vc-ignores, project-vc-merge-submodules)
(project-vc-include-untracked, project-vc-name)
(project-vc-extra-root-markers, project-kill-buffers-display-buffer-list):
Autoload the line that puts 'safe-local-variable' property on defcustom symbol
instead of using the :safe keyword.
2023-05-25 Juri Linkov <juri@linkov.net>
* lisp/vc/vc-annotate.el (vc-annotate-mode-menu): Quote vc-annotate-backend.
When unquoted it might get the nil value when vc-annotate.el is loaded
in non-vc-controlled buffer (bug#63689).
2023-05-25 Juri Linkov <juri@linkov.net>
Add vc-create/switch/print-branch to menu and update documentation (bug#63690)
* doc/emacs/maintaining.texi (VC Change Log):
Add 'C-x v b l' (vc-print-branch-log).
(Creating Branches): Add @kindex and @findex for vc-create-branch.
(Switching Branches): Add @kindex and @findex for vc-switch-branch.
* lisp/vc/vc-hooks.el (vc-menu-map): Add menu items for new
commands vc-create-branch and vc-switch-branch, and also
vc-print-branch-log.
* lisp/vc/vc.el (vc-print-branch-log): Improve docstring.
2023-05-25 Eli Zaretskii <eliz@gnu.org>
Fix rare crashes in 'try_window_reusing_current_matrix'
* src/xdisp.c (try_window_reusing_current_matrix): Make sure we
never use a mode-line glyph row to start displaying scrolled-in
rows. (Bug#63711)
2023-05-25 Michael Albinus <michael.albinus@gmx.de>
Make last Tramp change less invasive
* lisp/net/tramp.el (tramp-dissect-file-name): Revert last change.
(tramp-handle-file-name-as-directory)
(tramp-handle-file-name-directory): Let-bind `tramp-default-proxies-alist'.
2023-05-23 Eli Zaretskii <eliz@gnu.org>
Fix 'use-dialog-box-p' and friends
* lisp/subr.el (use-dialog-box-p): Use dialog boxes also when
invoked from some window-system gesture. (Bug#63655)
(y-or-n-p): Fix the description in the doc string of conditions
under which a dialog box will be used.
* src/fns.c (Fyes_or_no_p): Use the same condition for dialog
boxes as in 'use-dialog-box-p'. Fix the description in the doc
string of conditions under which a dialog box will be used.
* doc/lispref/minibuf.texi (Multiple Queries, Yes-or-No Queries):
Fix the description of conditions under which a dialog box will be
used.
2023-05-23 Stefan Monnier <monnier@iro.umontreal.ca>
Avoid duplicates when adding package dirs to load-path
Do not merge to master, we're going to delete this code there.
* lisp/emacs-lisp/package.el (package-activate-1): Check if the path
we're about to add is already in 'load-path', since package autoload
files have been updating 'load-path' for a decade.
2023-05-23 Robert Pluim <rpluim@gmail.com>
Avoid duplicate load-path entry when generating package autoloads
'file-name-directory' produces a path ending in '/', so that needs to be
run through 'directory-file-name' to avoid duplicate entries in
'load-path'. (Bug#63625)
* lisp/emacs-lisp/package.el (package-generate-autoloads): Call
'directory-file-name' on the directory of 'load-file-name'.
2023-05-23 Eli Zaretskii <eliz@gnu.org>
Disable loading SQLite3 extensions when SQLite3 version is too old
* src/sqlite.c (HAVE_LOAD_EXTENSION): Define to 1 only if
enabling/disabling extension loading is supported as well.
(load_dll_functions, Fsqlite_load_extension): Condition on
HAVE_LOAD_EXTENSION, not on HAVE_SQLITE3_LOAD_EXTENSION.
(Bug#63653)
2023-05-22 Eli Zaretskii <eliz@gnu.org>
Fix visiting HTML files encoded in iso-2022 variants
* lisp/international/mule.el (sgml-xml-auto-coding-function)
(sgml-html-meta-auto-coding-function): Handle coding-systems whose
coding-system-type is iso-2022. (Bug#63644)
2023-05-22 Eli Zaretskii <eliz@gnu.org>
Support 'isearch-allow-scroll' in 'pixel-scroll-precision-mode'
* lisp/pixel-scroll.el (pixel-scroll-precision)
(pixel-scroll-down, pixel-scroll-up): Put the 'scroll-command'
property on these commands. (Bug#63640)
2023-05-22 Andreas Schwab <schwab@suse.de>
shr: allow moving between adjacent anchors
* lisp/net/shr.el (shr-urlify): Put shr-tab-stop only over first
position.
2023-05-22 Michael Albinus <michael.albinus@gmx.de>
Fix multihop file name expansion in Tramp
* lisp/net/tramp.el (tramp-dissect-file-name): Set hop to nil if
NODEFAULT. (Bug#63578)
2023-05-21 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Remove obsolete information from Gnus manual
The Gnus manual was still referencing long-removed external
marks in section "Archiving Mails". Without external marks,
that section is almost pointless, so remove it completely.
* doc/misc/gnus.texi (Archiving Mail): Remove section.
(Top, Browsing the Web): Remove references to "Archiving
Mail". (Bug#63497)
2023-05-21 Jens Schmidt <jschmidt4gnu@vodafonemail.de>
Preserve mark in comint-history-isearch
This preserves mark in `comint-history-isearch-backward' and
friends, which tend to set the mark on completion of the isearch
to unexpected positions.
* lisp/comint.el (comint-history-isearch-end): Set `isearch-opoint'
to point. (Bug#63616)
2023-05-20 Liu Hui <liuhui1610@gmail.com>
Fix systemd unit completion for old versions of systemd
* lisp/pcmpl-linux.el (pcmpl-linux--systemd-units): Use '--no-legend'
for compatibility with older versions of systemctl. (Bug#63411)
2023-05-20 Eli Zaretskii <eliz@gnu.org>
Fix Skeletons menu-bar menu in Python modes
* lisp/progmodes/python.el (python-mode, python-ts-mode): Call
'python-skeleton-add-menu-items' here, not in 'python-base-mode',
since the "Python" menu is not yet set up in the latter.
(Bug#63598)
2023-05-20 Eli Zaretskii <eliz@gnu.org>
Fix loading SQLite extensions
* src/sqlite.c (sqlite3_db_config) [WINDOWSNT]: Load from the DLL.
(Fsqlite_load_extension): Use 'sqlite3_db_config' to enable and
disable loading of extensions. Add a few free extensions to the
allow-list. Fix testing for the ".dll" extension. (Bug#63590)
* test/src/sqlite-tests.el (sqlite-load-extension): Fix the test
to require successful load if the extension does exist.
2023-05-20 Mattias Engdegård <mattiase@acm.org>
* etc/NEWS: Note dotimes loop variable scoping change (bug#63586)
2023-05-20 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode--top-level-declarator
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--top-level-declarator): Don't use treesit-node-match-p.
2023-05-19 Yuan Fu <casouri@gmail.com>
Improve c-ts-mode font-lock for function names (bug#63390)
When a function definition has preproc directives in its body, it
can't correctly parse into a function_definition. This fix tries to
recognize this case and highlight the function_declarator correctly.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--font-lock-settings): New rule.
(c-ts-mode--top-level-declarator): New function.
2023-05-19 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Don't use 'minibuffer-selected-window' (bug#62427).
(tab-bar-select-tab, tab-bar-new-tab-to):
Use 'window-minibuffer-p' instead of 'minibuffer-selected-window'.
And switch to 'get-mru-window' instead of 'minibuffer-selected-window'.
2023-05-19 Juri Linkov <juri@linkov.net>
Split windows horizontally in places that use split to create a new window.
* lisp/tab-bar.el (tab-bar-new-tab-to):
* lisp/window.el (window-state-put):
To create a new window, split horizontally instead of vertically.
Use 'window-safe-min-width' for the SIZE arg of 'split-window'.
(bug#62592)
2023-05-18 Yuan Fu <casouri@gmail.com>
Fix tree-sitter test (bug#63481)
* test/src/treesit-tests.el (treesit-basic-parsing): Latest json
parser doesn't return an error on empty buffer or multiple objects
anymore [1].
https://github.com/tree-sitter/tree-sitter-json/commit/40a81c01a40ac48744e0c8ccabbaba1920441199
2023-05-18 Aaron Jensen <aaronjensen@gmail.com>
Attempt to fix redisplay problems on macOS
* src/nsterm.m (ns_scroll_run): Attempt to fix redisplay
artifacts. (Bug#63187)
2023-05-18 Jens Schmidt <jschmidt4gnu@vodafonemail.de> (tiny change)
Clarify misleading comment in isearch.el
Clarify a misleading comment in isearch.el as to whether frame events
should exit an isearch or not (Bug#62032, Bug#41338 for background
information).
* lisp/isearch.el (isearch-mode-map): Replace the misleading comment.
(Bug#62032)
2023-05-18 Eli Zaretskii <eliz@gnu.org>
Improve documentation of package-menu commands
* doc/emacs/package.texi (Package Menu): Document that some
package-menu filters accept lists of values interactively.
* lisp/emacs-lisp/package.el (package-menu-execute)
(package-menu-hide-package, package-menu-describe-package)
(package-menu-mark-delete, package-menu-mark-install)
(package-menu-mark-unmark, package-menu-backup-unmark)
(package-menu-quick-help, package-menu-get-status)
(package-menu--find-upgrades, package-menu-mark-upgrades)
(package-menu-filter-by-archive)
(package-menu-filter-by-description)
(package-menu-filter-by-keyword)
(package-menu-filter-by-name-or-description)
(package-menu-filter-by-name, package-menu-filter-by-status)
(package-menu-filter-by-version, package-menu-filter-marked)
(package-menu-describe-package): Doc fixes.
2023-05-17 Basil L. Contovounesios <contovob@tcd.ie>
Fix M-x completion-predicate under python-ts-mode
* lisp/progmodes/python.el (python--completion-predicate)
(python-shell--completion-predicate): Filter M-x completion based on
python-base-mode instead of python-mode. This allows for
python-ts-mode as well (bug#63552).
2023-05-17 Andrea Corallo <akrl@sdf.org>
* Account for `byte-compile-warnings' during native compilation (bug#63302).
* lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers):
Forward `byte-compile-warnings' to child processes.
2023-05-16 Philip Kaludercic <philipk@posteo.net>
Avoid duplicate VC packages in 'package-selected-packages'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Check if
'package-selected-packages' already contains the package name.
(bug#63338)
2023-05-15 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-new-tab-to): Set 'window-side' to nil (bug#62427).
This is still needed for the case when tab-bar-new-tab-choice is 'window'.
2023-05-14 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.6
2023-05-14 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version for next pretest
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump Emacs version to 29.0.91.
2023-05-14 Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>
Ignore current-prefix-arg in async-shell-command
* lisp/simple.el (async-shell-command): Ignore current-prefix-arg and
always pass nil to second argument of `shell-command'. (Bug#63432)
2023-05-13 Joseph Turner <joseph@breatheoutbreathe.in>
Fix building of VC package manuals with relative includes
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
Invoke makeinfo with -I to ensure the package directory is always
consulted for @include statements. (Bug#63337)
2023-05-13 Cyril Arnould <cyril.arnould@outlook.com> (tiny change)
Another fix for VHDL mode highlighting
* lisp/progmodes/vhdl-mode.el (vhdl-version): Bump to 3.38.5.
(vhdl-compiler-alist): Fix the regexps and the doc string.
2023-05-13 Eli Zaretskii <eliz@gnu.org>
Fix auto-filling in Texinfo mode
This fixes auto-filling in Texinfo buffers. It was broken by the
fix to bug#49558, which made M-q fill over-long @noindent lines by
refraining from customizing 'paragraph-separate' in Texinfo mode.
The underlying problem here is that 'auto-fill-mode' doesn't call
mode-specific filling functions, but does its job by itself, and
depends on 'forward-paragraph' to find the beginning of the
paragraph as appropriate for calculation of 'fill-prefix', and a
different value of 'paragraph-separate' broke that. As a side
effect, the change below also changes paragraph-movement commands
in Texinfo back to how they behaved prior to that bugfix, but I
don't see why the paragraph-movement behavior introduced by that
fix made more sense. Try to move through a series of
@-directives, like a paragraph preceded by several @cindex
entries, and you will see the inconsistencies. In any case, the
adverse effects of that fix on auto-filling is unacceptable.
* lisp/textmodes/texinfo.el (fill-paragraph-separate): New
variable.
(texinfo-mode): Set 'fill-paragraph-separate' to the default value
of 'paragraph-separate'. Customize 'paragraph-separate' to the
Texinfo-specific value, as it was before commit dde591571abf.
(texinfo--fill-paragraph): Bind 'paragraph-separate' to the value
of 'fill-paragraph-separate', to keep 'M-q' happy.
2023-05-12 Gregory Heytings <gregory@heytings.org>
Merge branch 'scratch/long-lines-cleanup' into 'emacs-29'
2023-05-12 Gregory Heytings <gregory@heytings.org>
Add an assertion in, and a commentary for, 'get_nearby_bol_pos'
* src/xdisp.c:
(get_nearby_bol_pos): Document the function, and add an assertion
on its return value.
2023-05-12 Gregory Heytings <gregory@heytings.org>
Fix the return type of 'labeled_restrictions_get_bound'
* src/editfns.c:
(labeled_restrictions_get_bound): Return a Lisp_Object instead of
a pointer to a struct Lisp_Marker.
(unwind_reset_outermost_restriction, reset_outermost_restrictions)
(Fwiden, Fnarrow_to_region): Adapt to the new return type.
2023-05-12 Eli Zaretskii <eliz@gnu.org>
Fix mouse highlight with some fonts in Cairo builds
* src/ftcrfont.c (ftcrfont_draw): Don't set the
'background_filled_p' flag of the glyph string. (Bug#63271)
2023-05-12 Philip Kaludercic <philipk@posteo.net>
Ensure that package menu respects 'package-install-upgrade-built-in'
* lisp/emacs-lisp/package.el (package-menu--find-upgrades): Check if
built-in packages can be upgraded if
'package-install-upgrade-built-in' is non-nil.
2023-05-12 Philip Kaludercic <philipk@posteo.net>
Ensure that EXTRA-DATA are always written when generating autoloads
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Handle
edge-case where no autoloads are found. (Bug#63260)
2023-05-11 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.4.0
Or strictly speaking v0.4.0-1-g428576a4.)
2023-05-11 Eli Zaretskii <eliz@gnu.org>
Revert "Don't have nntp-report signal an error"
This reverts commit 032969e8c65ba1ccda8466f6c61f20e0c7293ebf.
The commit is being reverted because it caused bug#62845.
2023-05-10 Alan Mackenzie <acm@muc.de>
Make c-emacs-features use the proper binding of parse-sexp-lookup-properties
This is relevant for bug #58558, although it does not fix it. Due to a wrong
ordering of with-current-buffer and a let form, the function overwrote the
global value of parse-sexp-lookup-properties and two other variables.
* lisp/progmodes/cc-defs.el (c-emacs-features): Change the nesting of
with-current-buffer and let so that the let bindings get used.
2023-05-09 Stefan Monnier <monnier@iro.umontreal.ca>
with-display-message: Workaround for bug#63253
Running arbitrary ELisp code from an atimer is still dangerous,
at least because the regexp engine is not-reentrant, so let's patch up
the case we bumped into. There are probably many other such holes :-(
* src/alloc.c (garbage_collection_inhibited): Make it non-static.
* src/xdisp.c (garbage_collection_inhibited): Declare it.
(set_message, clear_message): Use it as a proxy for "we're in
a dangerous context like within `probably_quit`".
2023-05-09 João Távora <joaotavora@gmail.com>
Fido-mode: never shadow 'external' completion style
As explained in the manual (20.7.2 Fast minibuffer selection)
'fido-mode' and 'fido-vertical-mode' give priority the "flex"
completion style.
In fact, bug#62015 was recently fixed in commit because that priority
was not taking place correctly and some completions were missed.
However, an exception must be made for the 'external' completion
style.
That style, made available by the lisp/external-completion.el library,
is specifically designed to work with backends that provide only a
partial view of all completions. If we allow 'flex' to step in front
of 'external' it could mean that 'flex' matches something and
'external' isn't triggered as it probably should.
To reproduce have the rust-mode ELPA package and the rust-analyzer LSP
server handy. Then:
emacs -Q -f package-initialize main.rs
Where main.rs is this content:
fn foo1() {} fn foo2() {} fn foo3() {}
fn foobar1() {} fn foobar2() {} fn foobar3() {}
The rust-analyzer server can be quickly configured to return only 3
workspace symbols max, so evaluate:
(setq-default eglot-workspace-configuration
'(:rust-analyzer
(:workspace (:symbol (:search (:limit 3))))))
Now start M-x eglot and M-x fido-vertical-mode and type C-u M-. to
find an arbitrary symbol in this one-file project.
Type 'f'. You will see the three foo's are listed, correctly.
Now type '3'. You will only see "foo3".
But that's wrong because "foobar3" was available, if only the server
had been asked for it. This commit fixes the situation and no
completions are lost.
As an unfortunate side-effect of this commit, the fontification of
completions-common-part on the matches is lost, but that is not worse
than missing out on completions and there are better ways to recover
the fontification anyway (in external-completion.el).
See also:
https://github.com/joaotavora/eglot/discussions/1219#discussioncomment-5818336
* lisp/icomplete.el (icomplete--fido-ccd): Do not touch entries
with 'external in them.
Do not merge to master.
Backport:
(cherry picked from commit 0e8d8a72284f6b3aaa1bbce73d41c7d84bbc4d3c)
2023-05-09 Eli Zaretskii <eliz@gnu.org>
Avoid crashes in --without-all build trying to scale non-ASCII char
* src/fontset.c (face_for_char): Display a non-ASCII character as
glyphless if the ASCII face has no fontset. (Bug#63283)
2023-05-09 Eli Zaretskii <eliz@gnu.org>
Improve instructions for dealing with Emacs crashes
* doc/emacs/trouble.texi (Crashing): Show the variant of the
'addr2line' command for MS-Windows.
2023-05-08 Mohsen Banan <form@mohsen.banan.1.byname.net>
Improved transliterations + improved bidi insertion support for Farsi
* lisp/leim/quail/persian.el ("farsi-transliterate-banan"):
Improve and add transliterations. (Bug#63361)
2023-05-08 Alan Third <alan@idiocy.org>
Fix crash when creating a child frame in NS (bug#63107)
* src/nsterm.m ([EmacsView initFrameFromEmacs:]): Have a second go at
creating the toolbar.
([EmacsWindow createToolbar:]): If there is already a toolbar or the
EmacsView's layer is not an EmacsLayer, then do nothing.
(cherry picked from commit 3adc1e7f37901235bda83ea65a90644b7b0a8dbf)
2023-05-07 Andrew G Cohen <cohen@andy.bu.edu>
Fix outgoing mime type regression (Bug#62815)
* lisp/net/mailcap.el (mailcap-mime-extensions,
mailcap-parse-mimetype-file, mailcap-mime-types): Don't regexp-quote
mimetypes in a context where they should be strings.
(mailcap--regexp-quote-type): Remove.
(cherry picked from commit 605414d018da47f99dec5019142f584b6eb174c8)
2023-05-07 Nicholas Vollmer <iarchivedmywholelife@gmail.com>
define-minor-mode: sanitize mode function messages
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Ensure mode's
pretty name is not interprted as a message formatting string,
e.g., if the mode name contains a '%'. (Bug#63343)
2023-05-07 Eli Zaretskii <eliz@gnu.org>
Fix beginning/end-of-defun with tree-sitter
* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Push mark, as other beginning/end-of-defun
functions do.
2023-05-06 Theodor Thornhill <theo@thornhill.no>
Fix indent for enums in csharp-mode
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Check for
keywords containing 'enum' on the line before an opening bracket, and
make it behave like a class-open token.
2023-05-06 Eli Zaretskii <eliz@gnu.org>
Teach c-ts-mode about the 'restrict' keyword
* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add
"restrict" and "_Atomic" type qualifiers. (Bug#63323)
2023-05-06 Eli Zaretskii <eliz@gnu.org>
* lisp/x-dnd.el (x-dnd-after-move-frame): Skip dead frames. (Bug#63312)
2023-05-06 Eli Zaretskii <eliz@gnu.org>
Fix doc strings of 'mark-sexp' and 'mark-word'
* lisp/emacs-lisp/lisp.el (mark-sexp):
* lisp/simple.el (mark-word): Clarify the doc strings in various
usage cases. (Bug#62892)
2023-05-05 Dmitry Gutov <dmitry@gutov.dev>
(package-upgrade): Don't remove the package from 'package-selected-packages'
* lisp/emacs-lisp/package.el (package-upgrade):
Don't remove the package from 'package-selected-packages', fixing
the problem described in https://debbugs.gnu.org/62720#718.
2023-05-05 João Távora <joaotavora@gmail.com>
Eglot: re-rename eglot-upgrade to eglot-upgrade-eglot
* doc/misc/eglot.texi (Getting the latest version): Mention
eglot-upgrade-eglot.
* etc/EGLOT-NEWS: Mention eglot-upgrade-eglot.
* lisp/progmodes/eglot.el (eglot-upgrade-eglot): Rename from
eglot-update.
(eglot-update): New compatibility alias.
2023-05-05 Eli Zaretskii <eliz@gnu.org>
Fix arguments of xml.c functions as displayed in Help buffers
* lisp/subr.el (libxml-parse-xml-region)
(libxml-parse-html-region): Adjust advertised-calling-convention
to the changes in commit cc33c6cf3a. (Bug#63291)
2023-05-05 Po Lu <luangruo@yahoo.com>
More fixes for NetBSD/vax
* src/sysdep.c (init_signals) [__vax__]: Treat SIGILL
as a floating point error on VAXen.
Otherwise, (log 0.0) crashes Emacs.
2023-05-05 Cyril Arnould <cyril.arnould@outlook.com> (tiny change)
Improve VHDL mode highlighting
* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Differentiate
between ModelSim errors, warnings, and notes when highlighting
them. Add a new entry for Xilinx Vivado. (Bug#63251)
2023-05-04 Po Lu <luangruo@yahoo.com>
Clarify documentation wrt floating point division by zero and NaN
* doc/lispref/numbers.texi (Float Basics)
(Arithmetic Operations): Document what happens on a VAX.
Tested on NetBSD 9.3.
2023-05-04 Robert Pluim <rpluim@gmail.com>
Make loaddefs-generate slightly more tolerant
There are packages in the wild, such as vlf-20191126.2250, which have
entries that are not terminated by three ';', but by two. Tolerate
such entries.
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Search for two
';' as a delimiter, not three. (Bug#63236)
2023-05-04 Philip Kaludercic <philipk@posteo.net>
Fix order of rcirc-connect arguments
* lisp/net/rcirc.el (rcirc): Pass SERVER-ALIAS before CLIENT-CERT.
(rcirc-connect): Take SERVER-ALIAS before CLIENT-CERT.
This is necessary for the 'rcirc-reconnect' trick to work that applies
the contents of 'rcirc-connection-info' to 'rcirc-connect', otherwise
the server alias gets lost as certfp information.
This addresses a change made in b79cb838a477ee5a5c3660e81264991ff833a82f.
2023-05-04 Thuna <thuna.cing@gmail.com> (tiny change)
Fix rcirc messages printing in the wrong place
* lisp/net/rcirc.el (rcirc-send-message): Print the message before
sending it to the server.
(rcirc-print): Get the time with subsecond precision.
* lisp/calendar/parse-time.el (parse-time-string
parse-iso8601-time-string): Accept optional second FORM arguments,
with the same meaning as in `decode-time'. Mention as such in the
docstring. (Bug#59501)
2023-05-04 Philip Kaludercic <philipk@posteo.net>
Prevent unnecessary modifications of 'package-vc-selected-packages'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Handle the
structure of correctly, not as an alist but a list of alists.
(package-vc--archive-spec-alist, package-vc--archive-spec-alists,
package-vc--desc->spec, package-vc--read-archive-data,
package-vc--download-and-read-archives, package-vc--unpack): Rename
'package-vc--archive-spec-alist' to 'package-vc--archive-spec-alists'.
2023-05-03 Dmitry Gutov <dmitry@gutov.dev>
Rename eglot-update to eglot-upgrade
* doc/misc/eglot.texi (Getting the latest version):
Update the reference.
* lisp/progmodes/eglot.el (eglot-upgrade): Rename from
'eglot-update', as discussed on emacs-devel, in line with
'package-upgrade'.
2023-05-03 Randy Taylor <dev@rjt.dev>
go-ts-mode: Use iota query only if supported (Bug#63086)
iota query support was added on January 5, 2022. To support older
versions of the tree-sitter-go grammar (like the latest tagged version,
v0.19.1, which was released on March 3, 2021), check if the query is
supported before trying to use it.
* lisp/progmodes/go-ts-mode.el (go-ts-mode--iota-query-supported-p): New
function.
(go-ts-mode--font-lock-settings): Use it.
2023-05-03 Dmitry Gutov <dmitry@gutov.dev>
(rng-complete-tag): Add the (ignored) argument to the :company-kind function
* lisp/nxml/rng-nxml.el (rng-complete-tag): Add the (ignored)
argument to the :company-kind function. Fixes the "Wrong number
of arguments" error reported at
https://github.com/company-mode/company-mode/issues/1386.
2023-05-03 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.3.7-219-g3ded15b
2023-05-03 Po Lu <luangruo@yahoo.com>
Fix inserting selection data into Mozilla programs
* lisp/select.el (xselect-convert-to-text-uri-list): Don't
return any value when converting non-DND selections to this
drag-and-drop target.
Reported by Tobias Bading <tbading@web.de>.
2023-05-03 Thuna <thuna.cing@gmail.com> (tiny change)
Recognize defstruct slot names in various eieio functions
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Set
each slot's name's 'slot-name' property so that
'eieio--known-slot-name-p' can recognize them. (Bug#62959)
2023-05-02 Thuna <thuna.cing@gmail.com> (tiny change)
Use 'calendar-buffer' instead of fixed string
* test/lisp/calendar/cal-julian-tests.el (with-cal-julian-test):
Use 'calendar-buffer' instead of a literal fixed name.
(Bug#61546)
2023-05-02 Spencer Baugh <sbaugh@catern.com>
Handle point not at EOB in minibuffer-choose-completion
Without this change, only the minibuffer contents before point
are cleared when a completion is chosen, which results in stray
text when point is in the middle of the minibuffer.
After this change, we heuristically decide either to clear the
whole buffer or only part of it, taking into account the
location of point.
This is a backport for the Emacs 29 release branch of a simpler
fix in minibuffer-completion-help.
* lisp/minibuffer.el (minibuffer-next-completion):
(minibuffer-choose-completion):
Recalculate completion-base-affixes with point. (Bug#62700)
2023-05-02 Spencer Baugh <sbaugh@catern.com>
Note that Emacs pauses when handling sentinel errors
Noting this behavior and variable here makes it easier to
understand the behavior of Emacs when a sentinel has an error.
* doc/lispref/processes.texi (Filter Functions): Note that Emacs
pauses when handling sentinel errors.
(Sentinels): Note that Emacs pauses when handling sentinel errors.
(Bug#63096)
2023-05-01 Eli Zaretskii <eliz@gnu.org>
Fix vertical-motion when tab-line is displayed in a window
* src/xdisp.c (try_window, try_window_id): Account for tab-line,
if present, when converting scroll-margin at the top of the window
to vertical pixel coordinate. (Bug#63201)
2023-04-30 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.5-3-g2993f4
2023-04-30 Philip Kaludercic <philipk@posteo.net>
Prevent generating empty autoload files
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Remove
optimisation that would mistakenly discard old loaddefs in case a file
was not modified by EXTRA-DATA is non-nil. (Bug#62734)
2023-04-30 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/org/org-macs.el (org--inhibit-version-check): Fix docstring
Also, add an explanation to the docstring for what the version
check is about.
2023-04-30 Eli Zaretskii <eliz@gnu.org>
Fix redisplay of mode line after its format changes from nil
* src/dispnew.c (update_window): Make sure a mode-line's row of
the current glyph matrix is disabled when the mode line is not
being displayed. (Bug#63186)
2023-04-30 Michael Albinus <michael.albinus@gmx.de>
Fix c-ts-mode--emacs-c-range-query
* lisp/progmodes/c-ts-mode.el (c-ts-mode--emacs-c-range-query):
Check for (treesit-available-p).
2023-04-30 Eli Zaretskii <eliz@gnu.org>
Improve documentation of warnings
* doc/lispref/control.texi (Errors):
* doc/lispref/os.texi (Startup Summary):
* doc/lispref/display.texi (Warning Basics, Warning Variables)
(Warning Options, Delayed Warnings): Improve documentation of
warnings. Document the automatic delaying of warnings during
startup. (Bug#63181)
2023-04-29 Yuan Fu <casouri@gmail.com>
Fix FOR_EACH_TAIL fontification (bug#62951)
Fix the fontification inconsistency between different FOR_EACH_TAIL's.
See the comment for more explanation. Also enable the emacs-devel
feature automatically when c-ts-mode-emacs-sources-support is on.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--for-each-tail-regexp): Move up.
(c-ts-mode--font-lock-settings): New font-lock rule for FOR_EACH_TAIL.
(c-ts-mode--fontify-for-each-tail): New function.
(c-ts-mode): Automatically enable emacs-devel feature.
2023-04-29 Eli Zaretskii <eliz@gnu.org>
Fix documentation of libxml-parse-* functions
* doc/lispref/text.texi (Parsing HTML/XML):
* src/xml.c (Flibxml_parse_html_region, Flibxml_parse_xml_region):
Update the documentation regarding the use of BASE-URL argument.
(Bug#63125)
2023-04-28 Theodor Thornhill <theo@thornhill.no>
Skip over whitespace in annotation-top-cont check (bug#63141)
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure
we skip over whitespace when looking for the next '['.
2023-04-28 Ruijie Yu <ruijie@netyu.xyz>
Update zh-CN tutorial translation
* etc/tutorials/TUTORIAL.cn (INTRO): Additions from English
version; say "interrupt" not "quit" a partially-entered command;
fixed minor inconsistency (English says partially-entered command,
Chinese used to say partially-executed command -- they are
different); converted half-width square brackets containing
translators' notes into full-width ones for consistency.
(BASIC CURSOR CONTROL): mention that a word boundary for Chinese
can also be space; fixed incorrect terminology (keyboard vs
terminal); retain English term "terminal"; retain English term
"prefix argument"; "most commands _interpret_ prefix args as
repeat-count", not "explain"; ensure space is added on both ends
of an English word.
(WINDOWS): Clarify it is the digit 1 in C-x 1.
(INSERTING AND DELETING): Mention the term "continuation line" and
retain its English term, because this term is mentioned again
later in the tutorial; avoid saying the name of "\\"; add
description for "electric" and a rough translation; sync English
for prefix argument for DEL and C-d; ensure that translators'
notes are marked explicitly so; add indentation to the instruction
about continuation lines; additional translations such as
mentioning C--, etc.
(FILES): Re-pluralize the heading; space around English words;
describe what C-g cancels (the command) when entering file name;
replace "search for" with "find"; minor rephrasing; explicit
translator notes; fixed the write-file message to no longer
contain ellipses (see src/fileio.c:5541).
(BUFFERS): Re-pluralize the heading; mention that C-x C-b also
shows buffer name; C-x s only looks for file-visiting buffers.
(EXTENDING THE COMMAND SET): Include C-x s and C-x b in list of
learned commands.
(MODE LINE): Remove the dashes in description on the point
location.
(MULTIPLE WINDOWS): Mention the difference between frame
and window; also add translator notes pointing to end of
tutorial which contains a terminology list.
(MULTIPLE FRAMES): Change the M-x commands to keybinds C-x 5 2 and
C-x 5 0 to sync with English.
(GETTING MORE HELP): Change C-h f to C-h x, to sync with English.
(INSTALLING PACKAGES): Rephrase "available packages", used to say
lit., "existing", now says lit., "installable"; consistently
translate the term "package", and retain its English name.
(TRANSLATION): Add my name as co-maintainer of this file.
* etc/tutorials/TUTORIAL.translators (TUTORIAL.cn): Add my name
as co-maintainer for TUTORIAL.cn.
2023-04-28 Eli Zaretskii <eliz@gnu.org>
Fix eglot.texi
* doc/misc/eglot.texi (Troubleshooting Eglot): Add missing @menu.
(Performance, Getting the latest version): Improve wording and
indexing, add cross-references.
2023-04-27 Po Lu <luangruo@yahoo.com>
Fix two crashes upon startup
* src/image.c (image_create_bitmap_from_data)
(image_create_bitmap_from_file): Specify a Window or a Pixmap
describing the screen, not a back buffer drawable which may not exist.
Otherwise, Emacs crashes on startup when a bitmap icon is in use.
2023-04-27 João Távora <joaotavora@gmail.com>
Eglot: explain how to update Eglot in manual (bug#62720)
* lisp/progmodes/eglot.el (eglot-update): New command.
* doc/misc/eglot.texi (Troubleshooting): Rework.
2023-04-27 João Távora <joaotavora@gmail.com>
Eglot: fix edge case when deleting inlay hint overlays
When asked to update hints in a region (FROM TO),
eglot--update-hints-1 first deletes the existing hints. It must
however take care to delete all overlays that logically belong to the
region, even if they don't physically belong to it, e.g. inlay
overlays spanning (FROM-1 FROM) and having a 'after-string' property.
* lisp/progmodes/eglot.el (eglot--update-hints-1): Fix edge case.
2023-04-27 Dmitry Gutov <dmitry@gutov.dev>
package-upgrade[-all]: Expand docstrings to note the current limitation
* lisp/emacs-lisp/package.el (package-upgrade, package-upgrade-all):
Expand docstrings to note the current limitation (bug#62720).
2023-04-27 Dmitry Gutov <dmitry@gutov.dev>
Rename all functions called package-*-update-* to package-*-upgrade-*
* lisp/emacs-lisp/package-vc.el (package-vc-upgrade-all):
Rename from 'package-vc-update-all'.
(package-vc-upgrade): Rename from 'package-vc-update'.
* lisp/emacs-lisp/package.el (package-upgrade):
Rename from 'package-update' (bug#62750).
(package--upgradeable-packages):
Rename from 'package--updateable-packages'.
(package-upgrade-all): Rename from 'package-update-all'.
2023-04-27 Yuan Fu <casouri@gmail.com>
Fix FOR_EACH_TAIL in c-ts-mode (bug#62951)
* lisp/progmodes/c-ts-mode.el
(c-ts-mode--indent-styles): New indent rule.
(c-ts-mode--for-each-tail-regexp)
(c-ts-mode--for-each-tail-body-matcher)
(c-ts-mode--emacs-c-range-query)
(c-ts-mode--for-each-tail-ranges)
(c-ts-mode--reverse-ranges)
(c-ts-mode--emacs-set-ranges): New functions and variables.
(c-ts-mode): Create a emacs-c parser. More setup for Emacs source
support.
* lisp/treesit.el (treesit-query-range): Ignore underscore-prefixed
capture names.
2023-04-27 Eli Zaretskii <eliz@gnu.org>
* Makefile.in (distclean): Remove the 'native-lisp' directory.
2023-04-27 Eli Zaretskii <eliz@gnu.org>
Improve greek-ibycus4 input method
* lisp/leim/quail/greek.el ("greek-ibycus4"): Add another sequence
for CAPITAL LETTER RHO WITH DASIA. (Bug#63104)
2023-04-26 F. Jason Park <jp@neverwas.me>
Explain ERC 5.5 regressions in new version 5.5.0.29.1
* doc/misc/erc.texi: Bump version to 5.5.0.29.1.
* etc/ERC-NEWS: Don't hype bugged option `erc-reconnect-display'.
* lisp/erc/erc-dcc.el (erc-dcc-do-GET-command): Add comment explaining
parsing bug in ERC 5.5 (bug#62444).
* lisp/erc/erc-networks.el (erc-networks-on-MOTD-end): Mention known
/MOTD bug in error notice so people don't waste energy reporting
it (bug#62151).
* lisp/erc/erc.el: Change Version header to 5.5.0.29.1. Don't bother
updating the `customize-package-emacs-version-alist' entry
because no option defaults are affected.
(erc-version): Change version to 5.5.0.29.1.
(erc-reconnect-display, erc-query-on-unjoined-chan-privmsg): Add
warning to doc strings and `custom-set' functions. It's believed that
these bugs degrade the user experience significantly enough to warrant
such mentions (bug#62833).
(erc-query): Fix erroneous redirect string in deprecation spec.
Do not merge to master.
2023-04-26 F. Jason Park <jp@neverwas.me>
* doc/misc/erc.texi: Elaborate on upgrading via ELPA.
2023-04-26 Robert Pluim <rpluim@gmail.com>
Improve outline-default-state docstring
* lisp/outline.el (outline-default-state): Explain which functions are
available to affect heading visibility.
2023-04-26 Eli Zaretskii <eliz@gnu.org>
Document problems with /bin/sh on Solaris 10
* etc/PROBLEMS (Solaris): Document problems with '/bin/sh'.
Suggested by Paul Eggert <eggert@cs.ucla.edu>. (Bug#63067)
2023-04-25 Eli Zaretskii <eliz@gnu.org>
Followup to addition of TUTORIAL.fa
* etc/NEWS: Announce addition of TUTORIAL.fa.
* etc/tutorials/TUTORIAL.translators (TUTORIAL.fa): New entry.
* lisp/language/misc-lang.el ("Persian"): Add tutorial property.
2023-04-25 Mohsen Banan <form@mohsen.banan.1.byname.net>
Add Farsi/Persian translation of the tutorial
* etc/tutorials/TUTORIAL.fa: New file.
* lisp/language/misc-lang.el (arabic-shaper-ZWNJ-handling): Fix
typo in doc string.
2023-04-25 Eli Zaretskii <eliz@gnu.org>
Add Mongolian language environments
* lisp/language/misc-lang.el ("Mongolian-traditional"):
* lisp/language/cyrillic.el ("Mongolian-cyrillic"): New
language environments.
* etc/HELLO: Add Mongolian Traditional.
* etc/NEWS: Announce the new language environments.
(Bug#63028)
2023-04-25 Eli Zaretskii <eliz@gnu.org>
Document the 'end-session' event on MS-Windows
* doc/lispref/commands.texi (Misc Events): Document the
'end-session' event. (Bug#63058)
2023-04-24 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.4-9-g8eb209
2023-04-24 Eli Zaretskii <eliz@gnu.org>
Don't support versioned grammar libraries on MS-Windows
* src/treesit.c (treesit_load_language_push_for_each_suffix):
Don't append ".0.0" on WINDOWSNT.
2023-04-24 Yuan Fu <casouri@gmail.com>
Accept versioned tree-sitter language grammar files
By discussion on emacs-devel, titled "Versioned Tree-sitter parser
libraries".
* src/treesit.c (Vtreesit_str_dot_0): New variable.
(treesit_load_language_push_for_each_suffix): Additionally look for
lib_base_name.0 and lib_base_name.0.0.
(syms_of_treesit): Initialize Vtreesit_str_dot_0.
2023-04-24 Benson Chu <bensonchu457@gmail.com> (tiny change)
tab-bar-new-tab: inhibit side-window checks
Previously, calling 'tab-bar-new-tab-to' only removed the
'window-side' property on the currently selected window,
and then a call to 'delete-other-windows' was made to
ensure that the selected window was the only window.
We can skip this check by shadowing 'window--sides-inhibit-check'
to t.
* lisp/tab-bar.el (tab-bar-new-tab-to): Inhibit side-window checks.
(Bug#62427)
2023-04-24 Michael Albinus <michael.albinus@gmx.de>
* etc/NEWS: Fix outline level. (Bug#63042)
Fix typos.
2023-04-23 Eli Zaretskii <eliz@gnu.org>
Fix rendering of Traditional Mongolian script
* lisp/international/characters.el: Set punctuation syntax for Po
characters from the Mongolian block
* lisp/international/fontset.el (setup-default-fontset): Add
fontset setting for Traditional Mongolic.
* lisp/language/misc-lang.el (composition-function-table): Add
rules for Traditional Mongolic. (Bug#63028)
2023-04-22 Eli Zaretskii <eliz@gnu.org>
Fix line-number-at-pos when POSITION is out of narrowing
* src/fns.c (Fline_number_at_pos): Don't signal an error when
ABSOLUTE is nil and POSITION is outside of the narrowing, like the
original Lisp implementation did. Minor speedup by using the byte
position where it is available from the get-go. (Bug#62857)
2023-04-22 Eli Zaretskii <eliz@gnu.org>
Fix exiting Emacs after saving a tutorial
* lisp/tutorial.el (tutorial--starting-point): Make it
permanent-local, so that saving the tutorial to some file doesn't
kill this buffer-local variable. Otherwise, trying to exit Emacs
after saving the tutorial will signal an error, because
'tutorial--starting-point' is void. (Bug#37326)
2023-04-22 Eli Zaretskii <eliz@gnu.org>
Add indentation style setting for c-ts-mode in .dir-locals.el
* lisp/progmodes/c-ts-mode.el (c-ts-indent-style-safep): New
predicate.
(c-ts-mode-indent-style): Use it to test the value for being safe.
* .dir-locals.el (c-ts-mode): Set 'c-ts-mode-indent-style' to 'gnu'.
2023-04-20 Nicolas Martyanoff <nicolas@n16f.net>
sql: add missing postgresql types
* lisp/progmodes/sql.el: Add multiple missing PostgreSQL types: bigserial,
smallserial, macaddr8, jsonb, jsonpath, built-in range types, object
identifier types (oid & co).
2023-04-19 Eli Zaretskii <eliz@gnu.org>
Fix display of menu-bar bindings of commands in *Help* buffers
* lisp/help-fns.el (help-fns--insert-menu-bindings): Propertize
with 'help-key-binding' face only the menu items, not the arrows
between successive items. This is because 'char-displayable-p' is
unreliable when we propertize the character with an arbitrary
face: that face could specify a font which doesn't support the
character after all, while 'char-displayable-p' assumes there are
no restrictions on fonts that can be used for displaying the
character. Also, make the code more efficient by avoiding the
call to 'char-displayable-p' inside the loop.
2023-04-19 Spencer Baugh <sbaugh@janestreet.com>
Improve Completion Example section in the Emacs manual
This can be a useful substitute for full-on fuzzy completion, as
provided by other completion styles and completion packages.
* doc/emacs/mini.texi (Completion Example): Give an example of
completion with point not at end of minibuffer. Also, use
@kbd{@key{TAB}} when telling the user to hit TAB. (Bug#62836)
2023-04-19 Robert Pluim <rpluim@gmail.com>
Improve 'message-server-alist' docstring
* lisp/gnus/message.el (message-server-alist): Fix typo and clarify
what happens if there is already an X-Message-SMTP-Method header.
2023-04-19 Robert Pluim <rpluim@gmail.com>
Add index entry for fallback modes
* doc/emacs/custom.texi (Specifying File Variables): Add index for
'fallback modes'.
2023-04-18 Dmitry Gutov <dmitry@gutov.dev>
xref-search-program-alist: Fix searching larger file lists on MS Windows
* lisp/progmodes/xref.el (xref-search-program-alist):
Add '-s 10000' to xargs' options when on Windows or DOS.
Apparently the xargs port doesn't currently know how to obey the
system-wide limits (https://debbugs.gnu.org/bug=61667#521).
2023-04-18 Shynur <one.last.kiss@outlook.com> (tiny change)
Fix typo and inaccuracy in the ELisp Reference manual
* doc/lispref/loading.texi (Dynamic Modules): Fix a typo.
* doc/lispref/customize.texi (Group Definitions): Faces are also
in the 'custom-group' property of a customization group.
(Bug#62887)
2023-04-18 Eli Zaretskii <eliz@gnu.org>
Fix description of lexical environment's internals
* doc/lispref/variables.texi (Lexical Binding): Update the
description of how the lexical environment is represented
internally. (Bug#62840)
2023-04-16 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.4-2-g0f6ae7
2023-04-16 Eli Zaretskii <eliz@gnu.org>
Documentation copyedits for 'package-install-upgrade-built-in' etc
* etc/NEWS: More details about the new option
'package-install-upgrade-built-in'.
* lisp/emacs-lisp/package.el (package-install-upgrade-built-in)
(package--active-built-in-p, package-install): Doc fixes.
(Bug#62720)
2023-04-16 Philip Kaludercic <philipk@posteo.net>
Allow upgrading built-in packages with 'package-install'
* etc/NEWS: Mention the change
* lisp/emacs-lisp/package.el (package--upgradable-built-in-p): Add new
predicate.
(package-install-upgrade-built-in): Add new user option to enable
feature.
(package-install): Respect new user option.
2023-04-16 Eli Zaretskii <eliz@gnu.org>
Minor changes in c-ts-mode.el's support of DEFUNs
* lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-DEFUN): Renamed
from 'c-ts-mode--fontify-defun'; all callers changed.
(c-ts-mode-emacs-sources-support): Renamed from
'c-ts-mode-emacs-devel' and made into a defcustom; all users
changed.
(c-ts-mode--emacs-defun-p, c-ts-mode--emacs-defun-at-point)
(c-ts-mode--emacs-current-defun-name): Doc fixes. (Bug#62825)
2023-04-16 Eli Zaretskii <eliz@gnu.org>
Fix strike-through attribute support on TTY frames
* src/term.c (init_tty): Fix setting the strike-through capability
with "smxx". (Bug#62265)
2023-04-16 Eli Zaretskii <eliz@gnu.org>
Avoid crashes in 'describe-keymap' due to shadowing
* src/keymap.c (describe_vector): Handle shadowing by something
other than a symbol. (Bug#62867)
2023-04-15 Andreas Schwab <schwab@linux-m68k.org>
Make image-map bindings available on image links
* lisp/net/shr.el (shr-map): Move shr-browse-image to "M-i".
* lisp/net/eww.el (eww-image-link-keymap): Use shr-image-map.
2023-04-15 Alan Mackenzie <acm@muc.de>
* CONTRIBUTE: Fix a typo
2023-04-15 Jostein Kjønigsen <jostein@kjonigsen.net>
Add to Eglot support for additional language-servers.
* lisp/progmodes/eglot.el (eglot-server-programs): Add
'vscode-markdown-language-server' for Markdown and
'dot-language-server' for GraphViz. (Bug#62844)
2023-04-14 Yuan Fu <casouri@gmail.com>
Partial support for DEFUN in c-ts-mode (bug#62825)
The DEFUN is hard to incorporate because it's made of two nodes rather
than one, and most tree-sitter functionalities assume a defun is one
node. I fixed the indent-defun and add-log functionality, but
beginning/end-of-defun and imenu still don't recognize DEFUN.
* lisp/progmodes/c-ts-mode.el (c-ts-mode-emacs-devel): New variable.
(c-ts-mode--defun-name): Support DEFUN.
(c-ts-mode--defun-valid-p): Support DEFUN.
(c-ts-mode--emacs-defun-p)
(c-ts-mode--emacs-defun-at-point): New functions.
(c-ts-mode-indent-defun): Use c-ts-mode--emacs-defun-at-point.
(c-ts-mode--emacs-current-defun-name): New function.
(c-ts-mode, c++-ts-mode): Optionally setup custom defun-name function.
2023-04-14 Eli Zaretskii <eliz@gnu.org>
Fix style and unwinding code in treesit.c
This was supposed to be a cherry-pick from master, but
isn't, due to the unnecessary rush to fix master without
cleaning up the mess first and without separating changes
that can and cannot be backported.
* src/treesit.c (treesit_traverse_cleanup_cursor): Fix indentation
style.
(Ftreesit_search_subtree, Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Fix specpdl unwinding. (Bug#62823)
Do not merge to master.
2023-04-14 Yuan Fu <casouri@gmail.com>
Catch signals produced by PRED in tree-sitter search functions
Earlier we switched to using cursors rather than nodes to traverse the
parse tree. Because cursors need cleanup, we have to catch signals
thrown by the predicate functions and free the cursor. Failing to do
this will result in leaking the cursor whenever the predicate function
signals in a search function. This change fixes the leak.
* src/treesit.c (treesit_traverse_cleanup_cursor): New function.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Catch signals. (Bug#62823)
(cherry picked from commit a5eb9f6ad4e6f5a2819b540a477f1e889f6ef355)
2023-04-13 Eli Zaretskii <eliz@gnu.org>
Fix compilation of w32.c with old MinGW system headers
* src/w32.c (CONSOLE_FONT_INFO): Make sure the definition is not
visible for MinGW versions whose w32api's version is before 5.2.0.
(Bug#52792)
2023-04-12 Dmitry Gutov <dgutov@yandex.ru>
ruby-add-log-current-method: Reduce the use of 'nreverse'
* lisp/progmodes/ruby-mode.el (ruby-add-log-current-method):
Reduce the use of 'nreverse' (bug#62761).
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-add-log-current-method-singleton-referencing-outer):
New test.
2023-04-12 Visuwesh <visuweshm@gmail.com>
Fix detection of WebP images by their signature
* lisp/image.el (image-type-header-regexps): The 4 characters
between "RIFF" and "WEBP" in WebP images can also be newlines.
(Bug#62790)
2023-04-12 Earl Hyatt <okamsn@protonmail.com>
Add more documentation for the keys of `package-vc-selected-packages`.
* doc/emacs/package.texi (Specifying Package Sources): List the
accepted keys in a new subsection of Fetching Package Sources.
* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages):
Mention the `:doc` key. Add the `:doc` key to the Customize form,
mention the new Info node, correct "TexInfo" to "Texinfo", avoid
Git-specific terms for the description of `:branch`, mention guessing
`:vc-backend` based on the URL.
2023-04-11 Dmitry Gutov <dgutov@yandex.ru>
vc-checkout: Try to use the vc-dir's backend first
* lisp/vc/vc.el (vc-checkout): Try to use the vc-dir's backend
before looking for the file's one. The latter doesn't work when
the file doesn't exist on disk yet (bug#62674).
2023-04-11 Eli Zaretskii <eliz@gnu.org>
Improve documentation related to 'ispell-complete-word'
* lisp/textmodes/ispell.el (ispell-alternate-dictionary)
(ispell-complete-word-dict, ispell-complete-word): Doc fixes.
(Bug#62775)
2023-04-11 Po Lu <luangruo@yahoo.com>
* configure.ac: Add -lbsd on Haiku.
2023-04-11 Eli Zaretskii <eliz@gnu.org>
Add menu to 'c-ts-mode' and 'c++-ts-mode'
* lisp/progmodes/c-ts-mode.el (c-ts-mode-menu): New menu.
2023-04-11 Mattias Engdegård <mattiase@acm.org>
Update manual about `sort`
* doc/lispref/sequences.texi (Sequence Functions):
Remove inaccurate and over-specific claims about how `sort` works for
lists: there is no guarantee that it doesn't modify the `car` fields
of the input list (which is precisely what it does at this time).
(cherry picked from commit c753a9592345e2084d69e9e2cc458c16db2e4141)
2023-04-11 Eli Zaretskii <eliz@gnu.org>
Fix wallpaper-tests on MS-Windows
* test/lisp/image/wallpaper-tests.el (wallpaper--find-setter)
(wallpaper--find-setter/call-predicate)
(wallpaper--find-setter/set-current-setter)
(wallpaper-set/calls-init-action)
(wallpaper-set/calls-wallpaper-set-function)
(wallpaper-set/runs-command, wallpaper-set/runs-command/detach):
Skip these tests if native functions are used for changing
wallpaper. These tests are irrelevant in that case.
2023-04-11 Basil L. Contovounesios <contovob@tcd.ie>
Fix a couple of eglot-tests
* test/lisp/progmodes/eglot-tests.el
(eglot-test-rust-analyzer-watches-files): Bump timeout.
(eglot-test-json-basic): Check for yas-minor-mode before using it,
like other tests do (bug#61637).
2023-04-10 Eli Zaretskii <eliz@gnu.org>
Fix visiting RPM files
We cannot call 'sh-set-shell' inside 'sh-base-mode', since various
settings of 'sh-mode', in particular the syntax table, is not yet
set. Likewise with various hooks: since 'sh-base-mode' is not a
mode any file should be visited with, it makes no sense to set up
stuff like 'hack-local-variables-hook' in 'sh-base-mode'; it
should be set in the descendant modes instead.
* lisp/progmodes/sh-script.el (sh-base-mode): Move the call to
'sh-set-shell' from here...
(sh-mode): ...to here...
(bash-ts-mode): ...with a copy here. (Bug#62748)
2023-04-10 Basil L. Contovounesios <contovob@tcd.ie>
Fix ff-quiet-mode doc
* lisp/find-file.el (ff-quiet-mode, ff-find-other-file): Say that
ff-quiet-mode disables tracing, not the inverse.
2023-04-01 Gregory Heytings <gregory@heytings.org>
Another final fix to last changes
* src/xdisp.c (get_small_narrowing_begv): Refine the value of 'bol_pos'.
2023-04-01 Gregory Heytings <gregory@heytings.org>
Three final fixes to last changes
* src/xdisp.c (get_nearby_bol_pos): Initialize 'bol' to BEGV - 1
instead of 0 (which fixes cursor motion commands in the presence
of a narrowing), adapt the return condition accordingly, and do
not restart the loop when BEGV has been reached.
(get_small_narrowing_begv): Use correct type.
2023-04-01 Gregory Heytings <gregory@heytings.org>
Two further fixes to last changes
* src/xdisp.c (get_narrowed_width): Use FRAME_WINDOW_P instead of
Fterminal_live_p. Also take WINDOW_LEFT_FRINGE_WIDTH into
account.
2023-04-01 Gregory Heytings <gregory@heytings.org>
Improve and fix last changes
* src/xdisp.c (get_narrowed_width): Use WINDOW_RIGHT_FRINGE_WIDTH,
which works both for character-only terminals and for GUI frames
without fringes.
(get_nearby_bol_pos): Instead of searching for BOL in
[pos-500000..pos], gradually extend the region, starting with
[pos-500..pos]. This is much faster in buffers with some long
lines in the middle of lots of short lines.
2023-03-29 Gregory Heytings <gregory@heytings.org>
Fix cursor motion in character-only terminals
* src/xdisp.c (get_narrowed_width): Subtract 1 from
window_body_width to account for the '\' line wrapping indication.
2023-03-28 Gregory Heytings <gregory@heytings.org>
Make get_medium_narrowing_begv/zv static
* src/xdisp.c (get_medium_narrowing_begv):
(get_medium_narrowing_zv): Make these two functions static, they
are only used in xdisp.c.
* src/dispextern.h: Remove the prototypes.
2023-03-28 Gregory Heytings <gregory@heytings.org>
Improve accuracy of cursor motion commands in long lines
* src/xdisp.c (get_nearby_bol_pos): New function.
(get_small_narrowing_begv): Use it. This makes cursor motion
commands much more accurate in the first 500K characters of each
long line.
2023-03-28 Gregory Heytings <gregory@heytings.org>
Remove labeled restrictions before calling Fwiden
* src/editfns.c (labeled_restrictions_remove_in_current_buffer):
New function.
* src/lisp.h: Make it externally visible.
* src/xdisp.c (display_count_lines_logically):
* src/lread.c (readevalloop):
* src/indent.c (line_number_display_width):
* src/fileio.c (write_region):
* src/callproc.c (Fcall_process_region):
* src/buffer.c (Ferase_buffer): Use it.
2023-03-28 Gregory Heytings <gregory@heytings.org>
Code cleanup for long line optimizations
This commit does not change any code, it merely renames functions
and clarifies the documentation, to make the code hopefully easier
to grasp.
* src/dispextern.h (struct it): Rename the 'narrowed_begv',
'narrowed_zv', 'locked_narrowing_begv', 'locked_narrowing_zv' to
'medium_narrowing_begv', 'medium_narrowing_zv',
'large_narrowing_begv', 'large_narrowing_zv'. Clarify the
comments.
Update the prototypes of the functions renamed in xdisp.c.
* src/lisp.h: Update the prototypes of the functions renamed in
editfns.c. Remove the prototype of
'safe_run_hooks_maybe_narrowed', which is used only in keyboard.c.
* src/xdisp.c
(get_small_narrowing_begv): Renamed from
'get_closer_narrowed_begv'.
(get_medium_narrowing_begv): Renamed from 'get_narrowed_begv'.
(get_medium_narrowing_zv): Renamed from 'get_narrowed_zv'.
(get_large_narrowing_begv): Renamed from 'get_locked_narrowing_begv'.
(get_large_narrowing_zv): Renamed from 'get_locked_narrowing_zv'.
(SET_WITH_NARROWED_BEGV): Use the new field names.
(handle_fontified_prop): Use the new function and new field names.
(back_to_previous_line_start): Use the new field name.
(back_to_previous_visible_line_start): Use the new field name.
(reseat): Use the new function and new field names.
(get_visually_first_element): Use the new field name.
(move_it_vertically_backward): Use the new function name.
(redisplay_internal): Use the new function name.
Also add a large comment to explain how Emacs deals with long lines.
* src/keyboard.c:
(safe_run_hooks_maybe_narrowed): Use the new function names from
xdisp.c and editfns.c. Make the function static, and add a
prototype.
* src/editfns.c:
(labeled_restrictions): Renamed from 'narrowing_locks'.
(labeled_restrictions_add): Renamed from 'narrowing_locks_add'.
(labeled_restrictions_remove): Renamed from
'narrowing_locks_remove'.
(labeled_restrictions_get_bound): Renamed from
'narrowing_lock_get_bound'.
(labeled_restrictions_peek_label): Renamed from
'narrowing_lock_peek_tag'.
(labeled_restrictions_push): Renamed from 'narrowing_lock_push'.
(labeled_restrictions_pop): Renamed from 'narrowing_lock_pop'.
(unwind_reset_outermost_restriction): Renamed from
'unwind_reset_outermost_narrowing'.
(reset_outermost_restrictions): Renamed from
'reset_outermost_narrowings'.
(labeled_restrictions_save): Renamed from 'narrowing_locks_save'.
(labeled_restrictions_restore): Renamed from
'narrowing_locks_restore'.
(unwind_labeled_narrow_to_region): Renamed from
'unwind_narrow_to_region_locked'.
(labeled_narrow_to_region): Renamed from
'narrow_to_region_locked'.
(Finternal__label_restriction): Renamed from
'Finternal__lock_narrowing'.
(Finternal__unlabel_restriction): Renamed from
'Finternal__unlock_narrowing'.
(Fwiden): Use the new function names.
(Fnarrow_to_region): Use the new function names.
(save_restriction_save): Use the new function names.
(syms_of_editfns): Use the new function names.
<outermost-restriction>: Renamed from 'outermost-narrowing'.
* lisp/subr.el (internal--with-restriction): Use the new internal
function name.
(internal--without-restriction): Use the new internal function
name.
* src/composite.c (composition_compute_stop_pos):
(find_automatic_composition): Use the new function name.
* doc/lispref/positions.texi (Narrowing): Add index entry.
2023-04-10 Eli Zaretskii <eliz@gnu.org>
* lisp/ldefs-boot.el: Regenerate.
2023-04-10 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version to 29.0.90
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump version to 29.0.90.
2023-04-09 Dmitry Gutov <dgutov@yandex.ru>
Fix some cases of incomplete code's indentation [c/c++-ts-mode]
* lisp/progmodes/c-ts-mode.el (c-ts-base--before-indent): Try to
guess when the parse tree is incomplete, and provide a better node
to indent against (bug#62717).
(c-ts-base-mode): Set up advice for local treesit-indent-function.
2023-04-09 Dmitry Gutov <dgutov@yandex.ru>
project-search: Pipe the list of files through 'file-regular-p'
* lisp/progmodes/project.el (project-search): Pipe the list of
files through 'file-regular-p' to skip directories (bug#62735).
2023-04-09 Eli Zaretskii <eliz@gnu.org>
Update ChangeLog and AUTHORS for Emacs 29
* admin/authors.el: Update for Emacs 29.
* etc/AUTHORS: Re-generate for Emacs 29.
* ChangeLog.4: New generated file.
* Makefile.in (PREFERRED_BRANCH): Update to emacs-29.
(CHANGELOG_HISTORY_INDEX_MAX): Bump to 4.
2023-04-09 João Távora <joaotavora@gmail.com>
Backport: Eglot: no more tests based on Pylsp (bug#62694)
The functionality under test in eglot.el is exactly the same, but use
the clangd server only, as that is used in more tests, and it is much
easier to check if it misbehaves or not.
Tests pass with clangd version 15.
* test/lisp/progmodes/eglot-tests.el (python): Don't require it.
(eglot--call-with-fixture): Simplify.
(eglot--wait-for-clangd): New helper.
(eglot-test-basic-completions)
(eglot-test-non-unique-completions, eglot-test-basic-xref)
(eglot-test-snippet-completions)
(eglot-test-snippet-completions-with-company)
(eglot-test-eldoc-after-completions, eglot-test-multiline-eldoc):
Use clangd, not pylsp.
(eglot-test-formatting): Renamed from
eglot-test-python-autopep-formatting.
(eglot-test-python-yapf-formatting): Remove.
(cherry picked from commit fc8230f3362b12955152f48565a6c670b4c4cc88)
2023-04-08 Eli Zaretskii <eliz@gnu.org>
Fix 'C-h k' for "Paste from Kill Menu" in context menus
* lisp/mouse.el (context-menu-region): Make the entries be
symbols, not just integers, to prevent "C-h c" from interpreting
them as character keys. (Bug#62626)
2023-04-08 Eli Zaretskii <eliz@gnu.org>
Improve the documentation of the XDS support
* doc/lispref/frames.texi (Drag and Drop): Rephrase and rearrange
the documentation of XDS support. Add indexing. Document
'x-dnd-save-direct' and 'x-dnd-save-direct-immediately'. Original
patch from Po Lu <luangruo@yahoo.com>.
* lisp/x-dnd.el (x-dnd-types-alist, x-dnd-test-function)
(x-dnd-default-test-function, x-dnd-direct-save-function): Doc
fixes.
(x-dnd-save-direct, x-dnd-save-direct-immediately): Rename the
second argument to FILENAME. Doc fix.
2023-04-08 Eli Zaretskii <eliz@gnu.org>
Allow reindentation of images inserted by 'mm-inline-image'
* lisp/gnus/mm-view.el (mm-inline-image): Use "x" as text on which
to put the image 'display' property, so that indentation commands
don't destroy the image inadvertently. (Bug#62637)
2023-04-08 Eli Zaretskii <eliz@gnu.org>
Fix "C-h k" and "C-h c" with Paste from Kill Menu
* lisp/subr.el (event-basic-type, event-modifiers): Return nil if
EVENT is a string. (Bug#62626)
2023-04-08 Daniel Martín <mardani29@yahoo.es>
Change cursor color on NS port when it matches the face background
* src/macfont.m (CG_SET_FILL_COLOR_WITH_FRAME_CURSOR): New macro.
(CG_SET_FILL_COLOR_WITH_FRAME_BACKGROUND): New macro.
(macfont_draw): When the cursor's color matches the face background,
set the fill color of the cursor to the face foreground.
* src/nsterm.m (ns_maybe_dumpglyphs_background): When dumping the
background of a glyph string, apply the logic mentioned
above. (Bug#62573)
2023-04-08 Eli Zaretskii <eliz@gnu.org>
Improve documentation of image-related commands
* lisp/image.el (image-map): Make it inherit from
'image-slice-map' instead of repeating the bindings.
* doc/emacs/files.texi (Image Mode): Document the key bindings set
by 'insert-image'. Add indexing.
* doc/lispref/display.texi (Showing Images): Make the description
of user commands more concise. Add index entries and
cross-reference to the Emacs manual.
* etc/NEWS: Rearrange entries relevant to image commands.
2023-04-08 Eli Zaretskii <eliz@gnu.org>
Fix handling of sliced images
* lisp/image.el (image-slice-map): New keymap, without some
bindings that make no sense with sliced images.
(insert-image, insert-sliced-image): Use it.
(insert-sliced-image): Make the 'keymap' property rear-nonsticky,
to prevent calling image commands when point is to the right of
the slice. (Bug#62679)
* lisp/image/image-crop.el (image-cut, image-crop): Doc fixes.
(image-crop): Don't try using stock MS-Widows convert.exe
program. Use 'image--get-image' to support sliced images.
2023-04-08 garid3000 <garidzorigoo@gmail.com>
Add cyrillic-mongolian input method
* lisp/leim/quail/cyrillic.el (cyrillic-mongolian): New input
method. (Bug#56617)
2023-04-07 João Távora <joaotavora@gmail.com>
Jsonrpc: don't bind inhibit-read-only to t so early
Related to https://github.com/joaotavora/eglot/discussions/1202, where
because of this very wide binding to inhibit-read-only to t, Eglot was
managing to write into read-only buffers from the response handlers
that ran from within the stack of the jsonrpc.el process filter.
This is of course illegal and dangerous, but Eglot wasn't made aware
because of the binding.
* lisp/jsonrpc.el (jsonrpc--process-filter): Don't bind
inhibit-read-only so early.
2023-04-07 Eli Zaretskii <eliz@gnu.org>
Allow active region when IM is used
* lisp/international/quail.el (quail-minibuffer-message): Bind
deactivate-mark to allow setting active region in the minibuffer
when an input method is used. (Bug#62709)
2023-04-06 Robert Pluim <rpluim@gmail.com>
Add emoji-zoom-reset
* lisp/international/emoji.el (emoji-zoom-map): Add emoji-zoom-reset.
(emoji-zoom-reset): New function, it resets the zoom level.
* lisp/international/mule-cmds.el (ctl-x-map): Add emoji-zoom-reset.
* etc/NEWS: Announce new command.
2023-04-06 Robert Pluim <rpluim@gmail.com>
Make emoji-zoom-{increase,decrease} set text properties correctly
* lisp/international/emoji.el (emoji-zoom-increase): Ensure that we're
increasing the :height of the anonymous face at point, rather than
having two :height properties, which appeared to work by
accident, and don't error at eob. (Bug#62675)
2023-04-06 Eli Zaretskii <eliz@gnu.org>
Fix transforming sliced images
* lisp/image.el (image--get-image): Support sliced images
(bug#62679). Doc fix.
(image-mouse-decrease-size, image-mouse-increase-size)
(image-decrease-size, image-increase-size): Doc fixes.
2023-04-04 Michael Albinus <michael.albinus@gmx.de>
Adapt EMBA scripts.
* test/infra/Dockerfile.emba (emacs-gnustep): Add zlib1g-dev.
Remove make instrumentation.
* test/infra/gitlab-ci.yml (build-image-gnustep, test-gnustep): Uncomment.
2023-04-04 Eli Zaretskii <eliz@gnu.org>
Another terminology fix in ELisp reference manual
* doc/lispref/frames.texi (Mouse Tracking):
* doc/lispref/commands.texi (Motion Events, Event Examples):
'track-mouse' is a macro, not a special form.
2023-04-04 Shynur <one.last.kiss@outlook.com> (tiny change)
Correct terminology in Elisp Reference Manual
* doc/lispref/functions.texi (Function Names): 'defun' is a macro, not
a special form. (Bug#62661)
2023-04-04 Michael Albinus <michael.albinus@gmx.de>
Comment out GNUSTEP jobs on EMBA (again)
* test/infra/gitlab-ci.yml (build-image-gnustep, test-gnustep):
Comment out jobs due to bug#62210.
2023-04-03 Mattias Engdegård <mattiase@acm.org>
Fix regexp string escaping mistake in vhdl-mode.el (bug#62508)
* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Quote brackets
correctly.
2023-04-02 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.3-2-gf2949d
2023-04-02 João Távora <joaotavora@gmail.com>
Eglot: don't watch directories that don't exist
project-files isn't guaranteed to return existing files, so better
check if they exist because placing a watcher on them.
Originally reported at:
https://github.com/joaotavora/eglot/issues/1198
* lisp/progmodes/eglot.el (eglot-register-capability
workspace/didChangeWatchedFiles): Check if directories exist.
2023-04-02 Eshel Yaron <me@eshelyaron.com>
Preserve peer information for web page in eww-readable
The :peer property in eww-data affects the face of the page title
in 'header-line-format' as set by 'eww-update-header-line-format'.
Preserving this property in eww-readable avoids having the header
line's appearance change when this command is called.
* lisp/net/eww.el (eww-readable): Preserve eww-data's :peer
property. (Bug#62574)
2023-04-02 Eli Zaretskii <eliz@gnu.org>
* lisp/subr.el (use-dialog-box-p): Fix conditions for GUI dialogs.
2023-04-01 Eli Zaretskii <eliz@gnu.org>
Fix ModelSim error regexp in vhdl-mode
* lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): Fix ModelSim
error regexp. Suggested by Reto Zimmermann <reto@gnu.org>.
(Bug#62508)
2023-04-01 Eli Zaretskii <eliz@gnu.org>
Document enhancements in handling of echo-area messages
* etc/NEWS:
* doc/lispref/display.texi (Displaying Messages):
* lisp/minibuffer.el (inhibit-message-regexps)
(set-message-functions, inhibit-message, set-multi-message):
Improve the documentation of functions dealing with display of
echo-area messages.
2023-04-01 Eli Zaretskii <eliz@gnu.org>
Fix new Eshell tests on MS-Windows
* test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/background)
(eshell-test/eshell-command/background-pipeline): Allow for ".exe"
in the program's name. This fixes these tests on MS-Windows.
2023-03-31 Jim Porter <jporterbugs@gmail.com>
Fix using background commands in 'eshell-command'
Do not merge to master.
This regressed due to the patch for bug#53715, which changed how
Eshell pipelines return the processes in the pipeline (bug#62556).
* lisp/eshell/esh-cmd.el (eshell-eval-command): Allow process-pairs.
* test/lisp/eshell/eshell-tests.el (eshell-test/eshell-command/simple)
(eshell-test/eshell-command/pipeline)
(eshell-test/eshell-command/background)
(eshell-test/eshell-command/background-pipeline): New tests.
2023-03-31 Shynur <one.last.kiss@outlook.com> (tiny change)
Fix typo in section 14.1 of Emacs Manual
* doc/emacs/display.texi (Scrolling): Fix typo. (Bug#62569)
2023-03-30 João Távora <joaotavora@gmail.com>
Eglot: unbreak eglot-extend-to-xref on w32
Because of a drive-letter casing mismatch between 'buffer-file-name'
and the return value of 'url-generic-parse-url', the hash-table test
'equal' in 'eglot-current-server' failed.
This failed to recognize that the file xref landed us on really is
managed by the language server that facilitated that jump.
The function w32-long-file-name seems to convert "C:/Users/" to
"c:/Users" consistently and so is a good addition to
eglot--uri-to-path.
* lisp/progmodes/eglot.el (eglot--uri-to-path): Use
w32-long-file-name.
2023-03-30 João Távora <joaotavora@gmail.com>
Eglot: ensure server shutdown turns off eglot-inlay-hints-mode
* lisp/progmodes/eglot.el (eglot--managed-mode-off): Turn off
eglot-inlay-hints-mode.
2023-03-30 Yuan Fu <casouri@gmail.com>
Add two typescript-ts-mode faces (bug#62429)
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode-jsx-tag-face)
(typescript-ts-mode-jsx-attribute-face): New faces.
(typescript-ts-mode--font-lock-settings): Use new faces.
(tsx-ts-mode): Mention the new faces in the docstring.
2023-03-30 Shynur <one.last.kiss@outlook.com> (tiny change)
Fix scrolling window when point moves up
This fixes the case when both 'scroll-conservatively' and
'scroll-step' are customized to non-default values.
* src/xdisp.c (try_scrolling): Fix precedence between
'scroll-step' and 'scroll-conservatively' when scrolling with
'previous-line'. (Bug#62530)
2023-03-30 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'defcustom's :set keyword
* lisp/custom.el (defcustom):
* doc/lispref/customize.texi (Variable Definitions): Improve the
documentation of the :set keyword in 'defcustom'.
2023-03-29 Andrea Corallo <akrl@sdf.org>
Comp fix calls to redefined primtives with op-bytecode (bug#61917)
* test/src/comp-tests.el (61917-1): New test.
* src/comp.c (syms_of_comp): New variable.
* lisp/loadup.el: Store primitive arities before dumping.
* lisp/emacs-lisp/comp.el (comp--func-arity): New function.
(comp-emit-set-call-subr): Make use of `comp--func-arity'.
2023-03-29 Eli Zaretskii <eliz@gnu.org>
Fix duplicate defcustom in eww.el
* lisp/net/eww.el (eww-default-download-directory): Renamed back
from 'eww-download-directory'; all users changed. Doc fix.
(Bug#62531)
2023-03-29 Eli Zaretskii <eliz@gnu.org>
Fix indentation regression in 'C-h l'
* lisp/help.el (view-lossage): Fix indentation of commands
when the key sequence includes a semicolon. (Bug#62453)
2023-03-29 Michael Albinus <michael.albinus@gmx.de>
* doc/misc/tramp.texi (Remote shell setup): Clarify use of ssh RemoteCommand.
2023-03-28 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'read-choice' and related symbols
* doc/lispref/commands.texi (Reading One Event):
* lisp/subr.el (read-char-choice-use-read-key, read-char-choice)
(read-char-choice-with-read-key, y-or-n-p-use-read-key): Improve
documentation of these functions and variables.
2023-03-28 Andrea Corallo <akrl@sdf.org>
Revert "Comp fix calls to redefined primtives with op-bytecode (bug#61917)"
This reverts commit 263d6c38539691c954f4c3057cbe8d5468499b91.
These patch series caused a number of regression and more analysis is
required.
2023-03-28 Andrea Corallo <akrl@sdf.org>
Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve..."
This reverts commit 4a7a0c9a9f521b04b23580901e9c0a662b504e32.
These patch series caused a number of regression and more analysis is
required.
2023-03-28 Michael Albinus <michael.albinus@gmx.de>
Skip ruby-ts-imenu-index test if needed
* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
Add check for treesitter.
2023-03-28 Michael Albinus <michael.albinus@gmx.de>
Fix Eglot Tramp tests on EMBA
* test/lisp/progmodes/eglot-tests.el (eglot--call-with-tramp-test):
Bind `tramp-allow-unsafe-temporary-files' with t. (Bug#62289)
2023-03-28 Michael Albinus <michael.albinus@gmx.de>
* test/infra/Dockerfile.emba (emacs-gnustep): Instrument "make V=1 ...".
2023-03-27 João Távora <joaotavora@gmail.com>
Fix accidental backward-incompatible change (bug#62417)
This code used to work, but with the change of 59ecf25fc860 it stopped
working:
(defun foop (buffer-name _alist) (string-match "foop" buffer-name))
(add-to-list 'display-buffer-alist '(foop . display-buffer-other-frame))
This change makes it work again, restoring compatibility.
* lisp/subr.el (buffer-match-p): Fix and adjust docstring.
* lisp/window.el (display-buffer-alist): Adjust docstring.
(display-buffer-assq-regexp): Make good on promise of display-buffer-alist.
2023-03-26 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fix/simplify Imenu index generation
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--full-name): Drop '#'
from the end of resulting string when the node is not a method.
Support 'singleton_method' nodes.
(ruby-ts--imenu-helper): Simplify, to create a "flat" list of
entries, rather than a nested one. The previous implementation
had problems (like producing a nested structure of full-qualified
names, thus creating a lot of textual repetition), seems easier to
just follow ruby-mode's example here, at least for Emacs 29's
release.
* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
New test.
2023-03-26 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts--align-chain): Use 'equal' to check for an exact match
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain): Use
'equal' to check for an exact match rather than substring.
2023-03-26 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.3.7-218-g3dbb22a
2023-03-26 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.2
2023-03-26 Ken Brown <kbrown@cornell.edu>
Skip failing tests on Cygwin with native compilation (bug#62450)
* test/Makefile.in (TEST_NATIVE_COMP): New variable, used to
determine whether to run tests tagged with :nativecomp. Set it to
"no" on Cygwin and to $(HAVE_NATIVE_COMP) otherwise.
* test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests): Skip
on Cygwin with native-compilation.
2023-03-26 Michael Albinus <michael.albinus@gmx.de>
Fix GNUSTEP tests on EMBA
* configure.ac (LIBS_GNUSTEP): Adapt CPPFLAGS and CFLAGS. (Bug#62210)
Proposed by Po Lu <luangruo@yahoo.com>.
* test/infra/gitlab-ci.yml (build-image-gnustep)
(test-gnustep): Uncomment jobs.
2023-03-26 Phil Sainty <psainty@orcon.net.nz>
Fix primary selection modification during `term-mouse-paste' (bug#58608)
* lisp/term.el (term-mouse-paste): Prevent the primary selection from
being changed in the process of sending it to the inferior process.
2023-03-26 Xi Lu <lx@shellcodes.org>
Add 'eww-default-download-directory'.
* lisp/net/eww.el (eww-default-download-directory): New defcustom.
(eww--download-directory): Use it. (Bug#62435)
2023-03-26 Phil Sainty <psainty@orcon.net.nz>
* doc/lispref/modes.texi: Improve docs for obsolete '%m' construct
Bug #57080.
2023-03-26 Phil Sainty <psainty@orcon.net.nz>
Improve docs for global-mode-string / %M construct
* src/xdisp.c (global-mode-string): Update docstring.
* doc/lispref/modes.texi: Update manual.
2023-03-26 Phil Sainty <psainty@orcon.net.nz>
* src/buffer.c (mode-line-format): Document %o and %q constructs
Missed from commit b0b02ca7f3e06d0f092df6f81babd1277bf93b0f.
2023-03-26 Phil Sainty <psainty@orcon.net.nz>
* src/buffer.c (mode-line-format): Remove docs for obsolete %t construct
This documentation had been previously removed in 1999 in [1]
but was subsequently restored again in a different form in 2006
in [2] as the construct was still supported on some systems.
However it looks like it hasn't done what that documentation
indicated since [3] in 2011, and the final remnant of this
functionality was removed in [4] in 2013; so it seems clear that
it's no longer supported and shouldn't be documented now.
[1] commit 08de62001945d4dd32a3d6af44da05804cb296d5
[2] commit dafbe726b89a36010f3f24bb1efe4ace0a5f7f0f
[3] commit 05c652517317d10690aaf0a6aa0bc876382b9d82
[4] commit 8549f9e89bd9288c4c709d183a5bf8f07dbeed3d
2023-03-25 kobarity <kobarity@gmail.com>
Improve indenting "case" in Python
* lisp/progmodes/python.el (python-info-dedenter-statement-p): Do not
consider the first "case" in the block as dedenter.
* test/lisp/progmodes/python-tests.el
(python-info-dedenter-opening-block-positions-7)
(python-info-dedenter-statement-p-6): New tests. (Bug#62092)
2023-03-25 Michael Albinus <michael.albinus@gmx.de>
* test/infra/Dockerfile.emba (emacs-native-comp): Add zlib1g-dev.
2023-03-25 Ken Brown <kbrown@cornell.edu>
Fix failure of fns-tests-collate-strings on Cygwin
* test/src/fns-tests.el (fns-tests-collate-strings): Use
en_XY.UTF-8 instead of en_DE.UTF-8 as an example of an invalid
locale; en_DE.UTF-8 is actually a valid locale on Cygwin.
Note: The test will still fail on Cygwin releases < 3.5
because of a Cygwin bug. (Bug#62420)
2023-03-25 Aaron L. Zeng <azeng@janestreet.com> (tiny change)
* lisp/savehist.el (savehist-save): Preserve shared structure
This avoids ballooning the size of variables that contain
large text properties, such as the 'yank-handler' installed
by 'evil-yank-rectangle', which contains a list of lines in
the string.
* lisp/savehist.el (savehist-save): Enable 'print-circle'.
(Bug#62364)
2023-03-24 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp manual
* doc/misc/tramp.texi (Default Method): OpenSSH for MS Windows can
be used.
(Ssh setup): Extend for MS Windows and ssh.
2023-03-24 Eli Zaretskii <eliz@gnu.org>
Fix system time sampling on MS-Windows
* src/timefns.c (emacs_localtime_rz) [WINDOWSNT]: Unconditionally
call tzset to make sure we pick up all the changes of time zone,
working around the MS CRT caching.
2023-03-24 Yuan Fu <casouri@gmail.com>
Fix treesit_ensure_parsed (bug#62333)
* src/treesit.c (treesit_ensure_parsed): Check for need_reparse after
treesit_sync_visible_region runs, because as the comment says,
treesit_sync_visible_region might modify need_reparse.
2023-03-23 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/help-fns.el (find-lisp-object-file-name): Fix bug#62376 part2
Nowadays `loaddefs.el` are byte-compiled, so adjust pattern accordingly
2023-03-23 Eli Zaretskii <eliz@gnu.org>
Improve "Bugs" in the Emacs manual
* doc/emacs/trouble.texi (Bugs, Known Problems)
(Understanding Bug Reporting, Checklist, Sending Patches)
(Contributing, Coding Standards): Improve wording, structure,
markup, and indexing. (Bug#62320)
2023-03-23 João Távora <joaotavora@gmail.com>
Fix Eglot progress reporting
When the server sends an "end" message, Emacs's progress reporters
should also be updated.
* lisp/progmodes/eglot.el (eglot-handle-notification $/progress): Rework.
2023-03-23 Stefan Monnier <monnier@iro.umontreal.ca>
Fix :predicate handling in globalized minor modes
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
Fix a thinko. (Bug#62376)
2023-03-23 Eli Zaretskii <eliz@gnu.org>
Allow showing prefix commands in Help buffers
* lisp/help.el (describe-bindings-show-prefix-commands): New user
option.
(describe-map): Use it to decide whether to output prefix
commands. Patch by Bob Rogers <rogers@rgrjr.com>. (Bug#62279)
* etc/NEWS: Document 'describe-bindings-show-prefix-commands'.
2023-03-23 Daniel Martín <mardani29@yahoo.es>
Fix toolbar item validation in the NS port
* src/nsterm.m ([EmacsView validateToolbarItem:]): Implement this
NSToolbarItemValidation method, which is called by AppKit when it
needs to validate an image item in a toolbar. This solves, in
particular, the problem with having the "Save" icon on the tool
bar enabled at Emacs startup. (Bug#62234)
2023-03-22 Michael Albinus <michael.albinus@gmx.de>
Use libgccjit-10-dev on EMBA
* test/infra/Dockerfile.emba (emacs-native-comp): Use
libgccjit-10-dev. (Bug#62211)
* test/infra/gitlab-ci.yml (build-native-comp-speed2)
(test-native-comp-speed2): Uncomment jobs.
2023-03-22 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline--fix-buttons-after-change): Add save-match-data.
It's important for a hook in after-change-functions not to change match-data.
Otherwise it breaks functions that make changes in the buffer, such as
for example, successive calls to delete-region in smerge-keep-n, etc.
2023-03-22 Yuan Fu <casouri@gmail.com>
Align concatenated strings to the first sibling in c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Change rule.
2023-03-22 Yuan Fu <casouri@gmail.com>
Only fill the current paragraph in c-ts-common--fill-block-comment
* lisp/progmodes/c-ts-common.el:
(c-ts-common--fill-block-comment): Shrink the filled region to the
paragraph at point.
2023-03-21 Yuan Fu <casouri@gmail.com>
Add missing indent rule for c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule for case.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
2023-03-21 Yuan Fu <casouri@gmail.com>
Improve docstring of treesit-parent-while (bug#62301)
* doc/lispref/parsing.texi (Retrieving Nodes): Improve and fix
docstring for treesit-parent-until and treesit-parent-while.
* lisp/treesit.el (treesit-parent-while): Improve docstring.
2023-03-21 João Távora <joaotavora@gmail.com>
Eglot: report window/workDoneProgress capability to language server
In bug#59149, LSP progress reporting was implemented, but Eglot's
'capabilities' statement to the server wasn't changed to include
window/workDoneProgress.
* lisp/progmodes/eglot.el (eglot-client-capabilities): Actually
report workDoneProgress.
2023-03-21 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve 263d6c38539
2023-03-21 Robert Pluim <rpluim@gmail.com>
Expand defvar-keymap documentation
* doc/lispref/keymaps.texi (Creating Keymaps): Describe the :repeat keyword.
2023-03-20 Dmitry Gutov <dgutov@yandex.ru>
* lisp/treesit.el (treesit-end-of-defun): Guard arg against nil (bug#62158).
2023-03-20 Andrea Corallo <akrl@sdf.org>
Comp fix calls to redefined primtives with op-bytecode (bug#61917)
* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Fix compilation
of calls to redefined primtives with dedicated op-bytecode.
* test/src/comp-tests.el (61917-1): New test.
2023-03-20 Robert Pluim <rpluim@gmail.com>
Warn package authors away from keymap-unset with REMOVE
* doc/lispref/keymaps.texi (Changing Key Bindings): Ask package
authors to not use the REMOVE argument to `keymap-unset'.
2023-03-20 Michael Albinus <michael.albinus@gmx.de>
Comment out jobs on EMBA
* test/infra/gitlab-ci.yml: Comment out jobs due to bug#62210 and
bug#62211.
2023-03-20 Robert Pluim <rpluim@gmail.com>
Improve defvar-keymap docstring.
* lisp/keymap.el (defvar-keymap): Improve description of ':enter' and
':exit' usage for ':repeat' keyword.
2023-03-19 Gregory Heytings <gregory@heytings.org>
Improve warning about changing the string returned by symbol-name
* src/data.c (Fsymbol_name): Add warning. See bug#62009.
* doc/lispref/symbols.texi (Creating Symbols): Improve warning.
2023-03-19 Eli Zaretskii <eliz@gnu.org>
Fix visiting XBM/XPM files when 'c-ts-mode' is active
* lisp/progmodes/c-ts-mode.el (treesit-ready-p): Fix association
for XBM/XPM files in 'auto-mode-alist'. (Bug#62276)
2023-03-19 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/mpc.el (mpc-format): Fix oversight in commit 48b6cec61cf
2023-03-19 João Távora <joaotavora@gmail.com>
Bail early from eglot--apply-text-edits if nothing to do
* lisp/progmodes/eglot.el (eglot--apply-text-edits): Early return.
2023-03-19 João Távora <joaotavora@gmail.com>
Improve ergonomics of Eglot's inlay hints
Instead of deleting inlay hints instantly as soon as the affected
changes, make hint overlays span one character (instead of being
length 0). Give the overlays an "evaporate" property.
Given an inlay hints at position POS, its attached to [POS, POS+1] if
it's kind=1 (usually type hints) and [POS-1, POS] otherwise. For
kind=1 hints, the 'cursor position of the first such overlay is also
tweaked, so that's it's less akward to edit around it.
* lisp/progmodes/eglot.el (eglot--before-change): Don't delete hints
here.
(eglot--update-hints-1): Rework.
2023-03-19 Eli Zaretskii <eliz@gnu.org>
Protect against too large size of 'recent-keys' vector
* src/keyboard.c (MAX_NUM_RECENT_KEYS): New macro.
(Flossage_size): Don't allow specifying too large lossage-size.
Fix data types. (Bug#62277)
2023-03-19 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-yn-prompt-regexp): Fix regexp.
2023-03-18 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.1-48-g92471e
2023-03-18 João Távora <joaotavora@gmail.com>
Merge confusing duplicate sections on commands in Eglot manual
Also describe eglot-diagnostics-map.
* doc/misc/eglot.texi (Eglot Features): Don't describe commands here.
(Eglot Commands): Describe commands here.
2023-03-18 João Távora <joaotavora@gmail.com>
Don't take over mouse-1 binding on Eglot diagnostics (bug#62157)
It's better to give the user a variable to allow the overlay keymap to
be customized.
* lisp/progmodes/eglot.el (eglot--mouse-call): Accept second arg.
(eglot--mode-line-props): Adapt call to eglot--mouse-call
(eglot-diagnostics-map): New variable.
(eglot-code-actions-at-mouse): New command.
2023-03-18 Michael Albinus <michael.albinus@gmx.de>
* lisp/progmodes/eglot.el (eglot--connect): Improve Tramp workaround.
2023-03-18 Gregory Heytings <gregory@heytings.org>
Avoid slowdowns in xmltok-scan-attributes
* lisp/nxml/xmltok.el (xmltok-scan-attributes): Limit the search
to 10000 characters, to avoid slowdowns due to the quadratic
complexity of the regexp. Suggested by Stefan Monnier.
2023-03-18 Alan Mackenzie <acm@muc.de>
CC Mode: Eliminate duplicate function c-list-of-strings
Replace it with the existing c-string-list-p. Also put an autoload cookie in
front of c-string-list-p so that it will not be signalled as undefined by
loaddefs.el.
lisp/progmodes/cc-vars.el (c-string-list-p): Make this autoload.
(c-list-of-strings): Remove.
(c-font-lock-extra-types, c++-font-lock-extra-types)
(objc-font-lock-extra-types, java-font-lock-extra-types)
(idl-font-lock-extra-types, pike-font-lock-extra-types): In the autoload
cookies, replace c-list-of-strings with c-string-list-p.
2023-03-18 Alan Mackenzie <acm@muc.de>
CC Mode: Allow lists of strings as safe values for *-font-lock-extra-types
* lisp/progmodes/cc-vars.el (c-list-of-strings): New function.
(c-font-lock-extra-types, c++-font-lock-extra-types)
(objc-font-lock-extra-types, java-font-lock-extra-types)
(idl-font-lock-extra-types, pike-font-lock-extra-types): Add a :safe entry
into each of thes defcustoms for c-list-of-string.
(Top level): Add an autoload entry for each of the above.
2023-03-18 Robert Pluim <rpluim@gmail.com>
Add tests for Bug#62207
* test/src/keymap-tests.el (keymap-unset-test-remove-and-inheritance):
New test.
2023-03-18 Manuel Giraud <manuel@ledu-giraud.fr>
Fix 'find-ls-option-default-ls' for BSD/MacOS (bug#62096)
* lisp/find-dired.el (find-ls-option-default-ls): Adapt to
a value that works with the default "find" on *BSD and
Darwin/MacOS. Tested on OpenBSD and MacOS. Do not merge
to master.
2023-03-17 João Távora <joaotavora@gmail.com>
Enhance section about troubleshooting in Eglot manual.
* doc/misc/eglot.texi (Troubleshooting Eglot): Parially rewrite.
2023-03-17 João Távora <joaotavora@gmail.com>
Fix Eglot's snippet insertion to follow the manual
The manual states that YASnippet must only be installed to be useful.
Before this change, it would only work if the user happened to have
manually activated it before with 'yas-global-mode' or somesuch.
This makes Eglot's Yasnippet-activating behaviour similar to its
Flymake-activating behaviour.
* lisp/progmodes/eglot.el (eglot-client-capabilities): Consult
eglot--stay-out-of.
(eglot--snippet-expansion-fn): Turn on yas-minor-mod eon demand.
(eglot-completion-at-point): Simplify.
2023-03-17 Filipp Gunbin <fgunbin@fastmail.fm>
Reset abbrevs-changed after saving abbrevs (bug#62208)
* lisp/abbrev.el (abbrev--possibly-save): Reset abbrevs-changed after
saving abbrevs.
* test/lisp/abbrev-tests.el (abbrev--possibly-save-test): New test.
2023-03-17 Robert Pluim <rpluim@gmail.com>
Document `keymap-unset' in lispref
* doc/lispref/keymaps.texi (Changing Key Bindings): Document
keymap-unset.
2023-03-17 Robert Pluim <rpluim@gmail.com>
Don't add a key binding when REMOVE is non-nil
* src/keymap.c (store_in_keymap): Don't add a nil keybinding if we've
been asked to remove a non-existent binding. (Bug#62207)
2023-03-17 Eli Zaretskii <eliz@gnu.org>
Fix the documentation of various aspects of adding Xref history
* lisp/progmodes/xref.el (xref-marker-ring-length)
(xref-set-marker-ring-length):
* lisp/progmodes/etags.el (tags-location-ring-length)
(find-tag-marker-ring): Add doc strings saying the variables are
unused.
* etc/NEWS: Enhance the description of the change which made Xref
marker stack unlimited in its length.
* doc/emacs/maintaining.texi (Looking Up Identifiers): Add back
text lost when xref forward history was added in bug#38797.
Explain the difference between 'C-M-,' and 'M-.'. Improve
wording (Bug#62229)
2023-03-16 kobarity <kobarity@gmail.com>
Fix python-fill-paragraph problems on filling strings (bug#62142)
* lisp/progmodes/python.el (python-syntax--context-compiler-macro)
(python-syntax-context): Add single-quoted-string and
triple-quoted-string as TYPE argument.
(python-info-triple-quoted-string-p): New helper function.
(python-fill-paragraph)
(python-fill-string): Use it.
* test/lisp/progmodes/python-tests.el (python-syntax-context-1)
(python-fill-paragraph-single-quoted-string-1)
(python-fill-paragraph-single-quoted-string-2)
(python-fill-paragraph-triple-quoted-string-1)
(python-info-triple-quoted-string-p-1)
(python-info-triple-quoted-string-p-2)
(python-info-triple-quoted-string-p-3): New tests.
2023-03-16 João Távora <joaotavora@gmail.com>
Also exempt eglot-inlay-hints-mode from desktop.el's fumblings
Reported in https://github.com/joaotavora/eglot/discussions/1183.
* lisp/progmodes/eglot.el (desktop): Also exempt
eglot-inlay-hints-mode from desktop.el fumblings.
2023-03-16 Stefan Kangas <stefankangas@gmail.com>
Refer to EWW instead of w3 and w3m
* doc/misc/idlwave.texi (Help with HTML Documentation): Refer to EWW
instead of w3 and w3m.
2023-03-16 João Távora <joaotavora@gmail.com>
Fix Eglot's command generation for code actions
The user command generated by eglot--code-action should always call
eglot-code-actions with a INTERACTIVE set to t.
Reported in https://github.com/joaotavora/eglot/issues/1132.
* lisp/progmodes/eglot.el (eglot--code-action): Pass INTERACTIVE=t to
eglot-code-action call.
2023-03-16 João Távora <joaotavora@gmail.com>
Emphasize emacs-29-specificity in this version of lisp/progmodes/eglot.el
Do not merge to master.
Before working on bugfixes to Eglot in its non-ELPA form delivered
with Emacs 29, it's important to distinguish between this emacs-29
version and the one in master, which will also get the bugfixes (via
routine gitmerge.el) but with a bumped version number.
* lisp/progmodes/eglot.el (Version): Emphasize Emacs 29, but hint this
is 1.12 + something.
(Package-Requires): Remove. Everything required is already in Emacs
29.
2023-03-16 USAMI Kenta <tadsan@zonu.me>
Fix quoting of font-family in 'hfy-family'
Running "M-x htmlfontify-buffer" in one buffer, the exported HTML contains
lines like:
body, pre { text-decoration: none; font-family: Migu 2M; font-stretch:
normal; font-weight: 500; font-style: normal; color: #ffffff;
background: #000000; font-size: 15pt; }
Standards-compliant web browsers should ignore this font-family.
MDN Web Docs says:
https://developer.mozilla.org/en-US/docs/Web/CSS/font-family
Valid family names
Font family names must either be given quoted as strings, or unquoted as
a sequence of one or more identifiers. This means that punctuation
characters and digits at the start of each token must be escaped in
unquoted font family names.
It is a good practice to quote font family names that contain white
space, digits, or punctuation characters other than hyphens.
An unquoted font-family is valid as long as it doesn't start with a digit,
but MDN Web Docs also says:
The following example is technically valid but is not recommended:
font-family: Gill Sans Extrabold, sans-serif;
So it makes sense to quote all font-family.
* lisp/htmlfontify.el (hfy-family): Quote 'font-family'. (Bug#62054)
2023-03-15 Michael Eliachevitch <m.eliachevitch@posteo.de> (tiny change)
Document how to construct JSONRPC arrays in Eglot manual
Many language server configuration options are of the JSON array
datatype, for example argument lists for executables, but there wasn't
any example of that in the Eglot manual.
* doc/misc/eglot.texi (User-specific configuration)
(User-specific configuration): Tweaks.
(JSONRPC objects in Elisp): Mention JSON arrays. Tweak example.
2023-03-15 Michael Albinus <michael.albinus@gmx.de>
* test/infra/Dockerfile.emba: Use debian:bullseye.
2023-03-15 Andrea Corallo <akrl@sdf.org>
* configure.ac: Fix native comp compatibility check (bug#61960)
2023-03-15 Michael Albinus <michael.albinus@gmx.de>
* test/infra/Dockerfile.emba: Install clangd.
2023-03-15 Philip Kaludercic <philipk@posteo.net>
Remove 'package-vc--query-spec'
* lisp/emacs-lisp/package-vc.el (require): Do not load `inline' during
compilation.
(package-vc--query-spec): Remove function.
(package-vc--clone): Do not call 'package-vc--query-spec'.
2023-03-15 Philip Kaludercic <philipk@posteo.net>
Do not store :lisp-dir in package descriptors
* lisp/emacs-lisp/package-vc.el (package-vc--main-file)
(package-vc--unpack-1): Query 'pkg-spec' instead of
'package-desc-extras'.
(package-vc--unpack): Do not update 'package-desc-extras'.
This simplification is possible due to the change in 2718bbb3bc, since
we now ensure that package specifications are not lost. They are
either provided by a package archive or stored in
'package-vc-selected-packages'.
2023-03-15 Philip Kaludercic <philipk@posteo.net>
Use 'package-vc-selected-packages' to store package specs
* doc/emacs/package.texi (Fetching Package Sources): Do not promote
the usage of 'package-vc-selected-packages' to install packages.
* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Remove
custom setter and change docstring according to these changes.
(package-vc--desc->spec): Consult 'package-vc-selected-packages' for
package specifications.
(package-vc--unpack): Add unknown package specifications to
'package-vc-selected-packages'
2023-03-13 Juri Linkov <juri@linkov.net>
* lisp/progmodes/xref.el: Bump the version.
2023-03-13 Juri Linkov <juri@linkov.net>
* lisp/progmodes/xref.el (xref--xref-buffer-mode): Split up 'setq-local'.
xref.el needs to support 26.1, but an arbitrary number of variables
in 'setq-local' was added in Emacs 27.1 (bug#62162).
2023-03-13 Filipp Gunbin <fgunbin@fastmail.fm>
Fix import of keys in buffer created by epa-search-keys
* lisp/epa-ks.el (epa-ks--query-url): Add operation parameter.
(epa-ks--fetch-key, epa-search-keys): Use it.
2023-03-13 Michael Albinus <michael.albinus@gmx.de>
Fix connection-local variables settings
* lisp/files-x.el (connection-local-set-profiles)
(connection-local-set-profile-variables): Use NOW when calling
`custom-set-variables'.
* test/lisp/files-x-tests.el
(files-x-test-connection-local-set-profile-variables)
(files-x-test-connection-local-update-profile-variables)
(files-x-test-connection-local-set-profiles)
(files-x-test-hack-connection-local-variables-apply)
(files-x-test-with-connection-local-variables)
(files-x-test-setq-connection-local): Fix tests.
* test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables)
(tramp-test34-explicit-shell-file-name): Fix tests.
2023-03-13 João Távora <joaotavora@gmail.com>
Bump Eglot version to 1.12
* etc/EGLOT-NEWS: New file.
* etc/NEWS: Briefly mention etc/EGLOT-NEWS.
* lisp/progmodes/eglot.el: Bump versions.
2023-03-13 João Távora <joaotavora@gmail.com>
Update Eglot's manual about eglot-workspace-configuration
There is a possible use for a global setting
eglot-workspace-configuration, which is to (ab)use it to set
user-specific configuration when the server doesn't permit other
methods. Rearrange the "Advanced server configuration" section and
describe that use in the manual.
* doc/misc/eglot.texi (Project-specific configuration): Correct
mistake about global usefulness of eglot-workspace-configuration.
(Advanced server configuration): Swap order of sections.
(User-specific configuration): Mention possibility of globally
setting eglot-workspace-configuration.
2023-03-12 João Távora <joaotavora@gmail.com>
Amend last Eglot commit (bug#62065)
The fix contained a spurious check for this-command that shouldn't
have made it in..
* lisp/progmodes/eglot.el (eglot-ensure): Don't check this-command.
2023-03-12 João Távora <joaotavora@gmail.com>
Make eglot-ensure's post-command-hook run a bit later (bug#62065)
'eglot-ensure', typically used in the major-mode-hook, use
'post-command-hook' to schedule an automated, non-interactive
connection attempt to a server. The goal is to connect when the
buffer is ready, i.e. after the user command that found the file.
However, if there are dir-local or buffer-local variables to confirm,
finding the file will cause a minibuffer prompt to appear.
In that case, 'eglot-ensure's addition to the global post-command-hook
runs before it was intended too and a connection is started
prematurely.
In turn, this means that a call to 'hack-dir-local-variables' -- which
is part of the connection process -- which also needs a minibuffer
prompt, collides with the previous one. This generates an error and
confuses the user, who doesn't know if the directory-local variables
have been applied or not.
This commit fixes the clash by having 'eglot-ensure' set
'post-command-hook' buffer-locally. This causes the automated
connection to take place, as intended, after the user's original
file-finding command has ended.
However, the problem reported in bug#62065 is not completely fixed.
If the user answers "no" to the first "confirm local variables"
"prompt, she will be prompted again in the second one. A subsequent
commit will address this separate problem.
* lisp/progmodes/eglot.el (eglot-ensure): Use buffer-local post-command-hook.
2023-03-12 Eli Zaretskii <eliz@gnu.org>
Fix display of disabled-command help text
* lisp/novice.el (disabled-command-function): Improve wording, and
make sure the prompt doesn't exceed one screen line, so that the
mini-window is not resized (which gets in the way of fitting the
window to the size of the help text), and the help text is fully
visible when Emacs prompts for input. (Bug#62146)
2023-03-12 Mattias Engdegård <mattiase@acm.org>
Remove mention of old dotted-list reader quirk from manual
* doc/lispref/objects.texi (Dotted Pair Notation):
The (. X) reader peculiarity is no more (bug#62020).
2023-03-12 Eli Zaretskii <eliz@gnu.org>
Fix value history shown for 'gc-cons-percentage'
When Emacs is built, temacs is run in batch mode, so if we enlarge
'gc-cons-percentage' in that case, the enlarged value will be
"remembered" by the dumped Emacs, and will show confusing
information in "C-h v", claiming that the original value was 1.0.
Keeping the value at 0.1 during dumping avoids that.
* src/emacs.c (main): Increase 'gc-cons-percentage' in batch mode
only if we are not initializing (a.k.a. "dumping") Emacs.
2023-03-12 Michael Albinus <michael.albinus@gmx.de>
TRework fix for bug#62106
* lisp/files-x.el (connection-local-set-profiles)
(connection-local-set-profile-variables):
Use `custom-set-variables'. It serves the purpose to not keep
unsaved user options, and it is less invasive than
`customize-save-variable'.
2023-03-11 Randy Taylor <dev@rjt.dev>
Add missing indentation rule for rust-ts-mode (Bug#62109)
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules): Add
missing rule.
2023-03-11 Michael Albinus <michael.albinus@gmx.de>
Fix bug#62106
* lisp/files-x.el (connection-local-set-profiles)
(connection-local-set-profile-variables):
Use `customize-save-variable' instead of `customize-set-variable'.
(Bug#62106)
2023-03-11 Randy Taylor <dev@rjt.dev>
Add missing rust-ts-mode highlight query for scoped_type_identifiers
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
Add missing query.
2023-03-11 kobarity <kobarity@gmail.com>
Make "case" keyword a dedenter in Python
* lisp/progmodes/python.el (python-rx): Add "case" to dedenter.
(python-info-dedenter-opening-block-positions): Add "case" to pairs.
* test/lisp/progmodes/python-tests.el (python-indent-dedenters-9):
New test.
2023-03-11 Eli Zaretskii <eliz@gnu.org>
Fix decoding non-ASCII file names in zip archives on MS-Windows
* lisp/arc-mode.el (archive-zip-summarize): On MS-Windows,
override archive-file-name-coding-system for files compressed
on MS-Windows, and use the local console encoding instead.
2023-03-11 Eli Zaretskii <eliz@gnu.org>
Fix copying binary files from zip archives
* lisp/arc-mode.el (archive-copy-file): Prevent any coding
conversions when writing output files. (Bug#62091)
2023-03-10 Robert Pluim <rpluim@gmail.com>
Skip ruby-ts-syntax-propertize-symbol unless treesitter is available
*
test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-syntax-propertize-symbol):
Add check for treesitter.
2023-03-10 Randy Taylor <dev@rjt.dev>
Fix enums and unions appearing as structs in c-ts-base-mode's imenu
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Separate enums and unions out
from structs.
2023-03-09 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fine-tune s-p-f on symbols (bug#62086)
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query):
Don't match ':' in symbol node text. Or '_', I suppose.
(ruby-ts--syntax-propertize): Make sure to only put the '_' syntax
on punctuation syntax characters, and not on the whole symbol (to
e.g. have symbols like :foo? include text recognized as word).
* test/lisp/progmodes/ruby-ts-mode-tests.el
(ruby-ts-syntax-propertize-symbol): New test.
2023-03-09 Dmitry Gutov <dgutov@yandex.ru>
python-info-dedenter-opening-block-positions: Fix to support "bare" match
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions): Make the check
stricter. Require that block starts only at indentation.
* test/lisp/progmodes/python-tests.el
(python-indent-after-bare-match): Another test (bug#62031).
2023-03-09 João Távora <joaotavora@gmail.com>
Autoload Eglot helper funtion eglot--debbugs-or-github-bug-uri
This isn't a typical autoload: the progn block is plced in the
autoloads file, but the eglot.el file itself isn't loaded as a result
when the function inside the progn block is called.
* lisp/progmodes/eglot.el (eglot--debbugs-or-github-bug-uri):
autoload, but in progn.
2023-03-09 João Távora <joaotavora@gmail.com>
Add chapter on advanced server configuration to Eglot manual
* doc/misc/eglot.texi (Top): Add section "Advanced server configuration"
(Setting Up LSP Servers): Rework.
(Advanced server configuration): New chapter.
2023-03-09 Vincenzo Pupillo <v.pupillo@gmail.com> (tiny change)
java-ts-mode: detect if text_block is supported.
A recent commit in tree-sitter-java (issue #141) removed support for
the text_block node type from the grammar. To support the old released
version and the new one, a helper function was added on which the
string syntax highlighting now depends. (bug#61913)
* lisp/progmodes/java-ts-mode.el
(java-ts-mode--string-highlight-helper): New helper function that
return the right query string
(java-ts-mode--font-lock-settings): Use it
2023-03-09 kobarity <kobarity@gmail.com>
Revert workaround introduced in Bug#56271
* lisp/progmodes/python.el (python-nav-end-of-statement)
(python-nav-end-of-block): Revert workaround introduced in Bug#56271
as the bug is fixedin Bug#58780.
2023-03-09 kobarity <kobarity@gmail.com>
Fix searching for end of string in python-nav-end-of-statement
* lisp/progmodes/python.el (python-nav-end-of-statement): Add
searching for corresponding string-quote.
* test/lisp/progmodes/python-tests.el (python-nav-end-of-statement-3)
(python-nav-end-of-statement-4, python-info-current-defun-4): New
tests. (Bug#58780)
2023-03-08 Po Lu <luangruo@yahoo.com>
Fix libwebp check for some webp installations
* configure.ac: Look for WebPGetInfo; if it is not there, look
for libwebpdecoder as well. (bug#61988)
2023-03-08 Dmitry Gutov <dgutov@yandex.ru>
Avoid potential infloop
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions):
Avoid potential infloop (bug#62031).
2023-03-08 Dmitry Gutov <dgutov@yandex.ru>
Lele Gaifax <lele@metapensiero.it>
Don't misindent 'else:' after 'if re.match:' in Python
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions): Check that the
supposed block start is not a method call (bug#62031).
* test/lisp/progmodes/python-tests.el (python-indent-after-re-match):
New test.
2023-03-08 Andrea Corallo <akrl@sdf.org>
* Make sure `default-directory' exists before spawning processes (bug#62004)
* lisp/emacs-lisp/comp.el (comp-final, comp-run-async-workers): Bind
`default-directory' to `invocation-directory'.
2023-03-08 Ulrich Müller <ulm@gentoo.org>
Fix sed expression in install-etc make target
* Makefile.in (install-etc): Fix sed expression for emacsclient
desktop files. (Bug#62045)
2023-03-08 Ulrich Müller <ulm@gentoo.org>
Avoid using bash in the emacsclient desktop file
* etc/emacsclient-mail.desktop (Exec): Use sh and sed instead
of bash, because the latter may not be available everywhere.
2023-03-08 Eli Zaretskii <eliz@gnu.org>
Fix documentation of the 'line-height' text property
* doc/lispref/display.texi (Line Height): More accurate
documentation of the value t of 'line-height' text property.
(Bug#62048)
2023-03-08 Gregory Heytings <gregory@heytings.org>
Add 'declare' specs to with- and without-restriction
* lisp/subr.el (with-restriction):
(without-restriction): Add 'declare' specs.
2023-03-07 Yuan Fu <casouri@gmail.com>
Fix empty line indentation in c-ts-mode (bug#61997)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): Handle the empty line case.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el (treesit-simple-indent-presets): Support null as
a value for NODE-TYPE in the 'match' matcher.
2023-03-07 Yuan Fu <casouri@gmail.com>
Fix tree-sitter indent preset prev-line (bug#61998)
* lisp/treesit.el (treesit-simple-indent-presets): Fix return value.
2023-03-07 Manuel Giraud <manuel@ledu-giraud.fr>
Revert 'forward-sentence-default-function' to return point (bug#62027)
* lisp/textmodes/paragraphs.el
(forward-sentence-default-function): Revert to return the
position of point.
(count-sentences): Adapt to this change.
2023-03-07 Ulrich Müller <ulm@gentoo.org>
Fix Elisp code injection vulnerability in emacsclient-mail.desktop
A crafted mailto URI could contain unescaped double-quote
characters, allowing injection of Elisp code. Therefore, any
'\' and '"' characters are replaced by '\\' and '\"', using Bash
pattern substitution (which is not available in the POSIX shell).
We want to pass literal 'u=${1//\\/\\\\}; u=${u//\"/\\\"};' in the
bash -c command, but in the desktop entry '"', '$', and '\' must
be escaped as '\\"', '\\$', and '\\\\', respectively (backslashes
are expanded twice, see the Desktop Entry Specification).
Reported by Gabriel Corona <gabriel.corona@free.fr>.
* etc/emacsclient-mail.desktop (Exec): Escape backslash and
double-quote characters.
2023-03-07 Eli Zaretskii <eliz@gnu.org>
Fix problem with debuginfod queries in "M-x gdb"
* lisp/progmodes/gdb-mi.el (gdb-debuginfod-enable-setting): New
defcustom.
(gdb-debuginfod-message): New function.
(gdb-init-1): Initialize gdb-debuginfod-enable. Ask the user
about debuginfod queries and display any error messages.
(Bug#61973)
* etc/NEWS: Announce the change.
2023-03-06 João Távora <joaotavora@gmail.com>
Fix regression in Fido mode (bug#62015)
To understand the regression consider this recipe where the 'fo'
pattern is typed by the user in the last step.
emacs -Q
C-x b foo RET
C-x b afoo RET
C-x b *scratch* RET
M-x fido-mode RET
C-x b fo
This used to offer both 'foo' and 'afoo' as candidates but now only
offered 'foo'. This is because the pattern 'fo' matches 'foo', but
not 'afoo' with 'basic' completion style.
Fido mode, however, prioritizes 'flex' completion style, and that is
not happening here as it used to.
This was introduced in this commit
commit bf81df86e52fdc995bec8d9646f84d114cb896d1
Author: João Távora <joaotavora@gmail.com>
Date: Wed Dec 7 10:43:59 2022 +0000
Don't override completion-category-defaults in fido-mode
I took away the nil setting of 'completion-category-defaults; in Fido
mode's minibuffer. It seemed generally the correct thing to do, and
was done mainly because Eglot added its style preferences to that
variable instead of completion-category-overrides directly, which is a
nono. So, to be able use the Fido UI with Eglot successfully,
'completion-category-defaults' should stay untouched. Or so I
thought.
However, I failed to notice that, for most categories, the default
value of 'completion-category-defaults' prioritizes the 'basic'
completion style.
For example, in the 'buffer' category, the default value has the
styles list '(basic substring)'. This means that if a pattern matches
accoring to the 'basic' style, 'substring' will not be tried. And
neither will 'completion-styles' which in Fido mode's case happens to
be 'flex'.
The solution in this commit is to craft a value for completion
category defaults that is just like the default one, but prioritizes
'flex' completion for every category.
* lisp/icomplete.el (icomplete--fido-ccd): New helper.
(icomplete--fido-mode-setup): Use it.
2023-03-06 Andrea Corallo <akrl@sdf.org>
* Fix `emacs-lisp-native-compile-and-load' for (bug#61917)
* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load):
Don't load if no compialtion happened.
2023-03-06 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (bug#61917)
2023-03-06 Eli Zaretskii <eliz@gnu.org>
Revert "Fix configuration of webp libraries"
This reverts commit de4277af009115ceba7fe920163c05c608ea9524.
It breaks WebP support at least on my system.
There's no reason to require libwebpdecoder library to be
installed, since we don't use the functions from it, at least
not in libwebp 1.2.1.
2023-03-06 Po Lu <luangruo@yahoo.com>
Fix configuration of webp libraries
* configure.ac: Link with libwebpdecoder along with
libwebpdemux. (bug#61988)
2023-03-05 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation
Mentioned in bug#61893.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Handle
"#elif" and "#else".
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: Add an
"#elif" to the test.
2023-03-05 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation
Mentioned in bug#61893, although not the subject of it.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): Fix the child index for preproc_else
and preproc_elif case.
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts:
New test.
2023-03-05 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation
Not the subject of it, but mentioned in bug#61893.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Skip
the sibling if it doesn't start on it's own line.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
2023-03-05 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.1-40-g3d817c
2023-03-05 Yuan Fu <casouri@gmail.com>
Add string-interpolation feature to bash-ts-mode
* lisp/progmodes/sh-script.el:
(bash-ts-mode): Add string-interpolation feature.
(sh-mode--treesit-settings): Add rule for string-interpolation feature.
2023-03-05 Michael Albinus <michael.albinus@gmx.de>
Fix tramp-sh-handle-insert-directory
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Remove also
//DIRED-OPTIONS// line when there is no //DIRED// line.
2023-03-05 Andrea Corallo <akrl@sdf.org>
* Warn when certain primitives are redefined (bug#61880)
* lisp/emacs-lisp/comp.el (comp-warn-primitives): New constant.
(comp-subr-trampoline-install): Warn when a sensitive primitive is
being redefined.
2023-03-04 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode preproc directive indentation
Mentioned in bug#61893, although not the subject of that report. This
change fixes indentation for nested directives. For example, when the
directive involves elif and the like, the elif is nested in the if
directive, so simply using grand-parent and great-grand-parent for
anchor is insufficient, because the nesting can grow arbitrarily.
The test added also covers the last preproc fix.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--standalone-parent-skip-preproc): New function.
(c-ts-mode--indent-styles): New rules.
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: New test.
2023-03-04 João Távora <joaotavora@gmail.com>
More robustly unspoof HOME in Eglot tests (bug#61637)
A fair number of LSP servers allow user-local installations instead of
system wide installations. Emacs's technique of spoofing the HOME env
var to some non-existent or non-home directory during 'make check'
breaks these tests. That's because the executables are still found by
executable-find, but their invocation will rarely be successful as
HOME isn't what they expect it to be.
Eglot tests already had a technique for dealing with this,
"unspoffing" HOME just for the invocations of LSP server but it
stopped working a while back. So make it more robust.
Eventually, we'll want to decide wether these local servers should be
considered in 'make check' runs at all, or whether there is a way to
use them with a spoofed HOME.
* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
More robustly unspoof HOME.
2023-03-04 João Távora <joaotavora@gmail.com>
Turn on Eglot inlay hints by default
This is like any other server-provided feature, and may be turned off
client-side by setting eglot-ignored-server-capabilities like
(add-to-list 'eglot-ignored-server-capabilities :inlayHintProvider)
* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
Activate eglot-inlay-hints-mode.
(eglot-inlay-hints-mode): Instead of warning about missing
:inlayHintProvider, turn off eglot-inlay-hints-mode.
2023-03-04 Dmitry Gutov <dgutov@yandex.ru>
Update ts modes missed in 4c16fd3a512 to use column-0
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules):
Change point-min anchor to column-0.
2023-03-04 João Távora <joaotavora@gmail.com>
Robustify Eglot for "transient" projects
When Eglot needs to synthesize a "transient" project for
default-directory sometimes the value of that variable is set to an
unexpanded value, sometimes not. This can cause simple invocations
like.
Emacs -Q ~/path/to-some-python-file.py -f eglot
to fail, because eglot--current-server will be looking for a project
in the registry called
(transient . "~/path")
where in reality it is stored there as
(transient . "/home/someuser/path")
The fix is to always expand default-directory in eglot--current-project.
* lisp/progmodes/eglot.el (eglot--current-project): Use
expand-file-name.
2023-03-04 Eli Zaretskii <eliz@gnu.org>
Fix documentation of 'normal-mode' in buffers that don't visit files
* lisp/files.el (normal-mode):
* lisp/subr.el (run-mode-hooks):
* doc/emacs/modes.texi (Choosing Modes): Mention the caveat with
'normal-mode' in buffers not visiting files. (Bug#61925)
* lisp/files.el (hack-local-variables): Doc fix.
2023-03-04 Yuan Fu <casouri@gmail.com>
Change tree-sitter indent anchor 'point-min' to 'column-0'
Point-min isn't necessarily at column 0, using line-beginning-position
is better. column-0 is also more intuitive.
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules):
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode--indent-rules): Change point-min to column-0.
* lisp/treesit.el (treesit-simple-indent-presets): Change point-min to
column-0.
2023-03-04 Yuan Fu <casouri@gmail.com>
Fix go-ts-mode multi-line string indentation (bug#61923)
* lisp/progmodes/go-ts-mode.el:
(go-ts-mode--indent-rules): Add indent rule for multi-line sting.
2023-03-03 João Távora <joaotavora@gmail.com>
Remove Eglot activation check from find-file-hook
Adding eglot--maybe-activate-editing-mode to find-file-hook isn't
really necessary, since it is already in
'after-change-major-mode-hook', and that also runs every time we find
a file.
This reduces the number of project.el logic that runs every time the
user visits a file.
* lisp/progmodes/eglot.el (find-file-hook): No need to add
eglot--maybe-activate-editing-mode here.
2023-03-03 Stefan Monnier <monnier@iro.umontreal.ca>
* src/intervals.c (set_intervals_multibyte_1): Fix bug#61887
When `total_length` is 0 there should be no subtree at all, but
`delete_interval` only deletes one interval, so make sure we don't end
up with some stale child of `i`.
2023-03-03 João Távora <joaotavora@gmail.com>
Revert inadvertent change to lisp/icomplete.el in previous commit
The change
commit 3a651773d29afb48ac4229cd19e532bd57a4ee2d
Author: João Távora <joaotavora@gmail.com>
Date: Fri Mar 3 13:13:35 2023 +0000
Eglot: pay better attention to hints' paddingLeft/Right (bug#61924)
Inadvertently added a line to this file, which shouldn't (yet) bet
added.
* lisp/icomplete.el (icomplete--vertical-minibuffer-setup): Remove
truncate-lines.
2023-03-03 Yuan Fu <casouri@gmail.com>
Revert previous change in go-ts-mode.el
Reverts 59365f928565f1be551b1697b9246b00cb87a9b7 and
56cd810b9d1a4d537bee5a2fd954d6e0d346631a.
Reverting because the use of treesit-ready-p is very much intentional.
* lisp/progmodes/go-ts-mode.el (treesit-ready-p): Revert change.
2023-03-03 F. Jason Park <jp@neverwas.me>
Release ERC 5.5
* doc/misc/erc.texi: Update ERCVER to 5.5.
* lisp/erc/erc.el: Increment main version header to 5.5. Update
Compat version in package-requires header to 29.1.3.4. Update
`customize-package-emacs-version-alist' entry by mapping ERC 5.5 to
Emacs 29.1.
(erc-version): Update value to 5.5.
2023-03-03 Jim Porter <jporterbugs@gmail.com>
Don't create GUI frames in batch sessions
This resolves an issue with running test/lisp/server-tests.el when
'DISPLAY' is set: the tests would start the Emacs server in a batch
session, and then request a new GUI frame. However, that caused the
tests to terminate with SIGIO, since a batch Emacs doesn't set a SIGIO
handler.
Ref: <https://lists.gnu.org/archive/html/emacs-devel/2023-02/msg00879.html>
* lisp/frame.el (make-frame): Always create a terminal frame in batch
sessions.
2023-03-03 Eli Zaretskii <eliz@gnu.org>
Minor copyedits of documentation of OClosures
* doc/lispref/functions.texi (OClosures): Improve wording,
indexing, and markup; add details.
2023-03-03 João Távora <joaotavora@gmail.com>
Eglot: pay better attention to hints' paddingLeft/Right (bug#61924)
* lisp/progmodes/eglot.el (eglot--update-hints-1): Consider
:json-false, which is a non-nil value.
2023-03-02 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation for statement after preproc (bug#61893)
Originally our c-ts-mode--anchor-prev-sibling only specially handled
labeled_statements, now we add special case for preproc in the similar
fasion: instead of using the preproc directive as anchor, use the last
statement in that preproc as the anchor. Thus effectively ignore the
preproc.
There should be an accompanying test, but there are some problem in
the elif preproc directive indent so it would pass, we'll add the test
when that is fixed.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): Add special case for preproc
directives.
2023-03-02 Eli Zaretskii <eliz@gnu.org>
Fix c/c++-ts-mode's mode lighter
* lisp/progmodes/c-ts-mode.el (c-ts-mode-set-modeline): Remove
trailing blank from comment-start when indicating the comment
style on the mode line.
2023-03-02 João Távora <joaotavora@gmail.com>
Eglot: use shell-file-name in eglot--cmd (bug#61748)
* lisp/progmodes/eglot.el (eglot--cmd): Use shell-file-name.
2023-03-02 Eli Zaretskii <eliz@gnu.org>
Avoid signaling errors in url-basic-auth when password is nil
* lisp/url/url-auth.el (url-basic-auth): Handle nil PASS.
Suggested by Ellis Kenyo <me@elken.dev>. (Bug#61411)
2023-03-02 Eli Zaretskii <eliz@gnu.org>
Fix wdired-tests on MS-Windows
* test/lisp/wdired-tests.el (wdired-test-bug32173-01)
(wdired-test-bug32173-02, wdired-test-unfinished-edit-01)
(wdired-test-bug39280): Run test-dir through file-truename, to
avoid failures due to MS-Windows "numeric tails" (mis)feature and
similar issues, which make file names fail to compare 'equal'.
(wdired-test-bug34915, wdired-test-bug61510): Skip if symlinks
fail.
2023-03-02 Andrew De Angelis <bobodeangelis@gmail.com>
Improvements to xwidget on macOS (bug#60703)
* src/nsxwidget.m ()
([XwWebView initWithFrame:configuration:xwidget:])
(nsxwidget_init): Fixed memory leaks: when sending an alloc
message to an object, send an autorelease message to any objects
we won't explictly release.
([XwWebView webView:didFinishNavigation:]): Second string to
store in 'store_xwidget_event_string' is "load finished" rather
than empty string.
([XwWebView webView:didStartProvisionalNavigation:])
([XwWebView webView:didReceiveServerRedirectForProvisionalNavigation:])
([XwWebView webView:didCommitNavigation:]): New functions.
(nsxwidget_webkit_estimated_load_progress): New function.
(nsxwidget_webkit_stop_loading): New function.
* src/xwidget.c (Fxwidget_webkit_estimated_load_progress): Call
'nsxwidget_webkit_estimated_load_progress' if we're on MacOS.
(Fxwidget_webkit_stop_loading): Call 'nsxwidget_webkit_stop_loading'
if we're on MacOS.
(syms_of_xwidget): Define symbol for function.
'xwidget_webkit_estimated_load_progress' if we're on MacOS.
* src/nsxwidget.h: Signature for functions
'nsxwidget_webkit_estimated_load_progress' and
'nsxwidget_webkit_stop_loading'.
* lisp/xwidget.el (xwidget-webkit-current-url): Message URL rather
than return value of 'kill-new' (which is always nil).
2023-03-01 Yuan Fu <casouri@gmail.com>
* lisp/progmodes/go-ts-mode.el: Use treesit-language-available-p.
treesit-ready-p does more checks than language grammar availability.
2023-03-01 Yuan Fu <casouri@gmail.com>
Dont signal warning when loading go-ts-mode.el without grammar
* lisp/progmodes/go-ts-mode.el: Add a QUIET flag to the call of
treesit-ready-p, so that it doesn't signal a warning if
go-mod (tree-sitter grammar) is not available.
2023-03-01 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode empty line indentation (bug#61893)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make the
"rest sibling" matchers catch the case where NODE is nil, when
indenting an empty line.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
2023-03-01 Yuan Fu <casouri@gmail.com>
Improve tree-sitter's prev-sibling indent anchor
Now it handles the case where NODE is nil when indenting an empty
line: it tries to get the previous sibling nonetheless.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling):
* lisp/treesit.el (treesit-simple-indent-presets): Add an or form to
handle more cases.
2023-03-01 João Távora <joaotavora@gmail.com>
* lisp/icomplete.el (fido-mode): Enable in-buffer completion (bug#45763).
Backport:
(cherry picked from commit b5c13032538377b0037c745715613693a1580f81)
2023-03-01 Juri Linkov <juri@linkov.net>
* lisp/icomplete.el: Fix in-buffer completion.
(icomplete-force-complete-and-exit, icomplete-force-complete): Use
'icomplete--field-beg/end' when not in the minibuffer to not erase
the current buffer. Also disable 'completion-in-region-mode' instead
of calling 'exit-minibuffer' (bug#45764, bug#51575, bug#61479).
Backport:
(cherry picked from commit a7a984c0ebebb891e2052d8416544f0bd7002007)
2023-03-01 Stefan Monnier <monnier@iro.umontreal.ca>
* src/profiler.c (malloc_probe): Make it safe for GC (bug#60237)
2023-03-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Fix bug#61847
The `noerror` arg of `require` doesn't do what Stefan naively thought
when he wrote this code, so use `condition-case` instead.
Also check for `cl-defmethod` since `cl-prin1` can't be loaded before
that anyway.
2023-03-01 Eli Zaretskii <eliz@gnu.org>
Revert "Don't disable eldoc when doing edebug"
This reverts commit 6fd1fb8a6837acde8e1c9ab26618ec0f36121c72.
It turns out ElDoc does show messages inside Edebug, if you
are (un)lucky enough to have point where ElDoc has something
to show. Bug#56459 needs to be fixed in some more complex
way.
2023-03-01 João Távora <joaotavora@gmail.com>
Eglot: work around Tramp instability bug#61350
Unconditionally disable ControlMaster for the Eglot's Tramp
connection.
* lisp/progmodes/eglot.el (tramp-ssh-controlmaster-options)
(use-tramp-ssh-controlmaster-options): Forward declare
(eglot--connect): Set variables to unconditionally disable ControlMaster.
2023-03-01 Yuan Fu <casouri@gmail.com>
Fix treesit-indent-region
Fix it for the case where there is no suitable rule for the line.
Right now treesit-indent-region would indent the line to column 0.
After the change the indentation is not altered.
* lisp/treesit.el (treesit-indent-region): Handle the case where
ANCHOR or OFFSET is nil specially.
2023-03-01 Po Lu <luangruo@yahoo.com>
Replace C++ comments with C style equivalents
* src/alloc.c (Fmake_byte_code, purecopy):
* src/bytecode.c (exec_byte_code):
* src/xdisp.c (face_at_pos): Do not use C++-style comments!
2023-02-28 João Távora <joaotavora@gmail.com>
Eglot: fix M-x eglot-show-workspace-configuration (bug#61866)
Now consult .dir-locals.el every time the workspace configuration is
needed:
- workspace/configuration server request
- workspace/didChangeConfiguration signal
- M-x eglot-show-workspace-configuration
The major-mode/hack-dir-local-variables-non-file-buffer trick is used.
When there is more than one, the server connection's "main" major mode
is used to find the relevant .dir-locals.el section.
* lisp/progmodes/eglot.el (eglot--lookup-mode): Fix docstring.
(eglot--connect): Simplify.
(eglot-show-workspace-configuration): Fix.
(eglot--workspace-configuration): Remove.
(eglot--workspace-configuration-plist): Rework.
(eglot-handle-request): Simplify.
2023-02-28 Dmitry Gutov <dgutov@yandex.ru>
ruby-mode: Fix method call indentation in rhs of multiple assignment
* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Special-case
assignment that follows a comma-separated list (bug#61871).
* test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add case.
2023-02-28 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-remote-path): Improve docstring.
2023-02-28 Felix <felix.dick@web.de> (tiny change)
Minor change in 'dired--find-possibly-alternative-file'
* lisp/dired.el (dired--find-possibly-alternative-file): Don't
kill the buffer if the directory is shown in other windows.
2023-02-28 Felix <felix.dick@web.de> (tiny change)
Implement prefix arg for 'c-ts-mode-toggle-comment-style'
* lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style):
Actually implement the optional numeric arg mentioned in the
docstring.
2023-02-28 Manuel Giraud <manuel@ledu-giraud.fr>
Defaults to zero for image-dired--number-of-thumbnails
* lisp/image/image-dired.el (image-dired--number-of-thumbnails):
Defaults zero to avoid wrong type argument error. (Bug#61734)
2023-02-27 Dmitry Gutov <dgutov@yandex.ru>
Rename the newly added -ref- faces to -use-
* lisp/font-lock.el (font-lock-variable-use-face)
(font-lock-property-use-face): Rename from font-lock-variable-ref-face
and font-lock-property-ref-face. Update all references (bug#61655).
2023-02-27 João Távora <joaotavora@gmail.com>
Eglot: support multiple labels in same inlay hint
Mainly the rust-analyzer LSP server uses this. There are still more
things we could support, like tooltips and stuff.
* lisp/progmodes/eglot.el (lsp-interface-alist): Add
InlayHintLabelPart.
(eglot--update-hints-1): Support multiple labels for same hint.
2023-02-27 João Távora <joaotavora@gmail.com>
Eglot: don't paint hints outside requested region (bug#61812)
* lisp/progmodes/eglot.el (eglot--lambda): Add cl-block.
(eglot--update-hints-1): Return early if hint is outside the
requested inlay hint range.
2023-02-27 João Távora <joaotavora@gmail.com>
Eglot: protect against unintended field text motion (bug#61726)
Suggested-by: Augusto Stoffel <arstoffel@gmail.com>
* lisp/progmodes/eglot.el (eglot--bol): New helper.
(eglot-utf-8-linepos, eglot-utf-16-linepos)
(eglot-utf-32-linepos, eglot-move-to-utf-8-linepos)
(eglot-move-to-utf-16-linepos, eglot-move-to-utf-32-linepos)
(eglot-handle-notification, eglot--xref-make-match)
(eglot-completion-at-point): Use it.
2023-02-27 Eli Zaretskii <eliz@gnu.org>
Fix description of 'desktop-save-mode'
* doc/emacs/misc.texi (Saving Emacs Sessions): Adjust to changes
in 'desktop-path'. Reported by Petteri Hintsanen <petterih@iki.fi>.
2023-02-27 Yuan Fu <casouri@gmail.com>
Adjust tree-sitter defun navigation (bug#61617)
Before this change, when you use a tree-sitter navigation function to
move to the next beginning of a thing, it jumps over the immediate
next thing and lands you at the beginning of the next-next thing.
Eg, when point is at the "|", and we evaluate
(treesit--navigate-thing pos 1 'beg), we go from
| (thing) (thing)
to
(thing) |(thing)
But some might expect point to go to
|(thing) (thing)
instead, which makes sense. Also, that's how Emacs expect defun
navigation functions to work. The discrepancy in expectation causes
bug#61617.
In this change I made tree-sitter navigation functions to work as what
Emacs expects. And what I described for moving to the next beginning
of thing is similarly applicable to moving to the end of previous end
of thing.
* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Handle the case where defun-skipper moves
point back to where we started, by adding a retry.
(treesit--navigate-thing): Add a single condition checking for
progress to the condition form responsible for checking whether to
skip the next defun. Namely (eq pos (funcall advance next)))).
* test/src/treesit-tests.el:
(treesit--ert-defun-navigation-nested-master)
(treesit--ert-defun-navigation-top-level-master): Change tests to
reflect the new expectation.
2023-02-27 Yuan Fu <casouri@gmail.com>
Simplify c-ts-mode--top-level-label-matcher
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--top-level-label-matcher): Make more assumptions and remove
the loop, so it's faster in large files.
2023-02-27 Yuan Fu <casouri@gmail.com>
New tree-sitter indent anchor standalone-parent used by c-ts-mode
When writing c-ts-mode Theo used parent-bol which works well except
one case:
1 for (int i=0;
2 i < 5;
3 i++) {
4 func(i);
5 }
In this case, when indenting "func(i)", parent-bol returns the start
of "i++" on line 3, instead of the "correct" anchor, the start of
"for" on line 1. parent-bol would have worked if the "for (...) {"
part is in one line.
To support this case I tried numerous things and added a bunch of
stuff, culminating in c-ts-common-statement-offset. It's complicated,
requires extra setup, and slow.
Not anymore! I think the new anchor standalone-parent really captures
the logic behind how people expect indentation to work. It's simple
and fast, and requires no setup.
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--standalone-grandparent): New anchor.
(c-ts-mode--indent-styles): Replace c-ts-common-statement-offset with
standalone-parent.
(c-ts-base-mode): Add comment.
* lisp/treesit.el:
(treesit-simple-indent-presets): New anchor standalone-parent.
2023-02-26 Dmitry Gutov <dgutov@yandex.ru>
ruby-smie-rules: Fix misindentation of a method call after assignment
* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Fix indentation of a
method call after assignment with ruby-after-operator-indent=nil
(bug#61822).
* test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb:
Add corresponding example.
2023-02-26 Eli Zaretskii <eliz@gnu.org>
* lib-src/etags.c (process_file_name): Free malloc'ed vars (bug#61819).
2023-02-26 João Távora <joaotavora@gmail.com>
Eglot: rename and redocument encoding-related functions (bug#61726)
* lisp/progmodes/eglot.el (eglot-current-column): Obsolete.
(eglot-lsp-abiding-column): Obsolete.
(eglot-current-column-function): Obsolete.
(eglot-current-linepos-function): Rename from eglot-current-column-function.
(eglot-utf-8-linepos): Rename from eglot-bytewise-column.
(eglot-utf-16-linepos): Rename from eglot-lsp-abiding-column.
(eglot-utf-32-linepos): Rename from eglot-current-column.
(eglot-move-to-current-column): Obsolete.
(eglot-move-to-lsp-abiding-column): Obsolete.
(eglot-move-to-column-function): Obsolete.
(eglot-move-to-linepos-function): Rename from eglot-move-to-column-function.
(eglot-move-to-utf-8-linepos): Rename from eglot-move-to-bytewise-column.
(eglot-move-to-utf-16-linepos): Rename from eglot-move-to-lsp-abiding-column.
(eglot-move-to-utf-32-linepos): Rename from eglot-move-to-current-column.
(eglot--managed-mode): Adjust.
(eglot-client-capabilities): Trim whitespace.
* test/lisp/progmodes/eglot-tests.el (eglot-test-lsp-abiding-column)
(eglot-test-lsp-abiding-column-1): Use new function/variable names.
2023-02-26 Augusto Stoffel <arstoffel@gmail.com>
Eglot: support positionEncoding LSP capability (bug#61726)
* lisp/progmodes/eglot.el(eglot-client-capabilities): Announce the
new capability.
(eglot-bytewise-column, eglot-move-to-bytewise-column): New functions.
(eglot--managed-mode): Set 'eglot-current-column-function' and
'eglot-move-to-bytewise-column' appropriately.
2023-02-26 Eli Zaretskii <eliz@gnu.org>
Augusto Stoffel <arstoffel@gmail.com>
Eglot: use faster strategy for moving to LSP positions (bug#61726)
Turns out we don't need encode-coding-region after all.
* lisp/progmodes/eglot.el (eglot-move-to-lsp-abiding-column): Rewrite.
2023-02-26 Eli Zaretskii <eliz@gnu.org>
Fix mule-tests in UTF-8 locales
* test/lisp/international/mule-tests.el
(sgml-html-meta-no-post-less-than-10lines): Fix test condition.
2023-02-26 Eli Zaretskii <eliz@gnu.org>
Fix 'vertical-motion' when display strings are around
* src/indent.c (Fvertical_motion): Correct bidi-related condition
for character position, when we didn't move vertically. (Bug#61636)
2023-02-25 Dmitry Gutov <dgutov@yandex.ru>
python-ts-mode: Fix single-quote string fontification
* lisp/progmodes/python.el (python--treesit-fontify-string):
Look for ', not just ", as opening delimiter (bug#61796).
2023-02-25 Eli Zaretskii <eliz@gnu.org>
Fix infloop in bidi.c
* src/bidi.c (bidi_set_paragraph_end): Reset the isolate_level to
zero. Whenever stack_idx is reset to zero, the isolate_level must
also be reset, since there cannot be any isolate status outside of
embeddings. Failure to reset isolate_level will cause us infloop
when we see a PDI. Reported by Matt Beshara <m@mfa.pw>.
2023-02-25 Daniel Martín <mardani29@yahoo.es>
Check the anchor along with the offset in treesit-indent-region
* lisp/treesit.el (treesit-indent-region): To compute a valid column,
having a non-nil offset is not enough, we need a non-nil anchor as
well.
2023-02-24 Yuan Fu <casouri@gmail.com>
Align to prev sibling for c-ts-mode indentation
As requested by a discussion on emacs-devel.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): New function.
(c-ts-mode--indent-styles): Indent first child as before, indent the
rest to their previous sibling. Remove bracketless statement rules
that I forgot to remove previously.
2023-02-24 Yuan Fu <casouri@gmail.com>
Fix c-ts-common-statement-offset and c-ts-common--node-is
* lisp/progmodes/c-ts-common.el:
(c-ts-common--node-is): Guard against case where the node has no field
name.
(c-ts-common-statement-offset): Do indent a level if the "if" in the
"else if" is on an independent line.
2023-02-24 Dmitry Gutov <dgutov@yandex.ru>
typescript-ts-mode: Highlight non-shorthand destructuring bindings
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Highlight non-shorthand
variable bindings in object destructuring.
2023-02-24 Dmitry Gutov <dgutov@yandex.ru>
Add more/finer faces for tree-sitter
* doc/lispref/modes.texi (Faces for Font Lock):
Update the list of faces (bug#61655).
* etc/NEWS: Update the list of new faces.
* lisp/cus-theme.el (custom-theme--listed-faces): Update.
* lisp/font-lock.el (font-lock-function-call-face)
(font-lock-variable-ref-face, font-lock-property-ref-face):
New faces.
(font-lock-property-name-face):
Rename from 'font-lock-property-face'.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
Use new faces. More 'enumerator' query to 'definition' feature.
(c-ts-mode--fontify-declarator, c-ts-mode--fontify-variable):
Use new faces.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings): Use new faces.
* lisp/progmodes/csharp-mode.el
(csharp-ts-mode--font-lock-settings): Use new faces.
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Use new faces.
* lisp/progmodes/java-ts-mode.el
(java-ts-mode--font-lock-settings): Use new faces.
* lisp/progmodes/js.el (js--treesit-fontify-assignment-lhs)
(js--treesit-font-lock-settings): Use new faces. Highlight
variable definitions inside array and object destructuring
patterns.
* lisp/progmodes/python.el (python--treesit-variable-p):
Exclude identifiers in parameters.
(python--treesit-settings): Use new faces. Highlight function
parameters. Move 'keyword' up to still highlight 'self' as
keyword.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Use new faces.
* lisp/progmodes/rust-ts-mode.el
(rust-ts-mode--font-lock-settings): Use new faces.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use new faces.
* lisp/textmodes/css-mode.el (css--treesit-settings):
Use font-lock-property-ref-face.
* lisp/textmodes/toml-ts-mode.el
(toml-ts-mode--font-lock-settings):
Use font-lock-property-ref-face.
* lisp/textmodes/yaml-ts-mode.el
(yaml-ts-mode--font-lock-settings): Same.
2023-02-24 Eli Zaretskii <eliz@gnu.org>
Avoid crashes in batch mode due to lack of frame face cache
* src/xfaces.c (Finternal_merge_in_global_face): Handle frames
with no face cache.
2023-02-24 Michael Albinus <michael.albinus@gmx.de>
Add Tramp version integrated in Emacs 28.3
* lisp/net/trampver.el (customize-package-emacs-version-alist):
Add Tramp version integrated in Emacs 28.3.
2023-02-24 Philip Kaludercic <philipk@posteo.net>
Avoid reusing :lisp-dir twice in 'package-vc--main-file'
* lisp/emacs-lisp/package-vc.el (package-vc--main-file): Just use
:lisp-dir from 'package-desc-extras', not 'pkg-spec'.
This avoid appending the contents of :lisp-dir twice, in case it is
specified both in pkg-spec and pkg-desc.
2023-02-24 Philip Kaludercic <philipk@posteo.net>
Ensure right package-desc-type before installing package
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Move copying
code from 'package-vc-install'.
(package-vc-install): Remove copying. (Bug#61669)
2023-02-24 Stephen Berman <stephen.berman@gmx.net>
Restore invisibility of symlink target on exiting wdired-mode
* lisp/wdired.el (wdired-change-to-dired-mode): Invoke
dired-hide-details-update-invisibility-spec (bug#61510).
* test/lisp/wdired-tests.el (wdired-test-bug61510): New test.
2023-02-24 João Távora <joaotavora@gmail.com>
Eglot: fix jit-lock inlay hint bugs
One of the bugs was straightforward. The timer function of
eglot--update-hints must set the correct buffer.
The other is much more odd. When using Eglot on Emacs's own
src/coding.c, the jit-lock code starts calling its jit-functions over
and over again with the same sequence of arguments, like so:
======================================================================
1 -> (eglot--update-hints 63551 65051)
1 <- eglot--update-hints: [nil 25592 52026 4
======================================================================
1 -> (eglot--update-hints 65051 66551)
1 <- eglot--update-hints: [nil 25592 52026 4
======================================================================
1 -> (eglot--update-hints-1 63551 66551)
1 <- eglot--update-hints-1: nil
======================================================================
1 -> (eglot--update-hints 63551 65051)
1 <- eglot--update-hints: [nil 25592 52026 4
======================================================================
1 -> (eglot--update-hints 65051 66551)
1 <- eglot--update-hints: [nil 25592 52026 5
======================================================================
1 -> (eglot--update-hints-1 63551 66551)
1 <- eglot--update-hints-1: nil
This continues forever at a very fast rate and saturates the LSP
channel.
At first I thought that it was because eglot--update-hints-1 is
actually causing the buffer to be modified with overlays sometime in
the future, but it is not so! It seems that merely calling
(goto-char (eglot--lsp-position-to-point position))
(from the LSP request handler in eglot--update-hints-1) will cause
this bug.
* lisp/progmodes/eglot.el (eglot--update-hints): Fix bugs.
2023-02-24 João Távora <joaotavora@gmail.com>
Eglot: fix inlay hint with label collection instead of string
Reported by Chinmay Dalal <dalal.chinmay.0101@gmail.com>
* lisp/progmodes/eglot.el (eglot--update-hints-1): Fix bug when
inlay hint contains collection of labels.
2023-02-24 Robert Pluim <rpluim@gmail.com>
Fix insertion of keyboard macro containing named keys
* lisp/kmacro.el: Autoload `macro--string-to-vector'.
(kmacro-ring-head): Convert `last-kbd-macro' to a vector if it's a
string, since `kmacro' uses `key-parse' on it.
(kmacro-lambda-form): Remove require for 'macros
* test/lisp/kmacro-tests.el
(kmacro-tests-name-last-macro-key-parse-syntax):
Test that insertion of macros that contain strings that look
like named keys works correctly.
(Bug#61700)
2023-02-23 João Távora <joaotavora@gmail.com>
Eglot: simplify inlay hints implementation with jit-lock
This implementation is much simpler than the one based on
windows-scroll-functions. It's also supposedly safer, as long as
jit-lock guarantees refontification of affected regions.
It's not _trivially_ simple though, as simply adding
'eglot--update-hints-1' to jit-lock-functions, while possible, is
going to request inlay hints from the LSP server for many small
regions of the buffer, depending on what jit-lock thinks is best. So
we keep coalescing these into a larger region until the time is
suitable for a more bandwidth-efficient request.
To do this, we use a jit-lock implementation detail,
jit-lock-context-unfontify-pos, which is a proxy for knowing that the
jit-lock-context-timer has run. Not sure how brittle it is, but it
seems to work reasonably.
We also get rid of the previous "get hints for entire buffer"
implementation.
* doc/misc/eglot.texi (Eglot Variables): Remove mention
to deleted eglot-lazy-inlay-hints.
* lisp/progmodes/eglot.el (eglot-lazy-inlay-hints)
(eglot--inlay-hints-after-scroll)
(eglot--inlay-hints-fully)
(eglot--inlay-hints-lazily): Remove.
(eglot--update-hints): Add function.
(eglot-inlay-hints-mode): Simplify.
2023-02-23 João Távora <joaotavora@gmail.com>
Eglot: update inlay hints on window configuration changes
* lisp/progmodes/eglot.el
(eglot--inlay-hints-after-window-config-change): New helper.
(eglot-inlay-hints-mode): Use it.
2023-02-23 João Távora <joaotavora@gmail.com>
Eglot: display completion label when safe
Originally reported in
https://github.com/joaotavora/eglot/discussions/1141 by "Mintsoup".
Eglot doesn't always show the LSP :label property of a CompletionItem
in the completion candidates. That is because label is sometimes not
what should be inserted in the buffer in the end, the :insertText
property supercedes it.
But the label is usually more suitable for display nevertheless and if
the LSP CompletionItem contains either a snippet or a textEdit, it's
safe to display the label, since :exit-function will guarantee that a
suitable buffer insertion is performed.
This change reflects that awareness that when a textEdit is available,
it's acceptable to show the label.
* lisp/progmodes/eglot.el (eglot-completion-at-point): Adjust.
2023-02-23 Eli Zaretskii <eliz@gnu.org>
Improve documentation of VC commands, including in Dired
* doc/emacs/dired.texi (Operating on Files):
* doc/emacs/maintaining.texi (VC Change Log, VC Directory Mode)
(Version Control, Basic VC Editing): Document VC command
invocation from Dired buffers. Improve documentation of vc-log
commands.
* lisp/dired-aux.el (dired-vc-next-action):
* lisp/vc/vc.el (vc-print-log, vc-log-search, vc-log-mergebase)
(vc-log-view-type, vc-print-root-log, vc-next-action): Doc fixes.
2023-02-23 Juri Linkov <juri@linkov.net>
* doc/emacs/maintaining.texi: More mentions of marked files in Dired.
(Basic VC Editing, Old Revisions, VC Change Log): Add more mentions of
ability to include the marked files to the VC fileset in Dired (bug#61712).
2023-02-22 João Távora <joaotavora@gmail.com>
Eglot: implement inlay hints (bug#61412, bug#61066)
Inlay hints are small text annotations to specific parts of the whole
buffer, not unlike diagnostics, but designed to help readability
instead of indicating problems. For example, a C++ LSP server can
serve hints about positional parameter names in function calls and a
variable's automatically deduced type. Emacs can display these hints
in many little 0-length overlays with an 'before-string property, thus
helping the user remember those types and parameter names.
Since inlay hints are potentially a large amount of data to request
from the LSP server, the implementation strives to be as parsimonious
as possible with these requests.
So, by default, inlay hints are only requested for the visible
portions of the buffer across windows showing this buffer. This is
done by leveraging the 'window-scroll-functions' variable, making for
a reasonably complex implementation involving per-window timers. When
scrolling a window, it may take a short amount of time for inlay hints
to "pop in". The new user variable 'eglot-lazy-inlay-hints' can be
used to exert some control over this.
Specifically, if the variable's value is set to 'nil', then inlay
hints are greedily fetched for the whole buffer every time a change
occurs. This is a much simpler mode of operation which may avoid
problems, but is also likely much slower in large buffers.
Also, because the inlay feature is probably visually suprising to
some, it is turned OFF by default, which is not the usual practice of
Eglot (at least not when the necessary infrastructure is present).
This decision may be changed soon. Here's a good one-liner for
enabling it by default in every Eglot-managed buffer:
(add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode)
I haven't tested inlay hints extensively across many LSP servers, so I
would appreciate any testing, both for functional edge cases and
regarding performance. There are possibly more optimization
oportunities in the "lazy" mode of operation, like more aggressively
deleting buffer overlays that are not in visible parts of the buffer.
Though I ended up writing this one from scratch, I want to thank
Dimitry Bolopopsky <dimitri@belopopsky.com> and Chinmay Dala
<dalal.chinmay.0101@gmail.com> for suggestions and early patches.
* lisp/progmodes/eglot.el (eglot--lsp-interface-alist): Define
InlayHint.
(eglot-client-capabilities): Announce 'inlayHint' capability.
(eglot-ignored-server-capabilities): Add :inlayHintProvider.
(eglot--document-changed-hook): New helper hook.
(eglot--after-change): Use it.
(eglot-inlay-hint-face, eglot-type-hint-face)
(eglot-parameter-hint-face): New faces.
(eglot--update-hints-1, eglot--inlay-hints-after-scroll)
(eglot--inlay-hints-fully, eglot--inlay-hints-lazily): New helpers.
(eglot-lazy-inlay-hints): New user variable.
(eglot-inlay-hints-mode): New minor mode.
(eglot--maybe-activate-editing-mode): Try to activate
eglot-inlay-hints-mode.
(eglot--before-change): Remove overlays immediately in the
area being changed.
(eglot--managed-mode-off): Remove overlays.
* doc/misc/eglot.texi (Eglot Features): Mention inlay hints.
(Eglot Variables): Mention eglot-lazy-inlay-hints.
2023-02-22 João Távora <joaotavora@gmail.com>
Eglot: run eglot-managed-mode-hook after LSP didOpen
This allows using the hook for interacting with the LSP server using
the current buffer as the subject of that interaction ("document" in
LSP parlance).
* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
Run eglot-managed-mode-hook here.
(eglot--managed-mode): Not here.
2023-02-22 João Távora <joaotavora@gmail.com>
Eglot: restore eldoc-documentation-functions on shutdown
* lisp/progmodes/eglot.el (eglot--managed-mode): Restore
eldoc-documentation-functions when shutting down eglot.
2023-02-22 João Távora <joaotavora@gmail.com>
Eglot: simplify capability-checking code
* lisp/progmodes/eglot.el (eglot--server-capable-or-lose): New helper.
(eglot--signal-textDocument/willSave)
(eglot--signal-textDocument/didSave): Tweak docstring.
(eglot--workspace-symbols, xref-backend-identifier-at-point)
(eglot-format, eglot-completion-at-point, eglot-rename)
(eglot-code-actions): Use new eglot--server-capable-or-lose.
2023-02-22 João Távora <joaotavora@gmail.com>
Eglot: go back to setting eldoc-documentation-strategy again
This commits reverts part of
commit e83c78b8c7784254c2c6f043530ab325c2fa7f16
Author: João Távora <joaotavora@gmail.com>
Date: Mon Feb 20 22:43:50 2023 +0000
Eglot: respect user's Eldoc configuration by default
In that commit, I did what many longstanding issues and users were
suggesting and removed Eglot's override of two Eldoc user
configuration varibles.
I verified that Eglot's behaviour would stay mostly unaltered but my
tests were very incomplete. In short there is no way that Eglot can
work acceptably with the default setting of
'eldoc-documentation-strategy', which is
'eldoc-documentation-default'. So it must be changed, either globally
or locally in Eglot's minor mode.
This is true for any situation where both synchronous and asynchronous
documentation sources are present. In Eglot's case there are two
asynchronous sources which have more importance than the synchronous
source. So any other strategy except the
'eldoc-documentation-default' makes sense.
* lisp/progmodes/eglot.el (eglot--managed-mode): Set
eldoc-documentation-strategy to eldoc-documentation-compose.
2023-02-22 F. Jason Park <jp@neverwas.me>
Yield to erc-move-to-prompt before unhiding prompt
* lisp/erc/erc-backend.el (erc--hide-prompt): Change hook depth from 0
to 91 to allow the `move-to-prompt' module to do its thing. This
feature was added by bug#54826 and first appeared in Emacs 29.
* lisp/erc/erc-common.el (erc-server-user): Remove erroneous comment.
The `buffers' field is a list of buffers.
* test/lisp/erc/erc-tests.el (erc-hide-prompt): Use `erc--target'
instead of `erc-default-recipients' because this is new code.
2023-02-22 Augusto Stoffel <arstoffel@gmail.com>
* lisp/progmodes/python.el (python--import-sources): Fix regexp (bug#61648)
2023-02-22 Manuel Giraud <manuel@ledu-giraud.fr>
Do not error out on non image file (bug#61639)
* lisp/image/image-dired.el
(image-dired-display-thumbs): Do not insert non image file and do not
display image-dired buffer if it is empty.
2023-02-22 Eli Zaretskii <eliz@gnu.org>
Explain effect of variable-pitch fonts on fill-column
* doc/emacs/text.texi (Fill Commands):
* doc/emacs/display.texi (Displaying Boundaries):
* lisp/display-fill-column-indicator.el
(display-fill-column-indicator-mode): Document caveats of using
variable-pitch fonts with 'fill-column' and its indicator.
(Bug#61677)
2023-02-22 Eli Zaretskii <eliz@gnu.org>
Avoid division by zero in get_narrowed_* functions
* src/xdisp.c (get_narrowed_width, get_narrowed_len): Return at
least 1 as the value. (Bug#61704)
2023-02-21 Martin Rudalics <rudalics@gmx.at>
* etc/NEWS: Mention new buffer display action alist entries
2023-02-21 Eli Zaretskii <eliz@gnu.org>
Fix build --without-xdbe
* src/xterm.c (x_end_cr_clip, handle_one_xevent): Condition
double-buffering code on HAVE_XDBE. (Bug#61667)
2023-02-21 Robert Pluim <rpluim@gmail.com>
Improve dnd-direct-save-remote-files docstring
* lisp/dnd.el (dnd-direct-save-remote-files): Reword.
2023-02-21 Robert Pluim <rpluim@gmail.com>
Add 'process-status' to process shortdoc
* lisp/emacs-lisp/shortdoc.el (process): Add 'process-status'.
2023-02-21 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Improve 5d0b45cd67b
2023-02-21 Robert Pluim <rpluim@gmail.com>
Improve text about deleting windows
* doc/emacs/windows.texi (Change Window): Improve grammar around
'delete-window-choose-selected'.
2023-02-21 Robert Pluim <rpluim@gmail.com>
Make 'emacs-news-cycle-tag' work at all levels
* lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Search for
a heading starting with 2 or more '*' rather than exactly 3.
* test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts
(Point-Char): Add tests for 2 and 4 '*' levels.
2023-02-21 Mattias Engdegård <mattiase@acm.org>
Repair mistake in a previous edmacro-sanitize-string change
* lisp/edmacro.el (edmacro-sanitize-for-string):
This condition should not have been 'repaired' but removed altogether.
Do so now, fixing bug#61647.
Reported by Eduardo Ochs.
(cherry picked from commit 4eefadad0670ad1c3da2505d734e528d54c76bef)
2023-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
regex-emacs.c: Reduce the use of backtracking a bit further
bug#61514 exhibited some undesirable backtracking in a case where
it's easy to avoid it by making `mutually_exclusive_p` just a bit
more careful.
* src/regex-emacs.c (mutually_exclusive_p): Handle `on_failure_jump`s.
* test/src/regex-emacs-tests.el (regexp-tests-backtrack-optimization):
Add a few tests.
2023-02-20 João Távora <joaotavora@gmail.com>
Eglot: respect user's Eldoc configuration by default
This change addresses the problems reported in many Elglot reports
dating back to early 2021 at least:
https://github.com/joaotavora/eglot/issues/648
https://github.com/joaotavora/eglot/issues/894
https://github.com/joaotavora/eglot/issues/920
https://github.com/joaotavora/eglot/issues/1031
https://github.com/joaotavora/eglot/issues/1171
In one form or another, the reports point out that the multiple pieces
of information about the "thing at point" made available by the LSP
server are not all being considered by the ElDoc system.
The reason for this is Eglot setting/trampling the variables
'eldoc-documentation-strategy' and 'eldoc-documentation-functions' in
its minor more entry function.
The reason it did that is historical and is partially described in the
issues above. But, evidently, it never made much sense, because so
many people want to override it, which requires setting
'eldoc-documentation-strategy' to the non-default value
'eldoc-documentation-compose'.
The problem was made worse by the fact that setting it as usual in
either the Customize menu or their init file didn't work, requiring a
fairly complex Elisp snippet. That is now solved as of this commit.
If the user does not do any setting, then Eglot works basically the
same as before (i.e. shows only one piece of information).
It is arguable that the default value for
'eldoc-documentation-strategy' should change globally to
'eldoc-documentation-compose', but that has other subtle implications
and is not part of this commit.
* lisp/progmodes/eglot.el (eglot--managed-mode): Don't set Eldoc
variables greedily.
2023-02-20 Andrea Corallo <akrl@sdf.org>
Make the native compiler always use `make-temp-file' for temporary files
* src/comp.c (CALL4I): Define macro.
(Fcomp__compile_ctxt_to_file): Use `make-temp-file' instead of
`make-temp-file-internal'.
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Likewise.
2023-02-20 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.3.7-216-gfe40342
2023-02-20 Daniel Martín <mardani29@yahoo.es>
Add declaration_list to c-ts-common-indent-type-regexp-alist
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Consider a
"declaration_list" a block. (Bug#61635)
* test/lisp/progmodes/c-ts-mode-resources/indent.erts (Code): Add a
test case.
2023-02-20 Theodor Thornhill <theo@thornhill.no>
Typescript-ts-mode: Add switch case handling
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): New rules.
2023-02-20 Theodor Thornhill <theo@thornhill.no>
Fix object initializer for csharp-mode (bug#61541)
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure
we check the openers as well as closers.
2023-02-20 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.1-34-geea8da
2023-02-19 Yuan Fu <casouri@gmail.com>
Improve tree-sitter indent anchor prev-adaptive-prefix (bug#61314)
Now prev-adaptive-prefix looks at the current line and checks if it
begins with a prefix itself. If it does, prev-adaptive-prefix tries
to place the anchor before the prefix on the previous line, rather
than after it.
- prev line
- this line -> This line starts with a "-", i.e., begins with a
prefix, so we place the anchor at the beginning of the
"-" of the previous line, rather than after it
- prev line
this line -> This line doesn't start with a prefix, so the anchor
is placed after the previous line's "-".
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el:
(treesit-simple-indent-presets): Add local variable
this-line-has-prefix, base what anchor to return on the value of
this-line-has-prefix and whether the prev line has a prefix.
2023-02-19 Theodor Thornhill <theo@thornhill.no>
Adjust jsx indentation
We can use the fact that 'treesit-indent-1' uses 'treesit-node-on'
when on a whitespace to set the actual current node as parent. Now we
can correctly indent the 'jsx_text' nodes. We also add some more
electric-indent-chars so that auto-indenting of jsx behaves a little
more fluently.
* lisp/progmodes/js.el (js--treesit-indent-rules): Add new rules.
(js-ts-mode): Add more indent-chars.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add new rules.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-base-mode): Add more indent-chars and layout rules.
2023-02-19 Theodor Thornhill <theo@thornhill.no>
Cleanup preproc indent for c-ts-mode (bug#61558)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Make sure we
indent to great-grand-parent if inside an #ifdef...#endif block. If
grand-parent is root node, then don't indent one step.
(c-ts-mode--preproc-offset): New helper anchor function to calculate
indent offset.
2023-02-19 Theodor Thornhill <theo@thornhill.no>
Add comment style toggle for c-ts-mode (bug#61550)
* lisp/progmodes/c-ts-mode.el (c-ts-mode-toggle-comment-style): New
command.
(c-ts-base-mode-map): Add binding.
(c-ts-mode-set-modeline): New function.
(c-ts-mode): Set modeline.
(c++-ts-mode): Set modeline.
2023-02-19 Juri Linkov <juri@linkov.net>
* lisp/simple.el (choose-completion): Check for completion-in-region-mode.
Don't use base-affixes when completion-use-base-affixes is non-nil
in completion-in-region-mode (bug#61535).
2023-02-19 Dmitry Gutov <dgutov@yandex.ru>
rust-ts-mode--font-lock-settings: Avoid the explicit 'default' face
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-scope)
(rust-ts-mode--fontify-tail): New functions.
(rust-ts-mode--font-lock-settings): Use them instead of a lot of
more complex queries (bug#61302). Thus avoid having to create
block fontification by other features using the 'default' face.
Replace the catch-all query for 'variable' with an enumeration of
possible parent nodes.
2023-02-19 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/xref.el: Bump the version.
2023-02-19 Dmitry Gutov <dgutov@yandex.ru>
xref--insert-xrefs: Use 'shadow' for the line number colon
* lisp/progmodes/xref.el (xref--insert-xrefs): Use face 'shadow' for
the line number colon instead of continuing it face (bug#61340).
(cherry picked from commit d6d25a3c221e566de4df5319181e9ba9a8df285e)
2023-02-19 Juri Linkov <juri@linkov.net>
* lisp/progmodes/xref.el (xref--insert-xrefs): Remove extra space (bug#61340).
(cherry picked from commit 643a11c6e5defc0a34da1a53b64aa1e097298923)
2023-02-19 Mattias Engdegård <mattiase@acm.org>
Backport: Fix xref-clear-marker-stack refactoring mistake
* lisp/progmodes/xref.el (xref-clear-marker-stack):
Clear the history correctly. Changing a lexical variable has no effect.
(cherry picked from commit dfdc0f5fb7b10e737c3c8e2bdb1eb873a1e91bd7)
2023-02-19 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
f5a99945b6f ; Update ChangeLog for Emacs 28.3
f7bd5ac5521 Update HISTORY for Emacs 28.3
# Conflicts:
# etc/NEWS
2023-02-19 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
4a77fcb1478 Update ChangeLog and AUTHORS for Emacs 28.3
2023-02-19 Manuel Giraud <manuel@ledu-giraud.fr>
More doc on image-dired-dired-* (bug#61624)
* doc/emacs/dired.texi (Image-Dired): Some fixes and more
documentation about image-dired-dired-* commands.
2023-02-19 Theodor Thornhill <theo@thornhill.no>
Eglot: improve treatment of completion items without :sortText (bug#61532)
Previously, defaulting to the empty string put candidates without
:sortText to the top of the list. since string-lessp is safe with nil
arguments, this makes them sort to the end instead.
* lisp/progmodes/eglot.el (eglot-completion-at-point): Simplify.
2023-02-19 Eli Zaretskii <eliz@gnu.org>
Fix invocation of File->Close from the menu bar
* lisp/simple.el (kill-buffer--possibly-save): Don't request
LONG-FORM from 'read-multiple-choice' if GUI dialog should be
used.
* lisp/emacs-lisp/rmc.el (read-multiple-choice): Doc fix.
(read-multiple-choice--short-answers): Don't append "?" to
CHOICES and don't display the prompt in the echo area if GUI
dialog is used. Use 'use-dialog-box-p'. (Bug#61553)
2023-02-19 Manuel Giraud <manuel@ledu-giraud.fr>
Update thumbnail buffer's header more
* lisp/image/image-dired.el (image-dired-display-thumbs): Call
image-dired--update-header-line. (Bug#61508)
2023-02-18 Dmitry Gutov <dgutov@yandex.ru>
(treesit-query-validate): Fix reusing the output buffer
* lisp/treesit.el (treesit-query-validate): Fix the "Buffer is
read-only" error when an output buffer already exists.
2023-02-18 Dmitry Gutov <dgutov@yandex.ru>
(rust-ts-mode--font-lock-settings): Highlight closure parameters
* lisp/progmodes/rust-ts-mode.el
(rust-ts-mode--font-lock-settings): Highlight closure parameters.
2023-02-18 Andrea Corallo <akrl@sdf.org>
* Fix `native-comp-enable-subr-trampolines' semantic
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Interpret
`native-comp-enable-subr-trampolines' relative to
`invocation-directory'.
2023-02-18 Eli Zaretskii <eliz@gnu.org>
Fix documentation of 'just-one-space' and 'delete-horizontal-space'
* lisp/simple.el (just-one-space, delete-horizontal-space):
Mention the effect of prefix argument. (Bug#61609)
2023-02-18 martin rudalics <rudalics@gmx.at>
Fix 'display-buffer-use-least-recent-window'
* src/window.c (Fwindow_use_time): Doc fix.
(Fwindow_bump_use_time): Bump use time of the seleceted window as
well. Doc fix.
* lisp/window.el (display-buffer-avoid-small-windows): Remove.
All users changed.
(window--display-buffer): Bump window use time when requested.
(display-buffer--lru-window): New function.
(display-buffer-use-some-window): Use it.
(display-buffer-use-least-recent-window): Rewrite and enhance doc
string.
* doc/lispref/windows.texi (Selecting Windows)
(Buffer Display Action Functions, Buffer Display Action Alists)
(The Zen of Buffer Display): Improve and update documentation of
window selection and display facilities.
2023-02-18 kobarity <kobarity@gmail.com>
Fix point moving when calling python-shell-send-region
* lisp/progmodes/python.el (python-shell-buffer-substring): Add
`save-excursion' to prevent the point from moving.
* test/lisp/progmodes/python-tests.el (python-tests-should-not-move):
New helper function to assert that point does not move while calling a
function.
(python-shell-buffer-substring-*): Use
`python-tests-should-not-move'. (Bug#61463)
2023-02-18 Omar Polo <op@omarpolo.com>
(project-try-vc): Remove unused defvar/require
* lisp/progmodes/project.el (project-try-vc):
Remove unused defvar/require (bug#61577).
2023-02-18 Stefan Kangas <stefankangas@gmail.com>
Delete redundant question from Gnus FAQ
* doc/misc/gnus-faq.texi (FAQ 1-2): Delete redundant question.
(FAQ 1-1, FAQ 1-3): Adjust accordingly.
2023-02-18 Stefan Kangas <stefankangas@gmail.com>
Slightly improve hashcash documentation
* lisp/mail/hashcash.el: Improve Commentary.
(hashcash-program):
* lisp/gnus/message.el (message-generate-hashcash): Improve
docstring.
2023-02-18 Eli Zaretskii <eliz@gnu.org>
Fix cursor motion when there's line-prefix and display string at BOL
* src/xdisp.c (move_it_in_display_line_to): Handle 'line-prefix' and
'wrap-prefix' when the screen line has a display string at its
beginning. (Bug#61580)
2023-02-18 Yuan Fu <casouri@gmail.com>
Fix comment in treesit_record_change (bug#61369)
Turns out the previous commit message and comment is not entirely
correct: the old behavior is in fact wrong, not just "correct but has
problems".
Here is why the old code is wrong:
|visible range| -> markup for visible range
updated range -> markup for updated range
-------------
First we have some text
|aaaaaa|
Now we insert something at the beginning, because we clip
new_end_offset to visible_end, out of eight b's inserted, only the
first six are known to tree-sitter.
|bbbbbbbbaaaa|aa start: 0, old_end: 0, new_end: 6
------
In treesit_sync_visible_region, we sync up visible region, but the two
missing b's are not in the updated range.
|bbbbbbbbaaaaaa| start: 12, old_end: 12, new_end: 14
--
The old behavior not only is wrong, but also doesn't make much sense.
* src/treesit.c (treesit_record_change): Update comment.
2023-02-18 Stefan Kangas <stefankangas@gmail.com>
Spell out RPN abbreviation in Calc manual intro
* doc/misc/calc.texi (What is Calc, Demonstration of Calc)
(RPN Tutorial): Spell out "Reverse Polish notation" abbreviation.
2023-02-18 Eli Zaretskii <eliz@gnu.org>
Fix some uses of 'use-dialog-box'
* lisp/frame.el (display-mouse-p): Fix return value on MS-Windows
in batch invocations.
* lisp/hi-lock.el (hi-lock-unface-buffer): Don't consider
'last-nonmenu-event' being nil as a mouse event, for the purpose
of using dialog boxes.
2023-02-18 Eli Zaretskii <eliz@gnu.org>
Fix hi-lock-tests when 'use-dialog-box' is non-nil
* test/lisp/hi-lock-tests.el (hi-lock-case-fold)
(hi-lock-unhighlight): Bind 'use-dialog-box' to nil.
2023-02-18 Eli Zaretskii <eliz@gnu.org>
Fix regression due to change in face sort order by 'face-list'
* lisp/faces.el (x-create-frame-with-faces): Undo reversing of
the face list, which is no longer necessary, since 'face-list's
sorting order has been reversed recently. (Bug#61521)
2023-02-17 Po Lu <luangruo@yahoo.com>
* lisp/files.el (file-equal-p): Work around Haiku stat bug.
2023-02-17 Dmitry Gutov <dgutov@yandex.ru>
(project-vc-backend-markers-alist): Add entry for vc-got
* lisp/progmodes/project.el (project-vc-backend-markers-alist):
Add entry for vc-got (bug#61577). Bump the version.
2023-02-17 Dmitry Gutov <dgutov@yandex.ru>
project.el: Extract backend->marker association for a defvar
* lisp/progmodes/project.el (project-vc-backend-markers-alist):
Extract from 'project-try-vc'.
(project-try-vc): Update accordingly (bug#61577).
2023-02-17 Yuan Fu <casouri@gmail.com>
Don't completely clip into visible range in treesit_record_change
(Bug#61369)
From
min (visible_end, max (visible_beg, new_end_byte)) - visible_beg
to
max (visible_beg, new_end_byte) - visible_beg
* src/treesit.c (treesit_record_change): We don't clip the new end
into the visible range anymore. If you think of it, when inserting in
a narrowed region, the visible region is always extended to
accommodate more text, rather than pushing text at the end to keep the
size of the visible region.
2023-02-17 Dmitry Gutov <dgutov@yandex.ru>
* lisp/treesit.el (treesit-node-at): Update docstring (bug#61529).
2023-02-17 Stefan Kangas <stefankangas@gmail.com>
* lisp/calc/calc.el (calc-mode): Improve docstring.
2023-02-17 Stefan Kangas <stefankangas@gmail.com>
Bump Emacs version to 28.3
* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 28.3.
2023-02-17 Stefan Kangas <stefankangas@gmail.com>
Update ChangeLog and AUTHORS for Emacs 28.3
* ChangeLog.3:
* etc/AUTHORS: Update for Emacs 28.3.
2023-02-17 Stefan Kangas <stefankangas@gmail.com>
Update HISTORY for Emacs 28.3
2023-02-17 Stefan Kangas <stefankangas@gmail.com>
Update NEWS for Emacs 28.3
* etc/NEWS: Update for Emacs 28.3.
2023-02-17 Andrea Corallo <akrl@sdf.org>
Merge 'emacs-29' into 'feature/inhibit-native-comp-cleanup'
2023-02-17 Eli Zaretskii <eliz@gnu.org> (tiny change)
Fix order of faces in 'face-list'
* lisp/faces.el (frame-face-alist, face-list): Sort faces in
decreasing order of face IDs. Patch by Brennan Vincent
<brennan@umanwizard.com>. (Bug#61521)
2023-02-17 Eli Zaretskii <eliz@gnu.org>
Allow 'icon-title-format' to have the value t
* src/xdisp.c (gui_consider_frame_title, syms_of_xdisp): If the
value of 'icon-title-format' is t, use 'frame-title-format'
instead. (Bug#61496)
* etc/NEWS:
* doc/lispref/frames.texi (Frame Titles): Document the new
handling of the value t.
(Basic Parameters): Fix the documentation of the 'title' and
'name' frame parameters.
2023-02-16 Theodor Thornhill <theo@thornhill.no>
Add electric indent for preproc directives
It looks like there are few if no other cases where we get this
particular error in the AST than with insertion of '#'.
Consider:
```
int
main()
{
|
}
```
If we only add '#' the AST yields (ERROR (ERROR)), which we can
exploit to hook onto electric indent. The end result should be the
hashtag anchored to column 0.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule.
(c-ts-base-mode): Add # to electric-indent-chars.
2023-02-16 Robert Pluim <rpluim@gmail.com>
Rename 'emacs-news-toggle-tag' to 'emacs-news-cycle-tag'
* lisp/textmodes/emacs-news-mode.el (emacs-news-cycle-tag): Renamed
from 'emacs-news-toggle-tag'.
(emacs-news-mode-map, emacs-news-mode-menu): Use new name.
* test/lisp/textmodes/emacs-news-mode-resources/cycle-tag.erts:
Renamed from "toggle-tag.erts".
* test/lisp/textmodes/emacs-news-mode-tests.el (emacs-news-cycle-tag):
Rename test from 'emacs-news-toggle-tag', and call
'emacs-news-cycle-tag' with new resource file name.
2023-02-16 Robert Pluim <rpluim@gmail.com>
Add menu to news-mode
* lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map): Add binding
for 'emacs-news-delete-temporary-markers'.
(emacs-news-mode-menu): Add menu for common actions.
2023-02-16 Philip Kaludercic <philipk@posteo.net>
Attempt to recognise if a VC package has no Elisp files
* lisp/emacs-lisp/package-vc.el (package-vc-non-code-file-names): Add
new variable used to avoid false-positives.
(package-vc--unpack): Recursively search for .el files excluding the
ones listed in 'package-vc-non-code-file-names', offering to abort the
installation if none are found.
2023-02-15 Eli Zaretskii <eliz@gnu.org>
Fix mule-tests under en_US.UTF-8 locale
* test/lisp/international/mule-tests.el (sgml-html-meta-utf-8):
Accept also utf-8-unix/dos/whatever. (Bug#61534)
* lisp/international/mule.el
(sgml-html-meta-auto-coding-function): Fix comparison when
buffer-file-coding-system is of type 'charset'.
2023-02-15 Theodor Thornhill <theo@thornhill.no>
Move block closer above declaration_list rule (bug#61531)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Move rule
above the previous rule.
2023-02-15 Eli Zaretskii <eliz@gnu.org>
Minor improvements in c-ts-mode and docs
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode-map): Add a binding
for comment-region.
* doc/emacs/programs.texi (C Indent): Mention "C-u TAB".
2023-02-15 Theodor Thornhill <theo@thornhill.no>
Add super node as a keyword
* lisp/progmodes/java-ts-mode.el
(java-ts-mode--font-lock-settings): Add new node.
2023-02-15 Stefan Kangas <stefankangas@gmail.com>
Delete perplexing paragraph from Gnus manual
* doc/misc/gnus.texi (Exiting Gnus): Delete a confusing paragraph,
that may or may not have been intended as a joke. (Bug#61325)
2023-02-14 ~kby <kby@tilde.team> (tiny change)
Eglot: check server capability before sending didSave (bug#61478)
* lisp/progmodes/eglot.el (eglot--signal-textDocument/didSave): check
server capability.
2023-02-14 Randy Taylor <dev@rjt.dev>
Fix rust-ts-mode type and module highlighting (Bug#61302)
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
Specify import queries to avoid clashing with scoped identifiers in
the code. Highlight attributes with font-lock-preprocessor-face.
2023-02-14 Dmitry Gutov <dgutov@yandex.ru>
rust-ts-mode: Highlight variable reassignments
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode):
New treesit font-lock feature: 'assignment' (bug#61302).
(rust-ts-mode--fontify-pattern): Remove the node lookup step.
(rust-ts-mode--font-lock-settings): Update variable declaration
queries to match the 'pattern' child node right away. Add
highlights for 'assignment.
2023-02-14 Gregory Heytings <gregory@heytings.org>
Improve backward compatibility of save-restriction
* src/editfns.c (save_restriction_save_1): Renamed from
'save_restrictions_save'. Make it static.
(save_restriction_restore_1): Renamed from
'save_restriction_restore'. Make it static.
(save_restriction_restore): New function, combining
'save_restriction_save_1' and 'narrowing_locks_save'.
(save_restriction_save): New function, combining
'save_restriction_restore_1' and 'narrowing_locks_restore'.
(Fsave_restriction): Restore the previous code.
(narrowing_locks_save, narrowing_locks_restore): Make them static.
* src/lisp.h: Remove two functions that are not externally visible
anymore.
* src/comp.c (helper_save_restriction): Restore the previous code.
* src/bytecode.c (exec_byte_code): Restore the previous code.
* lisp/emacs-lisp/bytecomp.el (byte-compile-save-restriction):
Decrement unbinding count.
2023-02-14 Theodor Thornhill <theo@thornhill.no>
Don't indent template_string contents (bug#61503)
* lisp/progmodes/js.el (js--treesit-indent-rules): Add new rule.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add new rule.
2023-02-14 Jostein Kjønigsen <jostein@kjonigsen.net>
csharp-ts-mode: fontify compiler directives (bug#61512)
lisp/progmodes/csharp-mode.el: Add tree-sitter-queries for known C#
compiler-directives.
2023-02-14 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.3.7-209-gdab1dfa
2023-02-14 Andrea Corallo <akrl@sdf.org>
* Generate trampolines in a temporary directory if no other option is viable
* lisp/emacs-lisp/comp.el (comp--trampoline-abs-filename): Use
temporary file if no other option is viable.
2023-02-13 Eli Zaretskii <eliz@gnu.org>
Rename with/without-narrowing to with/without-restriction
* doc/lispref/commands.texi:
* doc/lispref/display.texi:
* doc/lispref/positions.texi:
* etc/NEWS:
* lisp/subr.el:
* src/buffer.c:
* src/editfns.c:
* src/keyboard.c:
* src/xdisp.c:
* test/src/buffer-tests.el: Rename with-narrowing and
without-narrowing to with-restriction and without-restriction.
Likewise with internal--with-narrowing and
internal--without-narrowing. All callers and documentation
changed.
2023-02-13 Juri Linkov <juri@linkov.net>
* lisp/repeat.el: Rename internal function and variable (bug#60980)
(repeat--transient-exitfun): Rename internal variable from
'repeat-exit-function'.
(repeat--clear-prev): Rename internal function from
'repeat--exit'.
2023-02-13 Andrea Corallo <akrl@sdf.org>
* Fix previous change
* lisp/emacs-lisp/generate-lisp-file.el (generate-lisp-file-trailer):
Fix previous change b6e2799aa1c.
2023-02-13 Andrea Corallo <akrl@sdf.org>
Rename native-comp-deferred-compilation-deny-list
* lisp/emacs-lisp/comp.el (native-comp-jit-compilation-deny-list)
(native-compile-async-skip-p): Rename
native-comp-deferred-compilation-deny-list into
native-comp-jit-compilation-deny-list.
(native-comp-deferred-compilation-deny-list): Mark it obsolete.
2023-02-13 Andrea Corallo <akrl@sdf.org>
Rename native-comp-deferred-compilation into native-comp-jit-compilation
* src/comp.c (maybe_defer_native_compilation, syms_of_comp):
Rename native-comp-deferred-compilation into
native-comp-jit-compilation.
* lisp/subr.el (native-comp-deferred-compilation): Mark
native-comp-deferred-compilation as obsolete.
* lisp/startup.el (native-comp-deferred-compilation)
(normal-top-level): Rename native-comp-deferred-compilation into
native-comp-jit-compilation.
* lisp/progmodes/elisp-mode.el
(emacs-lisp-native-compile-and-load): Likewise.
* lisp/emacs-lisp/generate-lisp-file.el
(generate-lisp-file-trailer): Likewise.
2023-02-13 Andrea Corallo <akrl@sdf.org>
Rename comp-enable-subr-trampolines into native-comp-enable-subr-trampolines
* src/data.c (Ffset): Rename comp-enable-subr-trampolines into
native-comp-enable-subr-trampolines.
* src/comp.c (syms_of_comp): Likewise.
* lisp/subr.el (comp-enable-subr-trampolines): Make
comp-enable-subr-trampolines obsolete.
* lisp/startup.el (native-comp-enable-subr-trampolines)
(normal-top-level): Rename comp-enable-subr-trampolines into
native-comp-enable-subr-trampolines.
* lisp/loadup.el (dump-mode): Likewise.
* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install)
(comp--trampoline-abs-filename): Likewise.
2023-02-13 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions): Improve doc
2023-02-13 Andrea Corallo <akrl@sdf.org>
Support `comp-enable-subr-trampolines' as string value
* src/comp.c (syms_of_comp): Update `comp-enable-subr-trampolines'.
* lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions)
(comp--trampoline-abs-filename): Support
`comp-enable-subr-trampolines' string value.
* src/data.c (Ffset): Use Vcomp_enable_subr_trampolines now.
2023-02-13 Gregory Heytings <gregory@heytings.org>
Merge branch 'scratch/fix-locked-narrowing'
2023-02-13 Andrea Corallo <akrl@sdf.org>
* Some more `inhibit-native-compile' clean-up
* lisp/emacs-lisp/generate-lisp-file.el (generate-lisp-file-trailer):
Use `native-comp-deferred-compilation'.
2023-02-13 Gregory Heytings <gregory@heytings.org>
Minor improvements to labeled narrowing
* lisp/subr.el (internal--with-narrowing):
(internal--without-narrowing): Remove unnecessary 'progn'.
* etc/NEWS: Mention 'with-narrowing' in the entry about long
lines.
* doc/lispref/positions.texi (Narrowing): Fix typo.
* doc/lispref/display.texi (Auto Faces): Use @pxref.
* doc/lispref/commands.texi (Command Overview): Use @pxref.
2023-02-13 Andrea Corallo <akrl@sdf.org>
Revert "Add new variable 'inhibit-native-compilation'"
This reverts commit 5fec9182dbeffa88cef6651d8c798ef9665d6681.
2023-02-13 Andrea Corallo <akrl@sdf.org>
Revert "Rename to inhibit-automatic-native-compilation"
This reverts commit f97993ee667f9be7589825f3a4fbc095d6944ec6.
2023-02-13 Ulrich Müller <ulm@gentoo.org>
Fix spurious display of eclipses in Calendar
* lisp/calendar/lunar.el (eclipse-check): Don't show an eclipse
unless the phase is new moon or full moon. (bug#61460)
* test/lisp/calendar/lunar-tests.el (lunar-test-eclipse-check)
(lunar-test-phase-list): Update tests.
2023-02-12 Yuan Fu <casouri@gmail.com>
Fix indentation for closing bracket in c-ts-mode (bug#61398)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): Move the rule earlier.
(c-ts-base-mode): Add move block type.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests.
2023-02-12 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.1-31-gaf1bb1
2023-02-12 Alan Mackenzie <acm@muc.de>
* src/.gdbinit (nextcons): Amend $.u.cdr to $.u.s.u.cdr (bug#61453).
(cherry picked from commit dde023b63ab82c38d33815409de5552f5bf349d1)
2023-02-12 Theodor Thornhill <theo@thornhill.no>
Add lambda_expression to c-ts-common-indent-type-regexp-alist
* lisp/progmodes/java-ts-mode.el (java-ts-mode): Tweak regexp.
2023-02-12 Philip Kaludercic <philipk@posteo.net>
Tolerate missing elpa-packages.eld files
* lisp/emacs-lisp/package-vc.el
(package-vc--download-and-read-archives): Replace
'condition-case-unless-debug' with a regular 'condition-case'.
It appears a few people using third-party archives that don't serve
package specifications have been having issues with package-vc, when
toggle-on-error is enabled. In their case, package-vc would raise an
error in its first invocation, but it would go on working normally
afterwards. As this behaviour is confusing and the user can't do much
about a missing elpa-packages.eld to begin with, we satisfy ourselves
with printing out a message and continuing on.
2023-02-12 Eli Zaretskii <eliz@gnu.org>
Avoid warning about 'load-path' in non-interactive sessions
* lisp/startup.el (command-line): Emit the warning about
'user-emacs-directory' in 'load-path' only in interactive
sessions. (Bug#61014)
2023-02-12 Ulrich Müller <ulm@gentoo.org>
Support webkit2gtk-4.1
* configure.ac: Check for webkit2gtk API version 4.1 first, then
fall back to 4.0.
2023-02-10 Gregory Heytings <gregory@heytings.org>
Save and restore the absence of narrowing locks
* src/editfns.c (narrowing_locks_save): Return the buffer with a
empty locks list when the current buffer has no narrowing locks.
(narrowing_locks_restore): Remove the narrowing locks if the
buffer had no narrowing locks.
2023-02-10 Tassilo Horn <tsdh@gnu.org>
bug-reference: prevent match-data clobbering (bug#61395)
* lisp/progmodes/bug-reference.el (bug-reference-fontify): Wrap call
to syntax-ppss in save-match-data since it can clobber our
match-data (bug#61395).
2023-02-10 Yuan Fu <casouri@gmail.com>
Rename LIMIT to DEPTH in tree-sitter functions (bug#61231)
I only changed the Lisp functions, internal functions are left
unchanged.
* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.
* src/treesit.c (Ftreesit_search_subtree)
(Ftreesit_induce_sparse_tree): Change LIMIT to DEPTH.
2023-02-09 Yuan Fu <casouri@gmail.com>
Add 'live' property to treesit-node-check (bug#61235)
* doc/lispref/parsing.texi (Accessing Node Information): Document.
* src/treesit.c (treesit_parser_live_p): New function.
(Ftreesit_node_check): Add 'live' property.
* test/src/treesit-tests.el (treesit-node-api): Add tests.
2023-02-09 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.3.7-205-gb8ad0da
2023-02-09 Eli Zaretskii <eliz@gnu.org>
Fix 'rmail-summary-output'
* lisp/mail/rmailsum.el (rmail-summary-output): Fix deletion of
messages when 'rmail-output-reset-deleted-flag' is non-nil.
(Bug#61380)
2023-02-09 Nicolas Martyanoff <nicolas@n16f.net>
lisp-mode: add docstring recognition for more common lisp symbols
* lisp/emacs-lisp/lisp-mode.el (define-compiler-macro)
(define-setf-expander, deftype): Add the 'doc-string-elt'
property for proper docstring highlighting in Common Lisp.
2023-02-09 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.3.7-204-gecff8c2
2023-02-09 Eli Zaretskii <eliz@gnu.org>
Fix Scala entry in Eglot's DB of LSP servers
* lisp/progmodes/eglot.el (eglot-server-programs): Support Scala
LSP named "metals", in addition to "metals-emacs". (Bug#61312)
2023-02-08 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Also don't reindent 'identifier' when inside ERROR
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Also don't reindent 'identifier' when inside ERROR.
2023-02-08 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fix indentation inside empty if/unless/case/def
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Add new rule.
* test/lisp/progmodes/ruby-ts-mode-tests.el
(ruby-ts-indent-empty-if-else): New test.
2023-02-08 Gregory Heytings <gregory@heytings.org>
Add an extensive test for labeled (locked) narrowing
* test/src/buffer-tests.el (test-labeled-narrowing): New test.
2023-02-08 Gregory Heytings <gregory@heytings.org>
Update the documentation about labeled (locked) narrowing
* src/xdisp.c (syms_of_xdisp) <fontification-functions>: Update
docstring.
* src/keyboard.c (syms_of_keyboard) <pre-command-hook>:
(syms_of_keyboard) <post-command-hook>: Update docstring.
* src/editfns.c:
(narrowing_locks): Explain why an alist is used instead of a
buffer-local variable.
(reset_outermost_narrowings): Point to recipes that demonstrate
why it is necessary to restore the user narrowing bounds when
redisplay starts.
(Fwiden): Update docstring.
(Fnarrow_to_region): Update docstring.
(Finternal__lock_narrowing): Update docstring.
(Finternal__unlock_narrowing): Update docstring.
(Fsave_restriction): Update docstring.
* src/buffer.c (syms_of_buffer)
<long-line-optimizations-region-size>: Update docstring.
(syms_of_buffer) <long-line-optimizations-bol-search-limit>:
Update docstring.
* lisp/subr.el (with-narrowing): Update docstring.
(without-narrowing): Update docstring.
* etc/NEWS: Mention the 'long-line-optimizations-region-size' and
'long-line-optimizations-bol-search-limit' options.
Announce the 'with-narrowing' and 'without-narrowing' forms.
* doc/lispref/positions.texi (Narrowing): Update the documentation
of 'narrow-to-region', 'widen' and 'save-restriction'. Document
the 'with-narrowing' and 'without-narrowing' special forms.
* doc/lispref/display.texi (Auto Faces): Update the documentation.
* doc/lispref/commands.texi (Command Overview): Document the fact
that the buffer is narrowed around 'pre-command-hook' and
'post-command-hook' when the buffer text includes very long lines.
2023-02-08 Gregory Heytings <gregory@heytings.org>
Rename two long line optimizations variables
* src/buffer.c (syms_of_buffer): Rename two variables.
* src/xdisp.c (get_locked_narrowing_begv):
(get_locked_narrowing_zv):
(handle_fontified_prop): Use the new names.
* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use the new
names.
2023-02-08 Gregory Heytings <gregory@heytings.org>
Add specific symbols for narrowings
* src/xdisp.c (syms_of_xdisp): Define symbol.
(handle_fontified_prop): Use it.
* src/keyboard.c (syms_of_keyboard): Define symbol.
(safe_run_hooks_maybe_narrowed): Use it.
2023-02-08 Gregory Heytings <gregory@heytings.org>
Add 'without-narrowing' macro
* lisp/subr.el (without-narrowing): New macro, companion (and
almost identical) to 'with-narrowing'.
2023-02-08 Gregory Heytings <gregory@heytings.org>
Make 'narrowing-lock' and 'narrowing-unlock' internal
* src/editfns.c (Finternal__lock_narrowing): Renamed from
'narrowing-lock'.
(Finternal__unlock_narrowing): Renamed from 'narrowing-unlock'.
(unwind_narrow_to_region_locked):
(narrow_to_region_locked):
(syms_of_editfns): Use the new names.
* lisp/subr.el (internal--with-narrowing): Use the new name.
2023-02-08 Gregory Heytings <gregory@heytings.org>
Fix 'save-restriction' for narrowing locks
* src/editfns.c (narrowing_locks_save):
(narrowing_locks_restore): Make them non-static.
* src/lisp.h: Make them externally visible.
* src/bytecode.c (exec_byte_code): Save and restore narrowing
locks.
* lisp/emacs-lisp/bytecomp.el (byte-compile-save-restriction):
Increment unbinding count.
* src/comp.c (helper_save_restriction): Save and restore narrowing
locks.
2023-02-08 LensPlaysGames <lensplaysgames@gmail.com> (tiny change)
* lisp/iimage.el (iimage-mode-buffer): Handle multiple regexps.
Go to the beginning of the buffer before searching every regexp in
iimage-mode-image-regex-alist.
2023-02-08 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/edmacro.el (edit-kbd-macro): Fix thinko (bug#61333)
Backported from commit 2273cdb40e1939f7c29a669f6a64e6a27738c1a5.
2023-02-07 Eli Zaretskii <eliz@gnu.org>
Fix crashes inside 'xfree' called from treesit.c
* src/treesit.c (treesit_load_language): Always xstrdup 'c_name',
to avoid crashes inside xfree. (Bug#61351)
2023-02-06 Yuan Fu <casouri@gmail.com>
Make java-ts-mode use the c-ts-common-indent-type-regexp-alist
* lisp/progmodes/java-ts-mode.el:
(java-ts-mode): Setup c-ts-common-indent-type-regexp-alist.
2023-02-06 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation
Sign, ok, there's another edge case: else if statements. Because
"else if" is usually implemented as just another if statement nested
in the else branch, this creates additional levels that indentation
needs to ignore.
I converted c-ts-common-indent-block-type-regexp +
c-ts-common-indent-bracketless-type-regexp into a new, more flexible
variable, c-ts-common-indent-type-regexp-alist, to avoid adding yet
more variables in order to recognize else and if statements.
* lisp/progmodes/c-ts-common.el:
(c-ts-common-indent-type-regexp-alist): New variable.
(c-ts-common-indent-block-type-regexp)
(c-ts-common-indent-bracketless-type-regexp): Remove variables.
(c-ts-common--node-is): New function.
(c-ts-common-statement-offset): Use the new variable, and add the
"else if" special case. Also merge the code of
c-ts-mode--fix-bracketless-indent, because now the code is much more
succinct.
(c-ts-mode--fix-bracketless-indent): Merge into
c-ts-common-statement-offset.
* lisp/progmodes/c-ts-mode.el:
(c-ts-base-mode): Setup c-ts-common-indent-type-regexp-alist.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
2023-02-06 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation
Turns out I shouldn't have removed the explicit rules. Anyway, now it
indents properly.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add tests
2023-02-06 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation (bug#61291)
Fix indentation for the semicolon in
while (str_a[i++] == str_b[j++])
;
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New rule.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
2023-02-06 Dmitry Gutov <dgutov@yandex.ru>
(eglot-completion-at-point): Return correct values in :company-kind
* lisp/progmodes/eglot.el (eglot-completion-at-point): Return the
correct values in :company-kind for "EnumMember" and "TypeParameter".
The convention is to use kebab case rather than plain downcasing.
Reported in https://github.com/company-mode/company-mode/issues/1370.
2023-02-06 Mattias Engdegård <mattiase@acm.org>
Tighten and simplify typescript compilation-mode regexps (bug#61104)
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Tighten regexps and simplify. Translate to rx.
* etc/compilation.txt: Add examples.
In collaboration with Jostein Kjønigsen.
2023-02-06 Tassilo Horn <tsdh@gnu.org>
Clarify bug-reference-auto-setup-functions docstring.
* lisp/progmodes/bug-reference.el (bug-reference-auto-setup-functions):
Add clarification to docstring that this variable is for packages, not
for users.
2023-02-06 Aleksandr Vityazev <avityazev@posteo.org>
* lisp/treesit.el (treesit): Fix shortdoc example form (bug#61318).
2023-02-06 Theodor Thornhill <theo@thornhill.no>
Use c-ts-common-statement-offset in java-ts-mode (bug#61142)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
matchers to enable c-ts-common machinery.
(java-ts-mode): Add regexps.
* lisp/progmodes/c-ts-common.el (c-ts-common-statement-offset): Fix
typo in documentation and use the new if statement helpers.
(c-ts-common-if-statement-regexp): New defvar.
(c-ts-common-nestable-if-statement-p): New defvar.
(c-ts-common--fix-nestable-if-statement): New helper.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add test for
complicated bracket matching indentation.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add indent
rules for bracketless statements.
2023-02-06 Theodor Thornhill <theo@thornhill.no>
Add array_initializer to java-ts-mode
Indent strings inside arrray_initializer one step:
public class Java {
void foo() {
return new String[]{
"foo", // These
"bar"
}
}
}
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
matcher.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
go-ts-mode: Highlight variable declarations
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Highlight variable declarations in 'definition' feature.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
go-ts-mode: Fix highlighting of function name in call_expression
* lisp/progmodes/go-ts-mode.el (go-ts-mode--font-lock-settings):
Remove :override from the 'property' rules and move them above
'variable' (bug#61302). Just like in rust-ts-mode.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
c-ts-mode: Highlight "property functions" as functions
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
Highlight "property functions" as functions (bug#61302).
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
rust-ts-mode: Fix highlighting of function name in call_expression
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
Remove :override from the 'property' rules and move them above
'variable' (bug#61302).
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
rust-ts-mode--font-lock-settings: Improve consistency
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
Remove the rule that highlighted scope identifier in a function call
as type. The existing rules will handle it when it does look like a
type (capitalized).
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
Make sure 'M-x show-paren-local-mode' turns on right away
* lisp/paren.el (show-paren--enabled-p): Extract from
'show-paren-function'.
(show-paren-local-mode): Use it in the :variable getter (bug#61098).
2023-02-05 Tassilo Horn <tsdh@gnu.org>
Add to bug-reference-auto-setup-functions after its declaring defvar
If it's the init-value of the defvar, add-hook from a third-party
package will suppress the default functions if it takes place before
bug-reference is loaded.
* lisp/progmodes/bug-reference.el (bug-reference-auto-setup-functions):
Add to bug-reference-auto-setup-functions after its declaring defvar.
2023-02-05 Juri Linkov <juri@linkov.net>
* lisp/vc/vc.el (vc-find-revision-no-save): Fix parens (bug#61256).
Move '(setq failed nil)' from UNWINDFORMS of 'unwind-protect' to BODYFORM.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
Fix inability to turn show-paren-local-mode on manually (bug#61098)
* lisp/paren.el (show-paren-local-mode): Don't kill the local
value when both local and global are t. Because the
show-paren-predicate check in show-paren-function also checks
whether a local (non-nil) value of this variable exists.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
rust-ts-mode: Highlight variable declarations
(rust-ts-mode--font-lock-settings): Change scoped_type_identifier
highlight to match similar cases. Highlight variable declarations
inside all kinds of destructuring patterns, not just function
definitions.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--fontify-pattern):
Rename from 'rust-ts-mode--fontify-parameter'. Check the id node's
parent to avoid touching type identifiers.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
rust-ts-mode--indent-rules: Indent to 0 at top level
2023-02-05 Alan Mackenzie <acm@muc.de>
Ensure upper bound of font-lock region is less than point-max
This fixes bug #61298. The new long-lines code may have narrowed a buffer
before font-lock-default-fontify-region gets called.
* lisp/font-lock.el (font-lock-default-fontify-region): Set `end' to point-max
if it is greater that it.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
Highlight more complex function parameters
* lisp/progmodes/rust-ts-mode.el
(rust-ts-mode--fontify-parameter): New function.
(rust-ts-mode--font-lock-settings): Use it.
2023-02-05 Jonas Bernoulli <jonas@bernoul.li>
No longer use transient in isearch-emoji-by-name
* lisp/isearch.el (isearch-emoji-by-name): Use 'emoji--read-emoji'
and if that returns derivations, 'completing-read' to select one
of them. This fixes bug#60740.
* lisp/international/emoji.el (emoji--init): Autoload.
(emoji--read-emoji): New function, which doesn't use transient
and returns a list of the glyph and all derivations, if any.
(emoji--choose-emoji): Use 'emoji--read-emoji'.
2023-02-05 Dmitry Gutov <dgutov@yandex.ru>
Make highlighting more regular across TS modes (bug#61205)
* doc/emacs/display.texi (Parser-based Font Lock):
Update description of treesit-font-lock-level, moving 'property' to
level 4.
* lisp/treesit.el (treesit-font-lock-level): Likewise, in docstring.
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Do that here.
* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode): Add a comment.
* lisp/progmodes/go-ts-mode.el (go-ts-mode): Add 'definition' to
level 1. Move 'function', 'property' and 'variable' to level 4.
(go-ts-mode--font-lock-settings): Move a bunch of existing rules
to 'definition'. Add highlighting of function parameters.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode)
(rust-ts-mode--font-lock-settings): Same. And also change "scoped
identifiers" highlights to only match capitalized names.
2023-02-05 Eli Zaretskii <eliz@gnu.org>
Document 'plistp'
* doc/lispref/lists.texi (Property Lists): Document 'plistp'.
(Bug#61293)
2023-02-05 Eli Zaretskii <eliz@gnu.org>
Fix display of raised/lowered composed text
* src/xdisp.c (fill_gstring_glyph_string): Adjust the base line of
the glyph string due to subscript/superscript. (Bug#61290)
2023-02-05 Eli Zaretskii <eliz@gnu.org>
Fix installation of tree-sitter grammar on MS-Windows
* lisp/treesit.el (treesit--install-language-grammar-1): Fix a
failure on MS-Windows when the old DLL is still being used.
(Bug#61289)
2023-02-05 Eli Zaretskii <eliz@gnu.org>
Update the Emacs FAQ for Emacs 29
* doc/misc/efaq.texi (New in Emacs 29, History of Emacs): Add new
section about Emacs 29.
2023-02-05 Eli Zaretskii <eliz@gnu.org>
Fix byte-compilation of *-ts-mode.el files
* lisp/treesit.el (treesit-font-lock-settings): Move to before
use, to prevent failure in byte-compiling modes which require this
file. (Bug#61282)
2023-02-04 Yuan Fu <casouri@gmail.com>
Make c-ts-mode-set-style's effect local (bug#61245)
Now c-ts-mode-set-style's effect is local, and there is a new function
c-ts-mode-set-global-style that changes the global setting.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-style-setter): Use c-ts-mode-set-style.
(c-ts-mode-indent-style)
(c-ts-mode--prompt-for-style): Minor change in docstring.
(c-ts-mode-set-global-style): New function (from c-ts-mode-set-style).
(c-ts-mode-set-local-style): Remove function (became c-ts-mode-set-style).
(c-ts-mode-set-style): Renamed from c-ts-mode-set-local-style.
* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts:
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Use
c-ts-mode-set-style.
2023-02-04 Dmitry Gutov <dgutov@yandex.ru>
c-ts-mode: Highlight name in parameter declarations
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
Uncomment parameter declaration highlighting (bug#61275).
(c-ts-mode--fontify-declarator): Check that identifier was found.
Some declarations can miss identifier name.
2023-02-04 Davide Masserut <dm@mssdvd.com>
Fix switch statement indentation for go-ts-mode (bug#61238)
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules): Add
indentation for type switch and select case blocks
* test/lisp/progmodes/go-ts-mode-resources/indent.erts: New .erts file
to test indentation of Go constructs and prevent regression of bug
fixes.
* test/lisp/progmodes/go-ts-mode-tests.el: New file with go-ts-mode
tests.
2023-02-04 Eli Zaretskii <eliz@gnu.org>
Fix bidi reordering of sequence of whitespace characters before a TAB
* src/bidi.c (bidi_level_of_next_char): Test the current level
only for characters whose original type is BN. (Bug#61269)
2023-02-04 Theodor Thornhill <theo@thornhill.no>
Add tests for compilation support for TypeScript (bug#61104)
* test/lisp/progmodes/compile-tests.el
(compile-tests--test-regexps-data): Add new test-cases.
(compile-test-error-regexps): Increase expected errors
2023-02-04 Jostein Kjønigsen <jostein@kjonigsen.net>
Add support for TypeScript compilation to compile.el (bug#61104)
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Add regexps.
2023-02-04 Eli Zaretskii <eliz@gnu.org>
Don't clobber match data in 'y-or-n-p'
* lisp/subr.el (y-or-n-p): Avoid clobbering caller's match data.
(Bug#61091)
2023-02-03 Dmitry Gutov <dgutov@yandex.ru>
Refine the previous change
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Fix a typo.
(ruby-ts--syntax-propertize): Use pcase-exhaustive to avoid typos.
Put the last s-t property after heredoc's end (apparently
parse-partial-sexp likes that more). Move first s-t property on
percent literals to the very beginning (to be refined later).
Differentiate the %r{} literals from /.../ ones -- tree-sitter
parses them exactly the same.
2023-02-03 Dmitry Gutov <dgutov@yandex.ru>
Add syntax-propertize-function to ruby-ts-mode
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query):
New variable.
(ruby-ts--syntax-propertize): New function.
(ruby-ts--parser-after-change): New function.
(ruby-ts-mode): Use both of them.
2023-02-03 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'header-line-indent-mode'
* doc/lispref/modes.texi (Header Lines): Rewrite the documentation
of 'header-line-indent-mode' and its two variables. Fix the
example.
* doc/lispref/display.texi (Pixel Specification): More accurate
description of what happens with :align-to in header-lines.
Improve indexing. (Bug#61239)
* src/buffer.c (syms_of_buffer) <header-line-format>:
* lisp/display-line-numbers.el (header-line-indent)
(header-line-indent-width, header-line-indent-mode): Doc fixes.
* etc/NEWS: Enhance the announcement of 'header-line-indent-mode'.
2023-02-03 F. Jason Park <jp@neverwas.me>
Don't casemap erc-sasl-user when set to :nick
* lisp/erc/erc-sasl.el (erc-sasl-user): Fix doc string.
(erc-sasl--get-user): Don't apply casemapping when the option
`erc-sasl-user' is set to `:nick'. While many servers and
auth-services providers perform case-folding when comparing SASL
usernames, only some recognize RFC1459 mappings, which ERC previously
applied blindly. Instead, ERC now behaves like other clients in
leaving such preparation in the hands of the server. This bug was
introduced with changes new to ERC 5.5 and Emacs 29 (bug#29108).
2023-02-03 Robert Pluim <rpluim@gmail.com>
Improve keymap-global-set and keymap-local-set interactive use fix
* lisp/keymap.el (keymap-global-set, keymap-local-set): Add optional
`interactive' arg and use it to decide when to convert the key
specification to a string. Add `advertised-calling-convention'
declarations. (Bug#61149)
2023-02-02 Yuan Fu <casouri@gmail.com>
Make c-ts-mode indent tests side-effect-free
Running indent tests changes the global value of
c-ts-mode-indent-style. That's not good. This change fixes that.
I also refactored the indent style functions a bit.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--prompt-for-style): New function.
(c-ts-mode-set-local-style): New function.
(c-ts-mode-set-style): Use c-ts-mode--prompt-for-style. Use
derived-mode-p when testing for major mode. Remove check of current
buffer's major mode since it doesn't matter.
* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts:
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Use
c-ts-mode-set-local-style to set the indent style locally.
2023-02-02 Yuan Fu <casouri@gmail.com>
Call treesit_record_change in insert_from_gap_1
Before this change, insert_from_gap calls treesit_record_change but
insert_from_gap_1 doesn't. However, insert_from_gap_1 is a public
function and is called in many other places outside of insdel.c. This
could lead to tree-sitter's parse tree becoming out-of-sync with the
buffer content.
This change might fix bug#60650.
* src/insdel.c (insert_from_gap_1): Call treesit_record_change.
(insert_from_gap): Remove call to treesit_record_change.
* admin/notes/tree-sitter/treesit_record_change: New file.
2023-02-02 Yuan Fu <casouri@gmail.com>
Use c-ts-common-statement-offset for closing brackets too
Merge c-ts-mode--close-bracket-offset into
c-ts-common-statement-offset.
* lisp/progmodes/c-ts-common.el:
(c-ts-common-statement-offset): Handle closing brackets too.
(c-ts-mode--close-bracket-offset): Remove function.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use
c-ts-common-statement-offset for closing brackets.
2023-02-02 Eli Zaretskii <eliz@gnu.org>
Minor improvements in sqlite.c
* src/sqlite.c (Fsqlite_next): Doc fix. Return nil if SQLITE_DONE
was once seen for this statement. (Bug#61151)
(row_to_value): Cons the value in reverse, to avoid the Fnreverse
call. Patch by Helmut Eller <eller.helmut@gmail.com>.
(Bug#61165)
2023-02-02 Dmitry Gutov <dgutov@yandex.ru>
(treesit_predicate_match): Match node text against regexp without consing
* src/treesit.c (treesit_predicate_match): Match node text against
regexp without creating a new string object (bug#60953).
* src/search.c (search_buffer): Make not static.
Delete declaration near the beginning of the file.
* src/lisp.h: Declare it here.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-method-p):
Remove function.
(ruby-ts--font-lock-settings): Use the regexp with :match directly.
2023-02-02 Eli Zaretskii <eliz@gnu.org>
Improve documentation of gdb-mi's dedicated windows
* doc/emacs/building.texi (Other GDB Buffers): Describe the I/O
buffer and commands to show individual specialized windows.
Improve indexing.
2023-02-02 Kévin Le Gouguec <kevin.legouguec@gmail.com>
Avoid spurious pause in kill-ring-save (Bug#60841)
'indicate-copied-region' checks whether the region is "highlighted"
and if not, briefly moves point to mark to give a visual cue of the
extent of text that was saved to the kill ring.
The region is considered "highlighted" if (a) it is active and (b) its
face specifies a :background. That latter condition does not account
for the multiple ways in which the face can make the region "visually
distinct" from the default face, so switch to the more extensive
predicate face-differs-from-default-p.
The patch also fixes a couple of issues with the predicate's
implementation, and introduces a new user option in case anyone
happened to enjoy unconditional blinking.
* lisp/faces.el (face-differs-from-default-p): Filter out :extend; add
rationale for the attributes we ignore.
* lisp/simple.el (copy-region-blink-predicate): Add option to let
users explicitly opt into or out of blinking point and mark.
(region-indistinguishable-p): New function to detect
"if there is currently no active region highlighting", leveraging
face-differs-from-default-p.
(indicate-copied-region): Use it.
* src/xfaces.c (merge_face_ref): Allow :stipple to be nil, since it is
a documented valid value for that attribute.
* etc/NEWS: Announce user option.
2023-02-02 Eli Zaretskii <eliz@gnu.org>
Change the default of 'treesit-defun-tactic' for 'c-ts-mode'
* lisp/progmodes/c-ts-mode.el (c-ts-mode): Set
'treesit-defun-tactic' as appropriate for C. (Bug#61208)
2023-02-02 Eli Zaretskii <eliz@gnu.org> (tiny change)
Fix docstring fontification of CL's 'defstruct'
* lisp/emacs-lisp/lisp-mode.el (defstruct): Set 'doc-string'
property. Patch by Nicolas Martyanoff <nicolas@n16f.net>.
2023-02-02 Eli Zaretskii <eliz@gnu.org>
Teach 'hs-minor-mode' about tree-sitter based modes
* lisp/progmodes/hideshow.el (hs-special-modes-alist): Teach
'hs-minor-mode' about tree-sitter based modes. (Bug#61232)
2023-02-02 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'repeat-mode' and related variables
* lisp/bindings.el (next-error-repeat-map)
(page-navigation-repeat-map, undo-repeat-map):
* lisp/tab-bar.el (tab-bar-switch-repeat-map)
(tab-bar-move-repeat-map):
* lisp/window.el (other-window-repeat-map)
(resize-window-repeat-map): Mention repeatable commands in the doc
strings.
* lisp/repeat.el (repeat-exit-timeout, repeat-check-key)
(repeat-echo-function, repeat-mode, repeat-check-key)
(repeat-check-map, repeat-echo-message-string)
(repeat-echo-message, repeat-echo-mode-line)
(describe-repeat-maps): Improve wording of doc strings.
(describe-repeat-maps): Improve wording of the heading line.
(Bug#61183)
* doc/emacs/basic.texi (Repeating): Clarify and improve wording of
'repeat-mode' documentation.
2023-02-01 Nicolas Martyanoff <nicolas@n16f.net>
(eshell--complete-commands-list): Fix regression in fix to bug#48995
Copyright-Paperwork-Exempt: Yes
* lisp/eshell/em-cmpl.el (eshell--complete-commands-list):
Fix misuse of `completion-table-dynamic` when completing a file name.
2023-02-01 Juri Linkov <juri@linkov.net>
* doc/emacs/basic.texi (Repeating): Mention describe-repeat-maps (bug#61183).
* lisp/repeat.el (describe-repeat-maps): Add more explanation to
the docstring. Suggested by Robert Pluim <rpluim@gmail.com>.
2023-02-01 Eli Zaretskii <eliz@gnu.org>
Unbreak the MS-Windows build
* src/treesit.c (ts_query_pattern_count) [WINDOWSNT]: Load from
the library and define as macro.
2023-01-31 Dmitry Gutov <dgutov@yandex.ru>
(Ftreesit_query_capture): Cache list of predicates for given pattern index
* src/treesit.c (Ftreesit_query_capture):
Cache list of predicates for given pattern index (bug#60953).
2023-01-31 Robert Pluim <rpluim@gmail.com>
* lisp/keymap.el (keymap-global-unset): Correct prompt
2023-01-31 Eli Zaretskii <eliz@gnu.org>
Fix cursor-in-echo-area on TTY frames
* src/dispnew.c (update_frame_1): Fix off-by-one error when
positioning the cursor in the echo-area. (Bug#61184)
2023-01-30 Jonas Bernoulli <jonas@bernoul.li>
Update to Transient v0.3.7-196-gb91f509
2023-01-30 Alan Mackenzie <acm@muc.de>
CC Mode: Fix a coding bug in c-make-keywords-re. This should fix bug #61135
* lisp/progmodes/cc-defs.el (c-make-keywords-re): Generate "\>" components in
result regexp when argument ADORN is `appendable'. This fully fixes a bug
which was half-fixed on 2019-01-22.
2023-01-30 Juri Linkov <juri@linkov.net>
* lisp/isearch.el (isearch-emoji-by-name): Disable derived emoji (bug#60740).
Let-bind emoji--derived to nil to avoid the subsequent selection
of derived emoji that fails in transient.el.
2023-01-30 Eli Zaretskii <eliz@gnu.org>
Fix keymap inheritance in descendants of 'c-ts-base-mode'
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode-map): Rename from
'c-ts-mode-map'.
(c-ts-base-mode): Adjust accordingly. (Bug#60983)
2023-01-30 Robert Pluim <rpluim@gmail.com>
Fix interactive use of `keymap-local-set' and `keymap-global-set'
* lisp/keymap.el (keymap-global-set, keymap-local-set): Convert the
read key sequence to a string when called interactively. Based on a
patch from Stephen Berman <stephen.berman@gmx.net>. (Bug#61149)
2023-01-30 Michael Albinus <michael.albinus@gmx.de>
Fix password prompt in Tramp (do not merge)
* lisp/net/tramp.el (tramp-password-prompt-regexp):
Allow alternative trailing colons. (Bug#61168)
2023-01-29 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.1-23-gc45a05
2023-01-29 Eli Zaretskii <eliz@gnu.org>
Document tree-sitter features in the user manual
* lisp/progmodes/c-ts-mode.el (c-ts-mode-map): Bind "C-c .", for
consistency with CC mode.
* lisp/treesit.el (treesit-font-lock-level): Doc fix.
* doc/emacs/programs.texi (C Indent, Custom C Indent): Document
the indentation features of 'c-ts-mode'.
(Moving by Defuns): Document 'treesit-defun-tactic'.
* doc/emacs/files.texi (Visiting): Document
'treesit-max-buffer-size'.
* doc/emacs/display.texi (Traditional Font Lock)
(Parser-based Font Lock): New subsections.
* doc/emacs/emacs.texi (Top): Update top-level menu.
2023-01-29 Randy Taylor <dev@rjt.dev>
Fix dockerfile-ts-mode line continuation indentation (bug#61131)
Without this rule, line continuations are only indented after entering
the contents for the line and hitting TAB or RET.
For example:
```
EXPOSE 1 \
```
After hitting RET to go to the next line, point would end up at BOL
instead of lining up with the previous entry, like so:
```
EXPOSE 1 \
2
```
The new rule will indent it as so:
```
EXPOSE 1 \
2
```
* lisp/progmodes/dockerfile-ts-mode.el:
(dockerfile-ts-mode--indent-rules): New rule.
(dockerfile-ts-mode--line-continuation-p)
(dockerfile-ts-mode--line-continuation-anchor): New functions.
2023-01-29 Yuan Fu <casouri@gmail.com>
Use treesit-subtree-stat to determine treesit--font-lock-fast-mode
* lisp/treesit.el:
(treesit--children-covering-range-recurse): Return nil if LIMIT is
exceeded.
(treesit--font-lock-fast-mode): Change to a ternary value.
(treesit-font-lock-fontify-region): Enable fast mode based on the
result of treesit-subtree-stat.
2023-01-29 Yuan Fu <casouri@gmail.com>
Add treesit-subtree-stat
* src/treesit.c (Ftreesit_subtree_stat): New function.
* lisp/treesit.el (treesit): Add to shortdoc.
2023-01-29 Yuan Fu <casouri@gmail.com>
Move c-ts-mode--statement-offset to c-ts-common.el
Now it can be used by other C-like languages.
* lisp/progmodes/c-ts-common.el (c-ts-common-indent-offset):
(c-ts-common-indent-block-type-regexp):
(c-ts-common-indent-bracketless-type-regexp): New variables.
(c-ts-common-statement-offset):
(c-ts-mode--fix-bracketless-indent):
(c-ts-mode--close-bracket-offset): New functions.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Change
c-ts-mode--statement-offset to c-ts-common-statement-offset.
The (parent-is "if_statement") rules are now handled by (node-is
"compound_statement").
(c-ts-mode--statement-offset-post-processr):
(c-ts-mode--statement-offset):
(c-ts-mode--fix-bracketless-indent): Move to c-ts-common.el.
(c-ts-base-mode): Setup c-ts-common stuff.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Make the test
more challenging.
2023-01-29 Yuan Fu <casouri@gmail.com>
Fix <> syntax in rust-ts-mode
Similar to bug#60351, the angle brackets in rust-ts-mode are not
recognized as pairs when they should be. This change copies the
function used by c++-ts-mode and adapts it to rust-ts-mode.
* lisp/progmodes/rust-ts-mode.el:
(rust-ts-mode--syntax-propertize): New function.
(rust-ts-mode): Set up syntax-propertize-function.
2023-01-29 Eli Zaretskii <eliz@gnu.org>
Fix spurious errors on Windows when deleting temporary *.eln files
* lisp/emacs-lisp/comp.el (comp--native-compile): On MS-Windows,
ignore errors when deleting a temporary .eln file. (Bug#60996)
2023-01-28 Theodor Thornhill <theo@thornhill.no>
Fix java class member without access modifier (bug#61115)
This
```
public class T {
@Autowired
String a;
}
```
Should be indented as:
```
public class T {
@Autowired
String a;
}
````
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
rule to match edge case of field_declaration indentation.
2023-01-28 Theodor Thornhill <theo@thornhill.no>
Make treesit-font-lock-level a defcustom
* lisp/treesit.el (treesit--font-lock-level-setter): Setter for the
new defcustom.
(treesit-font-lock-level): Turn it into a defcustom.
2023-01-28 Theodor Thornhill <theo@thornhill.no>
Add c-ts-mode-set-style and :set for c-ts-mode-indent-style
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-style-setter): New
setter for the indent style defcustom.
(c-ts-mode-indent-style): Don't quote the values and refer to the
setter.
(c-ts-mode-set-style): New command to interactively set the indent
style.
(c-ts-mode--get-indent-style): New function renamed from
'c-ts-mode--set-indent-style'.
2023-01-28 Juri Linkov <juri@linkov.net>
Minor documentation improvements for outline-minor-mode (bug#61062)
* doc/emacs/text.texi (Outline Minor Mode, Outline Minor Mode):
Add pxrefs to "Icons" and "Outline Visibility".
* etc/NEWS: Mention outline-minor-mode for two modes.
2023-01-28 Brian Leung <leungbk@posteo.net>
python.el: Use correct regexp when enabling python-ts-mode
* lisp/progmodes/python.el: Use "python[0-9.]*" regexp for
'interpreter-mode-alist', and not 'auto-mode-alist'. (Bug#61090)
2023-01-27 Dmitry Gutov <dgutov@yandex.ru>
Make project-current not error out inside non-existent dirs
* lisp/progmodes/project.el (project-try-vc):
Use condition-case to catch 'file-missing' (bug#61107).
* test/lisp/progmodes/project-tests.el
(project-vc-nonexistent-directory-no-error): New test.
2023-01-27 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'shell-command-dont-erase-buffer'
* doc/emacs/misc.texi (Single Shell):
* lisp/simple.el (shell-command, shell-command-on-region):
Document that non-nil value of 'shell-command-dont-erase-buffer'
affects what is displayed in the echo area after the command.
(Bug#61100)
2023-01-27 Jostein Kjønigsen <jostein@kjonigsen.net>
Fix errors in fontification of JavaScript import-statements (bug#61083)
Currently js-ts-mode handles imports with aliases incorrectly. To be
consistent with how we otherwise do things, we should only highlight
the variable which is new and/or introduced, in this case "someAlias".
Attached is a patch which fontifies import-declarations somewhat more
correctly.
The following cases have been tested and all fontify properly:
import gnu from "fsf"; // highlights gnu
import { gnu2 } from "fsf2"; // highlights gnu2
import { gnu as gnu3 } from "fsf3"; // highlights gnu3
import * as gnu4 from "fsf4"; // highlights gnu4
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Add new
import_clause rules that adhere to the comment above.
2023-01-27 Jostein Kjønigsen <jostein@kjonigsen.net>
Fix fontification TypeScript of import-statements (bug#61081)
Currently typescript-ts-mode and tsx-ts-mode handles imports with
aliases incorrectly.
Consider the following case:
import { someFunc as someAlias } from "module";
In this case the entire import ("someFunc as someAlias") will be
highlighted as a variable name. "as" is also highlighted as a
variable, rather than a reserved keyword.
To be consistent with how we otherwise do things, we should only
highlight the variable which is new and/or introduced, in this case
"someAlias".
Attached is a patch which fontifies import-declarations somewhat more
correctly.
The following cases have been tested and all fontify properly:
import gnu from "fsf"; // highlights gnu
import { gnu2 } from "fsf2"; // highlights gnu2
import { gnu as gnu3 } from "fsf3"; // highlights gnu3
import * as gnu4 from "fsf4"; // highlights gnu4
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Tweak import_clause rules to
adhere to the comment above.
2023-01-26 Basil L. Contovounesios <contovob@tcd.ie>
Work around package.el transitive dependency bug
Eglot already depends transitively on Xref 1.4.0 via Project,
but package.el doesn't pick up on this in Emacs 28
(which has Xref 1.3.0).
* lisp/progmodes/eglot.el (Version): Bump to 1.11.
(Package-Requires): Explicitly require Xref 1.4.0, which is
the version already required by Project, for the benefit of
Emacs 28 (bug#61048).
2023-01-26 Eli Zaretskii <eliz@gnu.org>
Fix xt-mouse on terminals that report UTF-8 encoded coordinates
* lisp/xt-mouse.el (xterm-mouse--read-coordinate): Fix conversion
of mouse coordinates in rxvt-unicode. Patches by Vladimir
Panteleev <git@cy.md> and Jared Finder <jared@finder.org>.
(Bug#61022)
2023-01-26 Randy Taylor <dev@rjt.dev>
Fix go-ts-mode indentation and set indent offset to 8 (Bug#61006)
* lisp/progmodes/go-ts-mode.el (go-ts-mode-indent-offset): Change
default value to 8.
(go-ts-mode--indent-rules): Add indentation for parameters and
interfaces.
2023-01-26 Eli Zaretskii <eliz@gnu.org>
Fix doc strings of window-splitting commands
* lisp/window.el (split-window-below, split-window-right): Doc
fixes. (Bug#60886)
2023-01-26 Yuan Fu <casouri@gmail.com>
Fix indentation for c-ts-mode (bug#61026)
Fix indentation for things like
while (true)
if (true)
{
puts ("Hello");
}
Note that the outer while loop omits brackets.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--statement-offset-post-processr): New variable.
(c-ts-mode--statement-offset): Use the new function.
(c-ts-mode--fix-bracketless-indent): New function.
(c-ts-base-mode): Use the new function.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New tests.
2023-01-26 Yuan Fu <casouri@gmail.com>
Fix call to treesit_record_change in insdel.c
The start position of the change shouldn't be PT_BYTE, IIUC PT_BYTE is
actually the end position.
* src/insdel.c (insert_from_buffer): Move to here.
(insert_from_buffer_1): Remove call to treesit_record_change.
2023-01-26 Randy Taylor <dev@rjt.dev>
Add support for building tree-sitter modules with MinGW
* admin/notes/tree-sitter/build-module/build.sh: Add support for
building tree-sitter modules with MinGW.
2023-01-25 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-wrong-passwd-regexp): Fix regexp.
2023-01-25 Juri Linkov <juri@linkov.net>
* doc/emacs/text.texi (Outline Minor Mode): New node split from "Outline Mode"
(Outline Mode): Move all outline-minor-mode related information to the
new node "Outline Minor Mode" (bug#61062).
2023-01-25 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Don't reindent when "class" or "def" is under "ERROR"
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Don't reindent when "class" or "def" is under "ERROR" (bug#61017).
2023-01-25 Dmitry Gutov <dgutov@yandex.ru>
treesit-install-language-grammar: Provide default repo url
* lisp/treesit.el (treesit--check-repo-url): New function.
(treesit--install-language-grammar-build-recipe): Use it (bug#61051).
2023-01-25 Basil L. Contovounesios <contovob@tcd.ie>
Fix Dired face for directory symlinks
* lisp/dired.el (dired-font-lock-keywords): Fontify directory
symlinks with the value of dired-directory-face rather than its name
as a (nonexistent) face (bug#60977).
2023-01-25 Basil L. Contovounesios <contovob@tcd.ie>
Pacify --without-x unused function warning
* src/xfaces.c (font_maybe_unset_attribute): Move definition...
[HAVE_WINDOW_SYSTEM] (font_maybe_unset_attribute): ...to here, since
the function is used only when we HAVE_WINDOW_SYSTEM (bug#61049).
2023-01-25 Robert Pluim <rpluim@gmail.com>
Announce outline.el keymaps
* etc/NEWS: Announce new keymaps.
2023-01-25 Jostein Kjønigsen <jostein@kjonigsen.net>
Fix fontification of function-valued variables (bug#61053)
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Remove overrides and reorder
the variable_declarator rule.
2023-01-25 Theodor Thornhill <theo@thornhill.no>
Add new java indent rules
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Check
for enum_body_declarations and switch_label.
2023-01-24 Juri Linkov <juri@linkov.net>
Handle relative file names in vc-resynch-window and vc-resynch-buffer
* lisp/vc/vc-dispatcher.el (vc-resynch-window, vc-resynch-buffer):
While comparing with `buffer-file-name' if `file' is not absolute
use `expand-file-name' in `vc-root-dir'. This fixes the case of
refreshing the buffers after typing `C-x v = C-x v u' (bug#60897).
2023-01-24 Robert Pluim <rpluim@gmail.com>
Use named keymaps for outline buttons
https://lists.gnu.org/archive/html/emacs-devel/2023-01/msg00334.html
* lisp/outline.el (outline-button-icon-map)
(outline-overlay-button-map, outline-inserted-button-map):
Keymaps refactored from outline--create-button-icons and
outline--insert-button.
(outline--create-button-icons, outline--insert-button): Move
keymaps to separate variables.
2023-01-24 Juri Linkov <juri@linkov.net>
* lisp/vc/vc-bzr.el (vc-bzr--pushpull): Return buffer's process.
* lisp/vc/vc-git.el (vc-git--pushpull): Add comment.
* lisp/vc/vc.el (vc-pull-and-push): Expand docstring about
prerequisites for backend to support this command (bug#60569).
2023-01-23 Alan Mackenzie <acm@muc.de>
CC Mode: Change the default value of objc-font-lock-extra-types to nil
This fixes bug #59234, in which random identifiers in a .m file were getting
fontified as types.
* lisp/progmodes/cc-vars.el (objc-font-lock-extra-types): Change the default
value to nil.
* etc/NEWS: Mention the change in default value of objc-font-lock-extra-types,
and how to get the old behavior back.
2023-01-23 Jim Porter <jporterbugs@gmail.com>
Don't try to make a pipe process for remote processes in Eshell
Tramp currently isn't able to handle this, so the result will just
produce an error (bug#61024).
* lisp/eshell/esh-proc.el (eshell-gather-process-output): Check for a
remote 'default-directory' before trying to make a pipe process.
* test/lisp/eshell/esh-proc-tests.el
(esh-var-test/output/remote-redirect): New test.
2023-01-23 Eli Zaretskii <eliz@gnu.org>
* lisp/startup.el (command-line): Fix warning message. (Bug#61014)
2023-01-23 Juri Linkov <juri@linkov.net>
* lisp/find-dired.el (find-dired): Fix bug where M-p skips first history item.
Don't apply "skip first duplicate history item" trick when find-args
used as initial input is nil.
2023-01-22 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.1-16-ge37e9b
2023-01-22 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts--predefined-variables): Fix the $` and $' entries
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--predefined-variables):
Fix the $` and $' entries, somehow replaced by curly quote.
Reported by Mattias Engdegård.
2023-01-22 Juri Linkov <juri@linkov.net>
* lisp/find-dired.el (find-dired-with-command): Quote find-command-history.
2023-01-22 Juri Linkov <juri@linkov.net>
Generalize vc-pull-and-push to support more backends (bug#60569)
* lisp/vc/vc-git.el (vc-git-pull-and-push): Remove and move its logic to
vc-pull-and-push.
* lisp/vc/vc.el (vc-pull-and-push): Add code from vc-git-pull-and-push.
2023-01-22 Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
Add test suite for sgml-html-meta-auto-coding-function
* test/lisp/international/mule-tests.el (sgml-html-meta-pre)
(sgml-html-meta-post, sgml-html-meta-run, sgml-html-meta-utf-8)
(sgml-html-meta-windows-hebrew, sgml-html-meta-none)
(sgml-html-meta-unknown-coding, sgml-html-meta-no-pre)
(sgml-html-meta-no-post-less-than-10lines)
(sgml-html-meta-no-post-10lines, sgml-html-meta-utf-8-with-bom): Add.
2023-01-22 Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
Fix decoding HTML files from archives
* lisp/international/mule.el (sgml-xml-auto-coding-function): Avoid
signaling an error from coding-system-equal when the XML encoding tag
specifies an encoding whose type is 'charset'. (Bug#61005)
This is the same fix as in #df7ed10e for
sgml-xml-auto-coding-function.
2023-01-22 Eli Zaretskii <eliz@gnu.org>
Avoid crashes in batch Emacs sub-processes on MS-Windows
* src/w32.c (shutdown_handler): When run in a separate thread,
don't call functions that only the main (a.k.a. "Lisp") thread can
call; instead, arrange for maybe_quit to kill Emacs.
* src/w32fns.c (emacs_abort): Don't show GUI Abort dialogs in
non-interactive sessions. (Bug#60556)
2023-01-22 Theodor Thornhill <theo@thornhill.no>
Tweak BSD style indentation (bug#60984)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Simplify
rules.
* test/lisp/progmodes/c-ts-mode-resources/indent-bsd.erts: New
testfile with bsd style indentation examples.
* test/lisp/progmodes/c-ts-mode-tests.el
(c-ts-mode-test-indentation-bsd): Add a test for the new style.
2023-01-22 Theodor Thornhill <theo@thornhill.no>
Fix typo of exposed symbol name
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Remove
double hyphen.
2023-01-22 Theodor Thornhill <theo@thornhill.no>
Fix typo after move to common lib (bug#61001)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use correct
preset.
2023-01-21 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fix two additional cases with ruby-method-call-indent=nil
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Fix two additional cases with ruby-method-call-indent=nil.
* test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb:
Add examples.
2023-01-21 Dmitry Gutov <dgutov@yandex.ru>
ruby-mode.el: Expand some docstrings with examples
* lisp/progmodes/ruby-mode.el (ruby-align-chained-calls)
(ruby-method-params-indent): Expand docstrings with examples.
2023-01-21 Po Lu <luangruo@yahoo.com>
Minor fixes for Haiku
* lisp/frame.el (display-symbol-keys-p):
* lisp/simple.el (normal-erase-is-backspace-setup-frame): Add
support for Haiku.
2023-01-21 Theodor Thornhill <theo@thornhill.no>
Move c-like common utils into own library (bug#60961)
* lisp/progmodes/c-ts-common.el: New file.
* lisp/progmodes/c-ts-mode.el (treesit-induce-sparse-tree): Remove
unused declaration.
(c-ts-mode--indent-styles): Refer to the new library.
(c-ts-mode--looking-at-star,
c-ts-mode--comment-start-after-first-star,
c-ts-mode--comment-2nd-line-matcher,
c-ts-mode--comment-2nd-line-anchor, c-ts-mode--comment-regexp,
c-ts-mode--fill-paragraph, c-ts-mode--fill-block-comment): Move to
c-ts-common and expose as public.
(c-ts-mode-comment-setup): Move to c-ts-common.
* lisp/progmodes/csharp-mode.el (c-ts-common): Require new library.
(csharp-ts-mode--indent-rules): Refer to the new symbols.
(csharp-ts-mode): Use new function.
* lisp/progmodes/java-ts-mode.el (c-ts-common): Require new library.
(java-ts-mode--indent-rules): Refer to the new symbols.
(java-ts-mode): Use new function.
* lisp/progmodes/js.el (c-ts-common): Require new library.
(js--treesit-indent-rules): Refer to the new symbols.
(js-ts-mode): Use new function.
* lisp/progmodes/rust-ts-mode.el (c-ts-common): Require new library.
(rust-ts-mode--indent-rules): Refer to the new symbols.
(rust-ts-mode): Use new function.
* lisp/progmodes/typescript-ts-mode.el (c-ts-common): Require new
library.
(typescript-ts-mode--indent-rules): Refer to the new symbols.
(typescript-ts-base-mode): Use new function.
2023-01-21 Michael Albinus <michael.albinus@gmx.de>
Fix file-regular-p in Tramp
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test18-file-attributes)
(tramp-archive-test21-file-links):
* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
(tramp-test21-file-links): Adapt tests.
* lisp/net/tramp.el (tramp-handle-file-regular-p): Fix symlink
case. (Bug#60943)
2023-01-21 Theodor Thornhill <theo@thornhill.no>
Fix typo in c-ts-mode (bug#60932)
* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-block-type-regexp):
enumerator, not enumeratior.
2023-01-20 Mike Kupfer <kupfer@rawbw.com>
MH-E: handle removal of mhparam libdir from nmh 1.8
* lisp/mh-e/mh-e.el (mh-variant-nmh-info): If "libdir" doesn't
work, try "libexecdir" (Bug#60952) (SF#491).
2023-01-20 Theodor Thornhill <theo@thornhill.no>
Use point-min to anchor top-level constructs (bug#60602)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): New anchor.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
anchor.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules): New anchor.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): New anchor.
2023-01-20 Dmitry Gutov <dgutov@yandex.ru>
* lisp/org/ob-ruby.el: Fix outdated comments.
2023-01-20 Dmitry Gutov <dgutov@yandex.ru>
(project-try-vc): Add string-start and string-end anchors to marker-re
* lisp/progmodes/project.el (project-try-vc):
Add string-start and string-end anchors to marker-re (bug#60956).
2023-01-20 Robert Pluim <rpluim@gmail.com>
Make `keymap-set-after' work for menus
It still doesn't work for an AFTER that's a key, though, since
`key-parse' produces vectors, and keymaps contain integers.
* lisp/keymap.el (keymap-set-after): Only parse AFTER as a key if it's
a string. For consistency, use `key-parse' on the definition if it's
a string, just like `keymap-set'.
* test/src/keymap-tests.el (keymap-tests--command-3): New dummy command.
(keymap-set-after-menus): New test. Check that we can insert a menu
item after a specific entry.
2023-01-20 Robert Pluim <rpluim@gmail.com>
Use `key-parse' in `keymap-lookup'
It's stricter than `kbd', and doesn't try to do anything with key
sequences that look like macros.
* lisp/keymap.el (keymap-lookup): Use `key-parse' instead of `kbd'.
* test/src/keymap-tests.el (keymap-set-after-menus): Test the
`keymap-set-after' API.
2023-01-20 Robert Pluim <rpluim@gmail.com>
Improve `keymap-set-after' documentation
* doc/lispref/keymaps.texi (Changing Key Bindings): Mention `key-valid-p'
(Modifying Menus): Correct description of KEY arg.
2023-01-20 Robert Pluim <rpluim@gmail.com>
Handle after arg correctly in `keymap-set-after'
* lisp/keymap.el (keymap-set-after): AFTER: t means the same as nil,
so just change it to nil. (Bug#60867)
2023-01-20 F. Jason Park <jp@neverwas.me>
Don't load erc-goodies atop erc.el
* lisp/erc/erc.el: Commit c2d657e7c4fd9685591f2120007eabf78745919d
"Move ERC's core dependencies to a separate file" ironed out ERC's
interwoven dependencies for the better but didn't cleanly sidestep the
goodies interdependency, specifically with regard to custom options.
This reverts the tiny portion impacting this aspect by once again
requiring `erc-goodies' at the very end of ERC's main library. Special
thanks to Libera.Chat user jrm for reporting this bug.
2023-01-20 Eli Zaretskii <eliz@gnu.org>
Make tree-sitter based modes optional
* lisp/progmodes/c-ts-mode.el: Update Commentary. Make
'auto-mode-alist' update conditional on the tree-sitter and
grammar libraries being available.
* lisp/progmodes/cmake-ts-mode.el:
* lisp/progmodes/csharp-mode.el:
* lisp/progmodes/dockerfile-ts-mode.el:
* lisp/progmodes/go-ts-mode.el:
* lisp/progmodes/java-ts-mode.el:
* lisp/progmodes/js.el:
* lisp/progmodes/json-ts-mode.el:
* lisp/progmodes/python.el:
* lisp/progmodes/ruby-ts-mode.el:
* lisp/progmodes/typescript-ts-mode.el:
* lisp/textmodes/css-mode.el:
* lisp/textmodes/toml-ts-mode.el:
* lisp/textmodes/yaml-ts-mode.el: Make 'auto-mode-alist' update
for tree-sitter based modes be conditional on the tree-sitter and
grammar libraries being available. (Bug#60559)
2023-01-19 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Claw back half of the performance drop from last change
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-method-p):
New function.
(ruby-ts--font-lock-settings): Use it instead of :match.
2023-01-19 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts-mode): Rename 'builtin-functions' to 'builtin-function'
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings)
(ruby-ts-mode): Rename 'builtin-functions' to 'builtin-function',
for consistency with similar features.
2023-01-19 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Highlight builtin methods
* lisp/progmodes/ruby-mode.el (ruby-builtin-methods-with-reqs)
(ruby-builtin-methods-no-reqs): New constants, extracted.
(ruby-font-lock-keywords): Replace values with references.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--builtin-methods): New
variable. Construct regexp from aforementioned constants' values.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Use it.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
Add new font-lock feature: builtin-functions.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--predefined-constants)
(ruby-ts--predefined-variables): Unrelated to the rest of the
patch, add string-start and string-end anchors.
2023-01-19 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indent (bug#60873)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--statement-offset): Handle the edge case.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Add a test.
2023-01-19 Yuan Fu <casouri@gmail.com>
Fix various problems in treesit-explore-mode (bug#60800)
* lisp/treesit.el:
(treesit--explorer-kill-explorer-buffer): New function.
(treesit-explore-mode):
1. Move prompt for language earlier, and terminate early if language
not available.
2. Make sure desktop-save doesn't save the explorer buffer.
3. Kill the explorer buffer when the source buffer is killed.
2023-01-19 Michael Heerdegen <michael_heerdegen@web.de>
Fix an oversight in advice.el
This fixes an oversight from 77c3c464a16: "* lisp/emacs-lisp/advice.el
(ad-advised-functions): Make it a plain list" that caused an issue as
reported in Bug#60893.
* lisp/emacs-lisp/advice.el (ad-read-advised-function): Adjust to
handle the new type of elements of `ad-advised-functions'.
2023-01-19 Dmitry Gutov <dgutov@yandex.ru>
(treesit-simple-indent-presets): Have n-p-gp check for grandparent's presence
* lisp/treesit.el (treesit-simple-indent-presets): Have n-p-gp
check for grandparent's presence before checking its type.
2023-01-19 Dmitry Gutov <dgutov@yandex.ru>
ruby-toggle-block: Fix in ruby-ts-mode
* lisp/progmodes/ruby-mode.el (ruby-toggle-block): Make it work
with ruby-ts-mode. ruby-forward-sexp checks ruby-use-smie.
2023-01-19 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts--indent-rules): Indent inside empty parens properly
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Consider the case when there are no arguments inside the call yet.
* test/lisp/progmodes/ruby-ts-mode-tests.el
(ruby-ts-indent-call-no-args): Add test.
2023-01-19 Kai Tetzlaff <emacs@tetzco.de>
Fix bug in 'sieve-manage--append-to-log'
* lisp/net/sieve-manage.el (sieve-manage--append-to-log): Fix
log buffer creation. (Bug#54154) Do not merge to master.
2023-01-19 Alan Mackenzie <acm@muc.de>
CC Mode: Prevent two classes of "type" prematurely entering c-found-types
This fixes bug #60769. The two classes of "type" are foo and bar in
"foo d(bar () ...)", where the d could be a mistyped C-M-d.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New local variable
got-arglist. Refactor a sequence of enclosed `if' forms into a `cond' form.
Set got-arglist when needed. In CASE 2, set unsafe-maybe to inhibit foo
being entered into c-found-types. In CASE 19, likewise set unsafe-maybe, to
inhibit bar entering c-found-types.
2023-01-18 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Use font-lock-constant-face for true/false/nil
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Use font-lock-constant-face for true/false/nil.
2023-01-18 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts--indent-rules): Add a rule for continuation of a hash pair
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Add a rule for continuation of a hash pair.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples.
2023-01-18 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts--parent-call-or-bol): Handle more cases with nested literals
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol):
Handle more cases with nested literals.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples.
2023-01-18 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts--statement-container-regexp): Remove "parenthesized_statements"
* lisp/progmodes/ruby-ts-mode.el
(ruby-ts--statement-container-regexp): Remove
"parenthesized_statements", it's not really a statement container,
not one we'd use for indentation alignment anyway.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb: Add examples.
2023-01-18 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Handle indent in parenless calls much closer to ruby-mode
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--parent-call-or-bol):
New function.
(ruby-ts--indent-rules): Use it for cases which need special
anchoring logic when inside a parenless method call.
Remove the ad-hoc handling of pair-hash-pair etc indentation,
which was there only for the parenless cases, apparently.
Have "No paren, ruby-parenless-call-arguments-indent is nil" case
align to the statement, if only because ruby-mode does that.
* test/lisp/progmodes/ruby-ts-mode-tests.el:
Run indent test for ruby-parenless-call-arguments-indent.rb.
2023-01-18 Juri Linkov <juri@linkov.net>
Fix split-window-below for the case when split-window-keep-point is nil.
* lisp/window.el (split-window-below): Don't try to move point when
split-window-keep-point is nil and window-to-split is not the selected window
or nil (that defaults to the selected window) because code makes sense
only for the selected window.
(split-window-below, split-window-right): Improve docstrings (bug#60886)
2023-01-18 Juri Linkov <juri@linkov.net>
Rebind in read-regexp-map M-c to M-s c compatible with search-map
Also it's compatible with 'M-s c' (isearch-toggle-case-fold)
used during Isearch. Also makes possible to use the global keybinding
'M-c' (capitalize-dwim) in the minibuffer.
* doc/lispref/minibuf.texi (Text from Minibuffer): Rename M-c to M-s c.
* lisp/replace.el (read-regexp-map): Rebind M-c to M-s c (bug#60741).
(read-regexp-toggle-case-fold): Rename from read-regexp-toggle-case-folding
to more standard name.
2023-01-18 Juri Linkov <juri@linkov.net>
* lisp/vc/vc-dir.el: Make keys % m and * % compatible with Dired
(vc-dir-mode-map): Replace % for vc-dir-mark-by-regexp
with % m in regexp-map and * % in mark-map (bug#60887).
* doc/emacs/maintaining.texi (VC Directory Commands): Replace %
with % m and * %. Mention vc-dir-mark-registered-files.
2023-01-18 Jim Porter <jporterbugs@gmail.com>
Use proper types for Eshell warnings
* lisp/eshell/esh-var.el (eshell-get-variable):
* lisp/eshell/em-basic.el (eshell/echo): Don't use ':warning'; that's a
warning level, not a warning type.
2023-01-18 Eli Zaretskii <eliz@gnu.org>
Improve the documentation of 'auto-mode-alist' search
* doc/emacs/modes.texi (Choosing Modes): Expand the description of
"recursive extension stripping" using 'auto-mode-alist'.
(Bug#60930)
2023-01-18 Yuan Fu <casouri@gmail.com>
Revert "Revert "Add c-or-c++-ts-mode (bug#59613)""
This reverts commit d46f7f4edcce14e6cbd8e2d7091dbabbe08defc1.
Aaaactually, we need this, otherwise we can't use tree-sitter based C
mode for header files.
2023-01-18 Yuan Fu <casouri@gmail.com>
Make it harder to misactivate tree-sitter font-lock fast mode
This has been brought up in bug#60691 and bug#60223. I proposed a fix
by testing the size of the tree rather than measuring the query time.
But after some thought, I fear that just looking at the size will give
us false-negatives. So I kept the time-based activation, just added a
grace count to reduce false-positives.
* lisp/treesit.el:
(treesit--font-lock-fast-mode-grace-count): New variable.
(treesit--font-lock-notifier): Only activate fast mode after 5
offenses.
2023-01-17 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Obey the option ruby-method-call-indent
* lisp/progmodes/ruby-ts-mode.el
(ruby-ts--method-call-indent-p): New function.
(ruby-ts--indent-rules): Use it.
* test/lisp/progmodes/ruby-ts-mode-tests.el:
Run indent test for ruby-method-call-indent.rb.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
Add explicit value for ruby-method-call-indent.
2023-01-17 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Obey the option ruby-after-operator-indent
* lisp/progmodes/ruby-ts-mode.el
(ruby-ts--after-op-indent-p): New function.
(ruby-ts--indent-rules): Use it.
* test/lisp/progmodes/ruby-ts-mode-tests.el:
Run indent test for ruby-after-operator-indent.rb.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
Make sure indentation vars are at their default values.
2023-01-17 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fix indent after operator or conditional
Make it match ruby-mode's indentation behavior.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--binary-indent-anchor):
New function.
(ruby-ts--indent-rules): Use it instead of a composite matcher.
Add a rule for 'conditional'.
(ruby-ts--assignment-ancestor, ruby-ts--is-in-condition)
(ruby-ts--endless-method): Remove.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
Add examples.
2023-01-17 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fix/change indentation of a continuation method call
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Fix/change indentation of a continuation method call.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
New examples.
2023-01-17 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fix indent inside parenthesized_expr and else/end after unless
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Fix indentation for parenthesized_expression and else/end after
'unless'.
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
New examples.
2023-01-17 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Fix the rules for hanging arrays and hashes
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Fix the rules for hanging arrays and hashes (to line up to
parent-bol instead of the opening brace).
* test/lisp/progmodes/ruby-mode-resources/ruby-ts.rb:
New file with examples.
* test/lisp/progmodes/ruby-ts-mode-tests.el: Use it here.
2023-01-17 Jim Porter <jporterbugs@gmail.com>
Add more detail about how to invoke Eshell commands
* doc/misc/eshell.texi (Variables): Move footnote explaining "REPL"
from here...
(Top): ... to its first use here.
(Commands): Move explanation about kernel functions to here.
(Invocation): Describe command form and Lisp form. Fix documentation
about priority of commands in command form.
(Arguments): Add a cross reference to the Invocation node.
2023-01-17 Alan Mackenzie <acm@muc.de>
CC Mode: On removal of "typedef", remove pertinent types from c-found-types
For this purpose, record the type names declared by typedef in a text
property, c-typedef, on the typedef. On any change to that "typedef" or a
type, remove the old identifier(s) from c-found-types.
This should fix bug #59671.
* lisp/progmodes/cc-defs.el (c-search-forward-non-nil-char-property): New
macro.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Move the scope of
identifier-start from the "inner" let form to the outer one. Amend the
return value such that the middle element of the second element is now the
position of the "typedef", not merely non-nil.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Disregard the LIMIT
parameter when fontifying the declarators of a typedef construct. Also in
this case, set the c-typedef text property on the "typedef" to the list of
declared types. Amend this list when these declared types change.
(c-font-lock-single-decl): Massage the `types' argument given to
c-font-lock-declarators.
(c-font-lock-cut-off-declarators): Amend to work when the starting point of
the fontification is inside a brace block.
* lisp/progmodes/cc-mode.el (c-before-change-de-typedef)
(c-after-change-de-typedef): New functions.
(c-update-new-id): Replace the erroneous c-end-of-current-token with a clause
containing c-forward-token-2.
(c-before-change): Call c-before-change-de-typedef.
(c-after-change): Call c-after-change-de-typedef.
2023-01-17 F. Jason Park <jp@neverwas.me>
Don't preserve non-module minor modes in erc-open
* lisp/erc/erc-common.el (define-erc-module): Add symbol property
`erc-module' to minor modes defined as part of a module.
* lisp/erc/erc.el (erc--merge-local-modes): Be more conservative when
persisting local minor-mode state across ERC sessions. User and
third-party modes that were not defined via `define-erc-modules'
should be left alone.
(erc-open): Run major-mode hooks and enable minor modes after prompt
has been set up. This ensures that module-setup code can access a
fully initialized `erc-input-marker'.
* test/lisp/erc/erc-tests.el (erc--merge-local-modes): Add mocks for
`erc-module' symbol property and a test case covering some foreign ERC
mode.
(define-erc-module--global, define-erc-module--local): Expect the
`erc-module' symbol property to be defined for mode symbols and
aliases. (Bug#60784.)
2023-01-17 F. Jason Park <jp@neverwas.me>
Use correct buffer for local-module vars in erc-open
* lisp/erc/erc.el (erc--target-priors): New internal variable to do
for target buffers what `erc--server-reconnecting' does for server
buffers.
(erc-open): Source the state of a local module's mode variable from
its actual buffer rather than its server buffer. Additionally, make
all local variables from a prior session available to
module-activation functions and `erc-mode' hooks, even when
`erc-reuse-buffers' is nil. This bug arrived with the introduction of
"local-modules" (bug#57955).
* test/lisp/erc/erc-scenarios-base-local-modules.el
(erc-scenarios-base-local-modules--toggle-helpers): Remove useless
`with-current-buffer'.
(erc-scenarios-base-local-modules--local-var, erc--phony-sblm--enable,
erc--phony-sblm--disable, erc--phony-sblm--mode): Add fake local
module and data var for test scenario.
(erc-scenarios-base-local-modules--var-persistence) Add slightly hacky
test case with promise to improve later when splitting the file.
2023-01-17 Eli Zaretskii <eliz@gnu.org>
Fix display of warnings on w32 console
* lisp/emacs-lisp/warnings.el (warnings-suppress): Use alternative
symbol for TTY frames on MS-Windows.
2023-01-17 Basil L. Contovounesios <contovob@tcd.ie>
Fix buffer-list-update-hook for indirect buffers
Fmake_indirect_buffer can be told whether to run buffer hooks since
bug#49160, but until now it ran buffer-list-update-hook irrespective
of this.
* src/buffer.c (Fmake_indirect_buffer): Don't run
buffer-list-update-hook when called with a non-nil
INHIBIT-BUFFER-HOOKS argument.
(run_buffer_list_update_hook): Don't special-case NULL argument, as
no such callers remain.
* test/src/buffer-tests.el
(buffer-tests-inhibit-buffer-hooks-indirect): Test whether indirect
buffer hooks are run regardless of whether base buffer hooks are
inhibited. Check that all three buffer hooks, not just
kill-buffer-query-functions, are inhibited.
2023-01-17 Yuan Fu <casouri@gmail.com>
Fix treesit-node-first-child-for-pos (bug#60127)
The problem is due to a bug in ts_node_first_child_for_pos, but
tree-sitter is moving pretty slowly right now so I reimplemented a
correct version of it in treesit.c.
* src/treesit.c (treesit_cursor_first_child_for_byte): New function.
(Ftreesit_node_first_child_for_pos): Use the new function.
2023-01-16 Mattias Engdegård <mattiase@acm.org>
Fix hfy-exclude-file-rules (bug#60562)
* lisp/htmlfontify.el (hfy-exclude-file-rules):
Fix broken defcustom type; no longer fails test-custom-opts.
Fix regexps not to use newline-sensitive patterns like `.` and `$`
which do not make sense when matching file names.
Better doc string.
* lisp/htmlfontify.el (hfy-list-files): Simplify regexp argument.
2023-01-16 Alan Mackenzie <acm@muc.de>
CC Mode: Prevent ids in temporary "declarators" getting into c-found-types
This should fix bug #60765. In the scenario type an identifier in front of
foo (bar, baz), as when started a new statement. This temporarily makes the
function call a declarator, and bar and baz types. Don't enter bar and baz
into c-found-types.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1) (CASE 6): When a
'maybe type triggers this case, set `unsafe-maybe' to non-nil.
2023-01-16 João Távora <joaotavora@gmail.com>
Fix M-x eglot prompt when connection already exists (bug#60557)
Before this change, if a current connection existed at the time of M-x
eglot, user would be first asked to enter into M-x eglot's interactive
spec details about new command line arguments, and only afterwards be
prompted about what to do with the current connection (which could be
to reconnect to it using the same arguments, or tear it down and make
a new one).
This is very confusing, as users may not be fully aware of the
distinction between "reconnect" vs "disconnect-and-connect". They
might not know if any new command line arguments provided are taking
effect or not.
This change simplifies this and removes the option to "reconnect
instead" from M-x eglot (users can do that at any time via M-x
eglot-reconnect). It also ensures that users are informed about a
current connection before asking to enter new command line arguments
and not the other way round.
* lisp/progmodes/eglot.el (eglot): Rework.
2023-01-16 Yuan Fu <casouri@gmail.com>
Fix tree-sitter indent preset function (bug#60270)
* lisp/treesit.el (treesit-simple-indent-presets): Fix
prev-adaptive-prefix so it doesn't return nil if the previous line has
no prefix.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
2023-01-15 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Support the option ruby-block-indent
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--block-indent-anchor):
New function.
(ruby-ts--indent-rules): Use it.
* test/lisp/progmodes/ruby-ts-mode-tests.el:
Run indent test for ruby-block-indent.rb.
2023-01-15 Theodor Thornhill <theo@thornhill.no>
Improve indentation for jsx
* lisp/progmodes/js.el (js--treesit-indent-rules): Use more parent
anchors and fix typo with wrong indent offset variable.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Use more parent anchors.
2023-01-15 Sean Whitton <spwhitton@spwhitton.name>
* lisp/subr.el (while-let): Fix docs if-let->if-let* (bug#60758).
2023-01-15 Sean Whitton <spwhitton@spwhitton.name>
Revert "* lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758)."
This reverts commit 083badc9c122a802080552e7771e78ee47c01e3c.
2023-01-15 Stefan Kangas <stefankangas@gmail.com>
Bump use-package version for Emacs 29.1
* lisp/use-package/use-package.el: Bump version to 2.4.5.
2023-01-15 Eli Zaretskii <eliz@gnu.org>
Improve error message from sqlite-mode.el
* lisp/sqlite-mode.el (sqlite-mode-open-file): Add error
checking. (Bug#60490)
2023-01-15 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode block comment indentation (bug#60270)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--comment-2nd-line-anchor): Handle another edge case.
2023-01-15 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode label indent
Fix indentation of the statement right under a label.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Fix.
(c-ts-mode--top-level-label-matcher): Fix.
2023-01-15 Yuan Fu <casouri@gmail.com>
Fix statement indent for c-ts-mode (bug#59686) (bug#60280)
Instead of trying to figure out the correct anchor, now we just count
the layers of {} blocks between the node and the root node.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): Use new offset functions
c-ts-mode--close-bracket-offset and c-ts-mode--statement-offset.
(c-ts-mode--bracket-children-anchor): Remove function.
(c-ts-mode--top-level-label-matcher): New variable.
(c-ts-mode--statement-offset)
(c-ts-mode--close-bracket-offset): New offset functions.
2023-01-15 Yuan Fu <casouri@gmail.com>
Allow offset in tree-sitter indent rules to be functions
This is needed for fixing C indentation. See next comment.
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el (treesit-simple-indent): Try evaluating OFFSET as a
function if it's not integer nor variable.
2023-01-15 Yuan Fu <casouri@gmail.com>
Support filling line comments in c-ts-mode
Now we handle line comments separately because for line comments, each
line is an individual node, unlike block comments, where the whole
block comment is a single node. fill-comment-paragraph turns out to
do the job perfectly fine.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--fill-paragraph): Extract out most parts into
c-ts-mode--fill-block-comment.
(c-ts-mode--fill-block-comment): New extracted function.
2023-01-15 Eli Zaretskii <eliz@gnu.org>
Fix expansion of wildcards in ls-lisp.el
* lisp/ls-lisp.el (ls-lisp--dired): Fix error message text.
Handle the case of a wildcard specifying directories. (Bug#60819)
2023-01-15 Eli Zaretskii <eliz@gnu.org>
Fix messages displayed when diary is shown
* lisp/calendar/diary-lib.el (diary-list-entries): Display the
"...done" message only if there's no important message in the
echo-area. (Bug#60795)
2023-01-14 Theodor Thornhill <theo@thornhill.no>
Add constructor_declaration as java-ts-mode defun
* lisp/progmodes/java-ts-mode.el (java-ts-mode): Extend
treesit-defun-type-regexp.
2023-01-14 Gregory Heytings <gregory@heytings.org>
Further improvement for non-string values in pcomplete
* lisp/pcomplete.el (pcomplete-arg): Use the string representation
of the argument value instead of the text representation of the
argument. Return the value, even when it is not a string, when
index is 'last'. Fixes bug#60464.
2023-01-14 Juri Linkov <juri@linkov.net>
Fix the case in first-completion revealed by minibuffer-tests
* lisp/simple.el (first-completion): Add the text-property 'first-completion'
when the first completion is at the beginning of the buffer.
* test/lisp/minibuffer-tests.el (completions-header-format-test):
Revert the recent change.
2023-01-14 Theodor Thornhill <theo@thornhill.no>
Fix indent and font-lock for annotation_type
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Indent
inside body.
(java-ts-mode--font-lock-settings): Add rule for name in
annotation_type_element_declaration.
2023-01-14 Stefan Monnier <monnier@iro.umontreal.ca>
apropos.el: Fix bug#60628
* lisp/apropos.el (apropos--map-preloaded-atoms): New function.
(apropos-documentation): Use it.
(apropos-documentation-check-elc-file): Don't presume #@ is preceded by
a newline (since that's not the case any more since commit
900b09c0235d54d5), but be more careful not to burp on false positives.
2023-01-14 Theodor Thornhill <theo@thornhill.no>
Fix indentation of some declarations and statements
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add new
rules so that we don't anchor at col 0.
2023-01-14 Theodor Thornhill <theo@thornhill.no>
Fix indentation of object_expressions in csharp-ts-mode
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): Make
sure the opening brace is indented at parent-bol, and everything else
is indented.
2023-01-14 Xi Lu <lx@shellcodes.org>
Replace 'hfy-find-cmd' with 'directory-files-recursively'.
This removes a potential vulnerability to maliciously
named files. (Bug#60562)
* lisp/htmlfontify.el (hfy-exclude-file-rules): New defcustom.
(hfy-list-files): Reimplement using 'directory-files-recursively'.
2023-01-14 Eli Zaretskii <eliz@gnu.org>
Disable and document 'doc-view-mupdf-use-svg' (bug#58041)
* lisp/doc-view.el (doc-view-mupdf-use-svg): Disable by default.
* etc/NEWS: Document. Patch by Visuwesh <visuweshm@gmail.com>.
Do not merge to master.
2023-01-14 Eshel Yaron <me@eshelyaron.com> (tiny change)
Eglot: don't use "nil" as minibuffer initial input
Doing M-x eglot in a buffer for which buffer-file-name is nil, prompts
the user for a major mode to manage by invoking completing-read. The
way completing-read was called would end up with the string "nil" as
the initial minibuffer input, which is not very useful nor is it a
valid input.
* lisp/progmodes/eglot.el (eglot--guess-contact): Tweak prompt for
major mode. (Bug#60379)
2023-01-14 Paul Eggert <eggert@cs.ucla.edu>
Fix dependency bug when building lwlib
* lwlib/Makefile.in (DEPFLAGS): Use OBJS to calculate dependency
file names, not ALLOBJS. This fixes a typo introduced
in 2015-05-15 "Replace AC_SUBST_FILE in configure with include in
Makefiles" that caused lwlib/*.o to not be rebuilt sometimes
when that was needed.
2023-01-13 Yuan Fu <casouri@gmail.com>
Fix use of build_pure_c_string in treesit.c
This is brought up in bug#60691. build_pure_c_string should only be
used in places such as syms_of_treesit, which are called just once,
during dumping.
* src/treesit.c (Vtreesit_str_libtree_sitter):
(Vtreesit_str_tree_sitter):
(Vtreesit_str_dot):
(Vtreesit_str_question_mark):
(Vtreesit_str_star):
(Vtreesit_str_plus):
(Vtreesit_str_pound_equal):
(Vtreesit_str_pound_match):
(Vtreesit_str_pound_pred):
(Vtreesit_str_open_bracket):
(Vtreesit_str_close_bracket):
(Vtreesit_str_open_paren):
(Vtreesit_str_close_paren):
(Vtreesit_str_space):
(Vtreesit_str_equal):
(Vtreesit_str_match):
(Vtreesit_str_pred): New variables.
(treesit_load_language):
(Ftreesit_pattern_expand):
(Ftreesit_query_expand):
(treesit_eval_predicates): Use new varaibles.
(treesit_check_buffer_size):
(treesit_compose_query_signal_data):
(treesit_check_range_argument):
(Ftreesit_parser_set_included_ranges):
(treesit_predicate_capture_name_to_node):
(treesit_predicate_equal):
(treesit_predicate_match):
(treesit_predicate_pred): Use build_string for signal message.
(syms_of_treesit): Initialize new variables.
2023-01-13 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/subr.el (combine-change-calls-1): Fix bug#60467
Don't stop at timestamps. Strip them for now, to be on the safe side.
Don't merge into `master` where we'll use a better fix.
2023-01-13 Michael Albinus <michael.albinus@gmx.de>
Adapt tramp-tests.el (do not merge with master)
* test/lisp/net/tramp-tests.el (tramp--test-container-p):
Rename from `tramp--test-docker-p'. Handle also "podman" method.
Adapt callees.
2023-01-13 Eli Zaretskii <eliz@gnu.org>
Fix minibuffer-completion tests
* test/lisp/minibuffer-tests.el (completions-header-format-test):
Fix the test which first fired, and then drew the target...
2023-01-13 Daniel Martín <mardani29@yahoo.es>
Add c-ts-mode tests
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New .erts file
to test indentation of typical C constructs and prevent regression of
bug fixes.
* test/lisp/progmodes/c-ts-mode-tests.el: New file with c-ts-mode
tests.
2023-01-13 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode--fill-paragraph
Example:
doc: /* Return non-nil if NODE1 and NODE2 are the same node.
If any one of NODE1 and NODE2 is nil, return nil.
This function uses the same equivalence metric as `equal'. */
* lisp/progmodes/c-ts-mode.el (c-ts-mode--fill-paragraph): Fix the
case where there are words before the /*, like the example above.
2023-01-13 Eli Zaretskii <eliz@gnu.org>
Fix minor issues with 'pp' and related commands
* etc/NEWS:
* lisp/emacs-lisp/pp.el (pp-use-max-width, pp-emacs-lisp-code):
Mention in doc string that formatting via 'pp-emacs-lisp-code'
could be slow.
(pp-eval-expression, pp-macroexpand-expression): Honor
'pp-use-max-width'. (Bug#58687)
2023-01-12 Yuan Fu <casouri@gmail.com>
Equal now recognizes tree-sitter nodes (bug#60659)
Now equal uses ts_node_eq to check equality between nodes.
* doc/lispref/parsing.texi:
(Accessing Node Information): Update manual.
* src/fns.c (internal_equal): Handle tree-sitter nodes.
* src/treesit.c (treesit_node_eq): New function.
(Ftreesit_node_eq): Factor out. Update docstring.
* src/treesit.h (treesit_node_eq): Declare new function.
2023-01-12 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode comment indentation (bug#60270)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Move the
star rule up.
2023-01-12 Sean Whitton <spwhitton@spwhitton.name>
* lisp/subr.el (while-let): Use if-let, not if-let* (bug#60758).
2023-01-12 Gregory Heytings <gregory@heytings.org>
* lisp/simple.el (next-completion): Handle first completion specially.
When completions-header-format is nil and completion-show-help is nil,
the first completion is at the beginning the buffer, so 'M-<down>'
missed it and moved to the second completion. Handle this case by
setting/checking the special text-property 'first-completion' that
is nil at the first call (bug#60411).
2023-01-12 Eli Zaretskii <eliz@gnu.org>
Fix encoding with 'utf-8-auto'
* src/coding.c (encode_coding_utf_8): Fix encoding with
'utf-8-auto': it should produce BOM, per the documentation of
the :bom attribute. (Bug#60750)
* lisp/international/mule.el (define-coding-system): Doc fix.
* test/src/coding-tests.el (coding-tests): Use
'with-coding-priority' instead of 'prefer-coding-system', as the
latter has global persistent effect and affects further tests.
2023-01-12 Po Lu <luangruo@yahoo.com>
Report cursor correctly on PGTK when there is a margin
* src/pgtkterm.c (pgtk_draw_window_cursor): Adjust frame_x by
the margin width as well.
2023-01-11 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6.1
2023-01-11 Theodor Thornhill <theo@thornhill.no>
Add support for annotation_type_declaration
* lisp/progmodes/java-ts-mode.el (java-ts-mode--keywords): Add new
keyword.
(java-ts-mode--font-lock-settings): Add font-locking to the type
feature.
2023-01-11 Juri Linkov <juri@linkov.net>
* etc/NEWS: Mention incompatible changes in 'outline-minor-mode-cycle-map'.
* lisp/outline.el (outline-minor-mode-cycle--bind):
Add docstring (bug#60426).
(outline-minor-mode-cycle--bind): Default 'map' to
'outline-minor-mode-cycle-map'.
(outline-minor-mode-cycle-map): Improve docstring.
(outline-minor-mode): Move margin-cycling keys to
'outline-minor-mode-cycle-map'.
2023-01-11 Philip Kaludercic <philipk@posteo.net>
Ensure VC package names are not empty
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Raise an error
if the package name is empty.
(package-vc-install): Avoid generating an empty file name, if a URL
ends with a slash, and raise an error if the package name is empty.
2023-01-11 Philip Kaludercic <philipk@posteo.net>
Handle missing package description when unpacking vc packages
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Create a dummy
descriptor if PKG-DESC is nil.
2023-01-10 Alan Mackenzie <acm@muc.de>
CC Mode: partially revert commit from 2022-10-04
This reversion is of an ill-advised optimization, which resulted in non-type
identifiers getting fontified as types.
* lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Rather than writing
the expected face directly to the text, instead remove the `fontified'
property. This allows the full font-lock mechanism to fontify the buffer
correctly.
2023-01-10 Manuel Uberti <manuel.uberti@inventati.org>
Fix reftex-citation docstring (bug#60710)
* lisp/textmodes/reftex-cite.el (reftex-citation): Fix spelling.
2023-01-10 Robert Pluim <rpluim@gmail.com>
Improve 'describe-char-fold-equivalences' docstring
* lisp/char-fold.el (describe-char-fold-equivalences): Explain what
the output looks like.
2023-01-10 F. Jason Park <jp@neverwas.me>
Remove obsolete server buffers on MOTD in erc-track
* lisp/erc/erc-networks.el
(erc-networks--copy-server-buffer-functions): New internal hook
through which modules can perform housekeeping when server buffers
belonging to the same network context are merged.
(erc-networks--copy-over-server-buffer-contents): Run new internal
hook `erc-networks--copy-server-buffer-functions'.
* lisp/erc/erc-track.el (erc-track-enable, erc-track-disable): Manage
membership in `erc-networks--copy-server-buffer-functions' hook.
(erc-track--replace-killed-buffer): New function to replace server
buffer being killed in `erc-modified-channels-alist'.
* test/lisp/erc/erc-scenarios-base-association.el
(erc-scenarios-networks-merge-server-track): New test.
* test/lisp/erc/resources/networks/merge-server/track.eld: New test
data. (Bug#60560.)
2023-01-10 Manuel Uberti <manuel.uberti@inventati.org>
Fix completion-auto-help docstring (bug#60709)
* lisp/minibuffer.el (completion-auto-help): Remove extra period.
2023-01-10 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode comment indent
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--comment-2nd-line-matcher): Also make sure PARENT is a
comment node.
2023-01-10 Yuan Fu <casouri@gmail.com>
Highlight identifier in import statements in js-ts-mode
Follow-up on bug#60689. This commit just copied the change in
e385c099b8c to js-ts-mode.
* lisp/progmodes/js.el:
(js--treesit-font-lock-settings): Add import query.
2023-01-09 Yuan Fu <casouri@gmail.com>
Don't print named tree-sitter nodes with parenthesizes (bug#60696)
* src/print.c (print_vectorlike): Use empty string as delimiters if
the node is named.
2023-01-09 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontification for import-statements in typescript-ts-mode
(bug#60689)
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode--font-lock-settings): Add rules to highlight the
actual imports in import-statements.
2023-01-09 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode indentation for 2nd line in block comment (bug#60270)
If the first line is "/*" or "/* ", indent like this:
/*
aaa
If the first line is "/* some text", indent like this:
/* some text
aaa
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
(c-ts-mode--looking-at-star): Minor refactor.
(c-ts-mode--comment-2nd-line-matcher)
(c-ts-mode--comment-2nd-line-anchor): New functions.
* lisp/treesit.el (treesit-simple-indent-presets):
prev-adaptive-prefix doesn't handle the comment-start-skip case (i.e,
2nd line) anymore. (Handled by the new matcher.)
2023-01-09 Juri Linkov <juri@linkov.net>
* lisp/vc/diff-mode.el (diff-font-lock-keywords): Check for limit.
This check is necessary since 'diff-beginning-of-hunk' can move
not only backwards, but also forwards (bug#60660).
2023-01-09 Yuan Fu <casouri@gmail.com>
Minor improvement for tree-sitter explorer
If you open an empty python buffer and type
1 + 2
a
b
Currently the explorer only displays the top-level node at point, ie,
only 1 + 2, only a, or only b. That's kind of awkward, so if the
buffer is small, show the entire parse tree.
* lisp/treesit.el (treesit--explorer-refresh): See above.
2023-01-09 Yuan Fu <casouri@gmail.com>
Make sure NODE is not the root node in tree-sitter indent (bug#60602)
There are two possible ways to solve the problem raised in the bug
report: either make sure NODE is never the root (so that parent is
never nil), or allow parent to be nil.
If we go with the latter, a lot of matcher and anchor functions need
change (they need to guard against a null parent). I tried it, and
needing to check for null parent is pretty annoying. In comparison,
if NODE is never the root, it is very convenient for the user, and it
doesn't complicate the rule that much (and it's rather intuitive,
people usually don't think of the case where NODE is the root node).
So that's what I choose.
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el (treesit-indent-function): Update docstring.
(treesit--indent-1): Make sure NODE is not the root.
2023-01-08 Yuan Fu <casouri@gmail.com>
Fix label indent of GNU and Linux style in c-ts-mode (bug#60543)
The previous fix isn't correct.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--indent-styles): New indent rule. Fix the rule for Linux
style.
(c-ts-mode--top-level-label-matcher): New function.
2023-01-08 Evgeni Kolev <evgenysw@gmail.com>
Improve go-ts-mode Imenu, navigation and electric pair (bug#60407)
The Imenu items are extended to support "Method", "Struct",
"Interface", "Alias" and "Type".
go-ts-mode is updated to use the Imenu facility added in commit
b39dc7ab27a696a8607ab859aeff3c71509231f5.
Variable electric-indent-chars is set in order to improve integration
with Electric Pair mode.
* lisp/progmodes/go-ts-mode.el (go-ts-mode--imenu-1) (go-ts-mode--imenu):
Remove functions.
(go-ts-mode--defun-name, go-ts-mode--interface-node-p)
(go-ts-mode--struct-node-p, go-ts-mode--other-type-node-p)
(go-ts-mode--alias-node-p): New functions.
(go-ts-mode): Improve Imenu settings, navigation, add Electric Pair
mode settings.
2023-01-08 Yuan Fu <casouri@gmail.com>
Revert "Add c-or-c++-ts-mode (bug#59613)"
This reverts commit 1df2826639c912396fac0af108301533dac71406.
I forgot about the feature freeze, sorry :-)
2023-01-08 Benson Chu <bensonchu457@gmail.com> (tiny change)
Add back renamed function 'font-lock-fontify-syntactically-region'
A more accurate replacement for font-lock-fontify-syntactically-region
would be a function that funcalls the
font-lock-fontify-syntactically-function variable. That way, callers
of the function can inherit new behavior, if the value of that variable
changes.
* lisp/font-lock.el (font-lock-fontify-syntactically-region):
Add function back, remove its obsolete alias.
2023-01-08 Eli Zaretskii <eliz@gnu.org>
Improve options and docs of M-x command completion
* lisp/simple.el (read-extended-command-predicate): Expand the
doc string. Add 2 more selectable values.
(command-completion-using-modes-and-keymaps-p): New function.
(execute-extended-command): Mention
'read-extended-command-predicate' in the doc string. (Bug#60645)
2023-01-07 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6-90-ga6523f
2023-01-07 Yuan Fu <casouri@gmail.com>
Fix string fontification on python-ts-mode (bug#60599)
* lisp/progmodes/python.el:
(python--treesit-fontify-string): Generalize and skip anything
before the first quote character.
2023-01-07 Yuan Fu <casouri@gmail.com>
Fix string-interpolation feature of python-ts-mode (bug#60599)
* lisp/progmodes/python.el:
(python--treesit-fontify-string-interpolation): New function.
(python--treesit-settings): Use the new function for
string-interpolation.
2023-01-07 Theodor Thornhill <theo@thornhill.no>
Add indentation rule for concatenated_string (bug#60572)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Indent to
parent-bol.
2023-01-07 Jostein Kjønigsen <jostein@kjonigsen.net>
Fix highlighting of variable-declarations in typescript-ts-mode
(bug#60546)
- Highlight variable declarations in catch-clauses.
- Remove highlighting of variables where not declarations (improve
consistency with other *-ts-modes).
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode--font-lock-settings): See above.
2023-01-07 Yuan Fu <casouri@gmail.com>
Fix label indentation for Linux style in c-ts-mode (bug#60543)
Reference:
1. https://www.gnu.org/software/indent/manual/indent/Common-styles.html
2. https://www.gnu.org/software/indent/manual/indent/Option-Summary.html
The GNU indent manual says Linux style should use -il1 flag, which
means "indent labels to column 1".
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Indent label
to column 1 in Linux style.
2023-01-07 Yuan Fu <casouri@gmail.com>
Remove duplicate entries in c-ts-mode's Imenu
Right now the Class subindex includes top-level functions, which is
wrong. This change ensures the Class subindex only contain classes and
functions nested in those classes.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--defun-for-class-in-imenu-p): New function.
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Use the new function.
2023-01-07 Yuan Fu <casouri@gmail.com>
Fix use of treesit-ready-p in c/c++-ts-mode
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode)
(c++-ts-mode): Put setup code in a when form.
2023-01-07 Yuan Fu <casouri@gmail.com>
Add documentation for c/c++-ts-mode (bug#60443)
Explain that tree-sitter c modes and cc-mode c modes don't share
config variables.
* lisp/progmodes/c-ts-mode.el (c-ts-mode)
(c++-ts-mode): Update docstring.
2023-01-07 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts--font-lock-settings): Improve highlighting in patterns
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Improve highlighting in patterns: highlight values not keys as
variable in the usual case; highlight keys when no value;
highlight the "as pattern" variable.
2023-01-07 Yuan Fu <casouri@gmail.com>
Optionally include the namespace in c-ts-mode--declarator-identifier
This is an additional fix for bug#60397.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--declarator-identifier): New parameter QUALIFIED.
(c-ts-mode--defun-name): Use qualified identifier.
2023-01-07 Yuan Fu <casouri@gmail.com>
Support namespaces in c++-ts-mode (bug#60397)
Not a complete fix. See the next commit.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add rules.
(c-ts-mode--defun-name): Add namespace_definition.
(c-ts-base-mode): Add namespace_definition to
treesit-defun-type-regexp.
2023-01-07 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode--looking-at-star
Not the topic of bug#60270 but reported in one of the replies.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--looking-at-star): Check not
the character after point but character after BOL. Otherwise
indentation is wrong when point is not at BOL.
2023-01-07 Yuan Fu <casouri@gmail.com>
Add c-or-c++-ts-mode (bug#59613)
* lisp/progmodes/c-ts-mode.el
(c-ts-mode--c-or-c++-regexp): New variable.
(c-or-c++-ts-mode): New mode.
* etc/NEWS: Mention c-or-c++-ts-mode.
2023-01-07 Eli Zaretskii <eliz@gnu.org>
Document the 'definition-name' property.
* doc/lispref/symbols.texi (Standard Properties): Document
'definition-name'.
* doc/lispref/functions.texi (Defining Functions): Describe how to
use 'definition-name' when generating function definitions at run
time. (Bug#60568)
2023-01-07 Dmitry Gutov <dgutov@yandex.ru>
(treesit-simple-indent-presets): Do that for 'or' as well.
* lisp/treesit.el
(treesit-simple-indent-presets): Do that for 'or' as well.
2023-01-07 kobarity <kobarity@gmail.com>
Fix 'python-shell-buffer-substring' when START is in middle of 1st line
* lisp/progmodes/python.el (python-shell-buffer-substring): Instead
of checking whether START is point-min, check whether START is in
the first line. (Bug#60466)
* test/lisp/progmodes/python-tests.el
(python-shell-buffer-substring-18): New test.
2023-01-07 Manuel Giraud <manuel@ledu-giraud.fr>
Rearrange the "Saving Emacs Sessions" section of the user manual
* doc/emacs/misc.texi (Saving Emacs Sessions): Organize this
node more logically with main behavior and important features
near the top. (Bug#60600)
2023-01-06 Dmitry Gutov <dgutov@yandex.ru>
(treesit-simple-indent-presets): Ensure 'and' works for anchors too
* lisp/treesit.el (treesit-simple-indent-presets):
Rewrite to return the last successful evaluation, not just t.
2023-01-06 Dmitry Gutov <dgutov@yandex.ru>
(treesit--indent-rules-optimize): Optimize 'and' and 'or' matcher forms
* lisp/treesit.el (treesit--indent-rules-optimize):
Optimize 'and' and 'or' matcher forms. When 'and' has a 'query'
matcher inside (as is the case in ruby-ts--indent-rules, many
times over), this yields a significant performance boost.
2023-01-06 Dmitry Gutov <dgutov@yandex.ru>
(treesit-simple-indent-presets): Short-circuit 'and' and 'or'
* lisp/treesit.el (treesit-simple-indent-presets):
Short-circuit the 'and' and 'or' matchers. To avoid calling all
fns after one returned nil or truthy value, respectively.
2023-01-06 Dmitry Gutov <dgutov@yandex.ru>
(font-lock-regexp-face): New face
* lisp/font-lock.el (font-lock-regexp-face): New face.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
* lisp/progmodes/js.el (js--treesit-font-lock-settings):
Use it for regexps.
* etc/NEWS: Mention the addition.
2023-01-06 Dmitry Gutov <dgutov@yandex.ru>
Unify the string interpolation delimiters face across ts modes
* lisp/progmodes/js.el (js--treesit-font-lock-settings):
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings):
Use font-lock-misc-punctuation-face for string interpolation
delimiters.
2023-01-06 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Highlight more kinds of parameters
* lisp/progmodes/ruby-ts-mode.el
(ruby-ts--font-lock-settings): Highlight destructured parameters,
lambda parameters, identifiers in pattern matching clauses
(array/hash) and exception variables.
Move the 'symbol' matchers lower to make 'hash_key_symbol' lower
priority than hash keys in match patterns.
2023-01-06 Robert Pluim <rpluim@gmail.com>
Fix `pr-interface'
`pr-interface' specifies `inline' for its menu items, which is not
necessary, but it causes `widget-choice-value-create' to bug
out. (Bug#60501)
* lisp/wid-edit.el (widget-choice-value-create): Allow the value to be
a non-list.
* test/lisp/wid-edit-tests.el (widget-test-handle-spurious-inline):
Add test to ensure that unnecessary :inline is allowed.
2023-01-06 Jostein Kjønigsen <jostein@kjonigsen.net>
Further generic-related improvements in csharp-ts-mode (bug#60376)
This is an additional patch for bug#60376.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
New rules.
2023-01-05 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Highlight method and block parameters
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Add rules for method and block parameters.
(ruby-ts-mode): Add corresponding feature.
2023-01-05 Perry Smith <pedz@easesoftware.com>
ruby-ts-mode: Highlight variable assignments
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Bring back the 'assignment' feature.
(ruby-ts-mode): Replace the unused 'variable' with 'assignment'. Use
the level 3 for consistency with other ts modes.
Update the Commentary as well.
2023-01-05 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Move 'self' and 'super' from constants to keywords
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Move 'self' and 'super' from constants to keywords.
2023-01-05 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts-mode): Split font-lock feature 'builtin' into two
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
Split the 'builtin' feature in two: 'builtin-constant' and
'builtin-variable'.
(ruby-ts-highlight-predefined-constants):
Drop the user option, the highlighting granularity can be chosen
using treesit-font-lock-recompute-features.
(ruby-ts--font-lock-settings): Update accordingly.
(ruby-ts--predefined-constants, ruby-ts--predefined-variables):
Fix docstrings.
2023-01-05 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violation due to fill-column indicator face
* src/xdisp.c (extend_face_to_end_of_line): Use the original
iterator metrics for the stretch glyph, the one unaffected by the
'fill-column-indicator' face. (Bug#60580)
2023-01-05 Juri Linkov <juri@linkov.net>
* lisp/cedet/semantic/symref/grep.el: Support ts-modes (bug#60525)
(semantic-symref-filepattern-alist): Duplicate entries
c-mode -> c-ts-mode, c++-mode -> c++-ts-mode, ruby-mode -> ruby-ts-mode,
python-mode -> python-ts-mode.
2023-01-05 Eli Zaretskii <eliz@gnu.org>
Make 'toml-ts-mode' optional
* etc/NEWS: Reflect the fact that 'toml-ts-mode' is optional.
* lisp/textmodes/toml-ts-mode.el (auto-mode-alist): Don't autoload
the addition of 'toml-ts-mode'. (Bug#60559)
2023-01-04 Michael Albinus <michael.albinus@gmx.de>
Fix bug in Tramp multi-hop
* lisp/net/tramp.el (tramp-compute-multi-hops): Make check for
host name more robust. (Bug#60499)
2023-01-04 Michael Albinus <michael.albinus@gmx.de>
* lisp/files.el (find-sibling-rules): Fix docstring.
2023-01-04 Juri Linkov <juri@linkov.net>
Tree-sitter doc fixes (bug#60524)
* doc/lispref/modes.texi (Parser-based Font Lock):
Replace :lang with :language.
* doc/lispref/parsing.texi (Language Grammar): Replace
treesit-load-suffixes with dynamic-library-suffixes.
(Retrieving Nodes): Fix function names.
(Tree-sitter Major Modes): Fix treesit-ready-p args.
Fix pxref to Parser-based Indentation.
(Tree-sitter C API): Fix function names.
* lisp/treesit.el (treesit--simple-indent-eval): Remove cond BODY
duplicated from CONDITION.
(treesit)<define-short-documentation-group>: Fix function names.
2023-01-04 Daniel Martín <mardani29@yahoo.es>
Fontify C++ function definitions in c-ts-mode (bug#60529)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--declarator-identifier):
Teach the code how to extract the declarator of a node of type
"qualified_identifier".
(c-ts-mode--fontify-declarator): Consider the case where the
identifier in a function declarator is buried inside
"qualifier_identifier" nodes.
2023-01-03 Dmitry Gutov <dgutov@yandex.ru>
(ruby-ts-add-log-current-function): Fix when between two methods
* lisp/progmodes/ruby-ts-mode.el
(ruby-ts-add-log-current-function): Fix the case when point is
between two methods. 'treesit-node-at' returs the 'def' node of
the method after point in such case, so it behaved like point was
inside the method below.
* test/lisp/progmodes/ruby-ts-mode-tests.el
(ruby-ts-add-log-current-method-outside-of-method):
Update the test case.
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-add-log-current-method-outside-of-method):
Mirror that change.
2023-01-03 Sean Whitton <spwhitton@spwhitton.name>
* lisp/vc/vc-git.el (vc-git-checkin): Pass vc-git-diff-switches.
2023-01-02 Dmitry Gutov <dgutov@yandex.ru>
Extract common code into ruby-base-mode to derive from
* lisp/progmodes/ruby-mode.el (ruby-base-mode):
New major base mode, to set up common vars and hooks.
(ruby-mode-variables): Delete. Move most code to ruby-base-mode.
And some -- to ruby-mode body.
(ruby-mode): Derive from ruby-base-mode. Also move some setup
to there.
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode):
Derive from ruby-base-mode. Remove duplicating settings.
2023-01-02 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Indentation fixes
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-keywords):
Fix for 'def' (which was misread as 'method' in the check).
(ruby-ts--indent-rules): Indent the curly block closer the same
way as the 'do ... end' closer.
2023-01-02 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts--font-lock-settings: Use more standard faces
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Use more standard faces for regexp literals and string
interpolation delimiters (following js-ts-mode).
2023-01-02 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Standardize the string literal highlights
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Use font-lock-string-face for %w() and `...`.
Use font-lock-constant-face (just like we do for symbol literals)
for symbol array literals, %i().
Combine the matchers for string content and heredocs.
2023-01-02 Theodor Thornhill <theo@thornhill.no>
Improve fontification in java-ts-mode (bug#60492)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
Add expression_statement with only identifier support.
2023-01-02 Jostein Kjønigsen <jostein@kjonigsen.net>
Fontification improvements in typescript-ts-mode (bug#60500)
- highlight method-definitins in interfaces.
- only highlight variable-declarations, not variables
everywhere (consistency with other modes).
- move highlighting of method invocations to level 4
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode--font-lock-settings): Update rules.
(typescript-ts-mode, tsx-ts-mode): Update feature list.
2023-01-02 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontification consistency in js-ts-mode (bug#60503)
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Highlight
declared parameters in functions, methods and arrow-expressions as
variables.
2023-01-02 Dmitry Gutov <dgutov@yandex.ru>
(typescript/tsx-ts-mode): Split font-lock feature list into 4 values
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode)
(tsx-ts-mode): Split font-lock feature list into 4 values.
2023-01-02 Dmitry Gutov <dgutov@yandex.ru>
js-ts-mode: Move 'string-interpolation' to font-lock level 3
* lisp/progmodes/js.el (js-ts-mode):
Move 'string-interpolation' to font-lock level 3.
2023-01-02 Eli Zaretskii <eliz@gnu.org>
Fix shrinking of the tab-bar
* src/haikufns.c (haiku_change_tab_bar_height):
* src/pgtkfns.c (pgtk_change_tab_bar_height):
* src/nsfns.m (ns_change_tab_bar_height):
* src/w32fns.c (w32_change_tab_bar_height):
* src/xfns.c (x_change_tab_bar_height): Don't let the number of
tab-bar lines degenerate to zero due to integer division.
(Bug#60210)
2023-01-02 F. Jason Park <jp@neverwas.me>
Fix default-port regression in erc-select-read-args
* lisp/erc/erc.el (erc--warn-unencrypted): New function, likely
temporary, to warn new users connecting interactively to the default
server, "irc.libara.chat", via the default non-TLS port, 6667.
(erc-select-read-args): Remove stray code from incomplete feature
introduced by bug#56514. Ensure connecting always works with default
port, which is non-TLS. Respect `erc-prompt-for-password' when user
pastes URL containing password component into "server" prompt. Maybe
add `erc--warn-unencrypted' as one-off hook for impending connection.
* test/lisp/erc/erc-tests.el (erc-select-read-args): Always expect
password prompt and sometimes a non-TLS port when `erc' called
interactively. (Bug#60428.)
2023-01-01 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6-81-g563a43
2023-01-01 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Remove some currently unused functions
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--grand-parent-is)
(ruby-ts--ancestor-start, ruby-ts--ancestor-is):
Remove some currently unused functions.
2023-01-01 Dmitry Gutov <dgutov@yandex.ru>
ruby-ts-mode: Highlight singleton method definitions and setters
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--font-lock-settings):
Highlight singleton method definitions and setters.
2023-01-01 Perry Smith <pedz@easesoftware.com>
Dmitry Gutov <dgutov@yandex.ru>
Add ruby-ts-mode
* etc/NEWS: Mention the new mode.
* lisp/progmodes/ruby-ts-mode.el: New file.
* test/lisp/progmodes/ruby-ts-mode-tests.el: New file.
* lisp/progmodes/eglot.el (eglot-server-programs):
Add ruby-ts-mode to the Ruby entry.
2023-01-01 Daniel Martín <mardani29@yahoo.es>
Fix fontification of C++ reference return types (bug#60441)
* lisp/progmodes/c-ts-mode.el (c-ts-fontify-error): Treat
reference_declarator nodes the same as pointer_declarator nodes when
calculating the identifier to fontify.
2023-01-01 Jostein Kjønigsen <jostein@kjonigsen.net>
Adjust function-call fontification in csharp-ts-mode (bug#60376)
- Ensure method-invocations are highlighted only on level 4.
- Ensure consistent fontification of variable declarations
(don't highlight usage of all variables).
- Fix issues with highlighting types in new() expressions.
- Fix issues with generic types in variable-declarations not using "var".
- Use fewer, more general queries for function-invocations. simplify code.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Change rules.
(csharp-ts-mode): Update feature list.
2023-01-01 Eli Zaretskii <eliz@gnu.org>
Rewrite Antinews in ELisp manual for Emacs 29
* doc/lispref/anti.texi (Antinews): Rewrite for Emacs 29.
* doc/lispref/elisp.texi (Top): Update the top-level menu for
Antinews.
2023-01-01 Eli Zaretskii <eliz@gnu.org>
Update Antinews in the user manual for Emacs 29
* doc/emacs/anti.texi (Antinews): Rewrite for Emacs 29.
* doc/emacs/emacs.texi (Top): Adjust the top-level menu.
2023-01-01 Mattias Engdegård <mattiase@acm.org>
Fix shortdoc-tests failure with respect to regexp-opt-charset
* test/lisp/emacs-lisp/shortdoc-tests.el (regexp-opt): Require.
`regexp-opt-charset` is not autoloaded, and whether `regexp-opt` is
preloaded is configuration-dependent.
2023-01-01 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'isearch-open-overlay-temporary'
* lisp/isearch.el (isearch-open-overlay-temporary): Document that
the overlay passed to the 'isearch-open-invisible-temporary'
function cannot be deleted too early. (Bug#60399)
2023-01-01 Eli Zaretskii <eliz@gnu.org>
Document 'use-package' in the 2 main manuals
* doc/emacs/custom.texi (Init Examples):
* doc/lispref/loading.texi (Named Features): Document 'use-package'
and its most important features.
2022-12-31 Yuan Fu <casouri@gmail.com>
Build recipe interactively in treesit-install-language-grammar
If there is not existing recipe for a language, prompt to build the
recipe interactively.
* lisp/treesit.el (treesit--install-language-grammar-build-recipe):
New functions.
(treesit-install-language-grammar): Use the new function.
2022-12-31 Theodor Thornhill <theo@thornhill.no>
Tweak csharp-mode font-lock-settings (bug#60376)
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Rearrange features.
(csharp-ts-mode): Rearrange features.
2022-12-31 Eli Zaretskii <eliz@gnu.org>
Revert a recent change which causes errors
* lisp/subr.el (buffer-match-p): Undo last change, as it causes an
error in a timer function of show-paren-mode.
2022-12-31 Stefan Kangas <stefankangas@gmail.com>
Fix misspelled functions in shortdoc groups
* lisp/emacs-lisp/shortdoc.el (file, list): Fix misspelled function
names: 'file-writable-p' and 'seq-reduce'.
* test/lisp/emacs-lisp/shortdoc-tests.el (subr-x): Require.
(shortdoc-all-functions-fboundp): New test.
2022-12-31 Kévin Le Gouguec <kevin.legouguec@gmail.com>
Simplify introduction of use-package manual
* doc/misc/use-package.texi (Getting Started): Do not advise requiring
the package, since the macro is autoloaded; also correct the macro's
name. (Bug#60366)
2022-12-31 kobarity <kobarity@gmail.com>
Fix python-shell-buffer-substring when retrieving a single statement
* lisp/progmodes/python.el (python-shell-buffer-substring): Do not add
"if True:" line when retrieving a single statement.
(python-shell-send-region): Add a reference to
`python-shell-buffer-substring' in docstring.
* test/lisp/progmodes/python-tests.el (python-shell-buffer-substring-13)
(python-shell-buffer-substring-14, python-shell-buffer-substring-15)
(python-shell-buffer-substring-16, python-shell-buffer-substring-17):
New tests. (Bug#60142)
2022-12-30 Yuan Fu <casouri@gmail.com>
Show tree-sitter query source when signaling query error
* src/treesit.c (treesit_compose_query_signal_data): Add QUERY_SOURCE
parameter.
(treesit_ensure_query_compiled)
(Ftreesit_query_capture): Add query source.
2022-12-30 Dmitry Gutov <dgutov@yandex.ru>
Add version tags and mention the new options in NEWS
* etc/NEWS: Mention the new options (bug#60186).
* lisp/progmodes/ruby-mode.el (ruby-block-indent)
(ruby-after-operator-indent, ruby-method-call-indent)
(ruby-parenless-call-arguments-indent): Add version tags.
2022-12-30 Dmitry Gutov <dgutov@yandex.ru>
Add new options for Ruby code indentation
* lisp/progmodes/ruby-mode.el (ruby-block-indent)
(ruby-after-operator-indent, ruby-method-call-indent)
(ruby-parenless-call-arguments-indent): New options (bug#60186).
(ruby-smie-grammar): Specify associativity for "?".
(ruby-smie--indent-to-stmt): Add optional argument.
* test/lisp/progmodes/ruby-mode-resources/ruby.rb: New cases.
* test/lisp/progmodes/ruby-mode-resources/ruby-method-call-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/ruby-block-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/ruby-after-operator-indent.rb:
* test/lisp/progmodes/ruby-mode-resources/
ruby-parenless-call-arguments-indent.rb: New files.
* test/lisp/progmodes/ruby-mode-tests.el: Add indentation tests for new files.
2022-12-30 Yuan Fu <casouri@gmail.com>
Add treesit-install-language-grammar
Per discussion on emacs-devel, I added function to install and compile
language grammars.
* lisp/treesit.el (treesit-language-source-alist): New variable.
(treesit-install-language-grammar)
(treesit--call-process-signal)
(treesit--install-language-grammar-1): New functions.
2022-12-30 Yuan Fu <casouri@gmail.com>
Add treesit-language-abi-version
Also rename treesit-language-version to treesit-library-abi-version,
because the old name is somewhat misleading.
* doc/lispref/parsing.texi (Language Grammar): Update.
* src/treesit.c (Ftreesit_library_abi_version): Rename.
(Ftreesit_language_abi_version): New function.
2022-12-30 Yuan Fu <casouri@gmail.com>
Change "language definition" to "language grammar" in manual.
"Language grammar" is apparently the more widely used term among
people talking about tree-sitter. To avoid confusion, I think it's
good to use that rather than "language definition", which is a term
that I made up :-)
Feel free to revert this if it is too much change.
* doc/lispref/elisp.texi:
* doc/lispref/modes.texi:
* doc/lispref/parsing.texi:
* lisp/treesit.el: Change "language definition" to "language grammar".
2022-12-30 Michael Albinus <michael.albinus@gmx.de>
* test/lisp/net/tramp-tests.el (tramp-test32-shell-command): Fix test.
* lisp/eshell/em-tramp.el (tramp): Require also at runtime. (Bug#60402)
2022-12-30 Roland Winkler <winkler@gnu.org>
lisp/textmodes/bibtex.el: fix bibtex-beginning-of-entry (bug#56636)
lisp/textmodes/bibtex.el (bibtex-beginning-of-entry):
use bibtex-any-entry-maybe-empty-head (bug#56636)
2022-12-30 Roland Winkler <winkler@gnu.org>
lisp/textmodes/bibtex.el: Treat $ as punctuation in BibTeX fields (bug#50202)
2022-12-29 Gregory Heytings <gregory@heytings.org>
Clarify the documentation of 'set-face-attribute'
* lisp/faces.el (set-face-attribute): Mention the evaluation order
of attribute-value pairs in the docstring.
* doc/lispref/display.texi (Attribute Functions): Likewise, and
explain with an example that a different argument order might give
different results. Also align the documentation in the manual
with that of the docstring, whose changes were discussed in
bug#57499 but not included in the manual.
2022-12-29 Gregory Heytings <gregory@heytings.org>
Handle non-string values in pcomplete
* lisp/pcomplete.el (pcomplete-arg): When
pcomplete-parse-arguments-function returns a non-string value,
return the string the user typed in, and attach the value as a
text property to that string. Fixes bug#59956 and bug#60021.
2022-12-29 Gregory Heytings <gregory@heytings.org>
Fix completion when completion-auto-select is set
* lisp/minibuffer.el (completion--do-completion): Do not display
"Complete, but not unique" messages when completion-auto-select is
set. Fixes bug#60359.
2022-12-29 Yuan Fu <casouri@gmail.com>
Add color fontification in css-ts-mode (bug#60405)
* lisp/textmodes/css-mode.el (css-ts-mode): Add color fontification
and syntax-propertize-function.
2022-12-29 Juri Linkov <juri@linkov.net>
* lisp/hi-lock.el (hi-lock--regexps-at-point): Fix bug (bug#60241).
Handle two cases: when a pattern is a regexp or a function.
2022-12-29 Juri Linkov <juri@linkov.net>
* src/keyboard.c (echo_add_key): Use recently rebound C-h key C-q (bug#60249)
2022-12-29 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in treesit.c with --enable-checking
* src/treesit.c (Ftreesit_node_first_child_for_pos)
(Ftreesit_node_descendant_for_range): Check validity of buffer
positions before converting them to byte-positions, to avoid
assertion violations in buf_charpos_to_bytepos.
2022-12-29 Yuan Fu <casouri@gmail.com>
Clean up treesit-default-defun-skipper and add comments
* lisp/treesit.el (treesit-default-defun-skipper): Clean up, fix some
small issue, add comment.
2022-12-29 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode bracket indentation (bug#60398)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new
anchor.
(c-ts-mode--bracket-children-anchor): New anchor function.
2022-12-28 Yuan Fu <casouri@gmail.com>
Clean up font-lock rules in js-ts-mode
Changes for each feature:
- string: Take out string-interpolation bits.
- string-interpolation: New.
- declaration: Rename to definition.
- identifier: Remove.
- property: Use a pred to filter out methods.
- expression: Rename to assignment.
- function: New.
- pattern: Merge into assignment.
* lisp/progmodes/js.el (js--treesit-font-lock-settings): See above.
(js--treesit-property-not-function-p)
(js--treesit-lhs-identifier-query): New variable.
(js--treesit-fontify-assignment-lhs): New functions.
(js-ts-mode): Update feature list.
2022-12-28 Yuan Fu <casouri@gmail.com>
Fix syntax for < and > in c++-ts-mode (bug#60351)
< and > are usually punctuation, e.g., in ->. But when used for
templates, they should be considered pairs. Right now we always
consider them as pairs which is incorrect.
* lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Remove
variable.
(c-ts-mode--syntax-propertize): New function.
(c++-ts-mode): Remove syntax table. Setup syntax-propertize-function.
2022-12-28 Yuan Fu <casouri@gmail.com>
Call tree-sitter parser notifier on the first parse
* src/treesit.c (treesit_call_after_change_functions): Handle NULL
old_tree.
(treesit_ensure_parsed): Remove check for NULL tree.
2022-12-28 Yuan Fu <casouri@gmail.com>
Fix tree-sitter parser notifier recursion
See the comment for detail.
* src/treesit.c (treesit_ensure_parsed): Move the need_reparse short
circuit to the very beginning. Move the call to
treesit_call_after_change_functions to the very end.
2022-12-28 Juri Linkov <juri@linkov.net>
* lisp/help.el: Use 'C-h C-q' to toggle 'help-quick' window (bug#60249).
(help-map): Bind "C-q" to 'help-quick-toggle'. Rebind "q" to 'help-quit'.
(help-quick): Replace help-quit-or-quick with help-quick-toggle.
(help-quick-toggle): New command.
(help-quit-or-quick): Remove command.
(help-for-help): Replace help-quick-or-quit with help-quick-toggle.
2022-12-28 Juri Linkov <juri@linkov.net>
* lisp/isearch.el: Small fixes.
(isearch-wrap-pause): Mention the new feature of `no' and `no-ding'
in the docstring.
(isearch-lax-whitespace, isearch-forward-thing-at-point): Add the
group 'isearch' since another defgroup changed the default group.
(isearch-delete-char): Use 'isearch-invisible' instead of 'search-invisible'
since the users might change the current value with 'M-s i'.
2022-12-28 Juri Linkov <juri@linkov.net>
* lisp/vc/diff-mode.el (diff-minor-mode-prefix): Replace "ESC" with "\e".
"ESC" looks like an attempt to use kbd syntax in customization.
But actually now 'key-description' is used in 'diff-minor-mode-map'
to convert "\e" to "ESC".
2022-12-28 Juri Linkov <juri@linkov.net>
* doc/emacs/display.texi (Text Scale): Improve section about repeating keys.
Mention that it's possible to use repeating keys without the modifiers
and copy an example from etc/NEWS.
2022-12-28 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (repeat-echo-function): Suggest 'add-function' in docstring.
(bug#60353)
2022-12-28 Juri Linkov <juri@linkov.net>
* lisp/tab-line.el (tab-line-cache-key-default): More cache keys (bug#60340).
Move more cache keys here from 'tab-line-format' to give users more freedom.
2022-12-28 Stefan Monnier <monnier@iro.umontreal.ca>
* etc/package-keyring.gpg: Update with new key
2022-12-28 F. Jason Park <jp@neverwas.me>
Warn of absent networks module in ERC
* doc/misc/erc.texi: Add linkable note in Modules chapter about some
modules being required. Also tweak markup in auth-source section.
* etc/ERC-NEWS: Mention the special role of `networks'.
* lisp/erc/erc-backend.el (erc--server-post-connect-hook): Add
internal hook for core modules to perform post-network-process,
pre-protocol config validation even when they haven't been loaded.
(erc--register-connection): Run `erc--server-post-connect-hook'.
* lisp/erc/erc-networks.el (erc-networks--bouncer-targets,
erc-networks-on-MOTD-end): Fix comments and doc strings. Also change
former from constant to internal variable in case adjustment needed
between releases.
(erc-networks--warn-on-connect): New function to warn about the
`networks' module being absent from `erc-modules'. This could
probably run at any time up to and including when the logical IRC
connection is established, but doing so at the process/protocol
boundary seems ideal.
* lisp/erc/erc-sasl.el (erc--register-connection): Defer to base
method instead of calling `erc-login' explicitly.
* lisp/erc/erc.el (erc-generate-new-buffer-name): Don't reconcile
buffer names when networks module not in play.
(erc-format-target-and/or-network): Don't assume networks module
loaded.
* test/lisp/erc/erc-scenarios-base-unstable.el:
(erc-scenarios-networks-no-module): New test.
* test/lisp/erc/resources/networks/no-module/basic.eld: New test data
file. (Bug#60331.)
2022-12-28 F. Jason Park <jp@neverwas.me>
Avoid "already compiled" warning in erc-compat
* lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search):
Don't `byte-compile' sub-29 secrets wrapper. This was especially
noisy in tests. Ditch closed-over vars via HOF instead of suppressing
because compiling emits "unused lexical" warning on Emacs 27.
2022-12-28 Dmitry Gutov <dgutov@yandex.ru>
(python--treesit-settings): Remove duplicate matcher
* lisp/progmodes/python.el (python--treesit-settings): Remove
duplicate matcher (which found itself under 'function' in addition
to 'definition').
2022-12-28 Eli Zaretskii <eliz@gnu.org>
Make last change of w32 GUI dialogs conditional and reversible
* src/w32term.c (syms_of_w32term) <w32-yes-no-dialog-show-cancel>:
New boolean variable.
(w32_initialize): Fix query for visible system caret: 'bool' is a
single-byte data type, whereas SystemParametersInfo wants a BOOL,
which is a 32-bit int.
* src/w32menu.c (simple_dialog_show): Show "Cancel" button only if
'w32-yes-no-dialog-show-cancel' is non-nil.
* etc/NEWS: Announce the change.
2022-12-28 Yuan Fu <casouri@gmail.com>
Fix tree-sitter typos
* doc/lispref/parsing.texi (Tree-sitter major modes):
* lisp/progmodes/java-ts-mode.el:
* test/src/treesit-tests.el (treesit-defun-navigation-nested-4): Fix
typo.
2022-12-27 Yuan Fu <casouri@gmail.com>
Update tree-sitter major modes to use the new Imenu facility
See previous commit for more explanation.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): Handle more
types.
(c-ts-mode--imenu-1)
(c-ts-mode--imenu): Remove functions.
(c-ts-base-mode): Setup Imenu.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--imenu-1)
(csharp-ts-mode--imenu): Remove functions.
(csharp-ts-mode): Setup Imenu.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu-1)
(java-ts-mode--imenu): Remove functions.
(java-ts-mode): Setup Imenu.
* lisp/progmodes/js.el (js--treesit-imenu-1)
(js--treesit-imenu): Remove functions.
(js--treesit-valid-imenu-entry): New function.
(js-ts-mode): Setup Imenu.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): Trim the
quotes.
(json-ts-mode--imenu-1)
(json-ts-mode--imenu): Remove functions.
(json-ts-mode): Setup Imenu.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--imenu)
(rust-ts-mode--imenu-1): Remove functions.
(rust-ts-mode): Setup Imenu.
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-base-mode): Remove treesit-defun-prefer-top-level, it's
not used anymore. Setup Imenu. Setup treesit-defun-name-function.
* lisp/textmodes/css-mode.el (css--treesit-imenu-1)
(css--treesit-imenu): Remove functions.
(css-ts-mode): Setup Imenu.
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--defun-name): Fix it
and add a fallback.
(toml-ts-mode--imenu-1)
(toml-ts-mode--imenu): Remove functions.
(toml-ts-mode): Setup Imenu.
2022-12-27 Yuan Fu <casouri@gmail.com>
Add tree-sitter helper functions for Imenu
We didn't add an integration for Imenu because we aren't sure what
should it look like. Now we have a pretty good idea. All the major
modes copy-paste the two Imenu functions and tweaks them in a standard
way. With the addition of treesit-defun-type-regexp and
treesit-defun-name-function, now is a good time to standardize Imenu
integration.
In the next commit we update all the major modes to use this
integration.
* doc/lispref/modes.texi (Imenu): Add manual.
* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.
* lisp/treesit.el (treesit-simple-imenu-settings): New varaible.
(treesit--simple-imenu-1)
(treesit-simple-imenu): New functions.
(treesit-major-mode-setup): Setup Imenu.
2022-12-27 Yuan Fu <casouri@gmail.com>
Fix treesit--things-around (bug#60355)
Current implementation of treesit--things-around only searches forward
for REGEXP and go up the tree until it finds a valid thing, if nothing
matches it gives up. This makes it sometimes miss defuns. The new
implementation tries multiple times (of search forward + go up) until
it exhausts all possible defun nodes.
* lisp/treesit.el (treesit--things-around): New implementation.
(treesit--navigate-defun): Refactor to use treesit-node-top-level to
simplify code, and add some guards in the predicate function.
* test/src/treesit-tests.el:
(treesit--ert-defun-navigation-elixir-program): New variable.
(treesit-defun-navigation-nested-4): New test.
2022-12-27 Yuan Fu <casouri@gmail.com>
Improve treesit-node-top-level and treesit-parent-until
* lisp/treesit.el (treesit-node-top-level): Now it can accept a
predicate function. Add an optional argument INCLUDE-NODE.
(treesit-parent-until): Add an optional argument INCLUDE-NODE.
2022-12-27 Eli Zaretskii <eliz@gnu.org>
* src/w32menu.c (simple_dialog_show): Use MB_YESNOCANCEL style.
2022-12-27 Xi Lu <lx@shellcodes.org>
Fix htmlfontify.el command injection vulnerability.
* lisp/htmlfontify.el (hfy-text-p): Fix command injection
vulnerability. (Bug#60295)
2022-12-27 Rudolf Adamkovič <salutis@me.com>
Improve support for Scheme R6RS and R7RS libraries (bug#54704)
* etc/NEWS (Scheme mode): Document improved file-type auto-detection
and Imenu support for R6RS and R7RS Scheme libraries.
* lisp/files.el (auto-mode-alist): Associate the '.sls' (R6RS Scheme
Library Source) and '.sld' (R7RS Scheme Library Definition) file name
extensions with the Scheme mode.
* lisp/progmodes/scheme.el (scheme-imenu-generic-expression): Make
Imenu recognize the members nested (and so indented) inside of
'library' (R6RS) or 'define-library' (R7RS) forms.
2022-12-26 Yuan Fu <casouri@gmail.com>
Add a new tree-sitter query predicate 'pred'
I realized that using an arbitrary function as the predicate in
queries is very helpful for some queries I'm writing for python and
javascript, and presumably most other languages[1].
Granted, we can already filter out unwanted nodes by using a function
instead of a face for the capture name, and (1) determine whether the
captured node is valid and (2) fontify that node if it's valid.
However, such approach is a bit more cumbersome and more importantly
gets in the way of another potential use of the fontification queries:
context extraction.
For example, I could use the query for the 'variable' feature to get
all the variables in a certain region. In this use-case, we want the
filtering happen before returning the captured nodes.
Besides, the change is relatively small and straightforward: most code
are already there, I just need to add some boilerplate.
[1] For a code like aa.bb(cc), we want bb to be in function face,
because obviously its a function. But for aa.bb, we want bb to be in
property face, because it's a property. In the AST, bb is always a
property, the difference between the two cases is the enclosing node:
in the first case, aa.bb is in a "call_expression" node, indicating
that bb is used as a function (a method). So we want a predicate
function that checks whether bb is used as a function or a property,
and determine whether it should be in function or property face.
* doc/lispref/parsing.texi (Pattern Matching): Update manual.
* src/treesit.c (Ftreesit_pattern_expand): Handle :pred.
(treesit_predicate_capture_name_to_node): A new function extracted
from treesit_predicate_capture_name_to_text.
(treesit_predicate_capture_name_to_text): Use the newly extracted
function.
(treesit_predicate_pred): New predicate function.
(treesit_eval_predicates): Add new predicate. Also fix a bug: we want
to AND the results of each predicate.
* test/src/treesit-tests.el (treesit--ert-pred-last-sibling): New
helper function.
(treesit-query-api): Test #pred predicate.
2022-12-26 Stefan Kangas <stefankangas@gmail.com>
Improve gnutls-min-prime-bits docstring
* lisp/net/gnutls.el (gnutls-min-prime-bits): Doc fix: delete
out-of-date and now misleading sentence, added back when Emacs'
default minimum prime bits for a Diffie-Hellman handshake was only 256
bits. These days, the default is nil, which means to let GnuTLS
decide the value. (See also `nsm-protocol-check--dhe-prime-kx`.)
2022-12-26 Gregory Heytings <gregory@heytings.org>
Improve handling of tab-bar height.
* src/xdisp.c (redisplay_tab_bar): When 'auto-resize-tab-bar' is
not 'grow-only', also consider the case when the tab-bar height
needs to shrink. Fixes bug#60210.
2022-12-26 Eli Zaretskii <eliz@gnu.org>
Simplify last change (bug#60311)
* src/json.c (json_available_p): Use original code. Always return
true for !WINDOWSNT.
(ensure_json_available): Now defined only on WINDOWSNT.
(Fjson_serialize, Fjson_insert, Fjson_parse_string)
(Fjson_parse_buffer): Call ensure_json_available only on
WINDOWSNT.
* lisp/subr.el (json-available-p): Simplify.
2022-12-26 Mattias Engdegård <mattias.engdegard@gmail.com>
Fix 'json-available-p' on MS-Windows
* src/json.c (json_available_p, ensure_json_available)
(Fjson__available_p): New functions.
(Fjson_serialize, Fjson_insert, Fjson_parse_string)
(Fjson_parse_buffer): Use ensure_json_available.
(syms_of_json): Defsubr json--available-p.
* lisp/subr.el (json-available-p): Rewrite.
2022-12-26 Kyle Meyer <kyle@kyleam.com>
loaddefs-gen: Group results by absolute file name
loaddefs-generate produced an incomplete output file if 1) it
was called with a relative file name and 2) that same file was
specified via a generated-autoload-file cookie in a subset of
the input files. In that case, autoload entries were lost
because loaddefs-generate writes the same output file twice:
once for the relative name specified by the caller and once
for the absolute name that loaddefs-generate--parse-file
returns for the generated-autoload-file value.
This has been fixed. (Bug#60318)
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Expand file
names when grouping loaddef files.
2022-12-26 Yuan Fu <casouri@gmail.com>
Fix imenu for c-ts-mode (bug#60296)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): Use
c-ts-mode--defun-valid-p to filter out nested matches.
(c-ts-mode--defun-valid-p): Handle more types of nodes.
2022-12-26 Yuan Fu <casouri@gmail.com>
Clean up python-ts-mode font-lock features
* lisp/progmodes/python.el (python--treesit-settings): Remove
unnecessary override flags, add function and variable feature, fix
assignment feature.
(python--treesit-variable-p)
(python--treesit-fontify-variable): New functions.
(python-ts-mode): Add function and variable feature.
2022-12-26 Yuan Fu <casouri@gmail.com>
Add comment indent and filling to other tree-sitter major modes
Extract the setup into a function, and use it in other major modes.
* lisp/progmodes/c-ts-mode.el (c-ts-mode-comment-setup): New function.
(c-ts-base-mode): Extract out.
(c-ts-mode)
(c++-ts-mode): Remove old setup.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--indent-rules): New
indent rules.
(csharp-ts-mode): Use new setup function.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
indent rules.
(java-ts-mode): Use new setup function.
* lisp/progmodes/js.el (js--treesit-indent-rules): New indent rules.
(js-ts-mode): Use new setup function.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules): New
indent rules.
(rust-ts-mode): Use new setup function.
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode--indent-rules): New indent rules.
(typescript-ts-base-mode): Use new setup function.
2022-12-26 Yuan Fu <casouri@gmail.com>
Add maintainer stub for tree-sitter files
* lisp/treesit.el:
* src/treesit.c: Add maintainer.
2022-12-25 Gregory Heytings <gregory@heytings.org>
Remove remaining mentions of 'eval-current-buffer'
* lisp/emacs-lisp/edebug.el (edebug-all-defs):
* doc/lispref/eval.texi (Eval):
* doc/lispref/edebug.texi (Instrumenting, Edebug Options):
Remove remaining mentions of 'eval-current-buffer', obsoleted in
Emacs 22 and removed in Emacs 26.
2022-12-25 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6-61-g63e073f
2022-12-25 Philip Kaludercic <philipk@posteo.net>
Add heuristic to locate lisp code in source packages
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Check if a
"lisp" directory exists and use that instead of PKG-DIR.
(Bug#60155)
2022-12-25 Yuan Fu <casouri@gmail.com>
Further generalize treesit-defun functions
Two new functions, treesit-beginning/end-of-thing. And
treesit-thing-at-point's signature changes.
* lisp/treesit.el (treesit-block-type-regexp): New variable.
(treesit-beginning-of-thing)
(treesit-end-of-thing): Generalized from
treesit-beginning/end-of-defun.
(treesit-beginning-of-defun)
(treesit-end-of-defun): Use the new functions.
(treesit-thing-at-point): Accept PATTERN rather than REGEXP and PRED.
(treesit-defun-at-point): Adjust for the new signature of
treesit-thing-at-point.
2022-12-25 Yuan Fu <casouri@gmail.com>
Generalize treesit-defun functions to "things"
Change the "defun" in some functions (e.g. treesit--defuns-around) to
"thing". Add a function treesit-thing-at-point.
* lisp/treesit.el (treesit--thing-unpack-pattern): New subroutine.
(treesit-beginning-of-defun)
(treesit-end-of-defun): Use new function treesit--navigate-thing.
(treesit--defuns-around): Generalize into treesit--thing-around.
(treesit--top-level-defun): Generalize into treesit--top-level-thing.
(treesit--navigate-defun): Generalize into treesit--navigate-thing.
(treesit-thing-at-point): Generalized from treesit-defun-at-point.
(treesit-defun-at-point): Use treesit-thing-at-point to do tht work.
2022-12-25 Philip Kaludercic <philipk@posteo.net>
Reorder optional arguments to 'package-vc-install'
* lisp/emacs-lisp/package-vc.el (package-vc-install-selected-packages):
Update 'package-vc-install' invocation.
(package-vc-install): Reorder and update documentation.
2022-12-25 Philip Kaludercic <philipk@posteo.net>
Handle missing dependencies for source packages
* lisp/emacs-lisp/package-vc.el (package-vc-install-dependencies): Add
new function.
(package-vc--unpack-1): Call 'package-vc-install-dependencies' instead
of 'package-compute-transaction' and 'package-download-transaction'.
It is unreasonable to abort the installation, since we cannot expect
all dependencies to be available in the regular archives. Instead we
note which packages couldn't be found, and warn the user that these
will be missing.
2022-12-24 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode imenu defun name (bug#60296)
Extract out c-ts-mode--declarator-identifier from
c-ts-mode--fontify-declarator.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--declarator-identifier): New
function.
(c-ts-mode--fontify-defun): Extract out.
(c-ts-mode--defun-name): Use the new function.
2022-12-24 Yuan Fu <casouri@gmail.com>
Fix treesit--children-covering-range-recurse (bug#60301)
* lisp/treesit.el (treesit--children-covering-range-recurse): Always
return a list of node.
2022-12-24 Yuan Fu <casouri@gmail.com>
Support treesit-defun-name in tree-sitter major modes
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-name): New
function.
(csharp-ts-mode--imenu-1): Extract into new function.
(csharp-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--defun-name): New
function.
(java-ts-mode--imenu-1): Extract into new function.
(java-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/js.el (js-treesit-current-defun): Remove function.
This function is not used (for a while already).
(js--treesit-defun-name): New function.
(js--treesit-imenu-1): Extract into new function.
(js-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): New
function.
(json-ts-mode--imenu-1): Extract into new function.
(json-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/python.el (python--treesit-defun-name): New function.
(python--imenu-treesit-create-index-1): Extract into new function.
(python-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--defun-name): New
function.
(rust-ts-mode--imenu-1): Extract into new function.
(rust-ts-mode): Setup treesit-defun-name-function.
* lisp/textmodes/css-mode.el (css--treesit-defun-name): New function.
(css--treesit-imenu-1): Extract into new function.
(css-ts-mode): Setup treesit-defun-name-function.
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--get-table-name):
Remove function.
(toml-ts-mode--defun-name): New function.
(toml-ts-mode--imenu-1): Extract into new function.
(toml-ts-mode): Setup treesit-defun-name-function.
2022-12-24 Yuan Fu <casouri@gmail.com>
Add treesit-defun-name and friends
1. We now have treesit-defun-name, powered by
treesit-defun-name-function.
2. We now have treesit-add-log-current-defun, which powers
add-log-current-defun.
3. c-ts-mode updates its code to take advantage of these new features.
4. Manual updates.
* doc/lispref/parsing.texi (Tree-sitter major modes): Add manual for
new functions.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): New function.
(c-ts-mode--imenu-1): Extract out into c-ts-mode--defun-name.
(c-ts-base-mode): Setup treesit-defun-name-function.
* lisp/treesit.el (treesit-defun-name-function)
(treesit-add-log-defun-delimiter): New variables.
(treesit-defun-at-point)
(treesit-defun-name): New functions.
(treesit-major-mode-setup): Setup add-log-current-defun-function.
2022-12-24 Yuan Fu <casouri@gmail.com>
Make treesit-node-at/on guess language at point
If PARSER-OR-LANG is nil, it makes more sense to guess the language at
point by treesit-language-at than to simply use the first parser in
the parser list.
* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.
* lisp/treesit.el (treesit-node-at)
(treesit-node-on): Guess language at point. Update docstring.
(treesit-buffer-root-node): Update docstring.
2022-12-24 Óscar Fuentes <ofv@wanadoo.es>
* nt/INSTALL.W64: update instructions for setting up W64 environment
2022-12-24 Eli Zaretskii <eliz@gnu.org>
Revert "; Bump minimum supported Windows version for MinGW64 to Windows 10."
This reverts commit 75155e458601a3597d382660d0be863ab4d512c0.
Evidently, some MSYS2/MinGW64 folks still think Windows 8.1
is the minimum supported version, even though MinGW-w64 switched
to Windows 10 as the default target in January 2022.
2022-12-24 Eli Zaretskii <eliz@gnu.org>
Fix definition of CNS 11643-15 charset
* lisp/international/mule-conf.el (chinese-cns11643-15): Fix
:code-offset value. (Bug#60275)
* lisp/international/characters.el: Add chinese-cns11643-15 to
charsets whose characters have categories c and C.
2022-12-24 Yuan Fu <casouri@gmail.com>
Improve c-ts-mode block comment indent (bug#60270)
Now it handles stuff like (backslashes added to not confuse
authors.el)
/**
\* @some_func:
\* @arg1:
\*/
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Use new
matcher and anchor.
(c-ts-mode--looking-at-star): New matcher.
(c-ts-mode--comment-start-after-first-star): New anchor.
2022-12-24 Yuan Fu <casouri@gmail.com>
Fix block comment indent and filling for c-ts-mode (bug#59763)
Now indent and filling works like in c-mode. The only noticeable
missing piece is that the "*/" is not attached to the last sentence
when filling. c-mode does it by replacing whitespaces between the
"*/" and the end of the last sentence with xxx, fill it, then change
the xxx back. I don't know if we should do that in c-ts-mode's filling.
* doc/lispref/modes.texi (Parser-based Indentation): Add new preset.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Add new
indent rule.
(c-ts-mode--fill-paragraph): New function.
(c-ts-base-mode): Setup paragraph-start, adaptive-fill, etc.
* lisp/treesit.el (treesit-simple-indent-presets): Add new preset.
2022-12-24 Yuan Fu <casouri@gmail.com>
Fix treesit_cursor_helper (bug#60267)
The cause of that bug is that in a particular parse tree, the node
treesit_cursor_helper tries to go to is a missing node, not only is it
a missing node, it is the first node of a subtree. So when
treesit_cursor_helper follows the algorithm and goes down the tree, it
goes down the previous subtree (because that subtree's end = end_pos,
because the target node has zero width).
o
|
o--+-o
| |
+-+ +-+-+
| | | | |
o x t o o
(We ended up in x when the target is t, because t has zero width.)
One way to solve it is to go back up the tree if we are at a leaf node
and still haven't matched the target node. That's too ugly and
finicky so I resorted to recursion. Now one more functions will
return give up (treesit_node_parent) if we are in a werid parse tree
that is super deep. But since we already kind of give up on this kind
of parse trees (bug#59426), it doesn't really hurt.
* src/treesit.c (treesit_cursor_helper_1): New function.
(treesit_cursor_helper): Use the new function. Change return type to
bool, and accept a cursor pointer.
(Ftreesit_node_parent)
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Use the new signature.
2022-12-24 Paul Eggert <eggert@cs.ucla.edu>
Fix restart-emacs alarms (Bug#60220)
* src/emacs.c (Fkill_emacs): Turn timers off before execing,
so that the re-execed Emacs doesnt get a timer alarm.
2022-12-24 Florian Weimer <fweimer@redhat.com>
Fix alternate stack test in configure
* configure.ac (emacs_cv_alternate_stack): Include <stdlib.h>
for 'malloc's prototype.
2022-12-24 Xi Lu <lx@shellcodes.org>
Add more functions to "string" shortdoc
* lisp/emacs-lisp/shortdoc.el: Add 'string-or-null-p',
'char-or-string-p', 'char-uppercase-p'. (Bug#60279)
2022-12-24 Yaraslau Tamashevich <yaraslau.tamashevich@gmail.com> (tiny change)
Make the Contour terminal an alias of xterm-256color
* lisp/faces.el (term-file-aliases): Make the Contour terminal an
alias of xterm-256color. (Bug#60278)
2022-12-24 glacials <ben@twos.dev> (tiny change)
Correct wrong info in (info)Go to node
The node (info)Go to node in the Info manual states that 'g'
does not allow the use of abbreviations, however it does.
To test this, type 'gt' from this node and see that it takes
you to (info)Top, then type 'ggo<RET>' and see that it takes
you back to (info)Go to node. Tested on emacs 28.2.
* doc/misc/info.texi (Go to node): Fix inaccurate information.
(Bug#60263)
2022-12-24 Eli Zaretskii <eliz@gnu.org>
Fix typo in TUTORIAL.fr (bug#60261)
* etc/tutorials/TUTORIAL.fr: Fix typo. Reported by
Clément Escude--Cotinat <clement.escudecotinat@yahoo.fr>.
2022-12-24 Daniel Martín <mardani29@yahoo.es>
Add some diff-fixup-modifs tests
* test/lisp/vc/diff-mode-tests.el (diff-mode-test-fixups-added-lines):
Test that diff-mode fixes patches with added lines correctly.
* test/lisp/vc/diff-mode-tests.el (diff-mode-test-fixups-empty-hunks):
Ditto for patches with empty hunks. (Bug#60259)
2022-12-24 Ulrich Müller <ulm@gentoo.org>
Fix quoted argument in emacsclient-mail.desktop Exec key
Apparently the emacsclient-mail.desktop file doesn't conform to the
Desktop Entry Specification at
https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#exec-variables
which says about the Exec key:
| Field codes must not be used inside a quoted argument, the result of
| field code expansion inside a quoted argument is undefined.
However, the %u field code is used inside a quoted argument of the
Exec key in both the [Desktop Entry] and [Desktop Action new-window]
sections.
* etc/emacsclient-mail.desktop (Exec): The Desktop Entry
Specification does not allow field codes like %u inside a quoted
argument. Work around it by passing %u as first parameter ($1)
to the shell wrapper.
* etc/emacsclient.desktop (Exec): Use `sh` rather than `placeholder`
as the command name of the shell wrapper. (Bug#60204)
2022-12-24 Richard Hansen <rhansen@rhansen.org>
ert-x: Move window selection logic to its own macro
* lisp/emacs-lisp/ert-x.el (ert-with-buffer-selected): New macro to
temporarily display a buffer in a selected window and evaluate a body.
(ert-with-test-buffer-selected): Use the new macro.
* test/lisp/whitespace-tests.el
(ert-test-with-buffer-selected/current)
(ert-test-with-buffer-selected/selected)
(ert-test-with-buffer-selected/nil-buffer)
(ert-test-with-buffer-selected/modification-hooks)
(ert-test-with-buffer-selected/read-only)
(ert-test-with-buffer-selected/return-value): Add tests.
(Bug#60189)
2022-12-24 Po Lu <luangruo@yahoo.com>
Fix crash after X error
* src/xdisp.c (redisplay_internal): Catch another crash if
gcscrollbars after an X error.
2022-12-23 Xi Lu <lx@shellcodes.org>
Fix ruby-mode.el local command injection vulnerability (bug#60268)
* lisp/progmodes/ruby-mode.el
(ruby-find-library-file): Fix local command injection vulnerability.
2022-12-23 Eli Zaretskii <eliz@gnu.org>
Fix "C-h k" in recursive minibuffers
* lisp/subr.el (event--posn-at-point): Leave POSN alone if it
doesn't have at least 6 members. This follows more faithfully
what 'event-start' and 'event-end' did before they started using
this function, see commit c1cead89f5f. Call posn-at-point with
the minibuffer-window when in the minibuffer. (Bug#60252)
2022-12-22 Sean Whitton <spwhitton@spwhitton.name>
vc-git-checkin: Don't try to apply an empty patch
* lisp/vc/vc-git.el (vc-git-checkin): Don't try to apply an empty
patch to the index, because in that case 'git apply' fails.
(cherry picked from commit 1424342225ef5b18c630364dd88e004f4ebb1c7f)
2022-12-22 Michael Albinus <michael.albinus@gmx.de>
Update Tramp version (don't merge with master)
* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.6.0.29.1".
(customize-package-emacs-version-alist):
Adapt Tramp version integrated in Emacs 29.1.
2022-12-22 João Távora <joaotavora@gmail.com>
Eglot: eglot--servers-by-xrefed-file doesn't need to be value-weak
* lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Doesn't
need to be weak.
2022-12-22 João Távora <joaotavora@gmail.com>
Prevent stale servers when using eglot-extend-to-xref
A weak-valued hash-table is not enough to guarantee that a reference
to a zombie server in eglot--servers-by-xrefed-file variable won't
survive long enough to confuse the next call to eglot--current-server
in some buffers.
So, before this fix it was common to get "Process EGLOT ... not
running" errors if some xref-extended buffers (like system libraries)
were open and M-x eglot-reconnect was issued. This should be
prevented now.
Note however, that even after this the eglot-extend-to-xref logic is
still flawed. For example, if a buffer for the xref-extended buffer
happens to be already visited by the time M-. is issued to navigate to
it, Eglot won't be activated. A half-decent workaround is to kill the
buffer and re-visit it.
* lisp/progmodes/eglot.el (eglot--servers-by-xrefed-file): Move
up.
(eglot--on-shutdown): Make sure to cleanup
eglot--servers-by-xrefed-file.
2022-12-22 Xi Lu <lx@shellcodes.org>
* etc/tutorials/TUTORIAL.cn: Fix typos. (Bug#60221)
2022-12-22 Benson Chu <bensonchu457@gmail.com> (tiny change)
Add alias for removed font-lock function
As part of 18947103fabf8070738b3bd9c5a8d02f90988a3d,
`font-lock-fontify-syntactically-region' was renamed to
`font-lock-default-fontify-sytactically'.
* lisp/font-lock.el (font-lock-fontify-syntactically-region): Add
obsolete alias for the renamed function.
2022-12-22 Yuan Fu <casouri@gmail.com>
Set beginning/end-of-defun-function in treesit-major-mode-setup
* lisp/treesit.el (treesit-major-mode-setup): Set them.
2022-12-22 Yuan Fu <casouri@gmail.com>
Add treesit-defun-at-point and fix c-ts-mode-indent-defun
* lisp/treesit.el (treesit-defun-at-point): New function.
* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): Implement with
treesit-defun-at-point.
2022-12-22 Juri Linkov <juri@linkov.net>
Use the new keyword ':repeat' in repeatable keymaps.
* lisp/bindings.el (undo-repeat-map)
(buffer-navigation-repeat-map, next-error-repeat-map)
(page-navigation-repeat-map):
* lisp/comint.el (comint-repeat-map):
* lisp/dired.el (dired-jump-map):
* lisp/outline.el (outline-navigation-repeat-map)
(outline-editing-repeat-map):
* lisp/shell.el (shell-repeat-map):
* lisp/tab-bar.el (tab-bar-switch-repeat-map)
(tab-bar-move-repeat-map):
* lisp/window.el (other-window-repeat-map)
(resize-window-repeat-map):
* lisp/winner.el (winner-repeat-map):
* lisp/eshell/em-prompt.el (eshell-prompt-repeat-map):
* lisp/eshell/esh-mode.el (eshell-command-repeat-map):
Add the keyword ':repeat' to 'defvar-keymap' instead of
setting the symbol property 'repeat-map' explicitly.
* lisp/keymap.el (defvar-keymap): Check for 'props'
that is used in 'defvar-form'.
2022-12-21 Jim Porter <jporterbugs@gmail.com>
When redirecting in Eshell, check for "/dev/null" specifically
This is so that users can type "cmd ... > /dev/null" in Eshell no
matter what their system's null device is called. (Users can still
use their system's null device name when redirecting, too. Eshell
doesn't need to do anything special to support that.) This partially
reverts 67a8bdb90c9b5865b7f17290c7135b1a5458c36d. See bug#59545.
Do not merge to master.
* lisp/eshell/esh-io.el (eshell-set-output-handle): Use "/dev/null"
literally.
2022-12-21 Andrea Corallo <akrl@sdf.org>
* Invoke spawed Emacs processes with '-Q' when native compiling (bug#60208)
* lisp/emacs-lisp/comp.el (comp-final): Invoke spawned Emacs with '-Q'.
(comp-run-async-workers): Likewise.
2022-12-21 montag451 <montag451@laposte.net> (tiny change)
Fix Eshell electric slash when used from the root directory of a remote host
* lisp/eshell/em-elecslash.el (eshell-electric-forward-slash): Insert
the remote prefix as determined by 'file-remote-p'.
2022-12-21 Eli Zaretskii <eliz@gnu.org>
Fix the --without-all build with tree-sitter
* configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes, since
tree-sitter support requires dynlib.o. (Bug#60061)
2022-12-21 Eli Zaretskii <eliz@gnu.org>
Fix write-region to null device on MS-Windows
* src/fileio.c (write_region) [WINDOWSNT]: Ignore EBADF errors
from fsync -- this means fsync is not supported for this file.
Happens, for example, with the null device. (Bug#59545)
2022-12-21 Alexander Adolf <alexander.adolf@condition-alpha.com>
message: Do not default to eudc-capf-complete yet
* lisp/gnus/message.el (message-mode): No longer add
eudc-capf-complete to the buffer-local value of
completion-at-point-functions. (Bug#59314)
2022-12-21 Richard Hansen <rhansen@rhansen.org>
whitespace: Avoid mutating original buffer's markers in clones
* lisp/whitespace.el (whitespace--clone): New hook function that is
run after cloning a buffer that copies `whitespace-bob-marker' and
`whitespace-eob-marker' and changes the copies to point to the new
buffer (Bug#59618).
(whitespace-color-on): Register the hook function.
(whitespace-color-off): Unregister the hook function.
* test/lisp/whitespace-tests.el
(whitespace-tests--with-test-buffer): New macro.
(whitespace-tests--check-markers): New function.
(whitespace-tests--indirect-clone-breaks-base-markers)
(whitespace-tests--indirect-clone-markers)
(whitespace-tests--regular-clone-markers): New tests.
2022-12-20 Charl P. Botha <cpbotha@vxlabs.com> (tiny change)
Fix empty pairs in js tree-sitter imenu alist (bug#59945)
The current js--treesit-imenu, used by the JavaScript, TypeScript and
TSX tree-sitter modes, would return empty pairs in the imenu alist if
there were none of that type of symbol.
This would break both the built in imenu and also packages like
consult-imenu.
See https://github.com/minad/consult/issues/697 for the discussion
there.
* lisp/progmodes/js.el (js--treesit-imenu): Don't add nil indexes.
2022-12-20 Juri Linkov <juri@linkov.net>
* lisp/repeat.el: Fix repeat-keep-prefix to allow customizing it to non-nil.
* lisp/repeat.el (repeat-keep-prefix): Add or remove
'repeat-pre-hook' depending on the customized value.
(repeat-mode): Add or remove 'repeat-pre-hook' to/from
'pre-command-hook' when 'repeat-keep-prefix' is non-nil.
(repeat-pre-hook): New function.
(repeat-get-map, repeat-check-map): New function refactored from
'repeat-post-hook'.
(repeat-post-hook): Move some code to smaller functions.
(describe-repeat-maps): Set outline-regexp without ^L.
* test/lisp/repeat-tests.el (repeat-tests-keep-prefix):
Uncomment test case that is fixed now in bug#51281 and bug#55986.
2022-12-20 Daniel Martín <mardani29@yahoo.es>
Correct capitalization of Lisp in the manual (bug#60222)
* doc/lispref/compile.texi (Native-Compilation Functions): Fix typo.
2022-12-20 Brian Leung <leungbk@posteo.net>
eglot.el: Add vscode-json-languageserver to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add the
alternative name of the vcscode JSON server. (Bug#60198)
2022-12-19 Juri Linkov <juri@linkov.net>
* lisp/progmodes/project.el (project--read-file-cpd-relative): Optimize.
2022-12-19 Dmitry Gutov <dgutov@yandex.ru>
ruby-method-params-indent: New user option
* lisp/progmodes/ruby-mode.el (ruby-method-params-indent):
New option (bug#60110).
(ruby-smie-rules): Use it.
* etc/NEWS: Mention it.
* test/lisp/progmodes/ruby-mode-resources/ruby.rb:
Ensure the var's value is default.
* test/lisp/progmodes/ruby-mode-resources/ruby-method-params-indent.rb:
New file.
* test/lisp/progmodes/ruby-mode-tests.el (ruby-deftest-indent):
New macro, use it to run the indentation test using the new file.
Disable the :expensive-test tag, because neither runs for "longer
than some few seconds", both take significantly below 1s.
2022-12-19 Juri Linkov <juri@linkov.net>
* lisp/progmodes/project.el: Filter out empty strings from history (bug#58447)
(project--read-file-cpd-relative): Do not include empty strings (when
prefix has the same length as the string).
2022-12-19 Eli Zaretskii <eliz@gnu.org>
Fix storing email into nnmail by Gnus
* lisp/gnus/nnml.el (nnml--encode-headers): Wrap
'rfc2047-encode-string' calls with 'ignore-errors', to avoid
disrupting email workflows due to possibly-invalid headers.
Reported by Florian Weimer <fweimer@redhat.com>.
2022-12-19 Richard Hansen <rhansen@rhansen.org>
whitespace: Fix unintended change in buffer modification status
* lisp/whitespace.el (whitespace--empty-at-bob-matcher)
whitespace--empty-at-eob-matcher, whitespace--update-bob-eob):
Silently add the `font-lock-multiline' text property when
highlighting beginning-of-buffer and end-of-buffer empty lines
to prevent Emacs from running modification hooks or considering
the buffer to be modified (Bug#60066).
* test/lisp/whitespace-tests.el
(whitespace-tests--empty-bob-eob-modified): Add a regression test.
2022-12-19 Eli Zaretskii <eliz@gnu.org>
Make emacsclient add abbreviated file names to file-name-history
* lisp/server.el (server-visit-files): Use
'file-name-history--add' to add the visited files to history.
(Bug#60097)
2022-12-19 Mattias Engdegård <mattiase@acm.org>
Repair setopt test after error demotion to warning
* test/lisp/cus-edit-tests.el (test-setopt):
Check for a warrning instead of an error in attempt to call `setopt`
with a value that does not match the declared type (bug#60162).
2022-12-18 Dmitry Gutov <dgutov@yandex.ru>
ruby-mode: Support endless singleton method definitions too
* lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re):
Update to match not only 'self.' but 'xyz.' as well (bug#54702).
* test/lisp/progmodes/ruby-mode-resources/ruby.rb (Bar#foo=):
Update example.
2022-12-18 Yuan Fu <casouri@gmail.com>
Remove comment-start-skip preset in tree-sitter indentation engine
Comment indentation should use a adaptive-fill-based indent, rather
than comment-start-skip.
Also remove manual description of removed variables in treesit.el and
add documentation for n-p-gp upon request.
* doc/lispref/modes.texi (Parser-based Indentation)
* lisp/treesit.el (treesit-simple-indent-presets): Add n-p-gp, remove
treesit-comment-start/end, remove comment-start-skip.
* doc/lispref/parsing.texi (Tree-sitter major modes): Remove
treesit-comment-start/end.
2022-12-18 Michael Albinus <michael.albinus@gmx.de>
Fix recent change in tramp-smb.el
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Ignore `make-directory-internal'.
(tramp-smb-handle-make-directory): Move implementation from
`tramp-smb-handle-make-directory-internal' here.
* lisp/net/tramp.el (tramp-file-name-for-operation):
Rearrange `make-directory-internal'.
2022-12-18 Michael Albinus <michael.albinus@gmx.de>
Make tramp-archive autoloads robust for older Emacs versions
* lisp/net/tramp-archive.el (tramp-archive-file-name-regexp):
Use `eval-when-compile'. Set it explicitly for older Emacs versions.
2022-12-18 Dmitry Gutov <dgutov@yandex.ru>
ruby-mode: Support endless methods (bug#54702)
* lisp/progmodes/ruby-mode.el (ruby-endless-method-head-re):
New constant.
(ruby-smie-grammar): New token.
(ruby-smie--forward-token, ruby-smie--backward-token):
Recognize it.
(ruby-smie-rules): Indentation support.
(ruby-add-log-current-method): Support here too.
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-add-log-current-method-after-endless-method): New test.
* test/lisp/progmodes/ruby-mode-resources/ruby.rb: New examples.
2022-12-18 Philip Kaludercic <philipk@posteo.net>
* lisp/cus-edit.el (setopt--set): Warn instead of rasing an error
(Bug#60162)
2022-12-18 Philip Kaludercic <philipk@posteo.net>
Allow customising windmove user options with an empty prefix
* lisp/windmove.el (windmove--default-keybindings-type): Handle nil
as a prefix value. (Bug#60161)
2022-12-18 Gregory Heytings <gregory@heytings.org>
Improve and extend admin/git-bisect-start
* admin/git-bisect-start: Use 'git bisect skip' instead of 'git
bisect good' for merges of external trees, which is equivalent but
faster in some cases. Improve the explanation on external tree
merges. Add list of commits in the last six years on which
building Emacs fails, and call 'git bisect skip' on them. Also
document how the script can be called automatically when 'git
bisect start' is called in the Emacs repository.
* admin/notes/repo (Bisecting): Adapt the explanation of the
script accordingly.
2022-12-18 Andrea Monaco <andrea.monaco@autistici.org>
Make 'rmail-summary-by-thread' faster
* lisp/mail/rmailsum.el (rmail-summary-message-parents-vector)
(rmail-summary-message-descendants-vector): Doc fixes.
(rmail-summary-message-descendants-vector): New variable.
(rmail-summary-fill-message-parents-and-descs-vectors): Renamed
from 'rmail-summary-fill-message-parents-vector' and rewritten.
(rmail-summary-direct-descendants): Function deleted.
2022-12-18 Po Lu <luangruo@yahoo.com>
Fix the MS-DOS build
* src/lread.c (syms_of_lread): Make the MS-DOS build work again.
2022-12-18 Eli Zaretskii <eliz@gnu.org>
Avoid crashes in PGTK build due to signal in 'note_mouse_highlight'
* src/xdisp.c (string_buffer_position): Make sure the TO argument
of 'string_buffer_position_lim' is always inside [BEGV..ZV].
Otherwise 'string_buffer_position_lim' might call
'get-char-property' and friends with invalid position, which will
just signal an error and do nothing useful. (Bug#60144)
2022-12-18 Eli Zaretskii <eliz@gnu.org>
Fix MS-Windows build broken by recent treesit.c changes
* src/treesit.c (init_treesit_functions, ts_tree_cursor_copy)
(ts_tree_cursor_delete): Add boilerplate for using new tree-sitter
functions.
(ts_node_parent): Delete boilerplate of unused function.
2022-12-17 Theodor Thornhill <theo@thornhill.no>
Fix wrong capture in typescript-ts-mode (bug#60167)
An example of the issue could be:
<Menu.Item>
{({ active }) => (
link
? <Link to={link}> {text}</Link>
: <a href="#" onClick={onClick}>{text}</a>
)}
</Menu.Item>
Here 'link' as well as a lot of the other constructs inside of the
parenthesized expression will be font-locked with
'font-lock-variable-name-face'. We only want to capture the
identifier.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Make the variable capture
only capture the identifier, and not the whole expression.
2022-12-17 Randy Taylor <dev@rjt.dev>
Add rust-ts-mode (Bug#60136)
* etc/NEWS: Mention it.
* lisp/progmodes/eglot.el (eglot-server-programs): Add it.
* lisp/progmodes/rust-ts-mode.el: New major mode with
tree-sitter support.
2022-12-17 Theodor Thornhill <theo@thornhill.no>
Indentation fixes for jsx/tsx (bug#60169)
* lisp/progmodes/js.el (js--treesit-indent-rules): Simplify the rules.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Simplify the rules.
2022-12-17 Theodor Thornhill <theo@thornhill.no>
Fix treesit-query-validate problem with view-mode
* lisp/treesit.el (treesit-query-validate): Move the (view-mode) into
the correct scope.
2022-12-17 Yuan Fu <casouri@gmail.com>
Use cursor API in treesit-node-parent
This is the last part of the change that fixes bug#60054. The
previous change fixes it for searching functions, this fixes for
treesit-node-parent.
* src/treesit.c (Ftreesit_node_parent): Use the new cursor API.
2022-12-17 Yuan Fu <casouri@gmail.com>
Switch to use cursor API in treesit.c
ts_node_parent has bugs (bug#60054), using cursor API avoids that.
Tree-sitter's author might remove ts_node_parent in the future, so
might as well switch to use cursors now. We are basically
reimplementing some of the logic of ts_node_prev_sibling and
ts_node_parent in the sibling helper and cursor helper functions.
See also https://github.com/tree-sitter/tree-sitter/issues/1992
* src/treesit.c (treesit_traverse_sibling_helper)
(treesit_traverse_child_helper)
(treesit_traverse_match_predicate): Reimplemented to use the cursor API.
(treesit_search_dfs)
(treesit_search_forward): Use the new cursor helper functions.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Use cursors.
* test/src/treesit-tests.el (treesit-search-subtree): New test.
(treesit--ert-search-setup): New macro.
(treesit-search-forward)
(treesit-search-forward-named-only)
(treesit-search-backward)
(treesit-search-backward-named-only)
(treesit-cursor-helper-with-missing-node): New tests.
2022-12-17 Yuan Fu <casouri@gmail.com>
Add treesit_assume_true and treesit_cursor_helper
This is part 1 of the change to change node API to cursor API. See
the second part for more detail. (I splitted the change to make the
diff more sane.)
* src/treesit.c (treesit_assume_true)
(treesit_cursor_helper): New functions.
2022-12-17 Paul Eggert <eggert@cs.ucla.edu>
Remove file-exists-in-trash-p
* lisp/files.el (file-exists-in-trash-p): Remove, as this name is
not suitable for users. All uses replaced by file-attributes,
which is good enough here.
2022-12-17 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6-49-g47d129
2022-12-17 Paul Eggert <eggert@cs.ucla.edu>
Dont assume make-directory handler returns nil
* lisp/files.el (make-directory): Ignore what the make-directory
handler returns, as its return value was not documented in Emacs 28.
2022-12-17 Paul Eggert <eggert@penguin.cs.ucla.edu>
Fix copy-directory bug when dest dir exists
* lisp/files.el (copy-directory): Set follow depending on
whether we made the directory, not based on a guess that is
sometimes wrong. When NEWNAME is a directory name and
COPY-CONTENTS is nil, do not object merely because the adjusted
NEWNAME is already a directory. (Bug#58919).
* test/lisp/files-tests.el (files-tests-copy-directory):
Test for the bug.
2022-12-17 Paul Eggert <eggert@cs.ucla.edu>
make-directory now returns t if dir already exists
This new feature will help fix a copy-directory bug (Bug#58919).
Its implementation does not rely on make-directory handlers
supporting the new feature, as it no longer uses a make-directory
handler H in any way other than (funcall H DIR), thus using
only the intersection of the old and new behavior for handlers.
This will give us time to fix handlers at our leisure.
* lisp/files.el (files--ensure-directory): New arg MKDIR.
All uses changed.
(files--ensure-directory, make-directory):
Return non-nil if DIR is already a directory. All uses changed.
* test/lisp/files-tests.el (files-tests-make-directory):
Test new return-value convention.
2022-12-17 Paul Eggert <eggert@cs.ucla.edu>
Use make-directory handlers uniformly
Formerly, the code supported both make-directory and
make-directory-internal handlers. This led to confusion and meant than
in a few cases (nnmaildir, ido) remote directories could not be used in
some cases. Fix this by using only make-directory handlers.
Perhaps there used to be a reason for why there were both
make-directory and make-directory-internal handlers, but whatever that
reason was, it seems to have vanished even before now.
There is no longer any need for make-directory-internal handlers, as
the few remaining callers that use make-directory-internal do so only
when there are no handlers. However, this change keeps the existing
make-directory-internal handlers for now, in case this code is ever
used in older Emacs versions that still call those handlers.
* lisp/gnus/nnmaildir.el (nnmaildir--mkdir):
* lisp/ido.el (ido-file-internal):
* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory):
Use make-directory, not make-directory-internal.
* lisp/net/tramp-smb.el (tramp-smb-handle-make-directory-internal):
Now obsolete.
* src/fileio.c (Fmake_directory_internal): Do not look for or
use a make-directory-internal handler.
* test/lisp/files-tests.el:
(files-tests-file-name-non-special-make-directory-internal):
Remove, as this test incorrectly assumes that make-directory-internal
must support handlers.
2022-12-17 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'file-exists-p'
* doc/lispref/files.texi (Testing Accessibility): Document better
how to test for existing dangling symlinks. (Bug#60146)
2022-12-17 Eli Zaretskii <eliz@gnu.org>
Fix resizing of mini-windows by 'set-minibuffer-message'
* src/xdisp.c (redisplay_window): Always resize mini-windows
displaying the active minibuffer. (Bug#60015)
2022-12-17 Eli Zaretskii <eliz@gnu.org>
Prevent Abort dialogs from async-compiling jobs on Windows
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Disable Abort
dialog popping in the sub-processes that perform async
compilation, by passing w32-disable-abort-dialog=t on their
command line.
2022-12-17 Eli Zaretskii <eliz@gnu.org>
Fix 'window-max-chars-per-line' when there are no fringes
* lisp/window.el (window-max-chars-per-line): Fix the way we
account for the fringes by calling 'window-fringes'. (Bug#59963)
2022-12-16 Dmitry Gutov <dgutov@yandex.ru>
ruby-mode: Recognize instance or global var as first arg in parenless call
* lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p):
Recognize instance or global var as first arg in parenless call.
* test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add example.
2022-12-16 Dmitry Gutov <dgutov@yandex.ru>
Fix end-of-defun in ruby-mode
* lisp/progmodes/ruby-mode.el (ruby-beginning-of-defun):
Return t in case of success.
2022-12-16 Yuan Fu <casouri@gmail.com>
Remove treesit-defun-prefer-top-level and friends
Because they are not used anymore, after the new defun navigation is
installed.
* lisp/treesit.el (treesit-defun-prefer-top-level)
(treesit--defun-maybe-top-level): Remove.
2022-12-16 Randy Taylor <dev@rjt.dev>
Add yaml-ts-mode (Bug#60105)
* admin/notes/tree-sitter/build-module/batch.sh:
* admin/notes/tree-sitter/build-module/build.sh: Add yaml support.
* etc/NEWS: Mention it.
* lisp/textmodes/yaml-ts-mode.el: New major mode with
tree-sitter support.
* lisp/progmodes/eglot.el (eglot-server-programs): Add it.
2022-12-16 Jostein Kjønigsen <jostein@kjonigsen.net>
Fix indentation in json-ts-mode (bug#60123)
* lisp/progmodes/json-ts-mode.el
(json-ts--indent-rules): Add indentation rules for arrays.
2022-12-16 Eli Zaretskii <eliz@gnu.org> (tiny change)
New input method 'cyrillic-chuvash'
* lisp/leim/quail/cyrillic.el ("cyrillic-chuvash"): New input
method, contributed by flashymittens@tutanota.com. (Bug#60023)
2022-12-16 Juanma Barranquero <lekktu@gmail.com>
Backport: ; * lisp/bs.el: Small doc and whitespace fixes
(cherry picked from commit 8624734504af4572525665c713a47e1b6f439a2c)
2022-12-16 Eli Zaretskii <eliz@gnu.org>
Revert "alist-get testfn argument evaluation correction"
This reverts commit 17d65c99cd812e085d85f790c83ec0d540490a55.
Please don't install unnecessary improvements on the release
branch.
2022-12-16 Eli Zaretskii <eliz@gnu.org>
Revert "Elide broken but unnecessary `if` optimisations"
This reverts commit 13aa376e93564a8cf2ddbbcf0968c6666620db89.
Please don't install anything on the release branch that is
not a clear bugfix for a known bug.
2022-12-16 Eli Zaretskii <eliz@gnu.org>
Revert "Use equal and member instead of eq and memq"
This reverts commit f4b430140f0866f98bbf18b7094348dc64032813.
Please don't install anything on the release branch that is not
strictly necessary fro Emacs 29.
2022-12-16 Mattias Engdegård <mattiase@acm.org>
Use equal and member instead of eq and memq
* lisp/cedet/semantic/complete.el (semantic-displayer-show-request):
* lisp/descr-text.el (describe-char-categories):
* lisp/mh-e/mh-identity.el (mh-select-identity):
* lisp/transient.el (transient--delay-post-command)
(transient--post-command):
* lisp/vc/vc-git.el (vc-git-create-tag):
* test/lisp/emacs-lisp/cl-lib-tests.el
(cl-lib-nth-value-test-multiple-values):
* lisp/emulation/viper-cmd.el (viper-preserve-cursor-color):
Use `equal` instead of `eq` and `member` instead of `memq` where
the comparison is with literals without guaranteed identity.
In some cases this change corrects evident bugs, in others it is
mostly cosmetic.
2022-12-16 Mattias Engdegård <mattiase@acm.org>
Elide broken but unnecessary `if` optimisations
* lisp/emacs-lisp/byte-opt.el (byte-optimize-if):
Remove explicit clauses purposing to simplify
(if X nil t) -> (not X)
(if X t nil) -> (not (not X))
but never did so because of a coding mistake (eq instead of equal),
found by a recently added warning. They weren't actually needed
thanks to the optimiser's fixpoint iteration: we eventually get the
same results through
(if X nil t) -> (if (not X) t nil) -> (if (not X) t) -> (not X)
(if X t nil) -> (if X t) -> (not (not X))
2022-12-16 Mattias Engdegård <mattiase@acm.org>
alist-get testfn argument evaluation correction
* lisp/emacs-lisp/gv.el (alist-get):
Evaluate TESTFN exactly once (previously up to 3 times).
Reduce the macro-expansion to include a call to either assoc or assq,
not both; this reduces the generated code size in some cases.
2022-12-16 Eli Zaretskii <eliz@gnu.org>
* lisp/term/xterm.el (xterm-function-map): Add M-SPC. (Bug#60077)
2022-12-16 Eli Zaretskii <eliz@gnu.org>
Fix moving to trash files that overwrite dangling symlinks there
* lisp/files.el (file-exists-in-trash-p): New function.
(move-file-to-trash): Use it instead of 'file-exists-p' when
testing whether the file exist in the trash. (Bug#59986)
2022-12-16 Manuel Giraud <manuel@ledu-giraud.fr>
Fix SVG scaling (bug#59802)
Fix SVG scaling with librsvg>2.52 and SVG file with only one known
dimension.
* src/image.c (svg_load_image): Compute a percentage dimension with
the other known dimension.
2022-12-16 F. Jason Park <jp@neverwas.me>
Fix some naming issues involving query buffers in ERC
* lisp/erc/erc-networks.el
(erc-networks-rename-surviving-target-buffer): Don't kill a surviving
target buffer when another, non-target buffer, possibly not even
belonging to ERC, already exists and sports the target's name.
(erc-networks--reconcile-buffer-names): Always append a network-ID
suffix to a target buffer's name if another buffer of that name
already exists. (Bug#59976.)
* lisp/erc/erc.el (erc, erc-tls): Revise `:id' portion of doc strings.
Thanks to Mike Kazantsev for the suggestion and for filing this bug
and helping solve it.
* test/lisp/erc/erc-networks-tests.el:
(erc-networks-rename-surviving-target-buffer--query-non-target): Add
new test.
* test/lisp/erc/erc-scenarios-base-association-query.el: New file.
* test/lisp/erc/resources/base/assoc/queries/netnick.eld: New file.
* test/lisp/erc/resources/base/assoc/queries/non-erc.eld: New file.
2022-12-16 F. Jason Park <jp@neverwas.me>
Increment erc-debug-irc-protocol-version to 2
* lisp/erc/erc.el (erc-debug-irc-protocol-version): Change version to
2 to help dependent tooling detect redacted passwords.
(erc-log-irc-protocol): Don't bother redacting incoming messages.
(Bug#59284.)
2022-12-16 Eli Zaretskii <eliz@gnu.org>
A better fix for bug#60096
* lisp/startup.el (initial-scratch-message):
* lisp/simple.el (get-scratch-buffer-create): Revert last changes.
* src/window.c (Fset_window_configuration): Force recalculation of
Vwindow_list after restoring the windows.
* src/buffer.c (other_buffer_safely): Make sure we always return a
valid buffer, even if 'get-scratch-buffer-create' signals an
error.
2022-12-16 João Távora <joaotavora@gmail.com>
Bump Eglot version to 1.10
* lisp/progmodes/eglot.el (Version): Bump to 1.10
(Package-Requires): Bump required versions of jsonrpc and project.
2022-12-16 João Távora <joaotavora@gmail.com>
Eglot: fix discrepant eglot-guess-contact/eglot-command-history
Due to a typo, the defvar eglot--command-history wasn't actually used
in eglot-guess-contact as intended. That function used a
single-dash-name version of the variable instead.
This worked fine, except that two variables were created instead of
one, and the one actually being used didn't have any docstring.
Rename the variable to eglot-command-history to fix this. It's better
than renaming the reference in eglot-guess-contact which would lose
user's history for M-x eglot.
* lisp/progmodes/eglot.el (eglot-command-history): Rename from
eglot--command-history.
2022-12-16 João Távora <joaotavora@gmail.com>
Avoid recursive process filters in lisp/jsonrpc.el (bug#60088)
jsonrpc.el may lose JSON-RPC messages because of recursive process
filters. The problem happens in jsonrpc.el's jsonrpc--process-filter.
The code of the process filter didn't expect to be called recursively
and fails in that case.
But that can happen if the three conditions are verified.
1. the client code invoked by its jsonrpc--connection-receive inside
the process filter callee immediately sends follow-up input to
process within the same Lisp stack. This is a common scenario,
especially during LSP initialiation sequence used by Eglot, a
jsonrpc.el client.
2. that follow-up message is large enough for process-send-string to
send the input in bunches (output from processes can arrive in
between bunches).
3. the process happens to have already some more output ready
The fix in this commit detects recursive invocations and immediately
re-schedules them as non-recursive calls to the
jsonrpc--process-filter (but started from timers).
* lisp/jsonrpc.el (jsonrpc--process-filter): Rework.
(Version): Bump to 1.0.16.
2022-12-15 Theodor Thornhill <theo@thornhill.no>
Add lambda_expression-rule to java-ts-mode (bug#60091)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
rule.
2022-12-15 Jostein Kjønigsen <jostein@kjonigsen.net>
eglot: Add support for new language server csharp-ls
C# has two popular language servers: Omnisharp Roslyn (already
supported) and csharp-ls (newer, more performant).
* lisp/progmodes/eglot.el: Add new C# language server
csharp-ls. (Bug#60089)
2022-12-15 Yuan Fu <casouri@gmail.com>
Use the new tree-sitter commands
* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-valid-p)
(c-ts-mode--defun-skipper): New functions.
(c-ts-base-mode): Setup defun navigation.
* lisp/progmodes/sh-script.el (bash-ts-mode): Setup defun navigation.
* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Change to new implementation, which is
intended to be used as commands.
(treesit-major-mode-setup): Setup remap for beginning/end-of-defun
commands.
2022-12-15 Yuan Fu <casouri@gmail.com>
Add "function" feature to python-ts-mode (bug#59977)
* lisp/progmodes/python.el (python--treesit-settings): Add feature.
(python-ts-mode): Add feature. And fix indentation for the
python-indent-guess-indent-offset code.
2022-12-15 Randy Taylor <dev@rjt.dev>
Add go-ts-mode and go-mod-ts-mode (Bug#60025)
* admin/notes/tree-sitter/build-module/batch.sh:
* admin/notes/tree-sitter/build-module/build.sh: Add go-mod support.
* etc/NEWS: Mention them.
* lisp/progmodes/eglot.el (eglot-server-programs): Add them.
* lisp/progmodes/go-ts-mode.el: New major modes with
tree-sitter support.
2022-12-15 Yuan Fu <casouri@gmail.com>
Add basic support for hideshow in python-ts-mode (bug#60044)
* lisp/progmodes/python.el (python-base-mode): Add setup for
python-ts-mode.
2022-12-15 Theodor Thornhill <theo@thornhill.no>
Add "this" keyword to java-ts-mode (bug#60086)
* lisp/progmodes/java-ts-mode.el
(java-ts-mode--font-lock-settings): Add the node to the keyword
feature.
2022-12-15 Dmitry Gutov <dgutov@yandex.ru>
When completing relative project file names, use relative history
* lisp/progmodes/project.el: Require 'cl-lib'.
* lisp/progmodes/project.el (project--read-file-cpd-relative):
Pre-process history entries around completing-read (bug#58447).
This includes both filtering by common-parent-directory prefix and
mapping into relative names.
2022-12-15 Eli Zaretskii <eliz@gnu.org>
Avoid segfaults due to invalid selected-window's buffer
* lisp/startup.el (initial-scratch-message): Don't use \\[...]
commands for substitute-command-keys.
* lisp/simple.el (get-scratch-buffer-create): Don't call
substitute-command-keys on initial-scratch-message, to avoid
signaling an error in rare cases. (Bug#60096)
2022-12-15 Juri Linkov <juri@linkov.net>
Revert 21b387c39bd with last-minute hasty changes (bug#60048).
* lisp/simple.el (completion-list-mode-map): Unbind [up] and [down].
(previous-line-completion, next-line-completion): Remove.
2022-12-15 Alan Mackenzie <acm@muc.de>
Replace an erroneous eq with an equal in cc-defs.el
* lisp/progmodes/cc-defs.el (c-looking-at-non-alphnumspace): Replace eq with
equal in the XEmacs branch.
2022-12-15 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el ([tab-bar]): Use 'make-sparse-keymap' instead of 'ignore'.
This helps to avoid the error in 'where-is-internal' that should
not call :filter unnecessarily (bug#9923).
2022-12-15 Stefan Monnier <monnier@iro.umontreal.ca>
compile.el: Fix regression with nb of errors in modeline
* lisp/progmodes/compile.el (compilation-mode-line-errors): Mark it as
risky-local, like `defconst` used to do for us.
2022-12-15 Juri Linkov <juri@linkov.net>
Make tab-bar-tab-group-format-function backwards-compatible (bug#60073)
* lisp/tab-bar.el (tab-bar--format-tab-group): Add condition-case
with wrong-number-of-arguments for backwards-compatibility.
(tab-bar-tab-group-format-default): Simplify.
2022-12-15 Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>
Make tab-bar-tab-group-format-function also handle current group
* lisp/tab-bar.el (tab-bar--format-tab-group): Call
'tab-bar-tab-group-format-default' to format current group tab.
(tab-bar-tab-group-format-default): Update function to also handle
current group tab (bug#60073).
2022-12-15 Philip Kaludercic <philipk@posteo.net>
Ensure package directories for source packages from checkouts
* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
Set the :dir entry, since `package-vc--unpack-1' assumes the field is
set, as is the case when invoking `package-vc--unpack'.
2022-12-15 Michael Albinus <michael.albinus@gmx.de>
* test/README (SELECTOR): Add eglot-tests.el to remote file using libraries.
2022-12-15 Michael Albinus <michael.albinus@gmx.de>
Fix bug#60060 in Tramp
* lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy):
Delete `tmpfile' in case of error. (Bug#60060)
2022-12-15 Manuel Giraud <manuel@ledu-giraud.fr>
* .gitignore: Ignore GDB history files.
2022-12-15 Eli Zaretskii <eliz@gnu.org>
Mention 'tree-sitter' in user manual and NEWS
* doc/emacs/programs.texi (Program Modes): Mention tree-sitter and
the modes supported by it.
* etc/NEWS: Mention tree-sitter in the Installation Changes
section.
2022-12-14 Dmitry Gutov <dgutov@yandex.ru>
Fix ruby-add-log-current-method after nested class definition
* lisp/progmodes/ruby-mode.el (ruby--add-log-current-indent):
New function.
(ruby-add-log-current-method): Use it.
Check for "class" and "module" indentation to filter out the
definitions which don't include the given position. Also try to
match "def" only once (for performance), because if the closest
one doesn't include the given position, none will.
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-add-log-current-method-after-inner-class-outside-methods)
(ruby-add-log-current-method-after-inner-class-outside-methods-with-text):
New tests.
2022-12-14 Theodor Thornhill <theo@thornhill.no>
Add indent rules to js/typescript/tsx-ts-mode (bug#60074)
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add in binary_expression and
jsx_fragment.
* lisp/progmodes/js.el (js--treesit-indent-rules): Add the same rules.
2022-12-14 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontification in csharp-ts-mode (bug#59897)
Fixes highlighting of generic methods like the one below:
instance.MethodWithTypeArguments<Type>(...);
InClassMethodWithTypeArguments<Type>(...);
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Add new rule.
2022-12-14 Yuan Fu <casouri@gmail.com>
Revert "Add expression for generic_name in csharp-ts-mode"
I applied the wrong commit, the next commit will be the right one,
sorry about that!
This reverts commit 647b6a8099f414e5a7b162efd3658e174064dfe7.
2022-12-14 Jostein Kjønigsen <jostein@kjonigsen.net>
Introduce support for TOML config-format
This commit introduces support for the semi-popular TOML
config-format[1] through a new major-mode: toml-ts-mode.
I've read through the full spec[2], and from what I can see this
major-mode should provide correct syntax-highligting for every sort of
config-declaration which adheres to the specification.
Besides that it also adds support for imenu and basic tree-sitter
based navigation.
[1] https://toml.io/en/
[2] https://toml.io/en/v1.0.0
2022-12-14 Arash Esbati <arash@gnu.org>
Fix handling of % when searching in .tex or .dtx files
* lisp/textmodes/reftex.el (reftex-compile-variables): Consider %
when building the regexp for searching only in .dtx files.
(AUCTeX bug#59638)
2022-12-14 Daniel Martín <mardani29@yahoo.es>
Treat C++ classes as defuns in C Tree-sitter mode (bug#60047)
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Add "class_specifier"
as a node of type "defun".
2022-12-14 Daniel Martín <mardani29@yahoo.es>
Add < and > to the syntax table in c++-ts-mode (bug#60049)
* lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Add a
specific syntax table for C++. Consider "<" and ">" open/close
delimiters (C++ templates).
(c++-ts-mode): Use the new syntax table.
2022-12-14 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontifications in Typescript mode
* lisp/progmodes/typescript-ts-mode.el: Improve fontification of
variables. (Bug#59831)
2022-12-14 Eli Zaretskii <eliz@gnu.org>
Update the documentation of overlays (bug#59996)
* src/buffer.c (Foverlay_recenter, Foverlay_lists): Update the doc
strings.
* lisp/subr.el (copy-overlay): Update comment.
* doc/lispref/internals.texi (Buffer Internals): Remove buffer
fields relevant to the old implementation; add the new interval
tree field.
* doc/lispref/display.texi (Overlays, Managing Overlays): Update
text to be consistent with the new implementation of overlays.
(Managing Overlays): Remove documentation of 'overlay-recenter'.
* etc/NEWS: Mention incompatible aspects of overlay
reimplementation.
2022-12-14 F. Jason Park <jp@neverwas.me>
Don't send erc-sasl-user as USER command argument
* lisp/erc/erc-sasl.el (erc-sasl--send-cap-ls): Add internal switch
for sending an opening "CAP LS". The rationale for not enabling this
by default is twofold: one, it more strongly implies that ERC supports
IRCv3 client capability negotiation, which is somewhat disingenuous;
and, two, We'd still be "faking it" by firing and forgetting, and more
balls in the air makes things less predictable.
(erc--register-connection): Possibly send a "CAP LS" before anything
depending on the value of `erc-sasl--send-cap-ls'. Also, don't
attempt to send `erc-session-username' when it holds an SASL username
because the latter may contain protocol-defying characters.
* test/lisp/erc/resources/base/local-modules/fourth.eld: change user
parameter of "USER" command to reflect nick when `erc-sasl-user' is
set to `:user'. (Bug#59976.)
2022-12-14 F. Jason Park <jp@neverwas.me>
Set erc-network to a "given" ID instead of failing
* lisp/erc/erc-networks.el (erc-networks--determine): Return the
so-called "given" ID from a non-nil `:id' keyword arg passed to `erc'
or `erc-tls'.
(erc-networks--allow-unknown-network): Add internal variable to
allow IRC session to continue despite the network being unknown.
(erc-networks--set-name): Tell the user about falling back to a given
ID when the network can't be determined. When that's so, end the
session by destroying the connection unless
`erc-networks--allow-unknown-network' is enabled. (Bug#59976.)
(erc-networks--ensure-announced): Include the fallback announced
server name in the error message.
* test/lisp/erc/erc-networks-tests.el (erc-networks--set-name): Add
dummy server process and don't expect an error to be signaled.
* test/lisp/erc/erc-scenarios-misc.el
(erc-scenarios-networks-announced-missing): Don't expect an error to
be signaled.
* test/lisp/erc/resources/networks/announced-missing/foonet.eld:
Remove "mode" match pattern.
2022-12-14 F. Jason Park <jp@neverwas.me>
Limit casemapping to appropriate ranges in ERC
* lisp/erc/erc-common.el (erc-downcase): Use case table for
`erc-downcase' so that case conversions are limited to the ASCII
interval.
* lisp/erc/erc.el (erc-casemapping--rfc1459-strict,
erc--casemapping-rfc1459): Make these case tables instead of
translation tables. The functions in case-table.el modify the
standard syntax table, but that doesn't seem to make sense here,
right?
* test/lisp/erc/erc-tests.el (erc-downcase): Add cases showing
mappings outside of the ASCII range. (Bug#59976.)
2022-12-14 F. Jason Park <jp@neverwas.me>
Actually accept non-symbols as IDs in erc-open
* lisp/erc/erc.el (erc-generate-new-buffer-name): Despite what it says
in the documentation, only symbols were being accepted as valid `:id'
entry-point arguments. This uses the interned `princ' representation
of the argument instead.
* test/lisp/erc/erc-scenarios-base-netid-samenet.el
(erc-scenarios-common--base-network-id-same-network): Randomly specify
a string for the ID param instead of a non-nil symbol when opening a
new connection.
* test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common-assert-initial-buf-name): Adjust helper to allow
for non-symbol IDs. (Bug#59976.)
2022-12-14 F. Jason Park <jp@neverwas.me>
Respect a nil erc-session-password when reconnecting
* lisp/erc/erc.el (erc-open): Simplify `old-vars' expression.
(erc--compute-server-password): Only compute a server password when
first connecting. For compatibility, this respects third-party code
that expects session passwords in target buffers when initially
non-nil.
* test/lisp/erc/erc-scenarios-services-misc.el
(erc-scenarios-services-auth-source-reconnect): Add new test.
* test/lisp/erc/resources/services/auth-source/recon.eld: Add new test
data file. (Bug#59858.)
2022-12-14 F. Jason Park <jp@neverwas.me>
Add dedicated auth-source section in ERC manual
* doc/misc/erc.texi: Move auth-source description from the Password
subheading of the Advanced chapter's Connecting section to the new
Integrations section as a new node, Auth-Source, and give it a bit
more structure. Fix various misuses of xref vs. pxref. Convert URL
subheading to subsection and add anchor. Prefer "backend" as a single
word, based on usage in other manuals. Also replace loud "warning" in
SASL troubleshooting section.
* etc/ERC-NEWS: Re-link auth-source mention.
* lisp/erc/erc-sasl.el (erc-sasl-auth-source-function): Update info
node in doc string.
* lisp/erc/erc-services.el (erc-auth-source-services-function):
Re-link auth-source info node in doc string.
* lisp/erc/erc.el (erc-password, erc-auth-source-server-function,
erc-auth-source-join-function): Re-link auth-source info node in doc
strings.
2022-12-14 Mattias Engdegård <mattiase@acm.org>
Better shortdoc examples
* lisp/emacs-lisp/shortdoc.el
(symbol, comparison): New.
(string, list, number): Remove or change examples that do not have
well-defined results, such as `eq` on strings or floats.
Edit other examples for better illustrating each respective operation.
2022-12-14 Mattias Engdegård <mattiase@acm.org>
Shortdoc: read and evaluate strings after :eval
* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function):
If the parameter of :eval is a string then read, evaluate and print
the result. This was always the intention and is documented behaviour.
2022-12-14 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp tests in eglot-tests, prefix tests uniquely
* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
Use `make-nearby-temp-file'.
(eglot--call-with-tramp-test): Set `tramp-verbose' and
`default-directory'. The latter is needed for `make-nearby-temp-file'.
(eglot-test-tramp-test, eglot-test-tramp-test-2): Tag them as
:expensive-test.
(all): Prefix all tests with `eglot-test-' uniquely.
2022-12-14 Juri Linkov <juri@linkov.net>
* lisp/vc/vc-git.el (vc-git-checkin): Use make-nearby-temp-file (bug#60011)
2022-12-14 Stefan Kangas <stefankangas@gmail.com>
Delete temp files after icalendar tests
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--get-error-string-for-export): Make sure we clean up
temporary files after test.
2022-12-13 Kai Ma <justksqsf@gmail.com> (tiny change)
Fix syntax tables of tree-sitter modes (bug#59807)
Tree-sitter modes should use the same syntax table as the
non-tree-sitter ones.
* lisp/progmodes/js.el (js-mode-syntax-table)
(js-ts-mode)
* lisp/progmodes/python.el (python-ts-mode)
* lisp/progmodes/sh-script.el (bash-ts-mode)
xx
2022-12-13 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/Makefile.in (need_emacsver): Add use-package.
2022-12-13 Stefan Kangas <stefankangas@gmail.com>
Fix bug when calling `rgrep` non-interactively
* lisp/progmodes/grep.el (rgrep): Fix bug where running
non-interactively requires running it interactively
first. (Bug#60024)
2022-12-13 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp specific tests in eglot-tests.el
* test/lisp/progmodes/eglot-tests.el (tramp): Move up.
(tramp-sh): Don't require.
(eglot--cleanup-after-test): Delete Tramp buffers if needed.
(eglot-tests-lsp-abiding-column): Rename from `eglot-lsp-abiding-column'.
(tramp-histfile-override): Declare.
(eglot--call-with-tramp-test):
Use `ert-remote-temporary-file-directory'. Skip if needed.
(eglot--tramp-test, eglot--tramp-test-2): Don't skip.
2022-12-13 Stefan Kangas <stefankangas@gmail.com>
* lisp/textmodes/texinfo.el (texinfo-flymake): Improve docstring.
2022-12-13 Juri Linkov <juri@linkov.net>
Support a function in the BUFFER-LIST arg of list-buffers-noselect (bug#59935)
* lisp/buff-menu.el (Buffer-menu-buffer-list): New buffer-local variable.
(list-buffers-noselect): Set Buffer-menu-buffer-list to 'buffer-list'
that now keeps the buffer-local value of the provided buffer list
or a function that returns the buffer list.
(list-buffers--refresh): Handle buffer-list and Buffer-menu-buffer-list
as a function and as a list.
* lisp/progmodes/project.el (project-list-buffers): Let-bind
'buffer-list-function' used by both legacy code and the new version
of list-buffers-noselect that supports its arg BUFFER-LIST as a function.
2022-12-13 Augusto Stoffel <arstoffel@gmail.com>
Don't allow lazy highlight from recursive minibuffers
See bug#59918.
* lisp/isearch.el (minibuffer-lazy-highlight-setup): Don't activate
when starting a recursive minibuffer.
2022-12-13 Eli Zaretskii <eliz@gnu.org>
Improve resetting face attributes when looking for suitable fonts
* src/xfaces.c (syms_of_xfaces)<face-font-lax-matched-attributes>:
Change the default value to t. Update doc string.
(realize_gui_face): When 'Vface_font_lax_matched_attributes' is t,
reset the 3 default font attributes efficiently. Call
'font_maybe_unset_attribute' only if the value is neither nil nor
t. (Bug#59347)
2022-12-13 Stefan Kangas <stefankangas@gmail.com>
Add lexical-binding to example package header
* doc/lispref/package.texi (Simple Packages): Add lexical-binding
cookie to example package header.
2022-12-13 Yuan Fu <casouri@gmail.com>
Add improved tree-sitter navigation
This new set of functions (and tests) should eliminate
defun-navigation bugs and limitations we currently have. This commit
doesn't change any existing bahavior: treesit-beginning/end-of-defun
and friends are unchanged. The plan is to later switch gear and
replace the current functions with the new ones introduced in this
change.
This is a relatively big change, but I've setup a comprehensive test,
and it should fix current bugs, so I think it's ok to put it on the
release branch.
The gist of the new navigation is to use treesit--defuns-around to
find the previous sibling defun, next sibling defun, and the parent
defun, then use this information to move to previous/next
beginning/end of defun in treesit--navigate-defun.
I also added comprehensive testing that tests all four possible
operations (prev-beg, next-beg, prev-end, next-end) starting at all
possible positions (between two sibling defuns, inside a sibling
defun, etc).
* lisp/treesit.el (treesit-defun-type-regexp): Expand definition to
allow (REGEXP . FILTER). Old functions don't support this, but it
should be fine since we are soon replacing them.
(treesit-defun-tactic)
(treesit-defun-skipper): New variables.
(treesit-default-defun-skipper)
(treesit--defuns-around)
(treesit--top-level-defun)
(treesit--navigate-defun): New functions.
* test/src/treesit-tests.el (treesit--ert-insert-and-parse-marker)
(treesit--ert-collect-positions)
(treesit--ert-test-defun-navigation): New helper functions.
(treesit--ert-defun-navigation-python-program)
(treesit--ert-defun-navigation-js-program)
(treesit--ert-defun-navigation-bash-program)
(treesit--ert-defun-navigation-nested-master): New variables.
(treesit-defun-navigation-nested-1)
(treesit-defun-navigation-nested-2)
(treesit-defun-navigation-nested-3)
(treesit-defun-navigation-top-level): New tests.
2022-12-12 Stefan Kangas <stefankangas@gmail.com>
Add cross-reference to flush-lines
* lisp/replace.el (flush-lines, kill-matching-lines): Add
cross-references between commands, using the names
'(kill|delete)-matching-lines' for symmetry. (Bug#59934)
2022-12-12 Jostein Kjønigsen <jostein@kjonigsen.net>
Use font-lock-number-face for numeric values in csharp-mode
(bug#60004)
* lisp/progmodes/csharp-mode.el: update fontification code.
2022-12-12 Jostein Kjønigsen <jostein@kjonigsen.net>
Make treesit-query-validate create a read-only buffer
* lisp/treesit.el: use view-mode for generated validation buffer.
2022-12-12 Randy Taylor <dev@rjt.dev>
Improve dockerfile-ts-mode imenu generation (Bug#59979)
* lisp/progmodes/dockerfile-ts-mode.el (treesit-node-child-by-field-name):
Declare.
(dockerfile-ts-mode--imenu-1): Use stage name if available.
2022-12-12 Daniel Martín <mardani29@yahoo.es>
Add "->" to python--treesit-operators (bug#59968)
* lisp/progmodes/python.el (python--treesit-operators): Add "->", used
to specify the return types of functions in Python.
2022-12-12 Daniel Martín <mardani29@yahoo.es>
Align C++ access specifiers to their enclosing class/struct/union
(bug#59966)
The default style in c++-mode aligns access specifiers like "private",
"public" or "protected" to their enclosing class, struct, or union.
The "ellemtel" style indents access specifiers, but this C++ style is
not supported by c++-ts-mode yet.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles): Align access
specifiers to their enclosing class/struct/union.
2022-12-12 Randy Taylor <dev@rjt.dev>
Add cmake-ts-mode
* admin/notes/tree-sitter/build-module/batch.sh:
* admin/notes/tree-sitter/build-module/build.sh: Add cmake support.
* etc/NEWS: Mention it.
* lisp/progmodes/cmake-ts-mode.el: New major mode with
tree-sitter support.
* lisp/progmodes/eglot.el (eglot-server-programs): Add it.
2022-12-12 Theodor Thornhill <theo@thornhill.no>
Tweak various ts-mode's indent and fontification (bug#59931)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add raw
string literal font-locking.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add
text_block indent rule.
(java-ts-mode--font-lock-settings): Add text_block font-locking.
* lisp/progmodes/js.el (js-ts-mode): Prefer top-level navigation.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
Add comment feature.
(json-ts-mode): Use comment feature.
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode):
Prefer top-level navigation.
2022-12-12 Theodor Thornhill <theo@thornhill.no>
Add expression for generic_name in csharp-ts-mode (bug#59897)
Given the below example, we want 'services' to be font-locked in
'font-lock-variable-name-face' in all cases. Previously this only
worked in the first case, and the other was font-locked as
'font-lock-function-name-face'.
namespace Foo {
void Foo() {
services.Add();
services.Add<MyType>();
}
}
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Add new query that makes the mentioned example work.
2022-12-12 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Fix the value 'insert' of outline-minor-mode-use-buttons.
(outline--insert-button): Keep text properties around point
on the inserted whitespace placeholder.
* lisp/apropos.el (apropos-mode):
* lisp/progmodes/xref.el (xref--xref-buffer-mode):
Change outline-minor-mode-use-buttons from t to 'insert'.
2022-12-12 Juri Linkov <juri@linkov.net>
* lisp/minibuffer.el (completions-group-separator): Revert f7816c94b6.
Change face attribute from :underline back to :strike-through.
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01792.html
2022-12-12 João Távora <joaotavora@gmail.com>
Skip Eglot rust-analyzer tests if 'cargo' isn't available
* test/lisp/progmodes/eglot-tests.el
(project-wide-diagnostics-rust-analyzer)
(diagnostic-tags-unnecessary-code): Skip unless "cargo" is found.
2022-12-12 Stefan Kangas <stefankangas@gmail.com>
use-package.texi: New section "Manual installation"
* doc/misc/use-package.texi (Manual installation): New section.
(Load path, Manual autoloads): Make into subsections of above new
section.
2022-12-11 Po Lu <luangruo@yahoo.com>
Revert "Revert "Improve last change to xfaces.c" (05ece1eb8b)"
This reverts commit b8d2ec920f37f5d77d32440eefc97dd5e8c2c7dc.
Not only does it make debugging Emacs harder for users, that change is
unsafe for the Haiku port.
2022-12-11 Gregory Heytings <gregory@heytings.org>
Revert "Improve last change to xfaces.c" (05ece1eb8b)
* src/xfaces.c: Revert 05ece1eb8b.
See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59347#331.
2022-12-11 Gregory Heytings <gregory@heytings.org>
Do not pare arguments unnecessarily.
* lisp/pcomplete.el (pcomplete-here-using-help): Do not pare
arguments. Fixes bug#59803.
2022-12-11 João Távora <joaotavora@gmail.com>
Add automated tests for Eglot
Most of the tests require a specific LSP server to do their thing, and
skip themselves if this server isn't found.
This file is a modified/overhauled version of the original Eglot
automated tests that were developed in the old GitHub upstream.
* test/lisp/progmodes/eglot-tests.el: New file.
2022-12-11 João Távora <joaotavora@gmail.com>
Eglot: allow skipping compile-time warnings about LSP interfaces
* lisp/progmodes/eglot.el (eglot-strict-mode): Add 'no-unknown-interfaces'.
(eglot--check-object): Honour new eglot-strict-mode value.
2022-12-11 Yuan Fu <casouri@gmail.com>
Add customizale faces for tree-sitter explorer
* lisp/treesit.el (treesit-explorer-anonymous-node)
(treesit-explorer-field-name): New face.
(treesit--explorer-draw-node): Use the new faces.
(treesit-explore-mode): Change playground to explorer.
2022-12-11 Stefan Kangas <stefankangas@gmail.com>
Fix error message when installing non-existent package
* lisp/emacs-lisp/package.el (package-compute-transaction): Don't add
trailing dash to package name in non-existent package
error. (Bug#59923)
2022-12-11 Juri Linkov <juri@linkov.net>
Don't use diff-mode buffer as a patch when it's visiting a file (bug#59962)
* lisp/vc/vc.el (vc-deduce-fileset-1): Don't call diff-vc-deduce-fileset
for diff-mode when buffer-file-name is non-nil. This is because in this case
a file with a diff might be committed to VCS. So don't use it as a patch
to commit with 'C-x v v'.
2022-12-11 Mattias Engdegård <mattiase@acm.org>
Fix pcase rx patterns using rx-let bindings (bug#59814)
Reported by Daniel Pittman.
* lisp/emacs-lisp/rx.el (rx): Move binding of rx--local-definitions...
(rx--to-expr): ...here.
* test/lisp/emacs-lisp/rx-tests.el (rx-let-pcase): New test.
2022-12-11 Mattias Engdegård <mattiase@acm.org>
Fix use-package-defaults defcustom type (bug#59941)
* lisp/use-package/use-package-core.el (use-package-defaults):
Enlarge type to allow for keywords such as :ensure and :pin to be
added later, remedying a failure in test-custom-opts.
2022-12-11 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
* lisp/language/indian.el: Improve Brahmi composition rules. (bug#58957)
2022-12-10 Po Lu <luangruo@yahoo.com>
Improve last change to xfaces.c
* src/xfaces.c (font_unset_attribute): New function.
(realize_gui_face): Improve commentary and use list instead of
bitmask.
(syms_of_xfaces): Get rid of bitmask. Replace it by a list,
there is no reason any user should have to think about bitmasks
in Emacs lisp.
2022-12-10 Gregory Heytings <gregory@heytings.org>
Actually improve detection of long lines
* src/xdisp.c (redisplay_window): Update condition.
* src/xdisp.c (mark_window_display_accurate_1):
* src/pdumper.c (dump_buffer):
* src/buffer.h (BUF_CHARS_UNCHANGED_MODIFIED):
(struct buffer_text):
* src/buffer.c (Fget_buffer_create):
Revert 1c837c42c2, which was misguided.
2022-12-10 Gregory Heytings <gregory@heytings.org>
Unset the weight/slant/width in the spec when realizing a font
Between commits bf0d3f76dc (2014) and 6b1ed2f2c9 (2022),
realize_gui_face called font_load_for_lface with an empty or
partly emptied font spec, i.e. it ignored a part of its attrs
argument. The rationale given in bug#17973, which led to
bf0d3f76dc, is not clear. However, 6b1ed2f2c9, which passes
the full font spec to font_load_for_lface and
font_find_for_lface, leads to suboptimal font choices, for
example when the font chosen for the default face has a
weight, slant or width that is not supported by other
available fonts on the system, such as 'medium' or 'heavy'.
If these attributes are not unset here, the call to
font_list_entities in font_find_for_lface arbitrarily limits
the candidate font list to those that are perfect matches for
these attributes, which means that the scoring mechanism is
bypassed. Note that the size attribute in spec is also unset,
in font_find_for_lface.
Also allow unsetting the other attributes, for debugging purposes.
* src/xfaces.c (realize_gui_face): Unset the weight, slant and
width of the font spec. Fixes bug#57555 and bug#59347.
(syms_of_xfaces): New variable
'realize-gui-face-ignored-spec-attributes'.
2022-12-10 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.6-31-g954a95
2022-12-10 Eli Zaretskii <eliz@gnu.org>
Fix infloop in 'shell-resync-dirs' with tcsh
* lisp/shell.el (shell-resync-dirs): Remove trailing slash from
output of 'dirs', for csh/tcsh's sake. (Bug#59804)
2022-12-10 Philip Kaludercic <philipk@posteo.net>
Ensure 'package-vc--version' always returns a version
* lisp/emacs-lisp/package-vc.el (package-vc--version): Return "0" even
if the main file exists, but lacks version headers.
2022-12-10 Philip Kaludercic <philipk@posteo.net>
Ensure 'package-vc--main-file' always returns an existing file
* lisp/emacs-lisp/package-vc.el (require): Explicitly require cl-lib.
(package-vc--main-file): If the expected file name is missing, try and
find the closest match.
2022-12-10 Philip Kaludercic <philipk@posteo.net>
Check if package already exists before installing from checkout
* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
Copy check from 'package-vc--unpack'.
2022-12-10 Matt Armstrong <matt@rfc20.org>
Refresh the package quickstart file in package-vc
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Call
`package--quickstart-maybe-refresh', just as
`package-install-from-buffer' does. (bug#59728)
2022-12-09 Yuan Fu <casouri@gmail.com>
Make indirect buffers use tree-sitter parsers of their base buffer
Fix the problem described in bug#59693.
* src/treesit.c (treesit_record_change): Always use the base buffer.
(Ftreesit_parser_create): Always use the base buffer. Also change the
for loop into FOR_EACH_TAIL (stylistic change).
(Ftreesit_parser_list): Always use the base buffer.
* doc/lispref/parsing.texi (Using Parser): Update manual.
* test/src/treesit-tests.el (treesit-indirect-buffer): New test.
2022-12-09 Brian Leung <leungbk@posteo.net>
Fontify "this" as a keyword in c++-ts-mode (bug#59924)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
Following c++-mode, fontify as a keyword instead of a constant.
2022-12-09 Theodor Thornhill <theo@thornhill.no>
Add class_body indentation for typescript (bug#59680)
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): New indent rule.
2022-12-09 Theodor Thornhill <theo@thornhill.no>
Make more granular defun-type-regexp (bug#59873)
We don't want to match local_variable_declaration and others to hit on
beginning-of-defun. The fix is just to make the regexp a bit more
granular.
* lisp/progmodes/java-ts-mode.el (java-ts-mode): Use regexp-opt to
distinguish more granularly.
2022-12-09 Randy Taylor <dev@rjt.dev>
Add dockerfile-ts-mode (Bug#59894)
* admin/notes/tree-sitter/build-module/batch.sh: Add dockerfile support.
* admin/notes/tree-sitter/build-module/build.sh: Support different
namespaces and add dockerfile support.
* etc/NEWS: Mention it.
* lisp/progmodes/dockerfile-ts-mode.el: New major mode with
tree-sitter support.
* lisp/progmodes/eglot.el (eglot-server-programs): Add it.
2022-12-09 Jostein Kjønigsen <jostein@kjonigsen.net>
Fix fontification of method-invocations in js-ts-mode (bug#59904)
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Move rules
for property in front of function names, so function names override
property.
2022-12-09 Theodor Thornhill <theo@thornhill.no>
Fix escape-sequence feature in typescript-ts-mode (bug#59906)
* lisp/progmodes/typescript-ts-mode.el: (typescript-ts-mode,
tsx-ts-mode): Use escape-sequence feature.
2022-12-09 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontification in csharp-ts-mode (bug#59909)
- Fontity escape sequences.
- Highlight syntax errors.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings)
(csharp-ts-mode): Add new features
2022-12-09 Dmitry Gutov <dgutov@yandex.ru>
Use 'project--value-in-dir' for 'project-vc-include-untracked' too
* lisp/progmodes/project.el (project--vc-list-files): Use
'project--value-in-dir' for 'project-vc-include-untracked' too.
So that is can be reliably set through dir-locals.
2022-12-09 Eli Zaretskii <eliz@gnu.org>
Update Turkish Hello
* etc/HELLO (Turkish):
* lisp/language/european.el ("Turkish"): Add a Turkish Hello.
Suggested by YUSUF ALPER ÇIKIŞIR <yusufcikisir@std.iyte.edu.tr>.
2022-12-09 Philipp Stephani <phst@google.com>
Support newer glib versions (Bug#59061)
* lib-src/seccomp-filter.c (main): Allow pidfd_open system call
2022-12-09 Dmitry Gutov <dgutov@yandex.ru>
Bring back the project--value-in-dir logic
Essentialy revert commit 2389158a31b4a12, restoring the changes
and fixing the conflicts. Motivated by the problem brought up in
bug#59722 (behavior of project-find-files/regexp when switching
projects). We should find other ways to improve performance.
* lisp/progmodes/project.el
(project--value-in-dir, project--vc-merge-submodules-p): Restore.
(project-try-vc, project-files, project--vc-list-files)
(project-ignores, project-buffers): Use.
* test/lisp/progmodes/project-tests.el
(project-vc-supports-project-in-different-dir): New test.
* test/lisp/progmodes/project-resources/.dir-locals.el:
* test/lisp/progmodes/project-resources/foo:
* test/lisp/progmodes/project-resources/etc: New files.
2022-12-09 Andrea Corallo <akrl@sdf.org>
Backport: Enable native speed 2 EMBA build and tests and disable speed 0
* test/infra/gitlab-ci.yml (build-native-comp-speed2): Uncomment.
(build-native-comp-speed0): Comment.
(test-native-comp-speed0): Remove.
(test-native-comp-speed2): Add.
(cherry picked from commit 06bf218f69a62d5d5c8d3b3767d7db8d9fb4bb9f)
2022-12-09 Michael Albinus <michael.albinus@gmx.de>
* test/infra/test-jobs.yml: Regenerate for the new use-package subdirectory.
2022-12-09 Michael Albinus <michael.albinus@gmx.de>
Adapt manual names in emacs-news-mode
* lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize):
Allow hyphen in manual names.
2022-12-09 F. Jason Park <jp@neverwas.me>
Respect some spaces in auth-source-pass--match-regexp
* lisp/auth-source-pass.el (auth-source-pass--match-regexp): Allow an
entry's host and user fields to contain spaces, just like other
backends do.
* lisp/erc/erc-compat.el
(erc-compat--29-auth-source-pass--retrieve-parsed): Change regexp to
allow spaces in host and user components of file names.
* test/lisp/auth-source-pass-tests.el (auth-source-pass-any-host):
Silence warning message re wildcards emitted by
`auth-source-pass-search'.
(auth-source-pass-extra-query-keywords--suffixed-user): Add spaces
to users and hosts of some example entries. (Bug#58985.)
2022-12-09 dannyfreeman <danny@dfreeman.email>
João Távora <joaotavora@gmail.com>
Eglot: Handle LSP progress with Emacs progress reporters (bug#59149)
* lisp/progmodes/eglot.el (eglot-report-progress): New custom variable.
(eglot-lsp-server): New slot for tracking active progress reporters.
(eglot-handle-notification (eql $/progress)): New method.
The LSP spec describes methods for reporting progress on long running
jobs to the client:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#progress
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workDoneProgress
This change reports those notifications in the minibuffer as they come
in. It shows a percent indicator (if the server provides theme), or a
spinner.
This change could open the door for writing a "cancel long running
request" command, which are identified by these progress
notifications. See
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_workDoneProgress_cancel
* doc/misc/eglot.texi (Customizing Eglot): Describe new variable.
2022-12-09 dannyfreeman <danny@dfreeman.email>
João Távora <joaotavora@gmail.com>
Eglot: cleanup whitespace and indentation
* lisp/progmodes/eglot.el: Misc whitespace fixes.
2022-12-09 Mattias Engdegård <mattiase@acm.org>
Better test-custom-opts diagnostics
Make it easier to understand errors from the test-custom-opts test by
reporting variable values and types that didn't match.
* admin/cus-test.el (cus-test-errors): Richer contents.
(cus-test--format-error): New.
(cus-test-apropos, cus-test-errors-display, cus-test-opts):
Use new format.
2022-12-09 Stefan Kangas <stefankangas@gmail.com>
New script admin/check-man-pages
* admin/check-man-pages: New file with script used to check man pages
for errors. (Bug#59631)
* admin/make-tarball.txt: Document when to use the above script.
2022-12-09 Stefan Kangas <stefankangas@gmail.com>
Improve :delight keyword example in use-package manual
* use-package.texi (Diminish, Delight): Clarify what happens if the
pre-requisite packages are not installed. Change an example with
performance issues to one without any.
Resolves https://github.com/jwiegley/use-package/issues/835
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
Clarify :after keyword in use-package docstring
* lisp/use-package/use-package-core.el (use-package): Clarify the
effect of :after in docstring.
Resolves https://github.com/jwiegley/use-package/issues/825
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
Add conditional loading examples to use-package manual
* doc/misc/use-package.texi (Conditional loading): Expand section with
examples.
Resolves https://github.com/jwiegley/use-package/issues/693
2022-12-08 Po Lu <luangruo@yahoo.com>
Revert "; * src/emacs.c (main): Improvements to last change."
This reverts commit c774e83e36784ab96539c5c083b3bcb6d0158a8c. It
causes crashes on GNU/Linux systems using libgmp, as there a shared
library initializer is used to set the malloc functions on startup, so
they are not dumped.
2022-12-08 Sean Whitton <spwhitton@spwhitton.name>
server-eval-at: Don't call server--file-name
* lisp/server.el (server-eval-at): Revert to old code for determining
the server file. The recent change to call server--file-name meant
that the SERVER argument to server-eval-at was ignored.
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
Merge branch 'feature/use-package' into emacs-29
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
* etc/USE-PACKAGE-NEWS: Delete file.
Ref: https://lists.gnu.org/r/emacs-devel/2022-11/msg01535.html
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
* admin/git-bisect-start: Prune use-package merge commits.
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
Update use-package defgroups
* lisp/use-package/bind-key.el (bind-key):
* lisp/use-package/use-package-core.el (use-package):
* lisp/use-package/use-package-ensure.el (use-package-ensure): Add
:link, :version and :group to defgroups.
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
Drop key-chord.el support from use-package
* lisp/use-package/bind-chord.el:
* lisp/use-package/use-package-chords.el:
* test/lisp/use-package/use-package-chords-tests.el: Delete files.
* doc/misc/use-package.texi (use-package-chords): Delete section.
Ref: https://lists.gnu.org/r/emacs-devel/2022-12/msg00052.html
2022-12-08 Juanma Barranquero <lekktu@gmail.com>
Remove unneeded (require 'edebug) from which-func.el
* lisp/progmodes/which-func.el: Don't require edebug. This is
code from an attempted fix to bug#49592, installed in 55cc8b040b
(2022-08-08) and left behind after 48b0f2606b (2022-08-23).
2022-12-08 Stefan Kangas <stefankangas@gmail.com>
Change use-package custom :group to `initialization`
* lisp/use-package/use-package-core.el (use-package): Move
defgroup to custom :group 'initialization'.
2022-12-08 Jim Porter <jporterbugs@gmail.com>
Treat escaped newlines in Eshell as the empty string
This fixes a regression introduced during Emacs 29's development.
* lisp/eshell/esh-arg.el (eshell-parse-argument): Handle
'eshell-empty-token' as the result of an argument-parsing hook.
(eshell-parse-argument-hook): Document 'eshell-empty-token'.
(eshell-parse-backslash): Return 'eshell-empty-token' when
encountering an escaped newline.
* test/lisp/eshell/eshell-tests.el (eshell-test/escape-nonspecial)
(eshell-test/escape-nonspecial-unicode)
(eshell-test/escape-nonspecial-quoted)
(eshell-test/escape-special-quoted): Move from here...
* test/lisp/eshell/esh-arg-tests.el (esh-arg-test/escape/nonspecial)
(esh-arg-test/escape/nonspecial-unicode)
(esh-arg-test/escape-quoted/nonspecial)
(esh-arg-test/escape-quoted/special): ... to here.
(esh-arg-test/escape/special, esh-arg-test/escape/newline)
(esh-arg-test/escape-quoted/newline): New tests.
* doc/misc/eshell.texi (Arguments): Explain escaping logic in more
detail (bug#59622).
2022-12-07 Stefan Kangas <stefankangas@gmail.com>
use-package: Improve :mode keyword documentation
* doc/misc/use-package.texi (Modes and interpreters): Improve
section and document the use of a list of regexps.
Resolves https://github.com/jwiegley/use-package/issues/996
2022-12-07 Stefan Kangas <stefankangas@gmail.com>
Improve bind-keys* and override-global-mode docstrings
* lisp/use-package/bind-key.el (bind-keys*): Add docstring.
(override-global-mode) Improve docstring.
2022-12-07 Po Lu <luangruo@yahoo.com>
Fix crash on Windows 9X
* src/emacs.c (main): Call init_bignum before init_window_once.
2022-12-07 Yuan Fu <casouri@gmail.com>
Add recursion limit to treesit--children-covering-range-recurse
* lisp/treesit.el (treesit--children-covering-range-recurse): Add
limit.
2022-12-07 Yuan Fu <casouri@gmail.com>
Improve tree-sitter fontification in edge-cases (bug#59738)
* lisp/treesit.el (treesit-font-lock-fontify-region): Use
treesit--children-covering-range-recurse.
2022-12-07 Stefan Kangas <stefankangas@gmail.com>
Add new use-package manual
* doc/misc/use-package.texi: Rewrite manual.
2022-12-07 Theodor Thornhill <theo@thornhill.no>
Add c-ts-mode-indent-defun (bug#59662)
Add in this function to mimic 'c-indent-defun'.
* lisp/progmodes/c-ts-mode.el (c-ts-mode-indent-defun): New function.
(c-ts-mode-map): New mode map that uses said function.
2022-12-07 Theodor Thornhill <theo@thornhill.no>
Fix syntax-table for tree-sitter modes
When adapting the 'c-populate-syntax-table' for tree-sitter, I misread
the code, and thus some crucial entries were missing. For the
relevant modes we use the same table as specified in the
non-tree-sitter major mode.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add new entries.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--syntax-table): Add new entries.
* lisp/textmodes/css-mode.el (css-ts-mode): Add new entries.
2022-12-07 Brian Leung <leungbk@posteo.net>
c++-ts-mode: Highlight nullptr as a constant
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add
nullptr.
2022-12-07 Yuan Fu <casouri@gmail.com>
Improve parameter checking in tree-sitter functions
* src/treesit.c (treesit_check_position): Extract out new function.
(Ftreesit_node_first_child_for_pos)
(Ftreesit_node_descendant_for_range): Replace code with the new
function.
(Ftreesit_query_capture): Add missing check for node and parser. Add
check for range for BEG and END. Move treesit_initialize to the
beginning of the function.
* test/src/treesit-tests.el (treesit-node-api)
(treesit-query-api): Add tests for out-of-range error.
2022-12-07 Eli Zaretskii <eliz@gnu.org>
Fix comint-tests on MS-Windows
* test/lisp/comint-tests.el (comint-tests/test-password-function):
On MS-Windows, call 'w32-native-executable-find' instead of
'executable-find', to find the native version of the 'cat'
program.
(w32-native-executable-p, w32-native-executable-find): New
functions.
2022-12-07 João Távora <joaotavora@gmail.com>
Use new external-completion.el in Eglot
This refactor simplifies Eglot's source code.
* lisp/progmodes/eglot.el:
(Package-Requires): Require external-completion.
(external-completion): Require it.
(xref-backend-identifier-completion-table): Use external-completion-table.
(completion-category-overrides): No longer set it.
("Backend Completion"): Delete section.
2022-12-07 João Távora <joaotavora@gmail.com>
Don't override completion-category-defaults in fido-mode
To more closely emulate ido-mode, fido-mode and fido-vertical-mode
strongly lean to the 'flex completion style. But overriding
completion-category-defaults is not the correct way to do it, since
sometimes even the 'flex style isn't possible.
* lisp/icomplete.el (icomplete--fido-mode-setup): Don't set
completion-category-defaults here.
2022-12-07 João Távora <joaotavora@gmail.com>
Add lisp/external-completion.el for completions from external tools
This table uses a new 'external' completion style which has been in
use in Eglot and other third-party extensions for a long time. It's
meant for libraries that interface with an external tool which
provides completions, such as a shell utility, an inferior process, an
http server.
The new file lisp/external-completion.el provides a helper function,
external-completion-table which is given an interfacing function to
the external tool and returns a "programmed completion" table that is
bound to the 'external' completion style. That table can then be used
with completing-read or any other facility expecting a completion
table.
When the 'external' is in use, the usual styles configured by the user
or other in 'completion-styles' are completely overriden. This
relatively minor inconvenience is the price to pay for responsive
completion where the full set of completion candidates doesn't need to
be transfered into Emacs's address space.
* lisp/external-completion.el: New file.
* etc/NEWS: (Lisp Changes in Emacs 29.1): Mention
external-completion-table.
2022-12-07 João Távora <joaotavora@gmail.com>
Eglot: fix setting of flymake-list-only-diagnostics (bug#59824)
When Eglot receives diagnostics for a file not yet visited in Emacs,
it stores them in flymake-list-only-diagnostics, which feed M-x
flymake-show-project-diagnostics. If the file is eventually visited
in a buffer and Eglot starts receibing diagnostics for it, the
flymake-list-only-diagnostics database has to be updated accordingly,
since the previous diagnostics are now stale.
* lisp/progmodes/eglot.el (eglot-handle-notification): Reset
flymake-list-only-diagnostics
2022-12-07 Mattias Engdegård <mattiase@acm.org>
* test/src/sqlite-tests.el (sqlite-version): Declare.
2022-12-06 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Outline deprecation plans in NEWS
* etc/NEWS (EUDC): Mention deprecation plans.
2022-12-06 Yuan Fu <casouri@gmail.com>
Fix admin/notes/tree-sitter/build-module/build.sh (bug#59789)
Besides the problem mentioned by Juri, which is fixed by removing
-cp tree-sitter-lang.in "tree-sitter-${lang}/src"
-cp emacs-module.h "tree-sitter-${lang}/src"
(we removed those files in an earlier commit, because they are not
used anymore.)
Now it also more parameterized and builds typescript and tsx
separately.
* admin/notes/tree-sitter/build-module/build.sh (topdir)
(repo, sourcedir, grammardir): New variables.
(Build): Make it parametric.
(Copy out): Use absolute path.
* admin/notes/tree-sitter/build-module/batch.sh (languages): Add tsx.
2022-12-06 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/eww.texi (Overview): Improve introduction.
2022-12-06 Jostein Kjønigsen <jostein@kjonigsen.net>
Consistent fontification of using-directives in csharp-ts-mode
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
New rules.
2022-12-06 Yuan Fu <casouri@gmail.com>
Fontify some keywords in type face in c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Remove some keywords.
(c-ts-mode--type-keywords): New variables.
(c-ts-mode--font-lock-settings): New rule.
2022-12-06 Mattias Engdegård <mattiase@acm.org>
Fix etags builds on non-Windows non-MS-DOS machines
* lib-src/etags.c: In this file, MSDOS is always defined but can be
either `true` or `false`, so don't used `defined MSDOS` as a condition.
2022-12-06 lu4nx <lx@shellcodes.org>
Fix etags local command injection vulnerability
* lib-src/etags.c: (escape_shell_arg_string): New function.
(process_file_name): Use it to quote file names passed to the
shell. (Bug#59817)
2022-12-06 Eli Zaretskii <eliz@gnu.org>
Avoid crashes in a build --without-modules
* src/lread.c (syms_of_lread): Move the definitions of
'dynamic-library-suffixes' outside of the HAVE_MODULES
conditional. (Bug#59832)
2022-12-06 Eli Zaretskii <eliz@gnu.org>
Fix 'add-display-text-property' when OBJECT is non-nil
* lisp/emacs-lisp/subr-x.el (add-display-text-property): Fix the
case where OBJECT is not nil. (Bug#59857)
* test/lisp/emacs-lisp/subr-x-tests.el
(subr-x-test-add-display-text-property): Add test for this case.
2022-12-06 Michael Albinus <michael.albinus@gmx.de>
Do not run slow tests on EMBA
* test/infra/gitlab-ci.yml (.filenotify-gio-template): Do not run
scheduled.
(build-native-comp-speed1, build-native-comp-speed2): Comment out.
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-part1): Skip also on EMBA.
2022-12-06 Mattias Engdegård <mattiase@acm.org>
Lisp reader undefined behaviour excision
* src/lread.c (read_bool_vector, skip_lazy_string):
Replace `|` with `||` to explicitly introduce sequence points since
the variables, `length` and `nskip`, are mutated more than once.
The `|` was just a weak attempt at micro-optimisation in any case;
sorry about that.
2022-12-05 Yuan Fu <casouri@gmail.com>
Fix treesit-query-capture
Before this change Ftreesit_query_capture doesn't convert character
position to byte position for BEG and END parameters. I observed
fontification issue in css files but couldn't figure out why, now I
know :-)
I decide to keep treesit--font-lock-query-expand-range, since it might
provide a escape hatch for problems we discover in the future, and it
should be very cheap so no downside of keeping it.
* lisp/textmodes/css-mode.el (css-ts-mode): Stop setting
treesit--font-lock-query-expand-range.
* lisp/treesit.el (treesit--font-lock-query-expand-range): Update
docstring.
* src/treesit.c (Ftreesit_query_capture): Convert BEG and END to byte
position. Also added parentheses wround "beg_byte - visible_beg" in
the call to ts_query_cursor_set_byte_range (i.e., style change).
2022-12-05 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontification of typescript-ts-mode (bug#59831)
- Highlight property and field definitions in class declaration.
- Highlight property-keys in object initializaters.
- Highlight variable-names in function/method return-statements.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Add fontification rules.
2022-12-05 Theodor Thornhill <theo@thornhill.no>
Add back pair feature in json-ts-mode fontification (bug#59833)
* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
Add back in removed pair feature. Also alphabetize features.
(json-ts-mode): Use the new feature.
2022-12-05 Eli Zaretskii <eliz@gnu.org>
Fix mouse clicks on a non-selected frame
* lisp/mouse-drag.el (mouse-drag-drag): Skip switch-frame events
while tracking mouse. (Bug#59785)
2022-12-04 Yuan Fu <casouri@gmail.com>
Improve treesit-fontify-with-override
This also fixes fontification problem with c-ts-mode--fontify-defun.
Now treesit-fontify-with-override clips the fontification region for
the user, so no need for (max start node-start) shenanigans anymore.
More importantly it doesn't fontify unless the region between
node-start and node-end intersects with the region between start and
end, which fixes the problem with c-ts-mode--fontify-defun.
* lisp/treesit.el (treesit-fontify-with-override): Add optional
parameter BOUND-START and BOUND-END. Wrap the function body in a
when-form.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-declarator)
(c-ts-mode--fontify-variable)
(c-ts-mode--fontify-defun)
(c-ts-fontify-error)
* lisp/progmodes/js.el (js--fontify-template-string)
* lisp/progmodes/python.el (python--treesit-fontify-string): Use the
new signature.
2022-12-04 Jim Porter <jporterbugs@gmail.com>
Make killing a non-last client work the same no matter the auto-stop setting
Previously, if 'server-stop-automatically' was configured for
'kill-terminal' or 'delete-frame', killing a client via
'save-buffers-kill-terminal' wouldn't prompt about the saving files in
the client's buffer list (as it does when not using those settings).
This change ensures that those settings only apply when killing the
last client, as described in the manual (bug#51993).
* lisp/server.el (server-save-buffers-kill-terminal): Handle
'server-stop-automatically' behavior in this function, rather than
calling 'server-stop-automatically--handle-delete-frame'.
2022-12-04 Juri Linkov <juri@linkov.net>
Use the function 'window-system' on the tab-bar/tab-line (bug#59620)
* lisp/tab-bar.el (tab-bar-separator)
(tab-bar-format-align-right, tab-bar-auto-width):
* lisp/tab-line.el (tab-line-format-template): Replace the variable
'window-system' with the function call '(window-system)'.
2022-12-04 Tom Gillespie <tgbugs@gmail.com>
Restore font-lock-type-face for lisp mode &symbols
* lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2)
(lisp-el-font-lock-keywords-2): Restore use of type face instead of
builtin face for &symbol keywords. This fixes what appears to be
a copy paste error that changed the face for common lisp and emacs
lisp &symbol style keywords that was introduced in commit
a498e5f83 by restoring the type face to font-lock-type-face as
consistent with the comments.
2022-12-04 Kai Ma <justksqsf@gmail.com> (tiny change)
Prevent a segfault when deleting a fullscreen frame on NextStep.
* nsterm.m ([EmacsView resetCursorRects:]): Be defensive when
accessing FRAME_OUTPUT_DATA. [resetCursorRects:] can be called
from the event loop after the frame is deleted. When this
happens, emacsframe is NULL. This means there is an underlying
leak of the EmacsView object! (Bug#59794)
Do not merge to master.
2022-12-04 Eli Zaretskii <eliz@gnu.org>
Fix markup in ERC manual
* doc/misc/erc.texi (SASL): Use @table instead of simulating it
with @indentedblock. Fix markup. (Bug#59815)
2022-12-03 Yuan Fu <casouri@gmail.com>
Fix comment-start-skip in tree-sitter modes (bug#59690)
* lisp/progmodes/c-ts-mode.el (c-ts-mode)
(c++-ts-mode)
* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/typescript-ts-mode.el (tsx-ts-mode): Remove the group
from the regexp.
2022-12-03 Mattias Engdegård <mattiase@acm.org>
Speed up Unicode normalisation tests by a factor of 5
After this change, ucs-normalize-tests are still very slow but
somewhat less disastrously so (from 100 to 20 min on this machine).
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--normalization-equal-p)
(ucs-normalize-tests--normalization-chareq-p)
(ucs-normalize-tests--rule1-holds-p)
(ucs-normalize-tests--rule2-holds-p)
(ucs-normalize-tests--part1-rule2):
Run only over the Unicode code space.
Hoist `with-current-buffer` to reduce overhead.
2022-12-03 Eli Zaretskii <eliz@gnu.org>
Fix "C-h k" when clicking on another frame
* lisp/help.el (help--analyze-key): Don't barf if the key sequence
includes a switch-frame event. (Bug#59785)
2022-12-03 Juanma Barranquero <lekktu@gmail.com>
Fix and expand tests broken by commit 2772ebe366 of 2022-11-28
* test/lisp/emacs-lisp/comp-tests.el
(with-test-native-compile-prune-cache)
(test-native-compile-prune-cache)
(test-native-compile-prune-cache/delete-only-eln)
(test-native-compile-prune-cache/dont-delete-in-parent-of-cache):
Check that the last directory in `native-comp-eln-load-path' is
not affected by `native-compile-prune-cache'.
2022-12-03 Eli Zaretskii <eliz@gnu.org>
Fix handling of relative directories in "--init-directory=DIR"
* lisp/startup.el (command-line): Interpret non-absolute file
names in '--init-directory' relative to the directory from
which Emacs is started. (Bug#59795)
2022-12-03 Eli Zaretskii <eliz@gnu.org>
Make sure 'user-emacs-directory' ends in a slash
* lisp/startup.el (command-line): Make sure 'user-emacs-directory'
has the form of a directory.
2022-12-03 Eli Zaretskii <eliz@gnu.org>
Fix gud-minor-mode-menu
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(easy-mmode-define-keymap): Don't declare obsolete, since we are
still using it in gud.el. (Bug#59769) (Bug#59605)
Do not merge to master.
2022-12-03 Eli Zaretskii <eliz@gnu.org>
Revert "Make easy-mmode-defmap obsolete and adjust only caller"
This reverts commit 8bb5c1bfec0929f2ba419e1c503f5acc01c336c2.
That commit lost too many useful features in the GUD menus
and caused several bugs, the last of them bug#59769.
Do not merge to master.
2022-12-03 Sean Whitton <spwhitton@spwhitton.name>
vc-git-print-log: Don't assume vc-git-log-switches is a list
* lisp/vc/vc-git.el (vc-git-print-log): Call ensure-list on
vc-git-log-switches to handle the case where it's a singular string.
2022-12-02 Stefan Kangas <stefankangas@gmail.com>
Fix use-package tests
* test/lisp/use-package/use-package-chords-tests.el:
* test/lisp/use-package/use-package-tests.el: Remove local
variables section. Require 'ert' and fix copyright header.
2022-12-02 Mattias Engdegård <mattiase@acm.org>
Fix server-tests run noninteractively (bug#59742)
This may or may not fix the test run from CI.
* test/lisp/server-tests.el (server-tests/can-create-frames-p):
Don't attempt to create frames if TERM=dumb, which what we have
if run from M-x compile (for instance).
(server-tests/server-force-stop/keeps-frames): Delete created frame so
that it doesn't cause trouble for other tests.
2022-12-02 Randy Taylor <dev@rjt.dev>
Use file-name-nondirectory to determine default project-name
* lisp/progmodes/project.el (project-name):
Use file-name-nondirectory instead of file-name-base (bug#59756).
2022-12-02 Yikai Zhao <yikai@z1k.dev>
Speed up auto-completion in 'sh-script-mode'
* lisp/progmodes/sh-script.el (sh--cmd-completion-table-gen): New
function, replacement for 'sh--cmd-completion-table'.
(sh--cmd-completion-table): Function removed.
(sh-completion-at-point-function): Use
'sh--cmd-completion-table-gen'. (Bug#59678)
2022-12-02 Juanma Barranquero <lekktu@gmail.com>
Fix error editing multisession variables (bug#59710)
* lisp/emacs-lisp/multisession.el (multisession-edit-value):
Do not use `bound-and-true-p' on a non-symbol. This reverts
commit bd586121ac21e046f60f75eeb0200866c38d6f9f.
2022-12-02 Brian Leung <leungbk@posteo.net>
Add tsx-ts-mode to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add
tsx-ts-mode. (Bug#59770)
2022-12-02 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-format-align-right): Fix alignment on TTY frames.
Calculate the alignment from the left edge instead of the right edge
since the `right' spec doesn't work on TTY frames when windows are split
horizontally (bug#59620).
2022-12-02 Juri Linkov <juri@linkov.net>
Fix the width of margins for icons in outline-minor-mode (bug#59719)
* doc/lispref/display.texi (Icons): Add :width spec.
* lisp/emacs-lisp/icons.el (icons--create): Handle :width as well.
* lisp/outline.el (outline--margin-width, outline-margin-width):
New variables.
(outline-open-in-margins, outline-close-in-margins)
(outline-close-rtl-in-margins): Don't inherit from parents.
Use `:width font' instead of `:height 10'.
(outline-minor-mode): Calculate the number of columns for margins
to fit the icons.
2022-12-01 Theodor Thornhill <theo@thornhill.no>
Add new TypeScript mode tsx-ts-mode
There are in fact two languages supporting TypeScript for tree-sitter.
Because TSX causes some ambiguities with types there are two grammars,
one called typescript and one called tsx. To account for this and to
be as correct as possible we enable using both.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Change to a function to accomodate
the two languages.
(typescript-ts-mode--font-lock-settings): Change to a function to
accomodate the two languages.
(typescript-ts-base-mode): Parent mode for typescript-ts-mode
and tsx-ts-mode.
(typescript-ts-mode): Derive from typescript-ts-base-mode and
extend with language specific settings
(tsx-ts-mode): New major mode that derives from
typescript-ts-base-mode and extend it with language specific
settings
Add autoload cookies for the respective file type extensions: .ts and
.tsx.
* etc/NEWS: Mention the new mode.
2022-12-01 Daniel Martín <mardani29@yahoo.es>
Add case and match to python--treesit-keywords (bug#59720)
* lisp/progmodes/python.el (python--treesit-keywords): Add "case" and
"match" keywords.
2022-12-01 Dmitry Gutov <dgutov@yandex.ru>
project-files (VC-aware): Make sure the VC backend is loaded
* lisp/progmodes/project.el (project-files):
Make sure the VC backend is loaded (bug#59734).
2022-12-01 Sean Whitton <spwhitton@spwhitton.name>
term--update-term-menu: Add the menu to term-terminal-menu
Reading bug#5641, the intention was to add this to the existing
"Terminal" menu for term-mode buffers, not to the local keymaps of all
other buffers. Moreover, the existing code signaled errors when
switching to buffers with no local keymap, such as term-mode buffers
whose processes have died.
* lisp/term.el (term--update-term-menu): Add the menu to
term-terminal-menu, instead of implicitly trying to add it to every
local keymap.
2022-12-01 Eli Zaretskii <eliz@gnu.org>
Improve detection of very long lines
* src/xdisp.c (redisplay_window): Recheck for long lines if the
restriction has changed. (Bug#56682)
2022-12-01 Laurence Warne <laurencewarne@gmail.com>
Add colors to Proced (bug#59407)
Add a new custom variable proced-enable-color-flag which when set to a
non-nil value (defaults to nil), will prompt some format functions to
furnish their respective process attributes with colors and effects in
order to make them easier to distinguish and highlight possible issues
(e.g. high memory usage), in a manner similar to htop.
In particular, the current Emacs process id is highlighted purple in
both the process id and parent process id columns, session leaders
have their process ids underlined, larger memory sizes for rss
are highlighted in darker shades of orange, and the first word in the
args property (the executable) is highlighted in blue.
* lisp/proced.el (proced-grammar-alist): Update to use the new format
functions.
(proced-low-memory-usage-threshold): New custom variable to determine
whether a value represents 'low' memory usage, used only in
proced-format-memory for coloring.
(proced-medium-memory-usage-threshold): New custom variable to
determine whether a value represents 'medium' memory usage, used only
in proced-format-memory for coloring.
(proced-enable-color-flag): New custom variable to toggle coloring.
(proced-run-status-code, proced-interruptible-sleep-status-code)
(proced-uninterruptible-sleep-status-code, proced-executable)
(proced-executable, proced-memory-gb, proced-memory-mb)
(proced-memory-default, proced-pid, proced-ppid, proced-pgrp)
(proced-sess, proced-cpu, proced-mem, proced-user, proced-time-colon):
New faces.
(proced-format-time): Edit function to color colons using
proced-time-colon.
(proced-format-args): Edit function to color executables using
proced-executable.
(proced-format-state): New function to color states.
(proced-format-pid): New function to color process ids.
(proced-format-ppid): New function to color parent process ids.
(proced-format-pgrp): New function to color process group ids.
(proced-format-sess): New function to color process session leader
ids.
(proced-format-cpu): New function to color cpu utilization.
(proced-format-mem): New function to color memory utilization.
(proced-format-user): New function to color the user a process
belongs to.
2022-12-01 Dmitry Gutov <dgutov@yandex.ru>
Update project docs and NEWS
* doc/emacs/maintaining.texi (Projects): Update the name.
* etc/NEWS: Mention new option (bug#41572).
2022-12-01 Stefan Kangas <stefankangas@gmail.com>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-11-29 18:15:27 UTC.
(cherry picked from commit de00aef3e151e0eefe20feda74cf90578e8ff109)
2022-12-01 kobarity <kobarity@gmail.com>
Add highlighting Python operators (bug#59629)
* lisp/progmodes/python.el (python-rx): Remove "is" and
"not" from operator.
(python-font-lock-keywords-maximum-decoration): Add
highlighting operators.
* test/lisp/progmodes/python-tests.el
(python-font-lock-assignment-statement-1)
(python-font-lock-assignment-statement-2)
(python-font-lock-assignment-statement-3)
(python-font-lock-assignment-statement-4)
(python-font-lock-assignment-statement-5)
(python-font-lock-assignment-statement-6)
(python-font-lock-assignment-statement-7)
(python-font-lock-assignment-statement-8)
(python-font-lock-assignment-statement-9)
(python-font-lock-assignment-statement-10)
(python-font-lock-assignment-statement-11)
(python-font-lock-assignment-statement-12)
(python-font-lock-assignment-statement-13)
(python-font-lock-assignment-statement-14)
(python-font-lock-assignment-statement-15)
(python-font-lock-assignment-statement-16)
(python-font-lock-assignment-statement-17)
(python-font-lock-assignment-statement-18)
(python-font-lock-assignment-statement-multiline-1)
(python-font-lock-assignment-statement-multiline-2)
(python-font-lock-assignment-statement-multiline-3)
(python-font-lock-assignment-statement-multiline-4)
(python-font-lock-assignment-statement-multiline-5)
(python-font-lock-assignment-statement-multiline-6)
(python-font-lock-escape-sequence-multiline-string): Modify
expectations to include faces for operators.
(python-font-lock-operator-1, python-font-lock-operator-2): New tests.
2022-12-01 Eli Zaretskii <eliz@gnu.org>
Fix compilation of Org 9.6 on MS-Windows
* lisp/org/org-clock.el (org-x11idle-exists-p): Don't try to
invoke "command x11idle" on MS-Windows and MS-DOS. This fixes a
hang during byte-compilation of Org.
2022-12-01 Po Lu <luangruo@yahoo.com>
* doc/lispref/frames.texi (Input Focus): Clarify for XInput 2 support.
2022-12-01 Mattias Engdegård <mattiase@acm.org>
Fix types in various defcustom declarations
* lisp/org/ob-clojure.el
(ob-clojure-babashka-command, ob-clojure-nbb-command):
Account for the possibility of nil (commands absent).
* lisp/org/org.el (org-safe-remote-resources):
* lisp/org/ox-md.el (org-md-toplevel-hlevel):
* lisp/progmodes/project.el (project-vc-extra-root-markers):
Fix incorrect or invalid types.
2022-12-01 Po Lu <luangruo@yahoo.com>
Fix crashes and memory leaks during display deinitialization
* .dir-locals.el (c-mode): Add more noise macro names.
* src/frame.c (delete_frame): Do not delete terminal if force is
Qnoelisp.
* src/xterm.c (x_wm_supports): Fix coding style.
(x_delete_display): Delete the supported atoms list.
(x_delete_terminal): Delete all terminals. Free the scratch
cursor GC.
2022-11-30 Dmitry Gutov <dgutov@yandex.ru>
New user option: project-vc-extra-root-markers
* lisp/progmodes/project.el: Commentary update.
(project-vc, project-vc-include-untracked, project-vc-name):
Update docstrings. Rename 'VC project' to 'VC-aware project'.
(project-vc-extra-root-markers): New option (bug#41572).
(project-try-vc): Use it. Construct a single regexp from all and
validate it using the MATCH argument of 'directory-files'. Call
'locate-dominating-file' directly.
(project-ignores): Support VC-aware project instances with nil
value of VC backend.
* test/lisp/progmodes/project-tests.el (project-vc-recognizes-git)
(project-vc-extra-root-markers-supports-wildcards)
New tests.
(project-tests--this-file): New variable.
2022-11-30 Daniel Martín <mardani29@yahoo.es>
Add inline to c-ts-mode--keywords
* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Add "inline", a
keyword available since C99 to define inline functions in C.
2022-11-30 Daniel Martín <mardani29@yahoo.es>
Remove duplicate "friend" from c-ts-mode--keywords
* lisp/progmodes/c-ts-mode.el (c-ts-mode--keywords): Remove duplicate
keyword.
2022-11-30 Yuan Fu <casouri@gmail.com>
Make treesit-defun-prefer-top-level more flexible
* doc/lispref/positions.texi (List Motion): Update manual.
* lisp/treesit.el (treesit-defun-prefer-top-level): Update docstring.
(treesit--defun-maybe-top-level): Change to accept new format.
2022-11-30 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode defun movement (bug#59628)
* lisp/progmodes/c-ts-mode.el (c-ts-mode--end-of-defun): New function.
(c-ts-mode--base-mode): Use more specific regexp, and set
treesit-defun-prefer-top-level.
(c-ts-mode)
(c++-ts-mode): Set end-of-defun-function.
2022-11-30 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Keep tabs of the same group together (bug#59721)
(tab-bar-tab-post-change-group-functions): Change the default value to
'(tab-bar-move-tab-to-group)'. Improve docstring.
(tab-bar-change-tab-group): Improve docstring.
2022-11-30 muffinmad <andreyk.mad@gmail.com>
Insert news for installed packages only
* lisp/emacs-lisp/package.el (describe-package-1): Check package is
installed and "news" is a regular file. (Bug#59684)
2022-11-30 Dmitry Gutov <dgutov@yandex.ru>
project-current: Improve the docstring
* lisp/progmodes/project.el (project-current):
Improve the docstring (bug#59722).
2022-11-30 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/Makefile.in (INFO_COMMON): Add use-package.
2022-11-30 Mattias Engdegård <mattiase@acm.org>
Org regexp style fixes
* lisp/org/org-element.el (org-element--get-node-properties):
Escape literal `+`.
* lisp/org/org-persist.el (org-persist-load:index):
Replace line-start with string-start when the latter is meant.
2022-11-30 Mattias Engdegård <mattiase@acm.org>
Skip one python test case on macOS
* test/lisp/progmodes/python-tests.el (python-ffap-module-path-1):
This test fails with a standard macOS Python installation;
see bug#59477 and bug#25753.
(cherry picked from commit db042b7591ea9da5e169704e5b32bd99c4ea7adf)
2022-11-30 Mattias Engdegård <mattiase@acm.org>
Sink python indent offset guessing to avoid test failure
Call python-indent-guess-indent-offset late in the set-up of
python-mode and python-ts-mode to make sure that the required other
settings (of syntax-propetize-function in particular) have been
carried out. This cures a python-test failure (bug#59477).
* lisp/progmodes/python.el (python-base-mode): Move
python-indent-guess-indent-offset call from here...
(python-mode): ...to here...
(python-ts-mode): ...and here.
2022-11-29 Kyle Meyer <kyle@kyleam.com>
* etc/NEWS: Announce Org update.
Update to Org 9.6-3-ga4d38e
2022-11-29 Juanma Barranquero <lekktu@gmail.com>
Fix interactive selection of emacs-lock mode, broken by 2a4b0da28c
* lisp/emacs-lock.el (emacs-lock--set-mode): Check that
arg is 4 and prefix is '(4).
(emacs-lock-mode): Pass also `current-prefix-arg' to
`emacs-lock--set-mode'.
2022-11-29 Daniel Martín <mardani29@yahoo.es>
Fix typo in flag to load Emacs-specific LLDB commands
* src/.lldbinit: Fix typo in flag to parse .lldbinit files from the
current directory. (Bug#59702)
2022-11-29 Alan Mackenzie <acm@muc.de>
CC Mode: Prevent lone ids being parsed as types unless in decl arglists
This fixes bug #59051.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): In the test for the
last invocation of c-fdoc-shift-type-backward before CASE 1, additionally
test CONTEXT not being an arglist or BACKUP-AT-TYPE being non-nil.
2022-11-29 Mattias Engdegård <mattiase@acm.org>
Allow csharp-mode in c-default-style
* lisp/progmodes/cc-vars.el (c-default-style):
Add csharp-mode to the type. This fixes test-custom-opts.
2022-11-29 Augusto Stoffel <arstoffel@gmail.com>
In project-find-file, add abbreviated file names to history
* lisp/progmodes/project.el (project--read-file-cpd-relative):
Use 'abbreviate-file-name' (bug#58447).
2022-11-29 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/project.el (project-vc-name): Fix the :type form (bug#48747).
2022-11-29 Michael Albinus <michael.albinus@gmx.de>
Tramp cleanup
* doc/misc/tramp.texi: Use @value{tramp} where appropriate.
* doc/misc/trampver.texi: Change "Tramp" format ifplaintext.
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
Ignore `memory-info'.
2022-11-29 Po Lu <luangruo@yahoo.com>
Allow be-resources to fail
* lib-src/be_resources.cc (be_perror): Print additional blurb.
(main): Return 0 on failure as well, but print the blurb.
Problem reported by the Haiku packager.
2022-11-29 F. Jason Park <jp@neverwas.me>
Simplify erc-sasl's auth-source API
* doc/misc/erc.texi: Revise descriptions in SASL chapter to reflect
simplified auth-source options.
* lisp/erc/erc-sasl.el (erc-sasl-password,
erc-sasl-auth-source-function): Revise doc strings.
(erc-sasl-auth-source-password-as-host): New function to serve as
more useful choice for option `erc-sasl-auth-source-function'.
(erc-sasl--read-password): Promote auth-source to pole position, above
an explicit string and `:password'.
* test/lisp/erc/erc-sasl-tests.el (erc-sasl--read-password--basic):
Massage tests to conform to simplified `erc-sasl-password'
API. (Bug#29108.)
2022-11-28 F. Jason Park <jp@neverwas.me>
* doc/misc/erc.texi: Revise SASL and modules chapters.
2022-11-28 F. Jason Park <jp@neverwas.me>
Add erc-sasl-auth-source-function to cached options
* lisp/erc/erc-sasl.el (erc-sasl--read-password): Consult cached
options instead of `erc-sasl-auth-source-function'.
(erc-sasl--init): Add `erc-sasl-auth-source-function' to
`erc-sasl--options'.
* test/lisp/erc/erc-sasl-tests.el (erc-sasl--read-password--basic,
erc-sasl--read-password--auth-source): Look for original value of
`erc-sasl-auth-source-function' in `erc-sasl--options' under the
`authfn' key.
2022-11-28 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontification in csharp-ts-mode
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Improve rules for variables, new-expressions, and catch statements.
2022-11-28 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve fontification in typescript-ts-mode
- Restore method-name fontification.
- Fontify all types in class-declarations, extendees too
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Change patterns.
2022-11-28 Theodor Thornhill <theo@thornhill.no>
Add more font-lock settings to css-ts-mode
* lisp/textmodes/css-mode.el (css--treesit-settings): Add new
font-lock features 'query', 'keyword', 'operator' and 'bracket'.
(css-ts-mode): Use new features.
2022-11-28 Yuan Fu <casouri@gmail.com>
Reparse tree-sitter tree when buffer restriction changes
* src/treesit.c (treesit_sync_visible_region): Set nee_reparse flag to
true if buffer range changes. Add some assertion.
* src/treesit.c (treesit_ensure_parsed): Move
treesit_sync_visible_region in front of the check for need_reparse.
2022-11-28 Eli Zaretskii <eliz@gnu.org>
Fix GUD item on the menu bar in source buffers
* lisp/progmodes/gud.el (alist-get): Restore gud-minor-mode menu
on the menu bar. (Bug#59605)
2022-11-28 Eli Zaretskii <eliz@gnu.org>
Cut the emacs-29 release branch
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump Emacs version to 29.0.60.
* admin/admin.el (set-version): Fix regexp for configure.ac.
* lisp/cus-edit.el (customize-changed-options-previous-release):
Bump last version to 28.2.
2022-11-28 Juanma Barranquero <lekktu@gmail.com>
Do not prune native-compiled system directories (bug#59658)
* lisp/emacs-lisp/comp.el (native-compile-prune-cache):
Skip last directory in `native-comp-eln-load-path'.
2022-11-28 Gregory Heytings <gregory@heytings.org>
Fix display of long completions.
* lisp/minibuffer.el (completion--insert-strings): Do not assume
"at least 2 columns", which is not possible when completion
strings are long, e.g. with completions-detailed set.
2022-11-27 Gregory Heytings <gregory@heytings.org>
Do not enter locked narrowing when it would span the whole buffer
* src/xdisp.c (handle_fontified_prop):
* src/keyboard.c (safe_run_hooks_maybe_narrowed): Add condition.
2022-11-27 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/xref.el (xref--outdated-p): Fix broken docstring.
2022-11-27 Stefan Kangas <stefankangas@gmail.com>
Catch more cases in info--ensure-not-in-directory-node
* lisp/info.el (info--ensure-not-in-directory-node): Fix the case
where "DIR" is in upper-case, and if 'Info-current-file' is an
absolute file name.
Problem reported by Eli Zaretskii <eliz@gnu.org>.
2022-11-27 Gregory Heytings <gregory@heytings.org>
Fix incompatible -t and -r options in emacsclient
* lib-src/emacsclient.c (decode_options): Do not allow -t and -r
together.
2022-11-27 Gregory Heytings <gregory@heytings.org>
Minor improvements to locked narrowing
* src/xdisp.c (get_locked_narrowing_begv)
(get_locked_narrowing_zv): Safer handling of negative values.
(handle_fontified_prop): Do not use locked narrowing if the region
size is <= 0.
* src/keyboard.c (safe_run_hooks_maybe_narrowed): Do not use
locked narrowing if the region size is <= 0.
2022-11-27 Yuan Fu <casouri@gmail.com>
Remove treesit-comment-start/end and use comment-start/end-skip
treesit-comment-start/end is unnecessary because of
comment-start/end-skip, so they should be removed.
Cleanup and set comment-start/end-skip for tree-sitter C-like major
modes.
I replaced the [ \t]* part in comment-start-skip with (syntax
whitespace), which is what comment-end-skip uses. I also added
grouping in comment-start-skip to match that of comment-end-skip.
* lisp/progmodes/c-ts-mode.el (c-ts-mode)
(c++-ts-mode)
* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Setup
comment-start/end-skip.
* lisp/treesit.el (treesit-comment-start)
(treesit-comment-end): Remove variables.
(treesit-simple-indent-presets): Use comment-start/end-skip instead.
2022-11-27 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/revert-for-copyright
GitHub-reference: https://github.com/jwiegley/use-package/issues/1026
2022-11-27 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/revert-for-copyright2
GitHub-reference: https://github.com/jwiegley/use-package/issues/1027
2022-11-27 Gregory Heytings <gregory@heytings.org>
Merge branch 'feature/improved-locked-narrowing'
2022-11-27 Eli Zaretskii <eliz@gnu.org>
Fix the new ctags test
* test/manual/etags/Makefile (ctags_update): Sort CTAGS* files
before comparing. Patch by lu4nx <lx@shellcodes.org>. (Bug#59544)
* .gitignore: Ignore CTAGS*.sorted files.
2022-11-27 Michael Albinus <michael.albinus@gmx.de>
Extend memory-info for remote systems
* doc/lispref/files.texi (Magic File Names): Add memory-info.
* doc/lispref/internals.texi (Garbage Collection): memory-info can
also retrieve values from remote systems.
* etc/NEWS: Document changes in memory-info. Fix typos.
* lisp/files.el (warn-maybe-out-of-memory): Ensure local memory info.
* lisp/net/tramp.el (tramp-handle-memory-info): New defun.
(tramp-file-name-for-operation)
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist)
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add 'memory-info'.
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-exec-path):
Let-bind `process-file-side-effects'.
* src/alloc.c (Fmemory_info): Support remote systems.
(Qmemory_info): Declare.
* test/lisp/net/tramp-tests.el (tramp-test31-memory-info): New test.
2022-11-27 Philip Kaludercic <philipk@posteo.net>
Consistently refer to VC packages as such
* lisp/emacs-lisp/package-vc.el: Replace instances of "source package"
in comments and docstrings.
* lisp/emacs-lisp/package.el: Replace instances of "source package" in
comments and docstrings.
2022-11-27 Juanma Barranquero <lekktu@gmail.com>
Fix xref interaction with which-func (bug#59575)
* lisp/progmodes/xref.el (xref--add-log-current-defun):
New function.
(xref--xref-buffer-mode): Assign it buffer-locally to
`add-log-current-defun-function'.
2022-11-27 lu4nx <lx@shellcodes.org>
Fixed ctags local command execute vulnerability
* lib-src/etags.c:
(clean_matched_file_tag): New function
(do_move_file): New function
(readline_internal):
Add `leave_cr` parameter, if true, include the \r character
* test/manual/etags/CTAGS.good_crlf: New file
* test/manual/etags/CTAGS.good_update: New file
* test/manual/etags/crlf: New file
* test/manual/etags/Makefile: Add `ctags -u` test cases
2022-11-27 Juanma Barranquero <lekktu@gmail.com>
Fix xref to correctly display Windows absolute filenames
* lisp/progmodes/xref.el (xref--group-name-for-display):
Use `file-name-absolute-p' instead of faking it. (Discussed
in bug#59628.)
2022-11-27 Shohei YOSHIDA <syohex@gmail.com>
* lib-src/emacsclient.c (print_help_and_exit): Fix --timeout.
2022-11-27 Po Lu <luangruo@yahoo.com>
Make frame synchronization more robust
* src/xterm.c (x_sync_wait_for_frame_drawn_event)
(x_sync_handle_frame_drawn): Only cancel frame synchronization
if hanging twice or more in a row.
* src/xterm.h (struct x_output, FRAME_X_DRAW_JUST_HUNG): New
flag.
2022-11-27 Theodor Thornhill <theo@thornhill.no>
Remove compatibility code in csharp-mode
* lisp/progmodes/csharp-mode.el (c-basic-matchers-before): Remove
invalid string check for Emacs 27.
(version=): Remove compatibility hack for string handling in CC Mode
in Emacs 27.1. (Bug#59602)
2022-11-27 Stefan Kangas <stefankangas@gmail.com>
Revert "Add: 'local' keyword"
This reverts commit 620fe443c2e7598191cb5d6c6a41064471edb57c.
2022-11-27 Stefan Kangas <stefankangas@gmail.com>
Remove tests lacking a copyright assignment for now
* use-package-tests.el (use-package-test/pre-post-hooks-with-:config)
(use-package-test/pre-post-hooks-without-:config): Remove tests.
2022-11-27 Theodor Thornhill <theo@thornhill.no>
Add js-ts-mode to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add js-ts-mode as
an alternative. (Bug#59252)
2022-11-27 Stefan Kangas <stefankangas@gmail.com>
Improve describe-text-properties display
* lisp/descr-text.el (describe-property-list): Don't propertize white
space with the 'help-argument-name' face. This improves display
slightly when that face has an underline.
2022-11-26 Gregory Heytings <gregory@heytings.org>
Simplify narrowing_locks_restore
* src/editfns.c (narrowing_locks_restore): Simplify.
2022-11-26 Gregory Heytings <gregory@heytings.org>
Improve handling of killed buffers in locked narrowings
* src/editfns.c (narrowing_locks_add, narrowing_locks_remove):
New functions, factored out.
(narrowing_lock_push, narrowing_lock_pop)
(narrowing_locks_restore): Use the new functions.
(narrowing_lock_get_bound): Return NULL for killed buffers.
(reset_outermost_narrowings, unwind_reset_outermost_narrowing):
Remove killed buffers from the 'narrowing_locks' alist.
2022-11-26 Yuan Fu <casouri@gmail.com>
Make typescript-ts-mode not fallback to js-mode
1. js-mode might not be able to handle typescript file
2. Now that we use separate modes for tree-sitter modes, not falling
back makes tree-sitter modes more consistent
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode): Remove
the fallback code.
2022-11-26 Yuan Fu <casouri@gmail.com>
Make bash-ts-mode fall back to sh-mode if the file isn't in Bash
* lisp/progmodes/sh-script.el (sh--guess-shell): Take out into a new
function.
(sh-base-mode): Use the new function.
(bash-ts-mode): Update docstring.
(sh--redirect-recursing): New variable.
(sh--redirect-bash-ts-mode): New function.
2022-11-26 Jostein Kjønigsen <jostein@kjonigsen.net>
Correctly fontify types in typeof() expression in csharp-ts-mode
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Add new pattern.
2022-11-26 Yuan Fu <casouri@gmail.com>
Reorganize treesit-font-lock-feaure-list's to the new level scheme
* lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode)
* lisp/progmodes/csharp-mode.el (csharp-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/python.el (python-ts-mode)
* lisp/progmodes/sh-script.el (bash-ts-mode)
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode):
Reorganized treesit-font-lock-feature-list.
2022-11-26 Yuan Fu <casouri@gmail.com>
Add treesit-font-lock-level
This replaces font-lock-maximum-decoration and allows us to disable
the busiest fontification level by default.
* lisp/treesit.el (treesit-font-lock-level): New variable.
(treesit-font-lock-feature-list)
(treesit-font-lock-settings): Change docstring.
(treesit-font-lock-recompute-features): Use the new variable.
2022-11-26 Yuan Fu <casouri@gmail.com>
Add default limit for tree-sitter recursive tree-traversing function
This fixes bug#59426.
* src/treesit.c (treesit_search_dfs)
(treesit_build_sparse_tree): Remove no_limit parameter.
(Ftreesit_search_forward, Ftreesit_induce_sparse_tree): Use default
limit of 1000.
* doc/lispref/parsing.texi (Retrieving Nodes): Update manual.
2022-11-26 Yuan Fu <casouri@gmail.com>
Partially fix some python tests (bug#59477)
This fixes
python-font-lock-assignment-statement-multiline-1
python-font-lock-assignment-statement-multiline-2
python-font-lock-assignment-statement-multiline-3
python-font-lock-assignment-statement-multiline-4
python-font-lock-assignment-statement-multiline-5
python-font-lock-assignment-statement-multiline-6
but leaves
python-tests--fill-long-first-line
unfixed.
* lisp/progmodes/python.el (python-mode): Add the missing setup.
2022-11-26 Gregory Heytings <gregory@heytings.org>
Minor improvements for locked narrowing
* src/editfns.c (narrowing_lock_pop): Clarify comment, replace
assertion by return.
(narrowing_locks_restore): Add comments.
* lisp/subr.el (with-narrowing, internal--with-narrowing):
Simplify, use a single helper function with an optional argument.
2022-11-26 Jim Porter <jporterbugs@gmail.com>
Improve robustness of server.el tests
* lisp/emacs-lisp/ert.el (ert--insert-infos): Allow 'message' to be a
function that is called when inserting the info.
(ert-info): Update docstring to describe using a function for
MESSAGE-FORM.
* lisp/server.el (server-start): Log when the server is starting.
* test/lisp/server-tests.el (server-tests/can-create-frames-p): New
constant. Use it to skip tests that need to create frames.
(server-tests/start-emacsclient): Rename to...
(server-tests/start-client): ... this, and set the process's buffer.
(server-tests/with-server): Put the server file in a temporary
directory so we don't conflict with real Emacs servers.
(server-tests/with-client): New macro...
(server-tests/server-start/stop-prompt-with-client)
(server-tests/emacsclient/server-edit)
(server-tests/emacsclient/create-frame)
(server-tests/emacsclient/create-frame): ... use it.
(server-tests/server-start/stop-prompt-with-client): Simplify.
2022-11-26 Eric Abrahamsen <eric@ericabrahamsen.net>
Remove mentions of create-directory nnmaildir setting
* lisp/gnus/nnmaildir.el (nnmaildir-open-server): The
'create-directory server parameter should have been removed entirely,
and supplanted by 'target-prefix. Remove check for old parameter.
* doc/misc/gnus.texi (Maildir): Delete mention from manual.
2022-11-26 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
2022-11-26 Gregory Heytings <gregory@heytings.org>
Docstring improvements
* src/xdisp.c (syms_of_xdisp):
* src/keyboard.c (syms_of_keyboard):
Docstring improvements.
2022-11-26 Gregory Heytings <gregory@heytings.org>
Docstring improvements
* src/xdisp.c (syms_of_xdisp):
* src/keyboard.c (syms_of_keyboard):
* src/buffer.c (syms_of_buffer):
Docstring improvements.
2022-11-26 Gregory Heytings <gregory@heytings.org>
Further improvements to narrowing locks
* src/editfns.c:
(narrowing_lock_get_bound): Return a pointer to a struct
Lisp_Marker instead of a character position. Suggested by Eli
Zaretskii.
(reset_outermost_narrowings, unwind_reset_outermost_narrowing)
(Fwiden, Fnarrow_to_region): Adapt accordingly.
(narrowing_lock_peek_tag, narrowing_lock_push)
(narrowing_lock_pop, narrowing_locks_save)
(narrowing_locks_restore): Use XCAR/XCDR/XSETCAR instead of
Fcar/Fcdr/Fsetcar.
2022-11-26 Gregory Heytings <gregory@heytings.org>
Improve locked narrowing around low-level hooks.
* src/buffer.c (syms_of_buffer): Two new variables,
'long-line-locked-narrowing-region-size' and
'long-line-locked-narrowing-bol-search-limit', to make the locked
narrowing around low-level hooks configurable.
Increase the default value of 'long-line-threshold'. After
carefully considering the (few) bug reports about long line
optimizations, I concluded that the previous default value was too
low.
* src/xdisp.c (get_locked_narrowing_begv)
(get_locked_narrowing_zv): Two new functions.
(handle_fontified_prop, reseat): Use them.
* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use them.
* src/dispextern.h (struct it): Add two new fields to store the
values returned by these functions.
Make them externally visible.
* src/editfns.c: (Fsave_restriction): Update docstring.
2022-11-26 Stefan Kangas <stefankangas@gmail.com>
Mention new programming language support in manual
* doc/emacs/programs.texi (Program Modes): Mention newly added support
for C#, TypeScript and JSON.
2022-11-26 Augusto Stoffel <arstoffel@gmail.com>
In project-find-file and the like, add absolute file name to history
* lisp/progmodes/project.el (project--read-file-cpd-relative): Add
absolute file name to history.
2022-11-26 Eli Zaretskii <eliz@gnu.org>
Improve documentation of some posn-* functions
* lisp/subr.el (posn-object-x-y): Doc fix.
* doc/lispref/commands.texi (Click Events): More accurate
documentation of what are DX and DY in POSITION.
2022-11-26 Eli Zaretskii <eliz@gnu.org>
Fix generation of autoloads on MS-Windows
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--file-load-name): Handle the case when FILE and
OUTFILE don't share any common ancestor directory. (Bug#59507)
2022-11-26 Po Lu <luangruo@yahoo.com>
Reduce wasted cycles in x*.c
* src/xfns.c (compute_tip_xy, Fx_show_tip):
* src/xselect.c (x_own_selection, x_get_local_selection)
(x_clear_frame_selections): Call CAR and CDR, not Fcar and Fcdr.
2022-11-26 Stefan Kangas <stefankangas@gmail.com>
Use substitute-command-keys in Info-index error
* lisp/info.el (info--ensure-not-in-directory-node): New helper
function using substitute-command-keys for error message.
(Info-index, Info-virtual-index): Use it.
2022-11-26 Brian Leung <leungbk@posteo.net>
eglot-server-programs: ts-mode -> typescript-ts-mode
* lisp/progmodes/eglot.el (eglot-server-programs): Fix name of
'typescript-ts-mode' after rename from 'ts-mode'. (Bug#59589)
2022-11-25 Yuan Fu <casouri@gmail.com>
Fix tree-sitter assertion error (bug#59574)
* src/treesit.c (treesit_sync_visible_region): Initialize
visible_beg/end when tree is NULL.
2022-11-25 Yuan Fu <casouri@gmail.com>
Rename treesit_ensure_position_synced to treesit_sync_visible_region
* src/treesit.c: Rename to better convey the purpose of the function.
2022-11-25 Theodor Thornhill <theo@thornhill.no>
Rename ts-mode to typescript-ts-mode
* lisp/progmodes/typescript-ts-mode.el: Rename from 'ts-mode' to
'typescript-ts-mode'. Rename all symbols to match new prefix.
* etc/NEWS: Mention the new mode name.
Ref: https://lists.gnu.org/r/emacs-devel/2022-11/msg01587.html
2022-11-25 Theodor Thornhill <theo@thornhill.no>
Rename ts-mode.el to typescript-ts-mode.el
* lisp/progmodes/ts-mode.el: Move from here...
* lisp/progmodes/typescript-ts-mode.el: ...to here.
2022-11-25 Po Lu <luangruo@yahoo.com>
Fix no-accept-focus handling for embedded frames
* src/xterm.c (handle_one_xevent): Don't focus embedded frames
on click if they have `no-accept-focus' set.
2022-11-25 Gregory Heytings <gregory@heytings.org>
Save and restore narrowing locks in 'save-restriction'.
* src/editfns.c: (Fsave_restriction): Save and restore narrowing
locks. Suggested by Stefan Monnier.
(narrowing_locks_save, narrowing_locks_restore): Helper functions.
* lisp/subr.el (with-narrowing-1): Simplify.
2022-11-25 Dmitry Gutov <dgutov@yandex.ru>
Drop project--value-in-dir
Drop the project--value-in-dir mechanics, where the user could edit
the value in .dir-locals.el and have it applied instantly without
reverting the current buffer. It made working in remote buffers with
enable-remote-dir-locals non-nil slower, which doesn't seem worth it
for a minor improvement of an infrequent operation. Also less
compexity overall.
* lisp/progmodes/project.el (project-try-vc, project-files)
(project--vc-list-files, project-ignores, project-buffers):
Use the user options directly.
(project--vc-merge-submodules-p, project--value-in-dir):
Delete functions.
2022-11-25 Gregory Heytings <gregory@heytings.org>
Generic 'with-narrowing' macro.
* lisp/subr.el (with-narrowing): New generic macro, replacing the
'with-locked-narrowing' one. Suggested by Stefan Monnier.
(with-narrowing-1, with-narrowing-2): Helper functions.
2022-11-25 Gregory Heytings <gregory@heytings.org>
Reworked locked narrowing.
* src/editfns.c: (narrowing_locks): New alist to hold the narrowing
locks and their buffers.
(narrowing_lock_get_bound, narrowing_lock_peek_tag)
(narrowing_lock_push, narrowing_lock_pop): New functions to access
and update 'narrowing_locks'.
(reset_outermost_narrowings, unwind_reset_outermost_narrowing):
Functions moved from src/xdisp.c, and rewritten with the above
functions.
(Fwiden): Use the above functions. Update docstring.
(Fnarrow_to_region, Fnarrowing_lock, Fnarrowing_unlock): Use the above
functions.
(syms_of_editfns): Remove the 'narrowing-locks' variable.
* src/lisp.h: Make 'reset_outermost_narrowings' externally visible.
* src/xdisp.c (reset_outermost_narrowings)
unwind_reset_outermost_narrowing): Functions moved to src/editfns.c.
* lisp/subr.el (with-locked-narrowing): Improved macro, with a helper
function.
2022-11-25 F. Jason Park <jp@neverwas.me>
Disable auth-source-pass-extra-query-keywords by default
* doc/misc/auth.texi: Mention subdomain matching in
`auth-source-pass-extra-query-keywords' section.
* etc/NEWS: Mention the loss of traditional auth-source-pass features
when `auth-source-pass-extra-query-keywords' is enabled.
* lisp/auth-source-pass.el (auth-source-pass-extra-query-keywords): Set
default to nil. Mention domain matching in doc string.
(auth-source-pass--match-regexp): Allow username to contain "@".
* lisp/erc/erc-compat.el:
(erc-compat--29-auth-source-pass--retrieve-parsed): Adjust regexp.
* test/lisp/auth-source-pass-tests.el
(auth-source-pass-extra-query-keywords--suffixed-user): make plain
username more email-like.
(Bug#58985.)
2022-11-25 Mattias Engdegård <mattiase@acm.org>
Add sqlite library version string retrieval function (bug#58766)
* src/sqlite.c (sqlite3_libversion, load_dll_functions):
Make sqlite3_libversion available.
(Fsqlite_version): New.
(syms_of_sqlite): Define sqlite-version.
* doc/lispref/text.texi (Database): Document.
* test/src/sqlite-tests.el (sqlite-returning): `RETURNING` was added
in sqlite 3.35; skip the test for older versions.
2022-11-25 Theodor Thornhill <theo@thornhill.no>
Fix regex errors in csharp-mode
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax):
Repetition errors in regex.
(csharp-compilation-re-xbuild-warning): Make regex match regex for
xbuild-error.
2022-11-25 Alan Mackenzie <acm@muc.de>
CC Mode: Fix the "asymmetry rule" for fontifying a type followed by *
This fixes bug #59427. We now handle correctly the case when a parenthesis
follows the * which is ambiguously a multiplication or indirection operator.
Also, we don't recognise a type thus found as a found type - the evidence is
too weak.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Fix CASE 17.5 as
above.
2022-11-25 Stefan Kangas <stefankangas@gmail.com>
Remove unused parameter from image_create_pix_container
* src/image.c (image_create_pix_container): Remove unused
frame parameter. Update callers.
2022-11-25 Daanturo <daanturo@gmail.com>
Show package name in package-vc--unpack prompt
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Display the
package name when asking whether to overwrite its previous
checkout. (Bug#59548)
2022-11-24 Jim Porter <jporterbugs@gmail.com>
Don't explicitly delete client frames when killing Emacs anyway
This eliminates a useless error prompt when killing Emacs from a
client frame when there are no other frames (bug#58877).
* lisp/server.el (server-running-external): New error.
(server--file-name): New function...
(server-eval-at): ... use it.
(server-start): Factor out server stopping code into...
(server-stop): ... here.
(server-force-stop): Use 'server-stop', and tell it not to delete
frames.
* test/lisp/server-tests.el
(server-tests/server-force-stop/keeps-frames): New test.
2022-11-24 Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>
Make ibuffer directory filter buffer aware
* lisp/ibuf-ext.el (define-ibuffer-filter): Make ibuffer directory
filter buffer aware for buffer not visiting files. (Bug#59165)
2022-11-24 Ackerley Tng <ackerleytng@google.com>
Add support for window-local xref history
* lisp/progmodes/xref.el (xref-history-storage):
New user option (bug#59381).
(xref--make-xref-history): New function.
(xref--history): Use it.
(xref-global-history, xref-window-local-history): New function.
(xref--get-history): New function.
(xref--push-backward, xref--push-forward)
(xref-push-marker-stack, xref-go-back, xref-go-forward)
(xref-clear-marker-stack, xref-marker-stack-empty-p)
(xref-forward-history-empty-p): Use it.
2022-11-24 Stefan Kangas <stefankangas@gmail.com>
Bind Buffer-menu-view-other-window to "O"
* lisp/buff-menu.el (Buffer-menu-mode-map): Bind
'Buffer-menu-view-other-window' to "O".
(Buffer-menu-mode): Clean up docstring. (Bug#59280)
2022-11-24 Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>
Allow goto-address-at-point to use secondary browser
* lisp/net/goto-addr.el (goto-address-at-point): Call
`browse-url-button-open-url', so a prefix argument uses
`browse-url-secondary-browser-function'. (Bug#59443)
2022-11-24 Manuel Giraud <manuel@ledu-giraud.fr>
Fix easy menu separator in oldXMenu
* lisp/emacs-lisp/easymenu.el (easy-menu-convert-item-1): Replace a
string of dash with a menu separator as the doc says. (Bug#59370)
2022-11-24 Jostein Kjønigsen <jostein@kjonigsen.net>
Improve csharp-ts-mode fontification
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Add more pattern for definition feature.
2022-11-24 Yuan Fu <casouri@gmail.com>
Improve python-ts-mode fontification (bug#59534)
* lisp/progmodes/python.el (python--treesit-operators): Add operators.
(python--treesit-fontify-string): Fontify BOF docstrings.
2022-11-24 Paul Eggert <eggert@cs.ucla.edu>
Work around lsp-mode compatibility bug
* src/timefns.c (Ftime_subtract): Respect current-time-list when
args are eq (Bug#59506).
2022-11-24 Brian Leung <leungbk@posteo.net>
Add more tree-sitter modes to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add python-ts-mode
and bash-ts-mode. (Bug#59550)
2022-11-24 Philip Kaludercic <philipk@posteo.net>
* src/emacs.c (usage_message): Add missing --init-directory entry
2022-11-24 Brian Leung <leungbk@posteo.net>
Add tree-sitter-based modes to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add
tree-sitter-based major modes. (Bug#59229)
2022-11-24 Ulf Jasper <ulf.jasper@web.de>
icalendar: Adjust tests after fixing parsing of sexp entries (bug#56241)
* test/lisp/calendar/icalendar-tests.el
(icalendar-export-bug-56241-nested-sexps): New.
* test/lisp/calendar/icalendar-tests.el (icalendar-real-world):
Disable testcase for exporting sexp entries that has now become invalid.
2022-11-24 hokomo <hokomo@airmail.cc> (tiny change)
icalendar.el: Fix parsing of sexp entries (bug#56241)
* lisp/calendar/icalendar.el (icalendar--convert-sexp-to-ical): Use
read-from-string for parsing sexp entries (bug#56241).
2022-11-24 dannyfreeman <danny@dfreeman.email>
Eglot: don't confuse URLs and windows file paths
bug#59338
* lisp/progmodes/eglot.el (eglot--path-to-uri): Check for windows path
2022-11-24 João Távora <joaotavora@gmail.com>
Remove fboundp check in eglot--connect
project.el is a GNU ELPA :core package, so this kind of trick isn't
needed.
* lisp/progmodes/eglot.el (eglot--connect): Don't fboundp
project-name.
2022-11-24 Marcin Pajkowski <marcin.pajkowski@gmail.com> (tiny change)
Eglot: Advertise completion.resolveSupport capabilities
Some servers avoid reporting completion items that
require "additionalTextEdits" capability. Actually,
'eglot-completion-at-point' function supports such
feature so it can be advertised to LSP server.
* lisp/progmodes/eglot.el (eglot-client-capabilities): Advertise
resolveSupport. (bug#59465)
2022-11-24 Mattias Engdegård <mattiase@acm.org>
Add new SI prefixes
* lisp/calc/calc-units.el (math-unit-prefixes):
* lisp/files.el (file-size-human-readable):
Add ronna, quetta, ronto and quecto. (We get the future IEC binary
prefixes Ri and Qi (robi and quebi) in `file-size-human-readable` for
free.)
2022-11-24 Gregory Heytings <gregory@heytings.org>
Merge master into feature/improved-locked-narrowing.
2022-11-24 Po Lu <luangruo@yahoo.com>
Fix reentrancy problem/crash in xterm.c
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Be paranoid and block input inside the
protected section.
(x_focus_frame): Block input around critical section.
2022-11-24 Mike Kupfer <mkupfer@alum.berkeley.edu>
Fix trashing of symlink that points at a directory
* lisp/files.el (move-file-to-trash): Redefine is-directory so
that it is false for symlinks.
2022-11-24 Mike Kupfer <mkupfer@alum.berkeley.edu>
Fix cross-filesystem directory trashing (Bug#58721)
* lisp/files.el (move-file-to-trash): When trashing a directory with
the same name as something that's already in the trash, copy it into
the trash folder and then delete it, rather than using rename-file.
2022-11-24 Alan Mackenzie <acm@muc.de>
CC Mode: Make it scroll fast over buffers with only #define's
* lisp/progmodes/cc-engine.el (c-forward-over-token): New LIMIT parameter
* lisp/progmodes/cc-langs.el (c-anchored-hash-define-no-parens): Replace
ill-formed regular expression (which mixed \\sw and character alternative)
with simpler efficient regexp.
* lisp/progmodes/cc-mode.el (c-fl-decl-end): New forward limit LIM+ used in
c-forward-declarator and c-forward-over-token.
2022-11-24 Tassilo Horn <tsdh@gnu.org>
Fix face issues in show-paren context overlay (bug#59527)
* lisp/paren.el (show-paren--show-context-in-overlay): Use
show-paren-priority as overlay priority (fixes problem 2 of
bug#59527).
* lisp/simple.el (blink-paren-open-paren-line-string): Ensure the
context lines are font-locked before taking the
buffer-substring (fixes problem 1 of bug#59527).
2022-11-24 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in treesit.c when editing non-ASCII
* src/treesit.c (make_treesit_parser): Use byte positions when
initializing 'lisp_parser'. This avoids assertion violations when
the buffer has non-ASCII characters.
2022-11-24 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Improve LDAP and BBDB tests
* test/lisp/net/eudc-tests.el (eudcb-ldap): Make slapd detection
reliable.
* test/lisp/net/eudc-resources/bbdb: Add another test contact.
2022-11-23 Yuan Fu <casouri@gmail.com>
Add an error fontification heuristic to c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use new
function.
(c-ts-fontify-error): New function.
2022-11-23 Yuan Fu <casouri@gmail.com>
Don't always filter out captured tree-sitter nodes outside of region
* lisp/treesit.el (treesit-font-lock-fontify-region): If the capture
name is a function, don't filter.
2022-11-23 Dmitry Gutov <dgutov@yandex.ru>
project-switch-project: Use a different fix for bug#58784
* lisp/progmodes/project.el (project-current-inhibit-prompt):
Rename to 'project-current-directory-override', and make it a
string value.
(project-current): Refer to it.
(project-switch-project): Bind it. Drop the temp buffer (bug#58784).
2022-11-23 F. Jason Park <jp@neverwas.me>
Add test scenarios for local ERC modules
* test/lisp/erc/erc-scenarios-base-local-modules.el: New file.
* test/lisp/erc/resources/base/local-modules/first.eld: New file.
* test/lisp/erc/resources/base/local-modules/fourth.eld: New file
* test/lisp/erc/resources/base/local-modules/second.eld: New file.
* test/lisp/erc/resources/base/local-modules/third.eld: New file.
(Bug#57955.)
2022-11-23 F. Jason Park <jp@neverwas.me>
Accept functions in place of passwords in ERC
* lisp/erc/erc-backend.el (erc-session-password): Add comment
explaining type is now string, nil, or function.
* lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search):
Use obfuscation from auth-source function when available.
* lisp/erc/erc-sasl.el (erc-sasl--read-password,
erc-server-AUTHENTICATE): Use `erc--unfun'.
* lisp/erc/erc-services.el (erc-nickserv-get-password,
erc-nickserv-send-identify): Use `erc--unfun'.
* lisp/erc/erc.el (erc--unfun): New function for unwrapping a
password couched in a getter.
(erc--debug-irc-protocol-mask-secrets): Add variable to indicate
whether to mask passwords in debug logs.
(erc--mask-secrets): New function to swap masked secret with question
marks in debug logs.
(erc-log-irc-protocol): Conditionally mask secrets when
`erc--debug-irc-protocol-mask-secrets' is non-nil.
(erc--auth-source-search): Don't unwrap secret from function before
returning.
(erc-server-join-channel, erc-login): Use `erc--unfun'.
* test/lisp/erc/erc-services-tests.el
(erc-services-tests--wrap-search): Add helper for `erc--unfun'.
(erc-services-tests--auth-source-standard,
erc-services-tests--auth-source-announced,
erc-services-tests--auth-source-overrides, erc-nickserv-get-password):
Use `erc--unfun'.
* test/lisp/erc/erc-tests.el (erc--debug-irc-protocol-mask-secrets):
Add test for masking secrets with `erc--unfun' and friends.
2022-11-23 F. Jason Park <jp@neverwas.me>
Add non-IRCv3 SASL module to ERC
* doc/misc/erc.texi: Add SASL section in Advanced Usage chapter to
document the new SASL module.
* etc/ERC-NEWS: Mention addition of erc-sasl module for SASL support.
* lisp/erc/erc-compat.el
(erc-compat--29-sasl-scram-construct-gs2-header,
erc-compat--29-sasl-scram-client-first-message,
erc-compat--29-sasl-scram--client-final-message): Fix encoding bug and
add minimal authorization support with copies of SASL functions
introduced in Emacs 29.
* lisp/erc/erc.el (erc-modules): Add `sasl'.
* lisp/erc/erc-sasl.el: New file (bug#29108).
* test/lisp/erc/erc-sasl-tests.el: New file.
* test/lisp/erc/erc-scenarios-sasl.el: New file.
* test/lisp/erc/resources/sasl/plain-failed.eld: New file.
* test/lisp/erc/resources/sasl/plain.eld: New file.
* test/lisp/erc/resources/sasl/scram-sha-1.eld: New file.
* test/lisp/erc/resources/sasl/scram-sha-256.eld: New file.
* test/lisp/erc/resources/sasl/external.eld: New file.
2022-11-23 F. Jason Park <jp@neverwas.me>
Call erc-login indirectly via new generic wrapper
* lisp/erc/erc-backend.el (erc--register-connection): Add new internal
generic function that defers to `erc-login' by default.
(erc-process-sentinel, erc-server-connect): Call
`erc--register-connection' instead of `erc-login'.
2022-11-23 F. Jason Park <jp@neverwas.me>
Support local ERC modules in erc-mode buffers
* doc/misc/erc.texi: Mention local modules in Modules chapter.
* etc/ERC-NEWS: Mention changes to `erc-update-modules'.
* lisp/erc/erc.el (erc-migrate-modules): Add some missing mappings.
(erc-modules): When a user removes a module, disable it and kill its
local variable in all ERC buffers.
(erc-update-modules): Move body of `erc-update-modules' to new
internal function.
(erc--update-modules): Add new function, a renamed and slightly
modified version of `erc-update-modules'. Specifically, change return
value from nil to a list of minor-mode commands for local modules.
Use `custom-variable-p' to detect flavor.
(erc--merge-local-modes): Add helper for finding local modules
already active as minor modes in an ERC buffer.
(erc-open): Replace `erc-update-modules' with `erc--update-modules'.
Defer enabling of local modules via `erc--update-modules' until after
buffer is initialized with other local vars. Also defer major-mode
hooks so they can detect things like whether the buffer is a server or
target buffer. Also ensure local module setup code can detect when
`erc-open' was called with a non-nil `erc--server-reconnecting'.
* lisp/erc/erc-common.el (erc--module-name-migrations,
erc--features-to-modules, erc--modules-to-features): Add alists of
old-to-new module names to support module-name migrations.
(erc--assemble-toggle): Add new helper for constructing mode toggles,
like `erc-sasl-enable'.
(define-erc-modules): Defer to `erc--assemble-toggle' to create toggle
commands.
(erc--normalize-module-symbol): Add helper for `erc-migrate-modules'.
* lisp/erc/erc-goodies.el: Require cl-lib.
* test/lisp/erc/erc-tests.el (erc-migrate-modules,
erc--update-modules): Add rudimentary unit tests asserting correct
module-name mappings.
(erc--merge-local-modes): Add test for helper.
(define-erc-module--global, define-erc-module--local): Add tests
asserting module-creation macro. (Bug#57955.)
2022-11-23 F. Jason Park <jp@neverwas.me>
Make erc--server-reconnecting non-buffer-local
* lisp/erc/erc-backend.el (erc--server-reconnecting): Mention expected
non-nil value type in doc string.
(erc-server-connect): Don't set `erc--server-reconnecting'.
(erc-server--reconnect): Let-bind `erc--server-reconnecting' instead
of setting it locally in the server buffer. Set it to an alist
containing the current buffer's local variables.
(erc-process-sentinel-2): Don't set `erc--server-reconnect'.
* lisp/erc/erc.el (erc--cmd-reconnect): Clean up some assertions.
(Bug#57955.)
2022-11-23 F. Jason Park <jp@neverwas.me>
Don't set erc-networks--id until network is known
* lisp/erc/erc-networks.el (erc-networks--id-given): Accept a null
argument.
(erc-networks--id-on-connect): Remove unused function.
(erc-networks--id-equal-p): Add method for comparing initialized and
unset IDs.
(erc-networks--update-server-identity): Ensure `erc-networks--id' is
set before continuing search.
(erc-networks--init-identity): Don't assume `erc-networks--id' is
non-nil. Add branch condition to reload ID on non-nil case.
(erc-networks-on-MOTD-end): Let init-ID function handle renaming of
server buffer.
* lisp/erc/erc.el (erc-open): For continued sessions, try copying over
the last network ID.
(erc--auth-source-determine-params-default): Don't expect a network ID
to have been initialized.
(erc-set-current-nick): When connected, reload network ID. Leave
comment warning that it may be unneeded.
* lisp/erc/erc-backend.el (erc-server-NICK, erc-server-433): Unless
already connected, schedule ID reload when server rejects or mandates
a nick change.
* test/lisp/erc/erc-scenarios-base-association-nick.el
(erc-scenarios-base-association-nick-bumped,
erc-scenarios-base-association-nick-bumped-mandated-renick): Update to
reflect more liberal association behavior when renamed by IRCd.
2022-11-23 F. Jason Park <jp@neverwas.me>
Add GS2 authorization to sasl-scram-rfc
* lisp/net/sasl-scram-rfc.el (sasl-scram-gs2-header-function,
sasl-scram-construct-gs2-header): Add new variable and default
function for determining a SCRAM GSS-API message header. This is
mainly intended for other libraries rather than end users.
(sasl-scram-client-first-message): Use gs2-header function.
(sasl-scram--client-final-message): Use dedicated gs2-header function.
Also remove whitespace when base64-encoding, as per RFC 5802.
(Bug#57956.)
2022-11-23 Theodor Thornhill <theo@thornhill.no>
Add csharp-mode and csharp-ts-mode
* etc/NEWS: Mention new modes.
* lisp/progmodes/csharp-mode.el (csharp-mode, csharp-ts-mode): New
major modes.
2022-11-23 Yuan Fu <casouri@gmail.com>
Don't skip nested defuns in python-ts-mode defun navigation
This fixes bug#59495.
Before this change, python tries to skip nested function
definition. Now we don't skip any nested defun.
* lisp/progmodes/python.el (python-treesit-beginning-of-defun)
(python-treesit-end-of-defun): Remove functions.
* lisp/progmodes/python.el (python-ts-mode): Use tree-sitter's default
navigation function.
2022-11-23 Yuan Fu <casouri@gmail.com>
More flexible tree-sitter defun navigation
Before this change, treesit-beginning-of-defun skips nested defuns.
Now user can decide whether to skip nested defuns.
* lisp/treesit.el (treesit-search-forward-goto): Improve docstring.
(treesit-defun-prefer-top-level): New variable.
(treesit--defun-maybe-top-level): New function.
(treesit-beginning-of-defun)
(treesit-end-of-defun): Use treesit--defun-maybe-top-level.
2022-11-23 Ulf Jasper <ulf.jasper@web.de>
icalendar.el: Add test(s) for bug#56241
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--get-error-string-for-export): new.
* icalendar-tests.el (icalendar-export-bug-56241-dotted-pair): new
2022-11-23 Juri Linkov <juri@linkov.net>
New commands previous-line-completion and next-line-completion (bug#59486)
* lisp/simple.el (completion-list-mode-map): Bind [up] to
'previous-line-completion', and [down] to 'next-line-completion'.
(completion-auto-wrap): Mention `next-line-completion' and
`previous-line-completion' in the docstring.
(previous-line-completion, next-line-completion): New commands.
2022-11-23 Philip Kaludercic <philipk@posteo.net>
Don't break when loading VC packages on older Emacs versions
* lisp/emacs-lisp/package-vc.el
(package-vc--generate-description-file): Append a :kind property
instead of modifying the version number.
* lisp/emacs-lisp/package.el (package-desc): Remove special handling
for "vc annotated" versions. (bug#59404)
2022-11-23 Juri Linkov <juri@linkov.net>
* lisp/help.el (describe-bindings): Use the outline-default-rules feature.
Set buffer-local outline-default-state to 1, and outline-default-rules
to match "Key translations", instead of searching and hiding this section
explicitly.
2022-11-23 lu4nx <lx@shellcodes.org> (tiny change)
Support Racket programs in 'etags'
* lib-src/ctags.c (Scheme_suffixes): Add the Racket language
extension ".rkt".
2022-11-23 Dmitry Gutov <dgutov@yandex.ru>
xref--search-property: Jump over entries hidden by outline-minor-mode
* lisp/progmodes/xref.el (xref--search-property):
Jump over entries hidden by e.g. outline-minor-mode (bug#49731).
2022-11-23 Eli Zaretskii <eliz@gnu.org>
Avoid signaling args-out-of-range in mouse.el
* lisp/mouse.el (mouse-posn-property): Avoid
signaling args-out-of-range errors when mode-line format uses
min-width 'display' property. (Bug#59452)
2022-11-23 Eli Zaretskii <eliz@gnu.org>
Improve documentation of locale-specific string comparison
* doc/lispref/strings.texi (Text Comparison):
* src/fns.c (Fstring_collate_equalp): Improve documentation of
'string-collate-equalp' and 'string-collate-lessp'. (Bug#59275)
2022-11-23 Eli Zaretskii <eliz@gnu.org>
Fix error signaled by mouse-highlight on mode line
* src/xdisp.c (note_mode_line_or_margin_highlight): Avoid
signaling args-out-of-range errors when mode-line format uses
min-width 'display' property. (Bug#59452)
2022-11-23 Po Lu <luangruo@yahoo.com>
Improve last change to xterm.c
* src/xfns.c (Fx_display_last_user_time): Reject overly large
timestamps.
* src/xterm.c (x_display_set_last_user_time, handle_one_xevent):
New functions.
2022-11-23 Michael Albinus <michael.albinus@gmx.de>
Restore tramp-achive's Emacs 26 compatibility
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp):
Special handling of Emacs 26. Simplify the other part.
* test/lisp/net/tramp-tests.el (tramp-test48-unload): Special case
of `tramp-register-archive-file-name-handler'.
2022-11-23 Juri Linkov <juri@linkov.net>
* lisp/outline.el: 'S-<down-mouse-1>' on buffer buttons cycles all outlines.
(outline--create-button-icons, outline--insert-button): Bind 'S-<mouse-1>' to
'outline-cycle-buffer' as it's already done for buttons on the margins.
Ignore 'S-<down-mouse-1>'. Don't hard-code 'help-echo' since it should be
customizable by the ':help-echo' keyword in 'define-icon'.
2022-11-23 Juri Linkov <juri@linkov.net>
* lisp/progmodes/xref.el: Support outline-minor-mode (bug#49731)
(xref--xref-buffer-mode): Set buffer-local variables outline-minor-mode-cycle,
outline-minor-mode-use-buttons, outline-search-function, outline-level
as settings for enabling outline-minor-mode in xref output buffers where
outline headings are xref groups, and their lines can be hidden by
outline commands.
2022-11-22 Yuan Fu <casouri@gmail.com>
Tweak python-ts-mode fontification (bug#59470)
* lisp/progmodes/python.el (python--treesit-settings): Only fontify
the @ and the identifier of a decorator, not the argument list (if
there is any).
2022-11-22 Randy Taylor <dev@rjt.dev>
Utilize new font-lock faces for more tree-sitter modes (Bug#59397)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
Use font-lock-number-face.
(java-ts-mode): Alphabetize features.
* lisp/progmodes/js.el (js--treesit-operators): Define operators.
(js--treesit-font-lock-settings): Use bracket, delimiter,
escape-sequence, property, number, and operator font-lock faces.
(js-ts-mode): Add them to the feature list and alphabetize.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
Use bracket, delimiter, escape-sequence, and number faces. Remove
unused features.
(json-ts-mode): Add them to the feature list and alphabetize.
* lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Use
bracket, delimiter, number, misc-punctuation, and operator font-lock
faces.
(sh-mode--treesit-operators): Remove ; and ;; from list.
(bash-ts-mode): Add them to the feature list and alphabetize.
* lisp/progmodes/ts-mode.el (ts-mode--operators): Define operators.
(ts-mode--font-lock-settings): Use escape-sequence, number, and
operator font-lock faces.
(ts-mode): Add them to the feature list and alphabetize.
2022-11-22 Dmitry Gutov <dgutov@yandex.ru>
Add a way to override project name for project-vc backend
* lisp/progmodes/project.el (project-vc-name): New user option.
(project-name): Override for VC project backend (bug#48747).
2022-11-22 Yuan Fu <casouri@gmail.com>
Fix treesit-update-ranges
* lisp/treesit.el (treesit--clip-ranges): New function.
(treesit-update-ranges): Now clips the range within (point-min)
and (point-max), so the new range we use are not out-of-range.
2022-11-22 Stephen Leake <stephen_leake@stephe-leake.org>
* lisp/progmodes/eglot.el (eglot--connect): Use project-name
As discussed in bug#48747.
2022-11-22 Stephen Leake <stephen_leake@stephe-leake.org>
* lisp/progmodes/project.el (project-name): New
2022-11-22 Eli Zaretskii <eliz@gnu.org>
Fix 'treesit-max-buffer-size' and its use
* lisp/treesit.el (treesit-max-buffer-size): Avoid overflow in
computing buffer-size limit. Account for 32-but systems built
"--with-wide-int". Extend doc string.
(treesit-ready-p): Compare the limit with the size of the buffer
in bytes, not in characters.
* src/treesit.c (treesit_check_buffer_size): Measure buffer size
in bytes.
2022-11-22 Robert Pluim <rpluim@gmail.com>
Add '\lll' for VERY MUCH LESS-THAN to TeX input method
* lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Add '\lll'
translation for U+22D8. (Bug#59476)
2022-11-22 Po Lu <luangruo@yahoo.com>
Adjust x_display_set_last_user_time for Xlib sign-extension
* src/xterm.c (x_display_set_last_user_time): Adjust for Xlib
sign extending fields in client messages to 64 bit long, which
then break x_display_set_last_user_time after 24 days, as Time
is unsigned long for historical reasons. (bug#59480)
2022-11-22 Ihor Radchenko <yantar92@posteo.net>
Improve the doc string of 'string-collate-lessp'
* src/fns.c (Fstring_collate_lessp): Clarify that
IGNORE-CASE argument might be ignored when the operating
system does not implement string collation for the
specified locale. (Bug#59275)
2022-11-22 Sam James <sam@gentoo.org>
Fix tree-sitter build using non-bash /bin/sh (bug#59460)
* configure.ac: Don't use '==' in comparisons.
2022-11-22 Po Lu <luangruo@yahoo.com>
Avoid potentially expensive XFlush and fix ordering
* src/xterm.c (x_raise_frame): Don't call XFlush without a
request being made.
(x_lower_frame): Fix ordering wrt to xwidget view lowering.
2022-11-22 Yuan Fu <casouri@gmail.com>
Separate tree-sitter and non-tree-sitter variant of sh-mode
Now there are three modes, sh-base-mode, sh-mode, bash-ts-mode.
The change I made: change sh-mode to sh-base-mode, remove docstring.
Below the new sh-base-mode, create a new definition for sh-mode, paste
the dostring, add setup for font-lock-defaults. Below sh-mode, add
bash-ts-mode.
* lisp/progmodes/sh-script.el (sh-mode): Moves all setup into
sh-base-mode, except for the setup for font-lock-defaults and the
docstring.
(sh-base-mode): New mode.
(bash-ts-mode): New mode.
2022-11-22 Yuan Fu <casouri@gmail.com>
Fix treesit_record_change in casify_region
This fixes bug#59455.
* src/casefiddle.c: Always record changes.
2022-11-22 Theodor Thornhill <theo@thornhill.no>
Tweak faces in Java and TypeScript
* lisp/progmodes/java-ts-mode.el (java-ts-mode--operators): Remove @
as an operator.
(java-ts-mode--font-lock-settings): Use constant-face for @ to match
rest of the annotation. Add bracket, delimiter and use some of the
new faces.
(java-ts-mode--imenu): Clean up the implementation a little.
(java-ts-mode): Refer to the new features.
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings, ts-mode):
Add in bracket and delimiter'.
2022-11-22 Yuan Fu <casouri@gmail.com>
treesit-font-lock-recompute-features now has two modes of operation
1. Set activation of each feature (changes every feature)
2. Add/remove features (only change those explicitly configured by
ADD-LIST and REMOVE-LIST)
This is useful for enabling/disabling certain features for all
modes (without resetting others) by calling this function in
prog-mode-hook
* lisp/treesit.el (treesit-font-lock-recompute-features): See above
description.
2022-11-22 Yuan Fu <casouri@gmail.com>
Tweak c-ts-mode fontification
New features: function and variable, which consistently fontify all
occurrences of functions and variables, respectively.
Remove expression feature, as its purpose is fulfilled by function,
variable, and property combined.
Fix declaration feature, remove unnecessary rule from label
feature.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): See
above description.
(c-ts-mode--fontify-variable): New function.
(c-ts-mode--base-mode): Add & remove features.
2022-11-22 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-max-buffer-size): Enlarge value.
2022-11-22 Stefan Kangas <stefankangas@gmail.com>
Don't refer to deleted variable 'gnus-parameter-to-list-alist'
* doc/misc/gnus.texi (Group Parameters):
* lisp/gnus/message.el (message-recipients-without-full-name):
Don't refer to deleted variable 'gnus-parameter-to-list-alist'.
2022-11-21 Stefan Kangas <stefankangas@gmail.com>
Refresh menus in gnus.texi
Fixes problem reported by Po Lu <luangruo@yahoo.com>.
* doc/misc/gnus.texi (Top, Starting Up, Article Treatment)
(The Gnus Diary Library, Searching, nnmairix): Refresh menus.
2022-11-21 Stefan Kangas <stefankangas@gmail.com>
Improve wording and markup in gnus-faq.texi
* doc/misc/gnus-faq.texi (FAQ 2-4): Improve wording and markup.
(FAQ 2-1, FAQ 2-4, FAQ 2-5, FAQ 3 - Getting Messages, FAQ 3-1)
(FAQ 3-2, FAQ 3-2, FAQ 3-4, FAQ 4-1, FAQ 4-2, FAQ 4-3, FAQ 4-4)
(FAQ 4-8, FAQ 4-9, FAQ 4-10, FAQ 4-12, FAQ 5-1, FAQ 5-2)
(FAQ 5-7, FAQ 6-1, FAQ 6-2, FAQ 6-2, FAQ 6-3, FAQ 6-4, FAQ 6-5)
(FAQ 7-2, FAQ 7-3, FAQ 7-3, FAQ 7-4, FAQ 8-1, FAQ 8-5, FAQ 9-1):
Improve markup and reflow some paragraphs.
2022-11-21 Yuan Fu <casouri@gmail.com>
Merge remote-tracking branch 'savannah/master' into feature/tree-sitter
2022-11-21 Yuan Fu <casouri@gmail.com>
Allow major modes to tweak tree-sitter fontification
treesit--font-lock-query-expand-range allows a major mode to fix
fontification problems temporarily before the parser can be fixed.
* lisp/treesit.el (treesit--font-lock-query-expand-range): New variable.
(treesit-font-lock-fontify-region): Use the new variable.
* lisp/textmodes/css-mode.el (css-ts-mode): Use the new variable.
2022-11-21 Yuan Fu <casouri@gmail.com>
Further tweak tree-sitter fontification heuristics
So it turns out the slowness observed in bug#59415 is not due to the
size, but the strangely tall tree. Adjust the heuristic to DTRT:
don't enable the heuristic by default or when buffer is large, enable
when query is abnormally slow. We could do some clever thing that
calibrates a base reading for the query time instead of using a
hard-coded value, but it doesn't seem necessary.
* lisp/treesit.el (treesit--font-lock-fast-mode): New variable.
(treesit-font-lock-fontify-region): Don't activate heuristic by
default (reasons in comments). Measure the query time and activate
the fast mode if query time is long.
2022-11-21 Michael Albinus <michael.albinus@gmx.de>
Activate direct asynchronous processes for Tramp container methods
* doc/misc/tramp.texi (Remote processes): Mention also
tramp-container.el.
* lisp/emacs-lisp/ert-x.el (ert-remote-temporary-file-directory):
Add `tramp-direct-async' to "mock" method.
* lisp/net/tramp-container.el
(tramp-methods) <docker, podman, kubernetes>: Add `tramp-direct-async'.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-handle-make-process): Handle `tramp-direct-async'.
* test/lisp/net/tramp-tests.el (tramp-methods) <mock>:
Add `tramp-direct-async'.
2022-11-21 Gregory Heytings <gregory@heytings.org>
Make sed invocation in Makefile POSIX-compliant
* Makefile.in: Add a semicolon before the closing brace, which is
required by POSIX. Fixes bug#59444.
2022-11-21 Stefan Kangas <stefankangas@gmail.com>
* lisp/forms.el (forms-mode): Prefer setq-local.
2022-11-21 Stefan Kangas <stefankangas@gmail.com>
Make instructions for updating ancient filesets obsolete
* lisp/filesets.el (filesets-update-pre010505): Make update
information for filesets older than 2001 obsolete. Note that this
dates back to before filesets.el was even added to Emacs.
2022-11-21 Yuan Fu <casouri@gmail.com>
Use constant face for labels in c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use
constant face for labels.
2022-11-21 Yuan Fu <casouri@gmail.com>
Add separate keymaps for js/python/css-ts-mode
* lisp/progmodes/js.el (js-ts-mode-map)
* lisp/progmodes/python.el (python-ts-mode-map)
* lisp/textmodes/css-mode.el (css-ts-mode-map): New keymap.
2022-11-21 Yuan Fu <casouri@gmail.com>
Tweak python-ts-mode fontification
* lisp/progmodes/python.el (python--treesit-fontify-string): Make the
matching condition for docstrings more specific.
2022-11-21 Yuan Fu <casouri@gmail.com>
Fix tree-sitter fontification heuristic
Previously applied heuristic 2 sometimes invalidates heuristic 1, add
a guard so it doesn't.
The new function is just for clearity of the code and has nothing to
do with the change itself.
* lisp/treesit.el (treesit--node-length): New function
(treesit-font-lock-fontify-region): Use the new function. Only do
heuristic 2 when the node is large.
2022-11-21 Stefan Kangas <stefankangas@gmail.com>
* lisp/woman.el (woman-mode-map): Prefer defvar-keymap.
2022-11-21 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-search-function): New variable (bug#53981).
(outline-font-lock-keywords, outline-font-lock-face)
(outline-minor-mode-highlight-buffer, outline-next-preface)
(outline-next-heading, outline-previous-heading)
(outline-back-to-heading, outline-on-heading-p, outline-demote)
(outline-map-region, outline-next-visible-heading)
(outline-hide-sublevels, outline-up-heading): Use outline-search-function
when it's non-nil as an alternative to searching outline-regexp.
(outline-search-level, outline-search-text-property): New functions.
* lisp/apropos.el (apropos-mode): Set outline-search-function
instead of unreliable outline-regexp.
(apropos-print): Add text property outline-level.
* lisp/emacs-lisp/shortdoc.el (shortdoc-display-group):
Add text property outline-level on text separate from final newlines.
(shortdoc-display-group): Add a narrow newline to not show
text properties of the final line when the outline is hidden.
(shortdoc--display-function): Add text property outline-level.
(shortdoc-mode): Set buffer-local outline-search-function and outline-level.
2022-11-21 Po Lu <luangruo@yahoo.com>
* src/treesit.c (treesit_load_language): Fix uninitialized uses.
2022-11-21 Po Lu <luangruo@yahoo.com>
Avoid usage of intern_c_string in treesit.c
* src/treesit.c (Ftreesit_pattern_expand): Use DEFSYM'd symbols
when the naming makes sense.
(syms_of_treesit): Add new defsyms QCanchor, QCequal, QCmatch.
2022-11-21 Po Lu <luangruo@yahoo.com>
Stylistic fixes to treesit.c
* src/treesit.c (treesit_make_ranges):
(Ftreesit_parser_set_included_ranges): Fix coding style.
2022-11-21 Po Lu <luangruo@yahoo.com>
Fix MS-DOS build
* msdos/sed1v2.inp: Edit out tree-sitter stuff.
2022-11-20 Yuan Fu <casouri@gmail.com>
Add another heuristic to speed up tree-sitter fontification
* lisp/treesit.el (treesit-font-lock-fontify-region): Use
treesit--children-covering-range to reduce the node size.
2022-11-20 Yuan Fu <casouri@gmail.com>
Limit recursion level for tree-sitter imenu functions
Generating imenu index doesn't require going down to the bottom of the
tree (defun's are usually top-level). Add limit so we don't go too
far down on very large buffers.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu)
* lisp/progmodes/js.el (js--treesit-imenu)
* lisp/progmodes/json-ts-mode.el (json-ts-mode--imenu)
* lisp/progmodes/python.el (python-imenu-treesit-create-index)
* lisp/textmodes/css-mode.el (css--treesit-imenu): Add limit to
treesit-induce-sparse-tree.
2022-11-20 Yuan Fu <casouri@gmail.com>
Improve tree-sitter fontification on large buffers
* lisp/treesit.el (treesit--children-covering-range)
(treesit--children-covering-range-recurse): New functions. They are
not currently used but could be useful in the future, so I left them
in place.
(treesit-font-lock-fontify-region):
* lisp/treesit.el (treesit-font-lock-fontify-region): Use the result
of treesit-node-on instead of the root node.
2022-11-20 Stephen Leake <stephen_leake@stephe-leake.org>
Delete eglot spinner; not useful
* lisp/progmodes/eglot.el (eglot-lsp-server): Delete slot spinner.
(eglot--mode-line-format): Don't include spinner in mode-line.
(eglot--signal-textDocument/didChange): Don't set spinner.
2022-11-20 Juanma Barranquero <lekktu@gmail.com>
Avoid native compiler setting user-init-file to warnings.el (bug#59358)
* src/lread.c (maybe_swap_for_eln): Use a delayed warning
instead of `display-warning' to avoid a recursive call to
Fload while loading the init file that sets `user-init-file'
to a bogus value.
2022-11-20 Juri Linkov <juri@linkov.net>
Rename 'elisp-eval-buffer' to 'elisp-eval-region-or-buffer' (bug#59350)
* lisp/progmodes/elisp-mode.el (elisp-eval-region-or-buffer):
Rename recently added command 'elisp-eval-buffer' to support active region.
(emacs-lisp-mode-map, lisp-interaction-mode-map): Rebind 'C-c C-e'
from elisp-eval-buffer to elisp-eval-region-or-buffer.
2022-11-20 Juri Linkov <juri@linkov.net>
Disable display-line-numbers-mode in string-pixel-width (bug#59311)
* lisp/emacs-lisp/subr-x.el (string-pixel-width):
Turn off display-line-numbers-mode when it's enabled.
2022-11-20 Michael Albinus <michael.albinus@gmx.de>
* doc/misc/Makefile.in (INFO_COMMON): Sort alphabetically.
2022-11-20 Michael Albinus <michael.albinus@gmx.de>
Rework tramp-archive autoloads
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp):
Use `tramp-compat-rx'. Protect `tramp-archive-suffixes' and
`tramp-archive-compression-suffixes'.
(tramp-archive-file-name-handler): Don't autoload.
(tramp-register-archive-autoload-file-name-handler): Rename from
`tramp-register-archive-file-name-handler'. Adapt callees.
2022-11-20 Po Lu <luangruo@yahoo.com>
Coalesce duplicate scroll valuator handling code
Also, write more commentary.
* src/xterm.c (xi_populate_scroll_valuator): New function.
Describe the meaning of each field in xi_scroll_valuator_t.
(xi_populate_device_from_info, xi_handle_new_classes): Factor
out duplicate code to that function.
2022-11-20 Laurence Warne <laurencewarne@gmail.com>
Cancel proced auto update timer if no proced buffers are open
* lisp/proced.el (proced-auto-update-timer): Cancel timer if no proced
buffers are open.
2022-11-20 Eli Zaretskii <eliz@gnu.org>
Advise against using too-high GC thresholds
* doc/lispref/internals.texi (Garbage Collection):
* src/alloc.c (syms_of_alloc) <gc-cons-threshold>
<gc-cons-percentage>: Advise against enlarging the GC thresholds
more than needed and for prolonged periods of time.
2022-11-20 Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>
Handle error in bookmark-relocate when filename is nil
* lisp/bookmark.el (bookmark-relocate): Handle error when
filename is nil. (Bug#59326)
2022-11-19 Yuan Fu <casouri@gmail.com>
Fix uses of treesit-ready-p
* lisp/progmodes/c-ts-mode.el (c-ts-mode)
(c++-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/json-ts-mode.el (json-ts-mode)
* lisp/progmodes/python.el (python-ts-mode)
* lisp/progmodes/sh-script.el (sh-mode)
* lisp/progmodes/ts-mode.el (ts-mode): Remove the MODE argument.
2022-11-19 Yuan Fu <casouri@gmail.com>
Remove treesit-settings
Remove it since we are using separate major modes for tree-sitter and
native variant now.
* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.
* lisp/treesit.el (treesit-settings): Remove option.
(treesit--setting-for-mode): Remove function.
(treesit-ready-p): Don't check for user preference in treesit-settings.
2022-11-19 Yuan Fu <casouri@gmail.com>
Remove tree-sitter setup from js-json-mode
* lisp/progmodes/js.el (js-json--treesit-font-lock-settings)
(js--json-treesit-indent-rules): Remove variables.
(js-json-mode): Remove tree-sitter setup.
2022-11-19 Yuan Fu <casouri@gmail.com>
Fix tree-sitter comment indentation for C-like languages
The goal is to indent like this:
/* comment
comment --> This line aligns with the beginning of the first line
*/ --> This line aligns with the opening comment token
* lisp/treesit.el (treesit-comment-start)
(treesit-comment-end): New variables.
(treesit-simple-indent-presets): New preset comment-end,
comment-start, comment-start-skip
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles)
(c-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules)
(java-ts-mode)
* lisp/progmodes/js.el (js--treesit-indent-rules)
(js-ts-mode)
* lisp/progmodes/ts-mode.el (ts-mode--indent-rules)
(ts-mode): Add identical indent rules to each mode, and set identical
treesit-comment-start/end's.
* doc/lispref/modes.texi (Parser-based Indentation)
* doc/lispref/parsing.texi (Tree-sitter major modes): Update manual.
2022-11-19 Yuan Fu <casouri@gmail.com>
Separate native and tree-sitter variant of js-mode
* lisp/progmodes/js.el (js-base-mode): New mode.
(js-mode): Return to before tree-sitter setup is added, change to
inherit from js-base-mode.
(js-ts-mode): New mode. Now it doesn't use any cc-mode feature,
meaning it looses comment filling.
2022-11-19 Yuan Fu <casouri@gmail.com>
Merge function/class-name features in python-mode
To keep consistency with other tree-sitter major modes.
* lisp/progmodes/python.el (python--treesit-settings)
(python-ts-mode): Merge function-name and class-name features into
definition.
2022-11-19 Yuan Fu <casouri@gmail.com>
Split python-mode into native and tree-sitter variant
* lisp/progmodes/python.el (python-base-mode): New virtual mode that
contains most of the setup.
(python-mode): Change to inherit from python-base-mode.
(python-ts-mode): New mode that sets up tree-sitter.
2022-11-19 Yuan Fu <casouri@gmail.com>
Expand css-ts-mode and merge it into css-mode
* lisp/progmodes/css-ts-mode.el: Deleted.
* lisp/textmodes/css-mode.el (css--treesit-indent-rules)
(css--treesit-settings): New variables.
(css--treesit-imenu-1)
(css--treesit-imenu): New functions.
* lisp/textmodes/css-mode.el (css-base-mode): New mode inherited by
both css-mode and css-ts-mode.
(css-ts-mode): New mode.
(css-mode): Inherit from css-base-mode, and move some setup to
css-base-mode.
2022-11-19 Yuan Fu <casouri@gmail.com>
Change tree-sitter indent preset 'match' to count on all nodes
I changed other presets to count all nodes a while ago, but forgot to
change 'match' too.
* lisp/treesit.el (treesit-simple-indent-presets): Change to count on
both named and anonymous nodes.
2022-11-19 Eli Zaretskii <eliz@gnu.org>
Fix encoding and display of messages sent by server to emacsclient
* lisp/server.el (server-start): Use 'locale-coding-system' to
encode messages sent back to the client.
* lib-src/emacsclient.c (main): Print '-error' messages via
'message', not directly via 'fprintf'. This shows the error on
MS-Windows when the client is invoked as 'emacsclientw', since
stderr goes to the bit bucket in that case.
2022-11-19 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Add BBDB test
* test/lisp/net/eudc-tests.el (eudcb-ldap): Call skip-unless with
slapd check.
(eudcb-bbdb): New test.
2022-11-19 Gregory Heytings <gregory@heytings.org>
Fix global face scaling bug due to rounding.
* lisp/face-remap.el (global-text-scale-adjust): Try again if the face
height should have changed but did not actually change. Update the
docstring to clarify the difference with 'text-scale-adjust'.
(global-text-scale-adjust--increment-factor): New internal variable.
Fixes bug#59122.
(text-scale-adjust): Update the docstring to clarify the difference
with 'global-text-scale-adjust'.
2022-11-19 Brent Westbrook <bwestbr2@go.olemiss.edu>
EUDC: Fix a void-variable error
* lisp/net/eudcb-mailabbrev.el (eudc-mailabbrev-query-internal):
Check if symbol is bound before taking its value. (Bug#59369)
2022-11-19 Philip Kaludercic <philipk@posteo.net>
* lisp/emacs-lisp/package.el (package-maintainers): Improve error handling
2022-11-19 Mattias Engdegård <mattiase@acm.org>
* Makefile.in: Escape literal asterisks in regexps
Discovered by Po Lu.
2022-11-19 Po Lu <luangruo@yahoo.com>
Fix error trapping in x_set_mouse_color
* src/xfns.c (x_set_mouse_color): Use
x_uncatch_errors_after_check right after x_had_errors_p. Then,
trap errors around FreeCursor requests, since some of the IDs
may not name valid cursors.
2022-11-19 Yuan Fu <casouri@gmail.com>
Use keyword-face for declaration commands in tree-sitter sh-mode
* lisp/progmodes/sh-script.el: Change builtin to keyword.
2022-11-19 Yuan Fu <casouri@gmail.com>
Fix python-mode tree-sitter fontification
Forgot to update python-mode's code when I added the tree-sitter
notifier facility. Now it doesn't need any special treatment anymore.
Leaving it as is causes some incorrect fontification.
* lisp/progmodes/python.el (python--treesit-fontify-string): Accept
the string node rather than the quote node.
(python--treesit-settings): Capture string node.
2022-11-19 Po Lu <luangruo@yahoo.com>
Fixes to fast mouse position reporting
* src/xterm.c (x_fast_mouse_position): New function. Factor out
most of the fast mouse position code here. Correctly port some
Haiku code to take into account multiple displays. Report
scroll bar coordinates correctly.
(XTmouse_position): Call it.
2022-11-19 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Add LDAP tests
* test/lisp/net/eudc-resources/slapd.conf: New file.
* test/lisp/net/eudc-resources/dc=gnu,dc=org.ldif: Likewise.
* test/lisp/net/eudc-resources/dc=gnu,dc=org: New files.
* test/lisp/net/eudc-tests.el (eudcb-ldap): New test.
2022-11-19 Po Lu <luangruo@yahoo.com>
Fix automatic DPI adjustment and add workarounds for some systems
* lisp/faces.el (x-create-frame-with-faces): New field
`delayed-font'. Set the `font-parameter' property to `font' in
the given parameter list after face-set-after-frame-default is
called.
* src/fontset.c (Fset_fontset_font): Avoid changing
`font-parameter' with the call to Fmodify_frame_parameters.
* src/frame.c (gui_set_frame_parameters_1): New function.
Factor out gui_set_frame_parameters here, and add an argument
DEFAULT_PARAMETER. If the `font' parameter is set, and
`default_parameter' is not, then set the `font-parameter' frame
parameter to the `font' parameter as well, to keep track of
which user-specified `font' frame parameter set the default
face's font on the frame.
(gui_set_frame_parameters): Call gui_set_frame_parameters_1 with
new arg set to false.
(gui_set_font): Remove broken implementation of
`font-parameter'.
(gui_default_parameter): If the default value was used, then
call gui_set_frame_parameters_1 with the new argument set to
false. This is because no font was specified as a frame
parameter by the user, so Freconsider_frame_fonts is free to do
anything it wants.
(Freconsider_frame_fonts): If `font-parameter' is set, then use
it.
(syms_of_frame): New defsym Qfont_parameter.
* src/frame.h: Update prototypes.
* src/haikuterm.c (haiku_default_font_parameter):
* src/pgtkfns.c (pgtk_default_font_parameter):
* src/w32fns.c (w32_default_font_parameter): Stop setting
`font-parameter' here. This code resulted in decades of
automatic font rescaling not working correctly.
* src/xfaces.c (set_font_frame_param): Clear the
`font-parameter' frame parameter.
(Finternal_merge_in_global_face):
* src/xfns.c (x_default_font_parameter): Avoid changing
`font-parameter' in response to changes to face attributes.
* src/xsettings.c (apply_xft_settings): Add workaround for
Cairo. (bug#59371, bug#59347, bug#59283, bug#59271, bug#59285,
bug#59306.)
2022-11-18 Po Lu <luangruo@yahoo.com>
Fix bug#59371
* src/frame.c (Freconsider_frame_fonts): If a font parameter was
set, create a params alist with it. Then, pass it to both
default_font_parameter and face-set-after-frame-default.
(bug#59371)
2022-11-18 Po Lu <luangruo@yahoo.com>
Fix earlier changes to keyboard.c
* src/keyboard.c (coords_in_menu_bar_window): New function.
(make_lispy_event): Do not process menu bar events on window
system frames if there is no menu bar window or the click lies
outside.
2022-11-18 Po Lu <luangruo@yahoo.com>
Fix build with ext menu bar
* src/keyboard.c (make_lispy_event): Don't access
menu_bar_window when !HAVE_EXT_MENU_BAR.
2022-11-18 Manuel Giraud <manuel@ledu-giraud.fr>
Fix click position to menu bar entry with no-toolkit
* src/keyboard.c (make_lispy_event): Use x_y_to_hpos_vpos to
compute correct menu bar position should the menu face change.
* src/xdisp.c (x_y_to_hpos_vpos): Not static anymore.
* src/dispextern.h: Export x_y_to_hpos_vpos.
2022-11-18 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Revert eudc-server-hotlist default change
* etc/NEWS: Remove eudc-server-hotlist default change.
* lisp/net/eudc-vars.el (eudc-server-hotlist): Set to nil.
(Bug#59314)
2022-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
itree: Make sure a deleted overlay has NULL pointer fields
* src/buffer.c (delete_all_overlays): Use POST_ORDER to set the node's
pointers to NULL, as god intended.
* src/itree.c (itree_insert_node): Uncomment the assertion accordingly.
2022-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/bytecomp.el (byte-compile-dynamic-variable-bind): Typo
2022-11-18 Robert Pluim <rpluim@gmail.com>
Improve 'defvar-keymap' docstring
* etc/NEWS: Improve ':repeat' entry for 'defvar-keymap'.
* lisp/keymap.el (defvar-keymap): Improve description of ':repeat'
keyword.
2022-11-18 Robert Pluim <rpluim@gmail.com>
Silence rmailsum byte compiler warnings
* lisp/mail/rmailsum.el (rmail-summary-by-thread): Prefix unused
lambda args with '_'.
2022-11-18 Robert Pluim <rpluim@gmail.com>
Use boolean values directly in rmailsum
* lisp/mail/rmailsum.el (rmail-summary-invert):
(rmail-summary-direct-descendants):
(rmail-summary--walk-thread-message-recursively):
(rmail-summary-by-thread):
(rmail-summary-by-labels):
(rmail-summary-by-recipients):
(rmail-summary-by-regexp):
(rmail-summary-by-topic):
(rmail-summary-by-senders): Use the boolean values in
'rmail-summary-currently-displayed-msgs' and similar directly instead
of comparing them to t and nil.
2022-11-18 Juanma Barranquero <lekktu@gmail.com>
Avoid `user-init-file' being set to an eln file (bug#59334)
* lisp/startup.el (startup--load-user-init-file): If possible,
point `user-init-file' to the source file if the init file was
native-compiled.
2022-11-18 Mattias Engdegård <mattiase@acm.org>
Fix simple-tests when run noninteractively
* test/lisp/simple-tests.el
(simple-execute-extended-command--describe-binding-msg):
Bind text-quoting-style explicitly to ensure consistent behaviour
whether or not the test is run interactively.
2022-11-18 Stefan Kangas <stefankangas@gmail.com>
Avoid raw control characters in grm-wy-boot.el
* lisp/cedet/semantic/grm-wy-boot.el
(semantic-grammar-wy--parse-table): Don't use raw control characters.
2022-11-18 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (describe-repeat-maps): More outlines and page separators.
2022-11-17 Po Lu <luangruo@yahoo.com>
Add knob to make `mouse-position' faster on X
* etc/PROBLEMS (Improving performance with slow X connections):
Add new advice.
* src/xterm.c (XTmouse_position): Add alternative
implementations for slow connections.
(syms_of_xterm): Add new variable to enable them.
* src/xterm.h (struct x_display_info): Update commentary.
2022-11-17 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Get rid of the old iterator code
Only use the new iterator which relies on a fixed size (and small)
state in the iterator.
This makes non-local exits safe within ITREE_FOREACH loops.
* src/itree.c (make_nav, nav_nodeptr, nav_flag, itree_stack_clear)
(itree_stack_push_flagged): Delete functions.
(nodeptr_and_flag): Delete type.
(struct itree_stack): Make the array hold plain pointers instead.
(itree_stack_push): Inline the former code of `itree_stack_push_flagged`.
(itree_stack_pop): Change return type.
(itree_contains): Don't call `ITREE_FOREACH_ABORT` any more.
(itree_insert_gap): Simplify access to the stack of nodes.
(itree_delete_gap, itree_insert_gap): Adjust code to new return type of
`itree_stack_pop`.
(itree_iterator_finish): Delete function.
(itree_iterator_start): Don't setup the `stack` field any more.
(itree_iterator_next): Delete function.
(itree_iter_next): Rename to `itree_iterator_next` and make it non-static.
(itree_iterator_narrow): Don't check the `running` flag any more.
* src/itree.h (itree_iterator_finish): Remove declaration.
(struct itree_iterator): Remove the `stack` and `running` fields.
(ITREE_FOREACH_ABORT): Delete macro.
(ITREE_FOREACH): Don't call `itree_iterator_finish` any more.
* src/xdisp.c (strings_with_newlines):
* src/buffer.c (overlays_in, next_overlay_change, overlay_touches_p):
Don't call `ITREE_FOREACH_ABORT` any more.
2022-11-17 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Make the iterator reentrant (bug#59183)
Get rid of the global iterator object and instead allocate
a separate iterator for every loop. This still uses the "duplicate
iterator" code, including the old iterator which needs a stack,
make ITREE_FOREACH a bit more expensive than we'd like.
* src/itree.h (init_itree, forget_itree, itree_iterator_busy_p):
Delete declarations.
(itree_iterator_start): Add iterator arg and remove `line` and `file` args.
(struct itree_iterator): Move from `itree.c`. Remove `line` and
`file` fields.
(ITREE_FOREACH): Stack allocate an iterator object and pass it to
`itree_iterator_start`.
* src/itree.c (struct itree_iterator): Move to itree.h.
(iter): Delete global variable.
(itree_iterator_create, init_itree, forget_itree, itree_iterator_busy_p):
Delete functions.
(itree_contains): Adjust assertion.
(itree_iterator_finish): Deallocate the iterator's stack.
(itree_iterator_start): Take the (uninitialized) iterator as argument.
Allocate a fresh new stack. Remove `file` and `line` arguments.
Don't check `running` any more since the iterator is not expected to be
initialized at all.
* src/eval.c (signal_or_quit):
* src/alloc.c (garbage_collect): Don't check `itree_iterator_busy_p`
any more.
* src/emacs.c (main): No need to `init_itree` any more.
(Fdump_emacs): No need to `forget_itree` any more.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
* lisp/emacs-lisp/package-vc.el: Autoload package-vc-update{,-all}
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Ensure 'package-vc-prepare-patch' runs in the right directory
* lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Bind
'default-directory'.p
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Avoid duplicate source packages in 'package-alist'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Remove all
other source packages before installing the new package description.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix issues related to 'package-vc-install-from-checkout'
* lisp/emacs-lisp/package-vc.el (package-vc--main-file): Ensure the
package name is a string.
(package-vc--unpack-1): Use pkg-dir instead of the empty return value
of 'package-lisp-dir'.
(package-vc-install-from-checkout): Fix file name handling.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Allow the direct installation of package specifications
* lisp/emacs-lisp/package-vc.el (package-vc-install): Handle package
specifications as an argument.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Only fetch elpa-packages.eld when necessary
* lisp/emacs-lisp/package-vc.el: Remove hook from
'package-refresh-contents-hook'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Remove duplicate package descriptions after updating
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Ensure there
is always just one instance of a package description in 'package-alist'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Remove temporary .texi files if used to build documentation
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
Remember if a temporary file was generated and delete it afterwards.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix the behaviour of 'byte-compile-ignore-files'
* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Negate the
'string-match-p' check. (Bug#59139)
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Add missing elpa-package.eld to package test resources
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Avoid destructive manipulation of 'package-vc--archive-spec-alist'
* lisp/emacs-lisp/package-vc.el (package-vc--desc->spec): Replace
'mapcar' with 'apply'. This is done to avoid unintentional cycles.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Improve robustness of 'package-vc-update'
* lisp/emacs-lisp/package-vc.el (package-vc-update): Ensure that the
command is only invoked with installed packages. that the hook is
always removed and that 'vc-pull' is always called in the right
directory.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
* lisp/vc/vc.el (vc-default-last-change): Use 'vc-call'
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Have 'vc-prepare-patch' handle prefix arguments.
* lisp/emacs-lisp/package-vc.el (package-vc-prepare-patch): Use
'vc-prepare-patch-prompt-revisions'.
* lisp/vc/vc.el (vc-prepare-patch-prompt-revisions): Extract common
function and handle prefix arguments.
(vc-prepare-patch): Pull logic out to
'vc-prepare-patch-prompt-revisions'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Explain that 'package-vc-install' doesn't remove tarball packages
* lisp/emacs-lisp/package-vc.el (package-vc-install): Expand documentation.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Mention package name when package is lacking VC data
* lisp/emacs-lisp/package-vc.el (package-vc-install): Add package name.
(package-vc-checkout): Add package name.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Add new command 'package-vc-update-all'
* lisp/emacs-lisp/package-vc.el (package-vc-update-all): Add command
(package-vc-update): Add an assertion to verify this.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Raise 'wrong-type-argument' when installing package nil
* lisp/emacs-lisp/package-vc.el (package-vc-install): Check if the
package is nil.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Have 'package-vc-selected-packages' consider all installed packages
* lisp/emacs-lisp/package-vc.el
(package-vc-install-selected-packages): Consider more than just one
value in `package-alist', in case there are multiple installations.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix indefinite loading of asynchronous downloads
* lisp/emacs-lisp/package.el (package--download-one-archive): Only add
the archive that is actually being downloaded to
'package--downloads-in-progress'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix edebug spec for 'package--with-response-buffer'
* lisp/emacs-lisp/package.el (package--with-response-buffer): Add a
spec that makes the macro debuggable.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Improve robustness of documentation generation
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation): Log
output and display error messages if anything goes wrong.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Remove unused variable in 'package-vc--unpack'
* lisp/emacs-lisp/package-vc.el (package-vc--unpack): Remove 'url'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Move package spec documentation to 'package-vc-selected-packages'
* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Add
documentation.
(package-vc--archive-spec-alist): Remove documentation.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix type error in package-vc prompt function
* lisp/emacs-lisp/package-vc.el (package-vc--read-package-name): Pass
(not allow-url) as REQUIRE-MATCH, not as INITIAL-INPUT.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Rename 'package-vc-refresh' to 'package-vc-rebuild'
* doc/emacs/package.texi (Fetching Package Sources): Update documentation.
* lisp/emacs-lisp/package-vc.el (package-vc-refresh): Rename from.
(package-vc-rebuild): Rename to.
This intends to clarify the intention and avoid confusion with
'package-refresh-contents'. Thanks to Rudolf Adamkovič for the
suggestion.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Track 'default-directory' while updating source packages
* lisp/emacs-lisp/package-vc.el (package-vc-update): Add the source
directory to the identifier list, in case the remaining
'vc-do-command' arguments are all read-time constants.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Respect :lisp-dir in package specs by loading a sub-directory
* lisp/emacs-lisp/package-vc.el (package-vc-repository-store): Remove
obsolete variable.
(package-vc--unpack-1): Respect :lisp-dir.
(package-vc--unpack): Add :lisp-dir to the package description if
necessary.
* lisp/emacs-lisp/package.el (package--delete-directory): Check if a
directory is a symbolic link.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix generation of documentation for source packages
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
Call "makeinfo" before "install-info"
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Remove references to internal symbols from public docstrings
* lisp/emacs-lisp/package-vc.el (package-vc-repository-store):
Unmention 'package-vc--unpack'.
(package-vc-install): Unmention 'package-vc--guess-backend' in favour
of 'package-vc-heuristic-alist'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Expand 'package-vc--unpack-1' documentation
* lisp/emacs-lisp/package-vc.el (package-vc--unpack-1): Explain what
the function does.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Clarify 'package-vc--build-documentation' docstring
* lisp/emacs-lisp/package-vc.el (package-vc--build-documentation):
Rewrite the first line.
As suggested by Eli Zaretskii.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix the docstring for 'package-vc--version'
* lisp/emacs-lisp/package-vc.el (package-vc--version): Replace
docstring.
It seems like this was just copied over from 'package-vc-commit', for
no good reason.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Fix 'package-vc-selected-packages' documentation
* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages): Remove
reference to non-existent function and add an explanation that the
value won't override an existing source package installation.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Mark 'package-vc-update' as interactive
* lisp/emacs-lisp/package-vc.el (package-vc--sourced-packages-list):
Remove function in favour of 'package-vc--read-package-name'.
(package-vc--read-package-name):
Extract out common functionality.
(package-vc--read-package-desc): Add auxiliary function based on
'package-vc--read-package-name'.
(package-vc-update): Add interactive spec using
'package-vc--read-package-desc'.
(package-vc-install): Use 'package-vc--read-package-desc'.
(package-vc-checkout): Use 'package-vc--read-package-desc'.
(package-vc--read-pkg): Remove in favour of 'package-vc--read-package-desc'.
(package-vc-refresh): Use 'package-vc--read-package-desc'.
(package-vc-prepare-patch): Use 'package-vc--read-package-desc'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Autoload 'package-vc-install-selected-packages'
* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Add an
autoload cookie.
(package-vc-selected-packages): Set
:initialize to 'custom-initialize-default'.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Mark 'package-vc-install-selected-packages' as interactive
* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Add an
interactive spec.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Rename '-ensure-packages' to -install-selected-packages'
* doc/emacs/package.texi (Fetching Package Sources): Rename instances.
* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Rename
to 'package-vc-install-selected-packages'.
(package-vc-selected-packages): Call renamed function.
2022-11-17 Philip Kaludercic <philipk@posteo.net>
Handle strings as keys in 'package-vc-ensure-packages'
* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Inter
sting keys while processing 'package-vc-selected-packages'.
As requested by Rudolf Adamkovič.
2022-11-17 Stefan Kangas <stefankangas@gmail.com>
Avoid raw control characters in two files
* lisp/net/rcirc.el (rcirc-format, rcirc-unformat)
(rcirc-format-bold, rcirc-format-italic, rcirc-format-underline)
(rcirc-format-strike-trough, rcirc-format-fixed-width):
* test/lisp/subr-tests.el (test-keymap-parse-macros): Don't use
raw control characters.
2022-11-17 Randy Taylor <dev@rjt.dev>
Utilize new font-lock faces for C/C++ and Python tree-sitter use
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Use new
escape, number, property, operator, bracket, and delimiter font-lock
faces.
(c-ts-mode--base-mode): Add them to the feature list.
(c-ts-mode): Fix typo.
* lisp/progmodes/python.el (python--treesit-settings): Use new number,
property, operator, bracket, and delimiter font-lock faces.
(python-mode): Add them to the feature list.
2022-11-17 Yuan Fu <casouri@gmail.com>
Improvements to the tree-sitter setup in sh-script.el
* lisp/progmodes/sh-script.el (sh-mode--treesit-settings): Add defvar.
(sh-mode): Change feature names.
(sh-mode--treesit-fontify-decl-command): Remove function.
(sh-mode--treesit-declaration-commands): New variable.
(sh-mode--treesit-settings): Change feature names. Simplify
declaration-command feature.
2022-11-17 João P. L. de Carvalho <jaopaulolc@gmail.com>
Initial fontification in sh-mode with tree-sitter
* lisp/progmodes/sh-script.el (sh-mode): Add tree-sitter setup. Move
setup of font-lock-defaults into branch.
(sh-mode--treesit-operators)
(sh-mode--treesit-keywords)
(sh-mode--treesit-settings): New variables.
(sh-mode--treesit-other-keywords)
(sh-mode--treesit-fontify-decl-command): New functions.
2022-11-17 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (describe-repeat-maps): Use fill-region-as-paragraph.
2022-11-17 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/package-requires
GitHub-reference: https://github.com/jwiegley/use-package/issues/1024
2022-11-17 Robert Pluim <rpluim@gmail.com>
Use mapc instead of mapcar when walking rmail threads
* lisp/mail/rmailsum.el (rmail-summary--walk-thread-message-recursively):
Use `mapc' instead of `mapcar'; we don't care about the results.
2022-11-17 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Add new "stateless" iterator code and post-order traversal
This still uses the old iterator code, but runs the new code
alongside to make sure they behave identically.
* src/itree.c (struct itree_iterator): New field `node`.
(itree_iterator_create): Give it a sane default value.
(itree_iterator_busy_p, itree_iterator_start, itree_iterator_finish):
Move down to the "iterator" section of the file.
(itree_iter_next_in_subtree, itree_iterator_first_node)
(itree_iter_next): New functions.
(itree_iterator_start): Initialize the new `node` field.
(itree_iterator_next): Add post-order case.
Call the new "stateless" `itree_iter_next` function and check that it
agrees.
* src/itree.h (enum itree_order): New value for post-order traversals.
2022-11-17 Andrea Monaco <andrea.monaco@autistici.org>
New Rmail summary "by thread"
* lisp/mail/rmailsum.el (rmail-summary-subjects-hash-table)
(rmail-summary-message-parents-vector)
(rmail-summary-message-ids-hash-table): New variables.
(rmail-summary-fill-message-ids-hash-table)
(rmail-summary--split-header-field)
(rmail-summary-fill-message-parents-vector)
(rmail-summary-direct-descendants)
(rmail-summary--walk-thread-message-recursively)
(rmail-summary-by-thread): New functions.
* etc/NEWS: Announce the new Rmail features.
2022-11-17 Andrea Monaco <andrea.monaco@autistici.org>
Improve progressive summaries in Rmail
* lisp/mail/rmailsum.el (rmail-summary-progressively-narrow):
Renamed from 'rmail-summary-apply-filters-consecutively'. Doc
fix.
(rmail-summary-invert): Renamed from 'rmail-summary-negate'. Doc
fix.
(rmail-summary-currently-displayed-msgs): Doc fix.
(rmail-summary--exists-1): New function.
(rmail-summary-by-labels, rmail-summary-by-recipients)
(rmail-summary-by-regexp, rmail-summary-by-topic)
(rmail-summary-by-senders): Call 'rmail-summary-exists' to verify
that the summary is usable.
2022-11-17 Eli Zaretskii <eliz@gnu.org>
Fix documentation of recent treesit changes
* src/treesit.c (Ftreesit_parser_notifiers)
(Ftreesit_parser_add_notifier, Ftreesit_parser_remove_notifier):
Doc string fixes.
* doc/lispref/parsing.texi (Accessing Node Information): Fix
wording and punctuation.
(Using Parser): Improve indexing and wording.
2022-11-17 Stefan Kangas <stefankangas@gmail.com>
Add package keyword from finder-known-keywords
Fix Package-Requires for bind-{chord,key}.el
2022-11-17 Alan Mackenzie <acm@muc.de>
CC Mode: Make implicit int types following specifiers fontify correctly
This fixes bug #59267. It applies to C Mode only, and refers to constructs
like "register count;" which are implicitly of int type.
* lisp/progmodes/cc-engine.el (c-forward-type): Use the new regexp
c-maybe-typeless-specifier-re in place of c-opt-type-modifier-prefix-key. Add
an extra arm to the main cond form to handle the construct, and another to
handle "extern "C" foo_t my_foo;".
(c-forward-decl-or-cast-1): Adapt to handle the result no-id from
c-forward-type.
* lisp/progmodes/cc-langs.el (c-maybe-typeless-specifier-re): New lang
const/var.
2022-11-17 Jan Stranik <jan@stranik.org>
Support multi-line C++11 strings in Ebrowse
* lib-src/ebrowse.c (yylex): Support C++11 multi-line strings.
(bug#58847)
2022-11-17 Laurence Warne <laurencewarne@gmail.com>
Make VSIZE and RSS human-readable in Proced buffers
* lisp/proced.el (proced-format-memory): New function.
(proced-grammar-alist): Use proced-format-memory to format
VSIZE and RSS. (Bug#59272)
2022-11-17 Eli Zaretskii <eliz@gnu.org>
* lisp/progmodes/eglot.el (eglot-server-programs): Remove Intelephense.
2022-11-17 USAMI Kenta <zonuexe+tadsan@zonu.me>
Add Eglot alternatives for PHP language servers
* lisp/progmodes/eglot.el (eglot-server-programs): Add alternatives
for PHP.
2022-11-17 Olivier Certner <olce.emacs@certner.fr>
ediff: Merges with ancestor: Fix computation of hunks and proposed merge
Hunks were not computed correctly because the diff3 command was
invoked with arguments in an incorrect order. The correct order is
the local file first, the base (or "ancestor") second and the other
file third. This erroneous behavior had two consequences. First, the
output of diff3 would change, since it tries to merge chunks according
to maximal matches between the second and first files, and the second
and third files. Second, ediff, more precisely, `ediff-do-merge',
would consequently try to merge the reverse of the changes from the
base to the other file.
* lisp/vc/ediff-diff.el (ediff-setup-diff-regions3): In the arguments
to `ediff-exec-process', swap the other file with the ancestor (only
when merging with an ancestor).
(ediff-extract-diffs3): Match the hunk data for the ancestor and the
other file correctly. The local variable `three-way-comp' indicates
this is a merge with ancestors when it is nil.
(Bug#59182)
2022-11-17 Brian Leung <leungbk@posteo.net>
shell: Add repeat-map for shell-{forward,backward}-prompt
* lisp/shell.el (shell-repeat-map): New defvar. (Bug#59144)
2022-11-17 Brian Leung <leungbk@posteo.net>
esh-mode: Add repeat-map for eshell-{forward,backward}-argument
* lisp/eshell/esh-mode.el (eshell-command-repeat-map): New defvar.
(Bug#59144)
2022-11-17 Brian Leung <leungbk@posteo.net>
em-prompt: Add repeat-map for eshell-{next,previous}-prompt
* lisp/eshell/em-prompt.el (eshell-prompt-repeat-map): New keymap.
(Bug#59144)
2022-11-17 Brian Leung <leungbk@posteo.net>
comint: Add repeat-map for comint-{next,previous}-prompt
* lisp/comint.el (comint-repeat-map): New keymap. (Bug#59144)
2022-11-17 Eli Zaretskii <eliz@gnu.org>
Fix display of mode line when the right divider is used
* src/xdisp.c (init_iterator): For the mode-line, adjust
last_visible_x due to the right divider and the 'box' attribute,
if any, of the mode-line face.
(display_min_width): Update current_x after producing the stretch
glyph, to mimic PRODUCE_GLYPHS.
(display_mode_line): Widen the last glyph to account for adding
the right box line to it. (Bug#5930)
2022-11-17 Juanma Barranquero <lekktu@gmail.com>
* lisp/emacs-lisp/shortdoc.el (sequence): Don't use cl-lib (bug#59319)
2022-11-17 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
0636e1066b ; Don't unnecessarily use non-ASCII characters in Texinfo
# Conflicts:
# doc/emacs/custom.texi
2022-11-17 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in window.el
* lisp/window.el (other-window-repeat-map)
(resize-window-repeat-map): Prefer defvar-keymap.
2022-11-17 Juri Linkov <juri@linkov.net>
* lisp/keymap.el (defvar-keymap): Don't use pcase.
2022-11-17 Juri Linkov <juri@linkov.net>
* lisp/keymap.el (defvar-keymap): Add support for repeat-mode.
Put symbol properties 'repeat-map' on commands from the keymap
when a ':repeat' keyword is non-nil. Also include/exclude commands
according to ':repeat (:enter (commands ...) :exit (commands ...))'.
https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00968.html
2022-11-17 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (describe-repeat-maps): Improve the output.
Print the table of keybindings and a list of commands that
enter and exit repeat-map. Use default outline headings.
https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00969.html
2022-11-17 Po Lu <luangruo@yahoo.com>
Fix treatment of input focus on MPX setups
* src/xterm.c (x_ewmh_activate_frame): Use x_set_input_focus
instead of XSetInputFocus.
(x_set_input_focus): New function. Take into account the
``client pointer'' chosen by Emacs.
(x_focus_frame): Use x_set_input_focus instead of
XSetInputFocus.
2022-11-17 F. Jason Park <jp@neverwas.me>
Improve new connections in erc-handle-irc-url
* doc/misc/erc.texi: Add new Integrations section to the info manual
under Advanced Usage.
* etc/ERC-NEWS: Add new section mentioning improved UX when clicking
on irc:// links.
* lisp/erc/erc.el (erc-handle-irc-url): Add optional "scheme"
parameter. Fix `erc-open' invocation so that the server buffer is
named correctly by deferring to a new customizable opener. Arrange
for JOINing a channel in a manner similar to ERC's autojoin module.
(erc-url-connect-function): Add new option for creating a new ERC
connection based on info parsed from a URL.
(erc--url-default-connect-function): New function to serve as an
interactive-only fallback when a user hasn't specified a URL connect
function.
* lisp/erc/erc-compat.el (erc-compat--29-browse-url--irc): Add new
compatibility function for `browse-url-irc' and include it in
`browse-url-default-handlers' on Emacs versions below 29.
* test/lisp/erc/erc-tests.el (erc-tests--make-server-buf,
erc-tests--make-client-buf): Add helpers for creating dummy ERC
buffers.
(erc-handle-irc-url): Add test.
* test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-handle-irc-url):
Add new test.
* test/lisp/erc/resources/join/legacy/foonet.eld: Relax
timeout. (Bug#56514.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Add optional server param to erc-networks--determine
* lisp/erc/erc-networks.el (erc-networks--determine): Accept optional
`server' argument.
* test/lisp/erc/erc-networks-tests.el (erc-networks--determine): Add
test. (Bug#56514.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Default to TLS port when calling erc-tls from lisp
* lisp/erc/erc.el (erc-normalize-port): Add standard IANA port-name
mappings for 6667 and 6697.
(erc-open): Add note to doc string explaining that params `connect'
and `channel' are mutually exclusive.
(erc-tls): Call `erc-compute-port' with override.
(erc-compute-port): Call `erc-normalize-port' with result'.
* test/lisp/erc/erc-tests.el (erc-tls): Add simplistic test focusing
on default parameters. (Bug#56514.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Refactor erc-select-read-args
* lisp/erc/erc-backend.el (erc--server-connect-dumb-ipv6-regexp): Add
liberal pattern for matching bracketed IPv6 addresses.
(erc-server-connect): Remove brackets from IPv6 hosts before
connecting.
* lisp/erc/erc.el (erc--ensure-url): Add compat adapter to massage
partial URLs given as input that may be missing the scheme:// portion.
(erc-select-read-args): Keep bracketed IPv6 hosts
intact. Make this function fully URL-aware (was only partially so).
Accept optional `input' argument.
* lisp/erc/erc-tests.el (erc-tests--ipv6-examples,
erc--server-connect-dumb-ipv6-regexp, erc-select-read-args): Add test
reading user input during interactive invocations of entry points.
(Bug#56514.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Accommodate ircs:// URLs in url-irc and browse-url
* lisp/url/url-irc.el (url-irc-function): Change signature of function
interface to expect a final "scheme" argument, such as "ircs".
(url-irc): Call `url-irc-function' with new positional argument, the
scheme extracted via `url-type' from the input URL.
(url-irc-erc, url-irc-rcirc, url-irc-zenirc): Accept a URL scheme as a
sixth positional arg.
(url-ircs-default-port, url-ircs): Add new autoloaded constant and
alias for `url-scheme-get-property' to recognize. Do this to avoid
having to add another file.
* lisp/net/browse-url.el (browse-url-irc-function): Add new option.
(browse-url--irc): Add new function to call `browse-url-irc-function'.
(browse-url-default-handlers): Add "irc://" entry.
(browse-url-irc): Add new function to serve as general handler for
"irc://" URLS. Accept trailing variadic args to accommodate
non-browse-url interfaces as well.
* test/lisp/net/browse-url-tests.el
(browse-url-tests-select-handler-irc): Add test for "irc://" URL
pattern.
* etc/NEWS: Mention select browse-url and url-irc
changes. (Bug#56514.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Warn of future breaking change to erc-response.tags
* lisp/erc/erc-backend.el (erc-parse-tags-format): New option to
determine type of the `erc-response' "tags" field.
(erc-parse-tags): Defer to internal generic function.
(erc--parse-tags): New function to hold original `erc-parse-tags'
implementation.
(erc--parse-message-tags): New generic function that conditionally
calls `erc--parse-tags', perhaps emitting a warning beforehand.
(erc-parse-server-response): Call `erc--parse-message-tags'.
(Bug#58797.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Improve auto-reconnect visibility in ERC
* lisp/erc/erc-backend.el (erc--server-reconnect-timer): New variable.
(erc-server-reconnect-function): New user option.
(erc-process-sentinel-2): Display time remaining until next
reconnection attempt. Also remove condition case and move bulk of
else condition logic to `erc-schedule-reconnect'. More importantly,
no longer set `erc--server-reconnecting here').
(erc-server-connect): Initialize `erc--server-reconnect-timer' to nil.
(erc-server-reconnect): Set `erc-server--reconnecting' here.
(erc--mode-line-process-reconnecting): New constant to store value for
"reconnect" state of `mode-line-process'.
(erc--cancel-auto-reconnect-timer): New function to cancel
auto-reconnect timer and print message.
(erc-schedule-reconnect): New function for scheduling another
reconnect attempt.
* lisp/erc/erc.el (erc-open): Only update mode line for target
buffers. For server buffers, let `erc-login' and/or process sentinels
take care of it.
(erc--cmd-reconnect, erc-cmd-RECONNECT): Rename latter to former, a
new function, but repurpose existing to recognize newly allowed
additional arguments and act accordingly. In new internal function,
cancel an existing auto-reconnect timer, if any, before proceeding.
Defer to `erc-server-reconnect' to set `erc--server-reconnecting'.
Fix `with-suppressed-warnings' form.
(erc-update-mode-line-buffer): Show "reconnecting in Ns" for
`mode-line-process' when awaiting an automatic reconnect attempt.
(erc-message-english-reconnecting,
erc-message-english-reconnect-canceled): Add new message functions to
English catalog.
* lisp/erc/erc-pcomplete.el (pcomplete/erc-mode/RECONNECT): Perform
completion for newly subcommand-aware `erc-cmd-RECONNECT'.
* lisp/erc/erc-scenarios-base-reconnect.el
(erc-scenarios-base-cancel-reconnect): Add new test case for canceling
reconnect timers. (Bug#58840.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Support auth-source-pass in ERC
* doc/misc/erc.texi: Mention that the auth-source-pass backend is
supported.
* lisp/erc/erc-compat.el (erc-compat--29-auth-source-pass-search,
erc-compat--29-auth-source-pass--build-result-many,
erc-compat--29-auth-source-pass--retrieve-parsed,
erc-compat--29-auth-source-pass-backend-parse,
erc-compat--auth-source-backend-parser-functions): Adapt some yet
unreleased functions from auth-source-pass that mimic the netrc
backend, and add forward declarations to support them.
* lisp/erc/erc.el (erc--auth-source-search): Use own auth-source-pass
erc-compat backend.
* test/lisp/erc/erc-services-tests.el
(erc-join-tests--auth-source-pass-entries): Remove useless items.
(erc--auth-source-search--pass-standard,
erc--auth-source-search--pass-announced,
erc--auth-source-search--pass-overrides): Remove `ert-skip' guard.
(Bug#58985.)
2022-11-17 F. Jason Park <jp@neverwas.me>
Make auth-source-pass behave more like other backends
* lisp/auth-source-pass.el (auth-source-pass-extra-query-keywords): Add
new option to bring search behavior more in line with other backends.
(auth-source-pass-search): Add new keyword params `max' and `require'
and consider new option `auth-source-pass-extra-query-keywords' for
dispatch.
(auth-source-pass--match-regexp, auth-source-pass--retrieve-parsed,
auth-source-pass--match-parts): Add supporting variable and helpers.
(auth-source-pass--build-result-many,
auth-source-pass--find-match-many): Add "-many" variants for existing
workhorse functions.
* test/lisp/auth-source-pass-tests.el: Require `ert-x'.
(auth-source-pass-can-start-from-auth-source-search): Ensure
`auth-source-pass-extra-query-keywords' is enabled around test body.
(auth-source-pass-extra-query-keywords--wild-port-miss-netrc,
auth-source-pass-extra-query-keywords--wild-port-miss,
auth-source-pass-extra-query-keywords--wild-port-hit-netrc,
auth-source-pass-extra-query-keywords--wild-port-hit,
auth-source-pass-extra-query-keywords--wild-port-req-miss-netrc,
auth-source-pass-extra-query-keywords--wild-port-req-miss,
auth-source-pass-extra-query-keywords--netrc-akib,
auth-source-pass-extra-query-keywords--akib,
auth-source-pass-extra-query-keywords--netrc-host,
auth-source-pass-extra-query-keywords--host,
auth-source-pass-extra-query-keywords--baseline,
auth-source-pass-extra-query-keywords--port-type,
auth-source-pass-extra-query-keywords--hosts-first,
auth-source-pass-extra-query-keywords--ambiguous-user-host,
auth-source-pass-extra-query-keywords--suffixed-user,
auth-source-pass-extra-query-keywords--user-priorities): Add
juxtaposed netrc and extra-query-keywords pairs to demo optional
extra-compliant behavior.
* doc/misc/auth.texi: Add option
`auth-source-pass-extra-query-keywords' to auth-source-pass section.
* etc/NEWS: Mention `auth-source-pass-extra-query-keywords' in Emacs
29.1 package changes section. (Bug#58985.)
Special thanks to Akib Azmain Turja <akib@disroot.org> for helping
improve this patch.
2022-11-17 Jim Porter <jporterbugs@gmail.com>
Enable/disable 'server-mode' when starting/stopping the server
* lisp/server.el (server-mode-map): New keymap...
(server-mode): ... use it.
(server-start): Update the 'server-mode' variable (and sync to
'global-minor-modes') when starting/stopping the server.
* test/lisp/server-tests.el: New file (bug#58909).
2022-11-16 Karl Fogel <kfogel@red-bean.com>
Fix two typos in a doc string
2022-11-16 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Fix eudc-capf-message-expand-name nil result
* lisp/net/eudc-capf.el (eudc-capf-message-expand-name): Return
nil if EUDC query returns no results. (Bug#59314)
2022-11-16 Yuan Fu <casouri@gmail.com>
Fix treesit-search-forward not matching leaf nodes
* src/treesit.c: Match against NODE at start of the loop.
2022-11-16 Yuan Fu <casouri@gmail.com>
Tweaks on c-ts-mode fontification rules
Changes:
1. Remove some :override flags
2. Fontify "!" in font-lock-negation-char-face
3. Use some new faces like font-lock-escape-face and
font-lock-property-face
4. Move all type fontification into 'type' feature. Previously some
are in 'definition' feature.
5. Simplify definition feature, and fontify identifiers in definitions
recursively.
6. Change 'statement' feature to 'label'
7. New feature 'assignment'
8. Remove some rules from 'expression' feature
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): See
above.
(c-ts-mode--fontify-declarator): New function.
(c-ts-mode): Update feature-list.
2022-11-16 Yuan Fu <casouri@gmail.com>
Fix c-ts-mode-imenu
* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): If cannot find
its name, ignore the node.
(c-ts-mode--imenu): Don't include a category if it's empty.
2022-11-16 Yuan Fu <casouri@gmail.com>
Allow checking for outdated nodes in tree-sitter
Now you can run (treesit-node-check node 'outdated).
* doc/lispref/parsing.texi (Accessing Node Information): Update
manual.
* src/treesit.c (Ftreesit_node_check): Add new property 'outdated'.
* test/src/treesit-tests.el (treesit-node-check): Add tests.
2022-11-16 Yuan Fu <casouri@gmail.com>
Add treesit-explore-mode
This mode is basically the tree-sitter playground[1] in Emacs:
displays the syntax tree with the source side-by-side, kept in sync in
real-time.
[1] https://tree-sitter.github.io/tree-sitter/playground
* doc/lispref/parsing.texi (Language Definitions): Mention in manual.
* lisp/treesit.el (treesit--explorer-buffer)
(treesit--explorer-source-buffer)
(treesit--explorer-language)
(treesit--explorer-refresh-timer)
(treesit--explorer-highlight-overlay)
(treesit--explorer-last-node): New variables.
* lisp/treesit.el (treesit--explorer--nodes-to-highlight)
(treesit--explorer-refresh)
(treesit--explorer-post-command)
(treesit--explorer-jump)
(treesit--explorer-highlight-node)
(treesit--explorer-draw-node): New functions.
(treesit--explorer-tree-mode)
(treesit-explore-mode): New modes.
2022-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
* src/itree.c: Use more uniform names starting with `itree_`
(struct itree_stack, itree_stack_create, itree_stack_destroy)
(itree_stack_clear, itree_stack_push_flagged, interval_stack_push)
(itree_stack_pop): Rename from `interval_stack*`.
(itree_max_height, itree_update_limit, itree_inherit_offset)
(itree_propagate_limit, itree_validate, itree_init)
(itree_rotate_left, itree_rotate_right, itree_insert_fix)
(itree_contains, itree_subtree_min, itree_remove_fix)
(itree_replace_child, itree_transplant): Rename from `interval_tree_*`.
(itree_insert_node): Rename from `interval_tree_insert`.
(itree_node_intersects): Rename from `interval_node_insert`.
2022-11-16 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/dir-locals
GitHub-reference: https://github.com/jwiegley/use-package/issues/1023
2022-11-16 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/fix-headers
GitHub-reference: https://github.com/jwiegley/use-package/issues/1022
2022-11-16 Stephen Leake <stephen_leake@stephe-leake.org>
Call xref--analyze with correct project
* lisp/progmodes/xref.el (xref-show-definitions-buffer-at-bottom):
Call xref--analyze with correct project.
2022-11-16 Stefan Kangas <stefankangas@gmail.com>
Add .dir-locals.el
2022-11-16 Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>
Add flat-button to docstring of 'set-face-attribute'
* lisp/faces.el (set-face-attribute): Add 'flat-button' to
COLOR and STYLE sections of docstring. (Bug#59266)
2022-11-16 Eli Zaretskii <eliz@gnu.org>
Reduce buffer-tests noisiness even more
* test/src/buffer-tests.el (test-kill-buffer-auto-save-default)
(test-kill-buffer-auto-save-delete-yes)
(test-kill-buffer-auto-save-delete-no)
(test-buffer-modifications, test-restore-buffer-modified-p): Shut
up auto-save messages. (Bug#59028)
2022-11-16 Matt Armstrong <matt@rfc20.org>
Reduce buffer-tests noisiness when run in batch mode.
* test/src/buffer-tests.el (overlay-modification-hooks): Remove noisy
`message' calls and use `ert-info' to log context of test
failures. (bug#59028)
(overlay-tests-start-recording-modification-hooks): ditto.
2022-11-16 Philip Kaludercic <philipk@posteo.net>
Set vc-prepare-patches-separately to nil in .dir-locals.el
* .dir-locals.el (c-mode): Set 'vc-prepare-patches-separately'.
See https://lists.gnu.org/archive/html/emacs-devel/2022-11/msg00973.html.
2022-11-16 Stefan Kangas <stefankangas@gmail.com>
Delete redundant headers
Normalize GPLv3 license statements
2022-11-16 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
56026242e4 Explain how to bind keys to non-ASCII sequences
7d592db0ab Document that 'transient-mark-mode' is off in batch mode
# Conflicts:
# doc/emacs/custom.texi
# doc/emacs/mark.texi
2022-11-15 Po Lu <luangruo@yahoo.com>
Fix calculation of tab bar lines during automatic height adjustment
* src/haikufns.c (haiku_change_tab_bar_height):
* src/nsfns.m (ns_change_tab_bar_height):
* src/pgtkfns.c (pgtk_change_tab_bar_height):
* src/w32fns.c (w32_change_tab_bar_height):
* src/xfns.c (x_change_tab_bar_height): Do not round tab bar
height up. (bug#59285, bug#59271)
2022-11-15 Po Lu <luangruo@yahoo.com>
Fix error trapping in x_focus_frame
* src/xterm.c (x_focus_frame): Improve commentary. Dno not trap
errors around x_get_server_time.
2022-11-15 John Wiegley <johnw@newartisans.com>
Merge pull request from jwiegley/revert-1019-johnw/multi-keymap
GitHub-reference: https://github.com/jwiegley/use-package/issues/1021
2022-11-15 John Wiegley <johnw@newartisans.com>
Revert "Allow multiple keymaps in :map argument"
2022-11-15 Juri Linkov <juri@linkov.net>
New command 'project-list-buffers' bound to 'C-x p C-b' (bug#59153)
* doc/emacs/maintaining.texi (Project Buffer Commands):
Add 'project-list-buffers'.
* lisp/buff-menu.el (Buffer-menu-filter-predicate): New defvar-local.
(list-buffers-noselect): Add new optional arg 'filter-predicate'.
Set 'Buffer-menu-filter-predicate' to 'filter-predicate'.
(list-buffers--refresh): Use 'Buffer-menu-filter-predicate'.
* lisp/progmodes/project.el (project-prefix-map): Bind "\C-b" to
'project-list-buffers'.
(project-list-buffers): New command.
2022-11-15 Yuan Fu <casouri@gmail.com>
Add emacs-devel-specific font-lock rules to c-ts-mode
This rule corrects the fontification for DEFUN macros.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
Additional font-lock rules.
(c-ts-mode--fontify-defun): New function.
2022-11-15 John Wiegley <johnw@newartisans.com>
Merge pull request from jwiegley/johnw/multi-keymap
GitHub-reference: https://github.com/jwiegley/use-package/issues/1019
2022-11-15 John Wiegley <johnw@newartisans.com>
Merge remote-tracking branch 'origin/master' into pr-830
2022-11-15 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/texinfo-wip
GitHub-reference: https://github.com/jwiegley/use-package/issues/1018
2022-11-15 John Wiegley <johnw@newartisans.com>
Merge branch 'master' into texinfo-wip
2022-11-15 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/gnu-elpa
GitHub-reference: https://github.com/jwiegley/use-package/issues/1017
2022-11-15 Eli Zaretskii <eliz@gnu.org>
Fix the MS-Windows build due to use of a new TS function
* src/treesit.c (ts_tree_get_changed_ranges) [WINDOWSNT]: Define,
load from the library, and call through a function pointer.
2022-11-15 Po Lu <luangruo@yahoo.com>
Fix last change again
* src/frame.c (Freconsider_frame_fonts): Apply value of default
face again. (bug#59283)
2022-11-15 Po Lu <luangruo@yahoo.com>
More fixes to last change
* lisp/dynamic-setting.el (font-setting-change-default-font):
Call `reconsider-frame-fonts'.
* src/frame.c (Freconsider_frame_fonts): New function.
(syms_of_frame): Add new function.
2022-11-15 Po Lu <luangruo@yahoo.com>
Fix recent Cairo xsettings changes
* lisp/dynamic-setting.el (font-setting-change-default-font):
Instead of setting the font frame parameter, just clear the font
and face cache and redraw the display. This will re-open all
fonts as well.
* src/ftcrfont.c (ftcrfont_get_default_font_options): New
function.
* src/ftfont.h: Export.
* src/xsettings.c (apply_xft_settings): Call that function to
obtain the default font settings on Cairo. (bug#58912,
bug#59283, bug#59271)
2022-11-15 Yuan Fu <casouri@gmail.com>
Make tree-sitter fontification automatically update
Now nodes that are affected and changed during re-parse will be
correctly refontified. Nodes can change even if it corresponding text
wasn't edited: additional text can complete the parse tree and resolve
error nodes, for example.
* lisp/progmodes/python.el (python-mode): Create Python parser before
calling treesit-major-mode-setup.
* lisp/treesit.el (treesit--font-lock-notifier): New function.
(treesit-major-mode-setup): Register fontifier with every existing
parser.
2022-11-15 Yuan Fu <casouri@gmail.com>
Remove the contextual hack in tree-sitter fontification
We now have a better facility that can replace the contextual
hack. The C part is in the previous commit, and the Lisp part work
will be in the next commit.
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
* lisp/progmodes/js.el (js--treesit-font-lock-settings)
* lisp/progmodes/python.el (python--treesit-settings)
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Stop marking
contextual nodes.
* lisp/treesit.el (treesit-font-lock-contextual-post-process): Remove
function.
(treesit-font-lock-fontify-region): Remove code processing contextual
nodes.
2022-11-15 Yuan Fu <casouri@gmail.com>
Allow tree-sitter to notify parse-tree changes
* src/treesit.c (treesit_call_after_change_functions): New function.
(treesit_ensure_parsed): Call treesit_call_after_change_functions
right after re-parse.
(make_treesit_parser): Initialize after_change_functions.
(Ftreesit_parser_notifiers)
(Ftreesit_parser_add_notifier)
(Ftreesit_parser_remove_notifier): New functions.
* src/treesit.h (Lisp_TS_Parser): New field after_change_functions.
2022-11-15 Stefan Kangas <stefankangas@gmail.com>
Fix makeinfo warnings
Resolves https://github.com/jwiegley/use-package/issues/962
2022-11-15 Yuan Fu <casouri@gmail.com>
Extract out treesit_make_ranges
* src/treesit.c (treesit_make_ranges): New function.
(Ftreesit_parser_included_ranges): Use treesit_make_ranges.
2022-11-15 Stefan Kangas <stefankangas@gmail.com>
Use two spaces to end sentences
Recommend GNU ELPA over MELPA
2022-11-15 Stefan Kangas <stefankangas@gmail.com>
Use substitute-command-keys for buffer-menu help
* lisp/buff-menu.el (buffer-menu--display-help): New function.
(buffer-menu, buffer-menu-other-window): Fontify key bindings
using substitute-command-keys.
(Buffer-menu-delete): Advertise key binding as 'd'.
(Buffer-menu-this-window): Advertise key binding as 'f'.
2022-11-15 Stefan Kangas <stefankangas@gmail.com>
manual: Regenerate texi file
2022-11-14 Stefan Kangas <stefankangas@gmail.com>
Add face to key bindings suggested by M-x
* lisp/simple.el (execute-extended-command--describe-binding-msg):
Use 'help-key-binding' face for keybinding.
2022-11-14 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/checkdoc
GitHub-reference: https://github.com/jwiegley/use-package/issues/1015
2022-11-14 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/ci
GitHub-reference: https://github.com/jwiegley/use-package/issues/1013
2022-11-14 Yuan Fu <casouri@gmail.com>
Don't highlight syntax error in c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode): Remove error
feature.
2022-11-14 Robert Pluim <rpluim@gmail.com>
Explain how to bind keys to non-ASCII sequences
* doc/emacs/custom.texi (Init Rebinding): Explain how to use `kbd'
when binding keys to non-ASCII sequences.
2022-11-14 Po Lu <luangruo@yahoo.com>
Make C-x 5 o work on GNOME Shell-like Wayland compositors
* src/pgtkterm.c (pgtk_free_frame_resources)
(fill_background_by_face)
(pgtk_draw_glyphless_glyph_string_foreground)
(pgtk_draw_window_cursor): Fix coding style.
(pgtk_focus_frame): Use gtk_window_present_with_time whenever
possible.
(key_press_event): Set the last user time.
(pgtk_display_info_for_display): New function.
(key_release_event, construct_mouse_click, button_event): Set
the last user time.
(scroll_event, pgtk_parse_color, syms_of_pgtkterm)
(pgtk_begin_cr_clip): Fix coding style.
* src/pgtkterm.h (struct pgtk_output): New field
`last_user_time'.
2022-11-14 Alan Mackenzie <acm@muc.de>
CC Mode: Prevent over-eager recognition of a variable as a found type
This fixes bug #59233. It occurred in the C source code fragment
open_replies = alloca (nproviders )
, where typing a * before the closing parenthesis caused nproviders to be
prematurely recognized as a type.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): CASE 18 - set
unsafe-maybe to t, when needed.
2022-11-14 Theodor Thornhill <theo@thornhill.no>
Fix some inconsistencies in *-ts-modes
(c-ts-mode--base-mode): Extract comment-* so that we can separate
between C and C++.
(c-ts-mode, c++-ts-mode): Set comment-* variables.
* lisp/progmodes/css-ts-mode.el (css-ts-mode): Add electric-indent.
* lisp/progmodes/java-ts-mode.el
(java-ts-mode--imenu): Add categories. Only display categories that
exist in the file.
(java-ts-mode): Add electric-indent.
* lisp/progmodes/json-ts-mode.el
(json-ts-mode): Add electric-indent.
* lisp/progmodes/ts-mode.el
(ts-mode--font-lock-settings): Whitespace cleanup.
(ts-mode): Add electric-indent.
2022-11-14 Yuan Fu <casouri@gmail.com>
Remove feature that checks whether tree-sitter node "has changes"
First of all, we signal error on using an outdated node, so if a node
has changes, calling treesit-node-check would only raise an error.
Besides, in order to properly answer whether a node has changed, we
would have to update the node as the buffer is edited, which we don't
do right now.
* doc/lispref/parsing.texi (Accessing Node Information): Remove
relevant manual text.
* src/treesit.c (Ftreesit_node_check): Remove docstring mentions,
remove the branch for "has-changes".
(syms_of_treesit): Remove has-changes.
2022-11-14 Po Lu <luangruo@yahoo.com>
Prevent crashes upon trying to focus a child frame on click
* src/xterm.c (handle_one_xevent): Do not try to activate
override-redirect frames. Explain why.
(x_focus_frame): Catch errors around XSetInputFocus.
2022-11-13 Stefan Kangas <stefankangas@gmail.com>
Various checkdoc fixes
2022-11-13 Dmitry Gutov <dgutov@yandex.ru>
Hardcode "-name" instead of using find-name-arg
* lisp/progmodes/project.el (project--files-in-directory):
Hardcode "-name" instead of using find-name-arg (bug#59023).
2022-11-13 John Wiegley <johnw@newartisans.com>
Merge pull request from bhankas/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/1011
2022-11-13 Stefan Kangas <stefankangas@gmail.com>
Fix building on Emacs 24.3
This fixes the following error:
use-package-core.el:60:32:Error: Cannot open load file: subr-x
2022-11-13 Stefan Kangas <stefankangas@gmail.com>
Fix tests on Emacs 26 or older
This fixes the following error in Emacs 25.3:
In toplevel form:
bind-key.el:549:1:Error: the function mapcan is not known to be defined.
2022-11-13 Juri Linkov <juri@linkov.net>
* lisp/minibuffer.el (set-message-functions): New user option.
(set-message-function): Change the default from
'set-minibuffer-message' to 'set-message-functions'.
'set-minibuffer-message' is set as the default value
of the user option 'set-message-functions'.
(set-message-functions): New function.
(inhibit-message-regexps): New customizable variable (bug#52314).
(inhibit-message): New function.
(multi-message-timeout, multi-message-max): New defcustoms.
(multi-message-separator, multi-message-list): New variables.
(set-multi-message): New function.
2022-11-13 Stefan Kangas <stefankangas@gmail.com>
Fix suggest-key-bindings displaying key as command
* lisp/simple.el (execute-extended-command--describe-binding-msg):
New function factored out from...
(execute-extended-command): ...here. Fix bug where a key binding was
displayed as a command with 'suggest-key-bindings'. (Bug#59247)
* test/lisp/simple-tests.el
(simple-execute-extended-command--describe-binding-msg): New test.
2022-11-13 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: More improvements for tab-bar-auto-width (bug#59208)
(tab-bar-auto-width): Use add-face-text-property instead of propertize.
Prevent from going into infinite loops. More optimizations.
(tab-bar-format-align-right): Use add-face-text-property, not propertize.
2022-11-13 Ingo Lohmar <ingo.lohmar@posteo.net>
Eglot: fix null scopeUri regression in workspace/configuration
* lisp/progmodes/eglot.el (eglot-handle-request):
Commit 1a2d603bb3938ff68ed1a5412d131b41efd40a24 changed
`eglot--uri-to-path' to return a nil uri untouched. (Before,
`url-unhex-string' turned the parsed all-nil uri record into the empty
string.)
A nil return value must now be handled in the caller, do that for the
workspace/configuration handler to avoid an uncaught error.
2022-11-13 Stefan Kangas <stefankangas@gmail.com>
New test for execute-extended-command helper defun
* test/lisp/simple-tests.el
(simple-execute-extended-command--shorter): New test.
2022-11-13 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in sql.el
* lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode-map):
Prefer defvar-keymap.
2022-11-13 Davide Masserut <dm@mssdvd.com>
Add new Go modes to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add new major modes
for Go to be used with gopls. (Bug#59245)
2022-11-13 Po Lu <luangruo@yahoo.com>
Fix bug#59075
* src/nsimage.m (ns_can_use_native_image_api): Do not use native
image APIs for SVG images when RSVG is present. (bug#59075)
2022-11-13 Eli Zaretskii <eliz@gnu.org>
Fix crash on MS-Windows due to memory-allocation problem in treesit.c
* src/treesit.c (treesit_load_language): Use 'xstrdup'/'xfree'
instead of 'strdup'/'free', to prevent crashes on MS-Windows,
where we must use our own implementation of 'malloc'/'free',
whereas 'strdup' uses the default implementation in the MS-Windows
C runtime library.
2022-11-13 Po Lu <luangruo@yahoo.com>
Fix warnings without XCB or XFixes
* src/xterm.c (x_term_init): Don't USE_SAFE_ALLOCA or call
SAFE_FREE outside of where it is actually used. For some reason
the compiler still emitted warnings despite the ((void)
SAFE_ALLOCA (0)) statement.
2022-11-12 Po Lu <luangruo@yahoo.com>
Prevent non-local exits from ns-in-echo-area
* src/nsterm.m (ns_in_echo_area_1):
(ns_in_echo_area_2):
(ns_in_echo_area): New functions.
([EmacsView firstRectForCharacterRange:]): Call them instead.
(syms_of_nsterm): New defsym.
2022-11-12 Yuan Fu <casouri@gmail.com>
Improve tree-sitter imenu for c-mode and js-mode
Instead of a flat list, now categorize imenu entries into categories
like "Function", "Variable", "Class", etc.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): Handle more edge
cases.
(c-ts-mode--imenu): Categorize menu entries.
* lisp/progmodes/js.el (js--treesit-imenu-type-alist): Remove variable.
(js--treesit-imenu-label): Remove function.
(js--treesit-imenu-1): Use the name alone for labels.
(js--treesit-imenu): Categorize menu entries.
2022-11-12 Michal Dubiel <majkijin@gmail.com> (tiny change)
eglot: Support signature labels without a function name
* lisp/progmodes/eglot.el (eglot--sig-info): Support signature labels
without a function name. (Bug#58777)
2022-11-12 Theodor Thornhill <theo@thornhill.no>
Add tree-sitter modes for C-like languages
* etc/NEWS: Mention the new modes
* lisp/progmodes/c-ts-mode.el: New major mode with tree-sitter support
for C and C++.
* lisp/progmodes/java-ts-mode.el: New major mode with tree-sitter support.
* lisp/progmodes/json-ts-mode.el: New major mode with tree-sitter support.
* lisp/progmodes/css-ts-mode.el: New major mode with tree-sitter support.
2022-11-12 Morgan Smith <Morgan.J.Smith@outlook.com>
vc-git: Ensure git doesn't try to colorize stashes
* lisp/vc/vc-git.el (vc-git-stash-show): Add --color=never to git
flags. (Bug#59158)
2022-11-12 Shohei YOSHIDA <syohex@gmail.com>
Add cperl-mode to eglot-server-programs
2022-11-12 Alan Mackenzie <acm@muc.de>
.dir-locals.el (C entry). Add NO_INLINE to c-noise-macro-names
2022-11-12 Po Lu <luangruo@yahoo.com>
Correctly handle key map updates on Haiku
* src/haiku_support.cc (MessageReceived): Handle
B_KEY_MAP_LOADED by clearing the previous keymap.
2022-11-12 Eli Zaretskii <eliz@gnu.org>
Document that 'transient-mark-mode' is off in batch mode
* doc/emacs/mark.texi (Mark, Disabled Transient Mark): Document,
belatedly, that 'transient-mark-mode' is turned on by default only
in interactive sessions. (Bug#59201)
2022-11-12 Po Lu <luangruo@yahoo.com>
Handle request serial wraparound more correctly
* src/xterm.c (X_COMPARE_SERIALS): Remove macro.
(x_is_serial_more_than, x_is_serial_more_than_or_equal_to)
(x_is_serial_less_than, x_is_serial_less_than_or_equal_to): New
functions.
(x_find_error_handler, x_request_can_fail)
(x_clean_failable_requests, x_stop_ignoring_errors): Use those
functions to perform request serial comparison.
2022-11-12 Po Lu <luangruo@yahoo.com>
Fix implementation of MULTIPLE
* src/xselect.c (x_handle_selection_request): Make sure the type
of a reply to a MULTIPLE request is ATOM_PAIR.
2022-11-12 Eli Zaretskii <eliz@gnu.org>
Fix recent changes in documentation
* lisp/treesit.el (treesit-node-at): Doc fix.
* doc/lispref/parsing.texi (Language Definitions): Add
cross-reference.
(Retrieving Nodes): Renamed from "Retrieving Node"; all references
changed.
(Retrieving Nodes): Fix wording and markup.
2022-11-12 Stefan Kangas <stefankangas@gmail.com>
* doc/lispref/intro.texi: Fix PDF output without VERSION. (Bug#59199)
2022-11-12 Po Lu <luangruo@yahoo.com>
* lisp/xwidget.el: Improve Commentary.
2022-11-12 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in cus-theme.el
* lisp/cus-theme.el (custom-new-theme-mode-map)
(custom-theme-choose-mode-map): Prefer defvar-keymap.
2022-11-11 Yuan Fu <casouri@gmail.com>
Improve treesit-node-at
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* lisp/treesit.el (treesit-node-at): Change semantic. It tries to
return the node that a user would expect in various circumstances.
* test/src/treesit-tests.el (treesit-node-at): New test.
2022-11-11 Dmitry Gutov <dgutov@yandex.ru>
project--buffer-list: Remove as unused
* lisp/progmodes/project.el (project--buffer-list):
Remove as unused (pointed out in bug#59153 by Juri).
2022-11-11 Eric Abrahamsen <eric@ericabrahamsen.net>
Mention obsolete gnus/nnir package in Gnus manual
* doc/misc/gnus.texi (nnir): Provide some hints for upgrade.
2022-11-11 Brian Leung <leungbk@posteo.net>
Make Eglot consider FileSystemWatcher.kind when watching files
bug#58677
* eglot.el (eglot-register-capability
workspace/didChangeWatchedFiles): Rework
Only send notifications of interest, as determined by the optional LSP
FileSystemWatcher.kind bitmask provided by the server.
When the FileSystemWatcher.kind property is omitted, use the default
value of 7, which is computed from taking the bitwise OR operation
WatchKind.Create (1) | WatchKind.Change (2) | WatchKind.Delete (4).
2022-11-11 Gerd Möllmann <gerd@gnu.org>
Fix &key parameters called without arguments (bug#58714)
* lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Check for missing
argument.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): New test.
2022-11-11 Stefan Kangas <stefankangas@gmail.com>
eglot: Remove menu entry for manual
* lisp/progmodes/eglot.el (eglot-manual): Make obsolete. Open the
eglot info manual instead of the less exhaustive README.
(eglot-menu): Remove entry for reading the manual. (Bug#58892)
2022-11-10 Stefan Kangas <stefankangas@gmail.com>
Remove redundant library installation instructions
* lisp/apropos.el:
* lisp/mail/feedmail.el:
* lisp/mail/mail-hist.el:
* lisp/org/org-ctags.el:
* lisp/org/org-protocol.el:
* lisp/progmodes/ebnf2ps.el:
* lisp/progmodes/mixal-mode.el:
* lisp/progmodes/perl-mode.el:
* lisp/savehist.el:
* lisp/textmodes/table.el:
* lisp/vc/smerge-mode.el: Remove redundant installation instructions
for packages bundled with Emacs.
2022-11-10 Po Lu <luangruo@yahoo.com>
Slightly adjust EWMH frame activation code for child frames
* src/xterm.c (x_get_toplevel_parent): New function.
(x_focus_frame): Do not use EWMH activation in two cases: focus
transfers to child frames (this is not guaranteed to work if the
focus and the child frame do not share the same toplevel) or
focus transfers from child frames to their toplevel parents.
2022-11-10 Stefan Kangas <stefankangas@gmail.com>
* lisp/progmodes/hideshow.el: Improve Commentary.
2022-11-10 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in hideshow.el
* lisp/progmodes/hideshow.el (hs-minor-mode-map): Prefer
defvar-keymap.
2022-11-10 Yuan Fu <casouri@gmail.com>
In end-of-defun, terminate early if no further defun exists
Before this change, end-of-defun calls end-of-defun-function even if
point is not necessarily at the beginning of a defun (contrary to what
end-of-defun-function's docstring claims). Now it terminates early
and doesn't call end-of-defun-function.
* lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Update docstring
clarifying the return value.
(end-of-defun): Terminate early if beginning-of-defun-raw returns nil.
2022-11-10 dannyfreeman <danny@dfreeman.email>
Eglot: Only handle URIs with the file:// scheme (bug#58790)
Eglot will not attempt to parse URIs that are not file:// type at all.
Instead let 'file-name-handler-alist' entries to deal with those. Not
parsing them at all allows the 'file-name-handler-alist' regexps to
identify them more accurately.
By also checking if Eglot received a URI in 'eglot--path-to-uri',
'file-name-handler-alist' can provide the non-file type URI back to
the lsp server, which presumably will know how to handle them since it
is also giving them out to clients.
This issue originated with clojure-lsp sending clients "jar:" type
URIs that Emacs is unable to handle out of the box. Before this
change, "jar:" URIs were parsed once, but since they contain a nested
URI, this resulted in a file being dispatched with a partially parsed
path that looked like "file://path/to.jar!/path/in/jar".
* lisp/progmodes/eglot.el (eglot--path-to-uri): Noop if already an
URI. (eglot--uri-to-path): Only handle file:// URIs
2022-11-10 João Távora <joaotavora@gmail.com>
Improve Eglot's docstrings and manual
The examples in the manual can now be copy-pasted to user's init
files as-is.
* doc/misc/eglot.texi (Setting Up LSP Servers): Use
`with-eval-after-load'. Add eglot-alternatives example.
(Customizing Eglot): Use 'require and fix a typo.
* lisp/progmodes/eglot.el (eglot-server-programs): Mention
eglot-alternatives in eglot-server-program's docstring.
2022-11-10 Yuan Fu <casouri@gmail.com>
Utilize new face font-lock-escape-face in python-mode
* lisp/progmodes/python.el (python--treesit-settings): Use
font-lock-escape-face rather than font-lock-constant-face.
2022-11-10 Yuan Fu <casouri@gmail.com>
Accept older versions of tree-sitter library
* configure.ac: Accept a tree-sitter library as long as it provides
ts_set_allocator.
2022-11-10 Evgeni Kolev <evgenysw@gmail.com>
Ignore errors when shutting down all LSP servers (bug#59146)
eglot-shutdown-all has a bug that results in partially stopping
servers: when a server shutdown timeouts (1.5s), an error is
propagated and eglot-shutdown-all does not try to shutdown the rest of
the servers.
* eglot.el (eglot-shutdown-all): Ignore errors when shutting down
servers, converting errors to messages.
2022-11-10 Eli Zaretskii <eliz@gnu.org>
Don't reset the inbox buffer's modified status in Rmail
* lisp/mail/rmail.el (rmail-get-new-mail-1): Don't mark the buffer
unmodified if it was modified before getting new mail. (Bug#59108)
2022-11-10 Arash Esbati <arash@gnu.org>
Support 'texlab' LSP server in Eglot OOTB
* lisp/progmodes/eglot.el (eglot-server-programs): Add support for
'texlab' LSP server for tex-mode and similar languages.
2022-11-10 Alan Mackenzie <acm@muc.de>
Add to /etc/NEWS a mention of the new C++20 support in CC Mode
* etc/NEWS. A new section about C++20 support.
* lisp/progmodes/cc-defs.el (c-version): Update to 5.35.2.
2022-11-10 Randy Taylor <dev@rjt.dev>
Add more font-lock faces (Bug#58940)
* lisp/font-lock.el (font-lock-bracket-face, font-lock-delimiter-face,
font-lock-escape-face, font-lock-number-face,
font-lock-misc-punctuation-face, font-lock-operator-face,
font-lock-property-face, font-lock-punctuation-face): Define new
faces.
* lisp/cus-theme.el (custom-theme--listed-faces): Add them to the
list.
* doc/lispref/modes.texi (Faces for Font Lock): Document them.
* etc/NEWS: Mention them.
2022-11-10 Eli Zaretskii <eliz@gnu.org>
Fix initialization of module functions
* src/emacs-module.c (allocate_module_function): Fix
initialization of module functions. Suggested by Richard Copley
<rcopley@gmail.com>. (Bug#59104)
2022-11-10 kobarity <kobarity@gmail.com>
Fix indentation for multi-line block start in Python mode
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions): Fix for multi-line
block start.
* test/lisp/progmodes/python-tests.el
(python-info-dedenter-opening-block-positions-6): New test. (Bug#59009)
2022-11-10 Eli Zaretskii <eliz@gnu.org>
Avoid dumping core upon SIGHUP in non-interactive sessions
* src/emacs.c (terminate_due_to_signal): Don't special-case
SIGINT. Patch by Paul Eggert <eggert@cs.ucla.edu>. (Bug#58956)
2022-11-10 Alan Mackenzie <acm@muc.de>
* lisp/progmodes/cc-mode.el (c-fl-decl-start): Fix off-by-one error.
This fixes bug #59070.
2022-11-10 Gabriel do Nascimento Ribeiro <gabriel376@hotmail.com>
Make 'dired-hide-details-mode' work after 'dired-hide-subdir'
* lisp/dired.el (dired--unhide): Restore text properties.
(Bug#59047)
* test/lisp/dired-tests.el (dired-test-bugXXXX): New test.
2022-11-10 Matt Armstrong <matt@rfc20.org>
Rewrite the `kill-buffer-delete-auto-save' tests (bug#59028)
These tests had been annoying to me when run in interactive mode.
They failed to bind `kill-buffer-delete-auto-save' as needed, so they
depended on the user's settings, and they failed to mock out the
"Buffer modified, save?" prompt.
* test/src/buffer-tests.el (test-kill-buffer-auto-save): New helper
function that mocks the two different kinds of prompts that occur when
killing modified buffers that visit a file. Tests fail if expected
prompts are not issued.
(test-kill-buffer-auto-save-default): Use it, and explicitly bind
`kill-buffer-delete-auto-save' to nil.
(test-kill-buffer-auto-save-delete): Delete it.
(test-kill-buffer-auto-save-delete-yes): New test for the "yes" half
of the old `test-kill-buffer-auto-save-delete'.
(test-kill-buffer-auto-save-delete-yes): Ditto for the "no" half.
2022-11-10 Nicolas Graner <nicolas@graner.name>
Better support for 'textarea' and 'select' tags in EWW
* lisp/net/eww.el (eww-tag-textarea, eww-tag-select): Don't miss
'textarea' and 'select' tags. (Bug#58973)
2022-11-10 Po Lu <luangruo@yahoo.com>
Be a little more paranoid about XI 2.0 implementations
* src/xterm.c (xi_populate_device_from_info):
(xi_disable_devices): Do not restore valuator values if the
valuator info has a mode of Relative and a value of 0.0.
2022-11-09 Juanma Barranquero <lekktu@gmail.com>
Make 't' in bs-mode be more defensive
* lisp/bs.el (bs-visit-tags-table): Verify that the
buffer holds a tags-table file before using it as
such. This is identical to bug#54133 affecting
Buffer-menu, and this fix is copied from the one
by Eli Zaretskii in commit 794fbd1c07 of 2022-02-24.
Thanks to Bob Rogers <rogers@rgrjr.com> for noticing.
2022-11-09 Yuan Fu <casouri@gmail.com>
* configure.ac: Change required tree-sitter version to 0.20.2.
2022-11-09 Yuan Fu <casouri@gmail.com>
Make tree-sitter node type match case-sensitive
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* src/treesit.c (treesit_traverse_match_predicate): Change to
fast_c_string_match.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Update docstring.
2022-11-09 Yuan Fu <casouri@gmail.com>
New function fast_c_string_match and fast_c_string_match_internal
Generalize fast_c_string_match_ignore_case into
fast_c_string_match_internal. And Make fast_c_string and
fast_c_string_match_ignore_case use fast_c_string_match_internal.
* src/lisp.h (fast_c_string_match_internal)
(fast_c_string_match): New declaration.
(fast_c_string_match_ignore_case): Change to thin wrapper.
* src/search.c (fast_c_string_match_internal): New function.
2022-11-09 Yuan Fu <casouri@gmail.com>
Add tree-sitter shortdoc
* lisp/treesit.el (treesit--generate-shortdoc-examples): New function.
(treesit): New shortdoc group.
2022-11-09 Yuan Fu <casouri@gmail.com>
Mimic existing python-mode beg/end-of-defun behavior better
* lisp/progmodes/python.el (python-treesit-beginning-of-defun)
(python-treesit-end-of-defun): New functions.
* lisp/progmodes/python.el (python-mode): Use custom beg/end-of-defun
functions.
2022-11-09 Alan Mackenzie <acm@muc.de>
Optimize c-bs-interval, changing its value from 5000 to 2000
* lisp/progmodes/cc-engine.el (c-bs-interval): This optimization speeds
forward scrolling in a C Mode buffer by ~2.4%, backward scrolling by ~1.8%.
2022-11-09 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-auto-width): Add selected-frame to the cache key.
2022-11-09 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in matrix_row
* src/xdisp.c (cursor_in_mouse_face_p): Avoid rare assertion
violations when the cursor's VPOS winds up being invalid for the
window. (Bug#59147)
2022-11-09 Stefan Kangas <stefankangas@gmail.com>
* lisp/thread.el (thread-list-mode-map): Prefer defvar-keymap.
2022-11-09 Stephen Leake <stephen_leake@stephe-leake.org>
Delete emacs < 26.2 workaround in eglot--apply-text-edits
* lisp/progmodes/eglot.el (eglot--apply-text-edits): Delete emacs <
26.2 workaround; fixes bug in ada-mode test.
2022-11-09 F. Jason Park <jp@neverwas.me>
Teach thing-at-point to recognize bracketed IPv6 URLs
* lisp/thingatpt.el (thing-at-point-bounds-of-url-at-point): Allow
IPv6 addresses as hosts. Overshoots in the case of bracketed markup
but is rescued by `thing-at-point--bounds-of-well-formed-url'.
* test/lisp/thingatpt-tests.el (thing-at-point-test-data): Add cases
for IPv6 URLs. Bug#56514.
2022-11-09 Po Lu <luangruo@yahoo.com>
Make the PGTK port display a loud warning when run under X
* src/pgtkterm.c (pgtk_display_x_warning): New function.
(pgtk_term_init): Call it.
2022-11-09 Po Lu <luangruo@yahoo.com>
"Fix" iconification handling on PGTK
* src/pgtkterm.c (pgtk_iconify_frame): Write some more comments
and refrain from setting the frame as iconified here.
(map_event): Remove redundant braces.
(window_state_event): Remove useless code and manage frame
visibility as correctly as possible under Wayland while
iconified. (bug#55836)
2022-11-09 Po Lu <luangruo@yahoo.com>
Avoid use of `uint' type in XKB code
* src/xterm.c (x_find_modifier_meanings, handle_one_xevent): Use
`unsigned int' instead of `uint'.
2022-11-09 Mattias Engdegård <mattiase@acm.org>
* src/lread.c (syms_of_lread): Drop unused capture group.
2022-11-09 Nicholas Vollmer <iarchivedmywholelife@gmail.com>
bytecomp.el (byte-recompile-directory): Fix negated ignore logic
Previous logic would only compile files which matched the
byte-compile-ignore-files regular expression. (Bug#59115)
2022-11-09 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-auto-width): Use 'frame-inner-width'.
* lisp/tab-bar.el (tab-bar-get-buffer-tab): Add optional arg 'all-tabs'.
2022-11-08 Alexander Adolf <alexander.adolf@condition-alpha.com>
EUDC: Add ecomplete and mailabbrev backends
* doc/misc/eudc.texi (Overview): Add ecomplete and mailabbrev
nodes.
(ecomplete, mailabbrev): New nodes.
(Installation): Add ecomplete and mailabbrev nodes.
(LDAP Configuration): Use code formatting instead of quotes.
(macOS Contacts Configuration): Likewise.
(ecomplete Configuration): New node.
(mailabbrev Configuration): Likewise.
* etc/NEWS (EUDC): Mention ecomplete and mailabbrev backends,
mention eudc-server-hotlist default change.
* lisp/net/eudc-vars.el (eudc-known-protocols): Add ecomplete and
mailabbrev.
(eudc-server-hotlist): Add entries for ecomplete and mailabbrev.
* lisp/net/eudcb-ecomplete.el: New EUDC backend file.
* lisp/net/eudcb-mailabbrev.el: Likewise.
* test/lisp/net/eudc-resources/ecompleterc,
test/lisp/net/eudc-resources/mailrc: New eudc-tests resource
files.
* test/lisp/net/eudc-tests.el (eudc-test-rfc5322-quote-phrase)
(eudc-test-make-address, eudcb-ecomplete, eudcb-mailabbrev): New
test cases.
2022-11-08 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Deprecate eudc-server variable
* lisp/net/eudc-vars.el (eudc-server): Deprecate variable for
Emacs 29.1.
2022-11-08 Stephen Leake <stephen_leake@stephe-leake.org>
* lisp/progmodes/eglot.el (eglot--pos-to-lsp-position): Improve comment
2022-11-08 Alan Mackenzie <acm@muc.de>
CC Mode: Improve accuracy of recognition of bitfields
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When we've got two
identifiers followed by a colon, additionally check for a number (or
identifier) followed by a semicolon or comma before concluding we have a
bitfield.
2022-11-08 Robert Pluim <rpluim@gmail.com>
Don't use @w around @xref in ede.texi
Texinfo 7 warns about this now.
* doc/misc/ede.texi (ede-project-placeholder, ede-project,
ede-cpp-root-project, ede-simple-project,ede-simple-base-project,
ede-proj-project, project-am-makefile, ede-step-project, ede-target,
ede-proj-target, ede-proj-target-makefile,
semantic-ede-proj-target-grammar, ede-proj-target-makefile-objectcode,
ede-proj-target-makefile-archive, ede-proj-target-makefile-program,
ede-proj-target-makefile-shared-object, ede-proj-target-elisp,
ede-proj-target-elisp-autoloads,
ede-proj-target-makefile-miscelaneous, ede-proj-target-makefile-info,
ede-proj-target-scheme, project-am-target, project-am-objectcode,
project-am-program, project-am-header-noinst, project-am-header-inst,
project-am-lisp, project-am-texinfo, project-am-man,
ede-compilation-program, ede-compiler, ede-object-compiler,
ede-linker): Remove @w around @xref.
2022-11-08 Po Lu <luangruo@yahoo.com>
Clean up some duplicate event group conversion code
* src/xterm.c (xi_convert_event_keyboard_state): New function.
Move keyboard event state over.
(handle_one_xevent): Use it where necessary.
2022-11-08 Alan Mackenzie <acm@muc.de>
CC Mode: Stabilize the fontification in the presence of "register" keywords
This fixes bug #58883.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): New variable
unsafe-maybe. Set it in CASE 10 rather than setting c-record-type-identifiers
to nil. Near the end of the function, when unsafe-maybe is set, bind
c-promote-possible-types to 'just-one rather than t around the call to
c-forward-type.
2022-11-07 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Add eudc-ignore-options-file customization
* etc/NEWS (EUDC): Document eudc-ignore-options-file.
* doc/misc/eudc.texi (The Server Hotlist): Likewise
* lisp/net/eudc-vars.el (eudc-ignore-options-file): New variable.
(eudc-options-file): Mention new variable.
* lisp/net/eudc.el: Warn on load if eudc-ignore-options-file is
set but the options file exists.
(eudc-set-server): Support
eudc-ignore-options-file.
(eudc-bookmark-server): Likewise.
(eudc-save-options): Likewise. (Bug#56154)
2022-11-07 Po Lu <luangruo@yahoo.com>
Add missing SAFE_FREE on XI 2.0 servers
* src/xterm.c (xi_populate_device_from_info): Add missing
SAFE_FREE.
2022-11-07 Alan Mackenzie <acm@muc.de>
CC Mode: Fix infinite loop in c-brace-stack-at.
This fixes bug #59038. The infinite loop occurred with a buffer containing
Base-64 encoded text rather than appropriate C Mode text.
* lisp/progmodes/cc-engine.el (c-update-brace-stack): Don't execute
c-beginning-of-current-token unless the previous c-syntactic-re-search-forward
has succeeded at least once.
2022-11-07 Po Lu <luangruo@yahoo.com>
Avoid invalid values showing up in scroll valuators
* src/xterm.c (xi_populate_device_from_info): Reset emacs_value
when invalid_p is cleared.
2022-11-07 Yuan Fu <casouri@gmail.com>
Add tree-sitter indent preset "point-min"
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/treesit.el (treesit-simple-indent-presets): Add preset. Update
docstring.
2022-11-07 Yuan Fu <casouri@gmail.com>
Add treesit--indent-rules-optimize
* lisp/treesit.el (treesit--indent-rules-optimize): New function.
(treesit-major-mode-setup): Optimize indent rules when setting up for
major mode.
2022-11-07 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-minor-mode): Ensure margins are either 0 or 1.
This check is necessary to make it idempotent to multiple calls.
2022-11-07 Stefan Monnier <monnier@iro.umontreal.ca>
(itree_insert_gap, itree_delete_gap): Minor optimization
`limit` can get smaller in either of the two children of a node.
It can also happen that the root node itself has a low enough limit
that the loop can be interrupted right away.
The previous code only checked `limit` when going down to a left
child, which is not wrong, but tests suggest that it is also very
common to reach this limit when going to a right child, so move the
test accordingly.
* src/itree.c (itree_insert_gap, itree_delete_gap): Check `limit` for
all nodes, rather than only when following a `left` pointer.
2022-11-06 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
70fb03a49a ; * doc/emacs/search.texi (Lax Search): Improve suggestion...
5779df0c5b ; * doc/lispref/searching.texi: Remove reference to Posix....
46929f6b73 ; Improve documentation of character classes in regexps
2022-11-06 Philip Kaludercic <philipk@posteo.net>
Revert "* lisp/vc/vc-git.el (vc-git--rev-parse): Allow abbreviating commits"
This reverts commit 307ad210040251ea0de2e7f453350c4497bda874.
2022-11-06 Ingo Lohmar <ingo.lohmar@posteo.net>
Fix sql-{beginning,end}-of-statement counting
* lisp/progmodes/sql.el (sql-beginning-of-statement, sql-end-of-statement):
Do not count statement separators if inside a string.
2022-11-06 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in octave.el
* lisp/progmodes/octave.el (octave-mode-map): Prefer
defvar-keymap.
2022-11-06 Stefan Kangas <stefankangas@gmail.com>
Fix failing eshell alias tests
* test/lisp/eshell/esh-var-tests.el (esh-var-test/alias/function)
(esh-var-test/alias/symbol-pair): Fix tests. (Bug#59062)
2022-11-06 Eli Zaretskii <eliz@gnu.org>
Revert "Pacify -Wnull-dereference"
This reverts commit dad452552bebf832e737ebb946b5eea6cd57f63f.
Please don't assume I write such code by omission.
2022-11-06 Po Lu <luangruo@yahoo.com>
Fix splash screen display on NS and Haiku with native image APIs
* src/image.c (syms_of_image): Add Qsvg image type if SVG is
also supported by native image APIs.
2022-11-06 Po Lu <luangruo@yahoo.com>
Pacify -Wnull-dereference
* src/xdisp.c (extend_face_to_end_of_line): Use FACE_FROM_ID,
not FACE_FROM_ID_OR_NULL, when the next line proceeds to
immediately dereference the face.
2022-11-06 Po Lu <luangruo@yahoo.com>
Write more commentary on XI2 device management
* src/xterm.c (xi_populate_device_from_info): Take dpyinfo.
Describe what master and slave devices are, how they represent
seats, and how they are used to multiplex user input. Also
simplify ifdefs and avoid looping over scroll classes on XI 2.0.
(x_cache_xi_devices, handle_one_xevent): Adjust accordingly.
(x_term_init): Set dpyinfo->xi2_version before calling
x_cache_xi_devices.
2022-11-06 Eli Zaretskii <eliz@gnu.org>
Fix face extension when Org narrows the buffer
* src/xdisp.c (extend_face_to_end_of_line): Make sure glyph rows
at ZV use the default face for extension. (Bug#59065)
2022-11-06 Davide Masserut <dm@mssdvd.com>
Bind "DEL" in dictionary-mode
* lisp/net/dictionary.el (dictionary-mode-map): Bind DEL to
'scroll-down-command'. (Bug#58986)
2022-11-06 Eli Zaretskii <eliz@gnu.org>
Improve documentation of Edebug overwriting buffer point
* doc/lispref/edebug.texi (Edebug Display Update)
(Edebug Options): More details about Edebug changing buffer point
position. Reported by Alan Mackenzie <acm@muc.de>.
2022-11-06 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-fixed-width-max): Change :type from cons to list.
This will allow possible future extensions to customize Double (HiDPI).
(tab-bar-fixed-width-min): Change :type from cons to list.
(tab-bar-fixed-width): Use the list instead of cons.
2022-11-06 Matt Armstrong <matt@rfc20.org>
itree.c and buffer-tests.el: Incorporate code review feedback
* src/itree.c: Improve wording in `itree_insert_gap` comment.
* test/src/buffer-tests.el (test-overlay-insert-before-markers-at-start):
Don't rely on (point-min) being 1.
(test-overlay-insert-before-markers-at-end): ditto.
(test-overlay-insert-before-markers-empty): ditto.
2022-11-05 Yuan Fu <casouri@gmail.com>
Fix incorrect tree-sitter fontification
* lisp/treesit.el (treesit-font-lock-fontify-region): If the captured
node is outside of the region between START and END, don't fontify it.
Wrap fontification code in a when form.
2022-11-05 Yuan Fu <casouri@gmail.com>
Allow tree-sitter indent offset to be a variable
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/progmodes/js.el (js--treesit-indent-rules): Change all
occurance of ,js-indent-level to js-indent-level.
* lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Change all
occurance of ,ts-mode-indent-offset to ts-mode-indent-offset.
* lisp/treesit.el (treesit-simple-indent-rules): Change docstring.
(treesit-simple-indent): Allow offset to be a variable.
2022-11-05 Yuan Fu <casouri@gmail.com>
Don't indent empty lines in treesit-indent-region
* lisp/treesit.el (treesit-indent-region): Wrap the old code in an if
form that checks whether we are at an empty line. Add comments.
2022-11-05 Yuan Fu <casouri@gmail.com>
Make treesit-language-at work in more situations
even if treesit-language-at-point-function is nil.
2022-11-05 Stefan Monnier <monnier@iro.umontreal.ca>
buffer.c: evaporate overlays in all indirect buffers
This fixes bug#58928. The patch works by moving the
`evaporate_overlays` check closer to `itree_delete_gap`.
* src/buffer.c (adjust_overlays_for_delete_in_buffer): New function,
integrating the functionality of `evaporate_overlays`.
(adjust_overlays_for_delete): Use it.
(evaporate_overlays): Delete function.
* src/buffer.h (evaporate_overlays): Delete declaration.
* src/insdel.c (adjust_markers_for_replace): Minor optimization.
(adjust_after_replace, replace_range, replace_range_2, del_range_2):
Don't call `evaporate_overlays`.
* test/src/buffer-tests.el (buffer-tests--overlays-indirect-evaporate):
Remove the `:expected-result :failed` attribute.
2022-11-05 Matt Armstrong <matt@rfc20.org>
Add a test for overlay evaporation across indirect buffers
* test/src/buffer-tests.el (buffer-tests--overlays-indirect-evaporate):
Test evaporation of overlays triggered by deleting text in base
and in indirect buffers. Test doesn't pass at the moment.
2022-11-05 Matt Armstrong <matt@rfc20.org>
Minor tweaks to the fix for `insert-before-markers' overlay fix
(bug#58928)
* src/buffer.c (adjust_overlays_for_insert): wrap to less than 80
chars.
* src/itree.c: document BEFORE_MARKERS.
2022-11-05 Matt Armstrong <matt@rfc20.org>
Tweak the overlay related `insert-before-markers' tests
* test/src/buffer-tests.el (test-overlay-insert-before-markers-empty):
Move code down to the other tests related to insertion. Test all
front/rear insert combinations. To make the test more clear, at least
to me, hard code all character positions.
(test-overlay-insert-before-markers-at-start): For both front-advance
modes verify that `insert-before-markers' at and overlay's start
advances it.
(test-overlay-insert-before-markers-at-end): For both rear-advance
modes test that `insert-before-markers' at an overlay's end advances
it.
(test-overlay-insert-before-markers-non-empty): Delete, replaced by
the two tests above.
2022-11-05 Brian Cully <bjc@kublai.com>
lisp/eshell/em-tramp.el: Rename 'TRAMP' to 'Tramp'.
2022-11-05 Brian Cully <bjc@kublai.com>
Add the "doas" alias to eshell.
* lisp/eshell/em-tramp.el (eshell/doas): new function.
(eshell--method-wrap-directory): new function.
(eshell/sudo): accept '-s'/'--shell' for interactive use.
* test/lisp/eshell/em-tramp-tests.el
(em-tramp-test/sudo-shell) (em-tramp-test/sudo-user-shell)
(em-tramp-test/doas-basic) (em-tramp-test/doas-user)
(em-tramp-test/doas-shell) (em-tramp-test/doas-user-shell): new
tests.
* etc/NEWS: mention new 'doas' eshell command.
* doc/misc/eshell.texi: add 'doas' command documentation.
2022-11-05 Juri Linkov <juri@linkov.net>
* etc/NEWS: Remove remark implemented by 'vc-default-checkin-patch'.
* lisp/net/dictionary.el (dictionary-search): Use format-prompt.
* lisp/tab-bar.el (tab-bar-fixed-width): Improve width calculations.
2022-11-05 Philip Kaludercic <philipk@posteo.net>
Rephrase 'package-vc-ensure-packages' docstring
* lisp/emacs-lisp/package-vc.el (package-vc-ensure-packages): Make it
easier to read.
2022-11-05 Michael Albinus <michael.albinus@gmx.de>
* lisp/jka-compr.el (jka-compr-load): Add MUST-SUFFIX argument.
2022-11-05 Eli Zaretskii <eliz@gnu.org>
Fix the unexec build
* src/itree.c (forget_itree): New function.
* src/emacs.c (Fdump_emacs): Call 'forget_itree'.
2022-11-05 Eli Zaretskii <eliz@gnu.org>
Fix warnings in sqlite.c in the MS-Windows build
* src/sqlite.c (sqlite3_errstr) [WINDOWSNT]: Define and load from
the DLL only if the SQLite3 version is at least 3.7.15.
(sqlite_prepare_errdata) [SQLITE_VERSION_NUMBER >= 3007015]: Use
the original code if sqlite3_errstr is available.
2022-11-05 Nicolas Graner <nicolas@graner.name>
Avoid error when forwarding messages from Rmail
* lisp/gnus/message.el (message-mail): Verify that In-Reply-To has
a string value before matching it with a regexp. (Bug#59007)
2022-11-05 Po Lu <luangruo@yahoo.com>
Make sqlite.c build with SQlite in Fedora 9
* src/sqlite.c (sqlite_prepare_errdata): Use sqlite3_errmsg
instead of sqlite3_errstr.
2022-11-05 Po Lu <luangruo@yahoo.com>
Simplify XI scroll class reporting code
* src/xterm.c (xi_populate_device_from_info): Use xnmalloc.
Avoid reading classes at all when the XI library only supports
2.0.
(xi_handle_new_classes): New function.
(xi_handle_device_changed): Move class parsing logic there to
avoid duplicating code.
2022-11-05 Payas Relekar <relekarpayas@gmail.com>
Bump version to 2.4.4
2022-11-04 dickmao <dick.r.chiang@gmail.com>
Move ERC's core dependencies to separate file
Asking people to order require's is about as effective
as asking kids to keep off the grass.
* lisp/erc/erc-backend.el (erc--target, erc-auto-query,
erc-channel-list, erc-channel-users, erc-default-nicks,
erc-default-recipients, erc-format-nick-function,
erc-format-query-as-channel-p, erc-hide-prompt, erc-input-marker,
erc-insert-marker, erc-invitation, erc-join-buffer,
erc-kill-buffer-on-part, erc-kill-server-buffer-on-quit, erc-log-p,
erc-minibuffer-ignored, erc-networks--id, erc-nick,
erc-nick-change-attempt-count, erc-prompt-for-channel-key,
erc-prompt-hidden, erc-reuse-buffers, erc-verbose-server-ping,
erc-whowas-on-nosuchnick): Forward-declare variables.
(erc--open-target, erc--target-from-string, erc-active-buffer,
erc-add-default-channel, erc-banlist-update, erc-buffer-filter,
erc-buffer-list-with-nick, erc-channel-begin-receiving-names,
erc-channel-end-receiving-names, erc-channel-p,
erc-channel-receive-names, erc-cmd-JOIN, erc-connection-established,
erc-current-nick, erc-current-nick-p, erc-current-time,
erc-default-target, erc-delete-default-channel,
erc-display-error-notice, erc-display-server-message,
erc-emacs-time-to-erc-time, erc-format-message,
erc-format-privmessage, erc-get-buffer, erc-handle-login,
erc-handle-user-status-change, erc-ignored-reply-p,
erc-ignored-user-p, erc-is-message-ctcp-and-not-action-p,
erc-is-message-ctcp-p, erc-log-irc-protocol, erc-login,
erc-make-notice, erc-network, erc-networks--id-given,
erc-networks--id-reload, erc-nickname-in-use, erc-parse-user,
erc-process-away, erc-process-ctcp-query, erc-query-buffer-p,
erc-remove-channel-member, erc-remove-channel-users, erc-remove-user,
erc-sec-to-time, erc-server-buffer, erc-set-active-buffer,
erc-set-current-nick, erc-set-modes, erc-time-diff, erc-trim-string,
erc-update-mode-line, erc-update-mode-line-buffer,
erc-wash-quit-reason, erc-display-message, erc-get-buffer-create,
erc-process-ctcp-reply, erc-update-channel-topic, erc-update-modes,
erc-update-user-nick, erc-open, erc-update-channel-member):
Forward-declare functions.
(erc-response): Move to lisp/erc/erc-common.el.
(erc-compat--with-memoization): Use "erc-compat-" prefixed macro.
* lisp/erc/erc-common.el: New file. Change indentation for
`erc-with-all-buffers-of-server' from 1 to 2.
* lisp/erc/erc-compat.el (erc-compat--with-memoization): Migrate macro
from `erc-backend' and rename.
* lisp/erc/erc-goodies.el: Require `erc-common' instead of `erc'.
(erc-controls-highlight-regexp, erc-controls-remove-regexp,
erc-input-marker, erc-insert-marker, erc-server-process, erc-modules,
erc-log-p): Forward declare variables.
(erc-buffer-list, erc-error, erc-extract-command-from-line):
Forward-declare functions.
* lisp/erc/erc-networks.el (erc--target, erc-insert-marker,
erc-kill-buffer-hook, erc-kill-server-hook, erc-modules,
erc-rename-buffers, erc-reuse-buffers, erc-server-announced-name,
erc-server-connected, erc-server-parameters, erc-server-process,
erc-session-server): Forward declare variables.
(erc--default-target, erc--get-isupport-entry, erc-buffer-filter,
erc-current-nick, erc-display-error-notice, erc-error, erc-get-buffer,
erc-server-buffer, erc-server-process-alive): Forward-declare
functions.
(erc-obsolete-var): Also suppress free-variable warnings.
* lisp/erc/erc.el: Require `erc-networks', `erc-goodies', and
`erc-backend' at top of file. Don't require `erc-compat'.
(erc--server-last-reconnect-count, erc--server-reconnecting,
erc-channel-members-changed-hook, erc-network, erc-networks--id,
erc-server-367-functions, erc-server-announced-name,
erc-server-connect-function, erc-server-connected,
erc-server-current-nick, erc-server-lag, erc-server-last-sent-time,
erc-server-process, erc-server-quitting, erc-server-reconnect-count,
erc-server-reconnecting, erc-session-client-certificate,
erc-session-connector, erc-session-port, erc-session-server,
erc-session-user-full-name) Remove superfluous forward declarations.
(erc-message-parsed, tabbar--local-hlf, motif-version-string):
Relocate forward declares to central location.
(erc-session-password): Move to `erc-backend'.
(erc-downcase, erc-with-server-buffer, erc-server-user,
erc-channel-user, erc-get-channel-user, erc-get-server-user): Move to
lisp/erc/erc-common.el.
(erc-add-server-user, erc-remove-server-user,
erc-channel-user-owner-p, erc-channel-user-admin-p,
erc-channel-user-op-p, erc-channel-user-halfop-p,
erc-channel-user-voice-p): Convert from inline functions to normal
functions.
(define-erc-module, erc--target, erc--target-channel,
erc--target-channel-local, erc-log, erc-log-aux, erc-with-buffer,
erc-with-all-buffers-of-server): Move to lisp/erc/erc-common.el.
(erc-channel-members-changed-hook): Relocate option to avoid compiler
warning.
(erc-input, erc--input-split): Move to lisp/erc/erc-common.el.
(erc-controls-strip): Remove forward declaration temporarily until
this file stops requiring `erc-goodies'.
* test/lisp/erc/erc-networks-tests.el: Require `erc' instead of
`erc-networks'.
* test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies):
Remove obsolete test. Don't require `erc-networks'. Bug#56340.
2022-11-04 F. Jason Park <jp@neverwas.me>
Offer completions for GET subcommand flags in erc-dcc
* lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): Add /DCC GET switches.
This is unfinished business from bug#54458.
* test/lisp/erc/erc-dcc-tests.el (erc-dcc-tests--pcomplete-common,
pcomplete/erc-mode/DCC--get-basic, pcomplete/erc-mode/DCC--get-1flag,
pcomplete/erc-mode/DCC--get-2flags,
pcomplete/erc-mode/DCC--get-2flags-reverse): Add helper and tests for
completing /DCC GET switches.
2022-11-04 F. Jason Park <jp@neverwas.me>
* lisp/erc/erc.el (erc-cmd-RECONNECT): Fix macro arg.
2022-11-04 Dmitry Gutov <dgutov@yandex.ru>
project-kill-buffer-conditions: Tweak
* lisp/progmodes/project.el (project-kill-buffer-conditions): Tweak.
2022-11-04 Matt Armstrong <matt@rfc20.org>
Configure clang-format to use tabs
* .clang-format (UseTab): Set to "Always", to match
the (indent-tabs-mode . t) in .dir-locals.el. (Bug#59027)
2022-11-04 Philip Kaludercic <philipk@posteo.net>
Print "decrypted" rot13 text is buffer is read-only
* lisp/rot13.el (rot13-region): Add fallback if buffer is read-only
* doc/emacs/rmail.texi (Rmail Rot13): Document new behaviour.
2022-11-04 Philip Kaludercic <philipk@posteo.net>
* lisp/net/rcirc.el (rcirc-print): Replace misjudged assertion
2022-11-04 Stefan Kangas <stefankangas@gmail.com>
* lisp/textmodes/css-mode.el (css-mode-map): Prefer defvar-keymap.
* lisp/dired-aux.el (dired-check-process): Use progress reporter.
2022-11-04 Stefan Kangas <stefankangas@gmail.com>
Use progress reporter in cpp.el
* lisp/progmodes/cpp.el (cpp-highlight-buffer): Use progress
reporter.
(cpp-progress-time, cpp-progress-message): Make obsolete in favor
of 'make-progress-reporter'.
(cpp-message-min-time-interval): Doc fix.
2022-11-04 Stefan Kangas <stefankangas@gmail.com>
* lisp/progmodes/cpp.el (cpp-edit-mode-map): Prefer defvar-keymap.
2022-11-04 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -Wanalyzer-null-dereference
This is for gcc 12.2.1 20220819 (Red Hat 12.2.1-2) x86-64
when Emacs is configured with --enable-gcc-warnings.
* src/buffer.c (Fmove_overlay): Prefer BASE_EQ to EQ in a place
where theyre equivalent because the only symbol allowed here is nil.
2022-11-04 Philip Kaludercic <philipk@posteo.net>
Merge branch 'feature/package+vc'
* lisp/emacs-lisp/package-vc.el: Expand commentary
2022-11-04 Philip Kaludercic <philipk@posteo.net>
Link to Manual from the package-vc group
* lisp/emacs-lisp/package-vc.el (package-vc): Add 'custom-manual'
link.
2022-11-04 Philip Kaludercic <philipk@posteo.net>
Document 'package-vc-selected-packages'
* doc/emacs/package.texi: Expand documentation and give example.
* etc/NEWS: Mention 'package-vc-selected-packages'.
* lisp/emacs-lisp/package-vc.el (package-vc--select-packages): Remove
function.
(package-vc-ensure-packages): Add function based on
'package-vc--select-packages'.
(package-vc-selected-packages): Call 'package-vc-ensure-packages' from
custom setter.
2022-11-04 Yuan Fu <casouri@gmail.com>
Add treesit-indent-error
* lisp/treesit.el (treesit-indent-error): New error.
(treesit--simple-indent-eval): Signal treesit-indent-error.
2022-11-04 Yuan Fu <casouri@gmail.com>
Revise tree-sitter facility for multi-language buffers
* doc/lispref/parsing.texi (Multiple Languages): Extend and update
manual.
* lisp/treesit.el (treesit-range-functions): Remove variable.
(treesit-range-settings): New variable.
(treesit-range-rules): New function.
(treesit--merge-ranges): New function.
(treesit-update-ranges): Use treesit-range-settings instead of
treesit-range-functions.
(treesit-font-lock-rules): Fix docstring.
(treesit-indent)
(treesit-indent-region): Only update ranges in a region.
* test/src/treesit-tests.el (treesit-range): New test.
2022-11-04 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/simple.el (function-documentation): Fix bug#59014
2022-11-04 Michael Albinus <michael.albinus@gmx.de>
Fix calling file name handler for `load'.
* lisp/net/ange-ftp.el (ange-ftp-load): Add MUST-SUFFIX argument.
* lisp/net/tramp.el (tramp-handle-load): Adapt MUST_SUFFIX test.
* src/lread.c (Fload): Call handler with must_suffix.
* test/lisp/net/tramp-tests.el (tramp-test27-load): Extend test.
2022-11-04 Stefan Kangas <stefankangas@gmail.com>
Normalize some syntax table definitions
* lisp/nxml/rng-cmpct.el (rng-c-syntax-table):
* lisp/progmodes/cperl-mode.el (cperl-mode-syntax-table)
(cperl-string-syntax-table2):
* lisp/progmodes/dcl-mode.el (dcl-mode-syntax-table): Normalize
definitions to better follow modern ELisp conventions.
2022-11-04 Stefan Kangas <stefankangas@gmail.com>
* lisp/progmodes/dcl-mode.el (dcl-mode-map): Prefer defvar-keymap.
* admin/authors.el: Don't recommend deprecated fgrep.
2022-11-04 Basil L. Contovounesios <contovob@tcd.ie>
Fix manual noverlay tests
* test/manual/noverlay/Makefile.in: Add copyright notice.
(LIBS): Rename...
(PACKAGES): ...to this, to avoid confusion with Autoconf's LIBS.
All uses changed.
(CFLAGS): Break out -I flag...
(CPPFLAGS): ...into this new variable.
(LDFLAGS): Rename...
(LDLIBS): ...to this, which is expected to hold -l flags.
(top_builddir): New variable.
(EMACS): Define in terms of it.
(.PHONY): Add clean, distclean, and perf targets.
(have-libcheck): Remove redundant target. All uses updated.
(itree-tests.o): Remove redundant dependency on its source file.
(itree-tests): Remove redundant (and uncompilable) rule.
* test/manual/noverlay/check-sanitize.sh: Use /usr/bin/env. Add
copyright notice. Enable pipefail option, to propagate itree-tests
exit status to caller. Fix typo in usage message. Strip less
information from Check's error messages.
* test/manual/noverlay/emacs-compat.h: Add copyright notice.
Include stdlib.h.
(emacs_abort, eassert): Consistently use EXIT_FAILURE.
(eassume): Define when necessary.
* test/manual/noverlay/itree-tests.c: Add copyright notice. Include
standard headers before third-party ones. Use most narrowly
applicable ck_assert* macro for the types being checked,
e.g. ck_assert_ptr_* macros for pointer values. Replace removed
names and APIs with current ones, e.g. the itree_node field 'color'
is now called 'red'. Ensure preconditions of itree API are
satisfied before use, e.g. itree_node otick being set appropriately
before insertion, or global iterator being initialized
before (implicit) use (bug#58976). Make all functions static.
(DEF_TEST_SETUP): Remove all instances, replacing with...
(test_insert1_setup, test_insert2_setup, test_remove1_setup)
(test_remove2_setup): ...these new test fixtures.
(A, B, C, D, E, N_05, N_10, N_15, N_20, N_30, N_40, N_50, N_70)
(N_80, N_90, N_85, N_95): Define as static variables rather than
macros.
(test_get_tree4): Remove, inlining salient parts.
(shuffle): Move closer to users.
(test_create_tree): Accept itree_nodes as argument instead of
dynamically allocating them. All callers changed.
(FOREACH): Remove unused macro.
(N_BEG, N_END): Define in terms of itree_node_begin and
itree_node_end, respectively.
(test_gap_insert_1, test_gap_insert_2, test_gap_insert_3)
(test_gap_insert_5, test_gap_insert_7, test_gap_insert_11): Use
test_setup_gap_node_noadvance.
(basic_suite): Group unit tests into test cases and fixtures. Run
previously forgotten test_insert_14.
(main): Run suite as CK_ENV to allow specifying desired verbosity in
the environment.
2022-11-04 Po Lu <luangruo@yahoo.com>
Avoid using too up-to-date values when restoring valuators
* src/xterm.c (xi_has_scroll_valuators): New function.
(xi_handle_device_changed): If the device changed event provides
scroll valuators, then use the values in there. (bug#58980)
2022-11-04 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-fixed-width): New user option.
(tab-bar-fixed-width-max): New user option.
(tab-bar-fixed-width-min): New variable.
(tab-bar-fixed-width-faces): New variable.
(tab-bar--fixed-width-hash): New function.
(tab-bar-make-keymap-1): Use 'tab-bar-fixed-width'.
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg02067.html
2022-11-04 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
8cae9d8bd8 ; * doc/emacs/search.texi (Lax Search): Improve wording. ...
e01e8a8f84 ; * lisp/dired-aux.el (dired-show-file-type): Doc fix.
2022-11-04 Yuan Fu <casouri@gmail.com>
Fix treesit-parser-set-included-ranges
Track whether a parser has ranges set ourselves. See comment in
Ftreesit_parser_included_ranges for detail.
* src/treesit.c (make_treesit_parser): Initialize has_range.
(Ftreesit_parser_set_included_ranges): Set has_range. Fill docstring.
(Ftreesit_parser_included_ranges): Check has_range.
* src/treesit.h (Lisp_TS_Parser): Add has_range.
2022-11-03 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Minor tightening
* src/itree.c (iter): Initialize to NULL.
(init_itree): Make sure it's not allocated before we overwrite it.
(itree_insert_gap): Tweak the end-loop.
2022-11-03 Stefan Monnier <monnier@iro.umontreal.ca>
itree: Reproduce markers's behavior more faithfully (bug#58928)
The most obvious problem was the lack of support for
`insert-before-markers`, but the behavior was also different in a few
other cases.
* src/itree.h (itree_insert_gap):
* src/itree.c (itree_insert_gap): Add `before_markers` arg.
* src/lisp.h (adjust_overlays_for_insert):
* src/buffer.c (adjust_overlays_for_insert): Add `before_markers` arg.
* src/insdel.c (adjust_markers_for_replace, adjust_markers_for_insert)
(adjust_markers_for_delete): Adjust overlays directly from here.
(insert_1_both, insert_from_string_1, insert_from_gap)
(insert_from_buffer_1, adjust_after_replace, replace_range)
(replace_range_2, del_range_2): Don't adjust overlays explicitly here
any more.
* test/src/buffer-tests.el (test-overlay-insert-before-markers-empty)
(test-overlay-insert-before-markers-non-empty): New tests.
2022-11-03 Dmitry Gutov <dgutov@yandex.ru>
project-buffers: Describe the default implementation
* lisp/progmodes/project.el (project-buffers):
Describe what the default implementation is doing (bug#58784).
2022-11-03 Dmitry Gutov <dgutov@yandex.ru>
project-kill-buffer-conditions: Skip Gnus modes as well
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Skip Gnus modes as well (bug#58839).
2022-11-03 Dmitry Gutov <dgutov@yandex.ru>
project-kill-buffer-conditions: Skip hidden ones
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Make exception for "hidden" buffers (bug#58839).
2022-11-03 Po Lu <luangruo@yahoo.com>
Fix initialization of scroll valuator emacs_value
* src/xterm.c (xi_handle_device_changed): Initialize emacs_value
to 0, not DBL_MIN. (bug#58980)
2022-11-03 Philip Kaludercic <philipk@posteo.net>
Autoload all entry functions
2022-11-03 Yuan Fu <casouri@gmail.com>
Add contextual tree-sitter font-lock to ts-mode and js-mode
* lisp/progmodes/js.el (js--treesit-font-lock-settings)
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Capture
commend and strings. Add empty lines.
2022-11-03 Jim Porter <jporterbugs@gmail.com>
Only strip newlines when stringifying a value for Eshell
* lisp/eshell/esh-util.el (eshell-stringify): Use 'string-trim-right'
instead of stripping the last character of the result of
'pp-to-string' (bug#58810).
* test/lisp/eshell/esh-util-tests.el: New file.
2022-11-03 Yuan Fu <casouri@gmail.com>
Minor change to tree-sitter imenu function of js-mode
If someone dont like the labels, they can set them to empty strings.
* lisp/progmodes/js.el (js--treesit-imenu-type-alist): Add space.
(js--treesit-imenu-label): Remove space.
2022-11-03 Philip Kaludercic <philipk@posteo.net>
* lisp/emacs-lisp/package-vc.el (package-vc-version): Use main file
2022-11-03 Philip Kaludercic <philipk@posteo.net>
Add command 'package-vc-checkout'
* doc/emacs/package.texi: Document feature.
* etc/NEWS: Mention feature.
* lisp/emacs-lisp/package-vc.el (package-vc-clone): Extract
functionality out of 'package-vc-unpack'.
(package-vc-unpack): Extract functionality out to 'package-vc-clone'.
(package-vc-checkout): Add command.
2022-11-03 Paul Eggert <eggert@cs.ucla.edu>
Improve suppression of bogus macOS warnings
* configure.ac: On macOS, always use -Wno-deprecated-declarations,
as the false alarms appear even if --disable-gcc-warnings is given
(Bug#58966).
2022-11-03 Juri Linkov <juri@linkov.net>
Fix overlays order in Flyspell (bug#58970)
Flyspell relies on the sorting order of overlays from 'overlays-in'
that returned the overlays sorted by decreased 'overlay-start'.
But after the recent merge of the noverlay branch, the order was reversed.
So need to change the order back to the expected by Flyspell.
* lisp/textmodes/flyspell.el (flyspell-auto-correct-previous-word):
Sort overlays returned from 'overlays-in' descending by 'overlay-start'.
2022-11-03 Basil L. Contovounesios <contovob@tcd.ie>
Port interval trees to --enable-checking=structs
Some names under the interval_* namespace were renamed under the
itree_* namespace in commits:
0. f421b58db5 of 2022-10-19
"Prefix all itree.h type names with itree_".
1. 37a1145410 of 2022-10-19
"Rename all exported itree.h functions with the itree_ prefix"
Further, some values still referenced in commentary were removed in
commits:
2. 258e618364 of 2022-10-17
"Delete the itree_null sentinel node, use NULL everywhere."
3. 2c4a3910b3 of 2022-10-02
"itree: Use a single iterator object"
* src/emacs.c (main): Allocate global itree iterator once and for
all.
* src/alloc.c (mark_overlay):
* src/buffer.c (set_overlays_multibyte):
* src/itree.c (itree_destroy): Update commentary.
(interval_stack_ensure_space, itree_insert_gap): Prefer
unsigned-to-unsigned comparisons over signed-to-unsigned.
(interval_stack_push_flagged, interval_tree_insert)
(interval_tree_contains, itree_iterator_start)
(itree_iterator_finish, itree_iterator_next, itree_iterator_narrow):
Improve assertions.
(itree_init): Rename...
(init_itree): ...to this, for consistency with other global init
functions.
(itree_create): Stop leaking a global iterator allocation on each
call.
(interval_tree_init): Complete renames of
interval_tree -> itree_tree and interval_tree_clear -> itree_clear.
(interval_tree_remove_fix): Fix indentation.
* src/itree.h: Declare init_itree.
(ITREE_FOREACH): Fix typo in commentary.
* src/pdumper.c [CHECK_STRUCTS]
(dump_interval_node): Use the correct name in the HASH condition
and #error message.
(dump_overlay, dump_buffer): Update HASH (bug#58975).
2022-11-03 Juanma Barranquero <lekktu@gmail.com>
* src/gnutls.c (Fgnutls_available_p): Avoid duplicating capabilities.
2022-11-03 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in profiler.el
* lisp/profiler.el (profiler-report-mode-map): Prefer
defvar-keymap.
2022-11-03 Po Lu <luangruo@yahoo.com>
Further simplify valuator reset code
* src/xterm.c (xi_reset_scroll_valuators_for_device_id): Minor
style adjustments.
(handle_one_xevent): Don't check frames; reset on all XI_Enter
and XI_Leave events.
2022-11-03 Po Lu <luangruo@yahoo.com>
More style fixes to tree-sitter code
* src/treesit.c (treesit_node_uptodate_p):
* src/treesit.h: Fix coding style.
2022-11-03 Po Lu <luangruo@yahoo.com>
Minor fixes to last tree-sitter change
* src/treesit.c (treesit_find_override_name): Initialize
variable.
(Ftreesit_query_expand): Revert change to behavior.
2022-11-03 Po Lu <luangruo@yahoo.com>
Stylistic changes to tree-sitter code
* src/treesit.c (treesit_find_override_name)
(treesit_load_language_push_for_each_suffix, treesit_load_language)
(Ftreesit_langauge_available_p, treesit_record_change)
(make_treesit_parser, make_treesit_node, make_treesit_query)
(Ftreesit_parser_create, Ftreesit_parser_delete, Ftreesit_parser_list)
(treesit_check_range_argument, Ftreesit_parser_included_ranges)
(Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_check)
(Ftreesit_node_child_by_field_name, Ftreesit_pattern_expand)
(Ftreesit_query_expand, treesit_predicates_for_pattern)
(treesit_predicate_capture_name_to_text, treesit_predicate_equal)
(treesit_predicate_match, treesit_eval_predicates)
(Ftreesit_query_capture, treesit_search_dfs, treesit_build_sparse_tree)
(syms_of_treesit): Use FOR_EACH_TAIL (or FOR_EACH_TAIL_SAFE where not
obviously safe), and check list heads and tails correctly; fix coding
style of various constructs, especially:
variable =
mumble (frob (bar), (foo () + bar ()) + (baz () + quux ()))
which should actually be
variable
= mumble (frob (bar), (foo () + bar ()) + (baz () + quux ()))
and
foo =
mumble (frob (bar), 0)
+ (foo () + bar ())
+ (baz () + quux ())
which should actually be
foo = (mumble (frob (bar), 0)
+ (foo () + bar ())
+ (baz () + quux ()))
* src/treesit.h: Make declaration coding style consistent.
2022-11-03 Gerd Möllmann <gerd@gnu.org>
Suppress deprecation warnings on macOS (bug#58966)
* configure.ac (CHECK_LISP_OBJECT_TYPE): Add
-Wno-deprecated-declarations for darwin.
2022-11-03 Eli Zaretskii <eliz@gnu.org>
Fix 'text-property-search-backward' with 1-char long properties
* lisp/emacs-lisp/text-property-search.el
(text-property--find-end-backward): Don't miss the end of
text-property value at point. This fixes searches backward when
the property is on a single character position. (Bug#58937)
2022-11-02 Yuan Fu <casouri@gmail.com>
Check for outdated tree-sitter node when printing
* src/print.c (print_vectorlike): Check for outdated node.
* src/treesit.c (treesit_check_node): Use the new function.
(treesit_node_uptodate_p): New function.
* src/treesit.h: Declare new function.
2022-11-02 Yuan Fu <casouri@gmail.com>
Pass region start and end to tree-sitter fontification functions
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
* lisp/progmodes/js.el (js--fontify-template-string)
* lisp/progmodes/python.el (python--treesit-fontify-string): Update
function to only fontify within the region.
* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
(treesit-font-lock-fontify-region): Pass START and END to
fontification functions.
2022-11-02 Yuan Fu <casouri@gmail.com>
Add handling of contextual entities in tree-sitter font-lock
* lisp/progmodes/python.el: Remove function.
(python--treesit-settings): Capture contextual node.
* lisp/treesit.el (treesit--set-nonsticky):
(treesit-font-lock-contextual-post-process): New functions.
(treesit-font-lock-fontify-region): Change local variable START and
END to NODE-START and NODE-END, handle special capture name
"contextual".
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
2022-11-02 Paul Eggert <eggert@cs.ucla.edu>
Initialize child signal handling before posix_spawn too.
Problem reported by Tino Calancha (Bug#58960).
* src/callproc.c (call_process): Initialize SIGCHLD handling
before possibly creating a child with emacs_span. This need not
be in the critical section that calls emacs_spawn, so do it
outside the critical section.
* src/process.c (child_signal_init): Now extern.
2022-11-02 Yuan Fu <casouri@gmail.com>
Change signature of tree-sitter font-lock functions
Change from
(START END NODE OVERRIDE &rest _)
to
(NODE OVERRIDE &rest _)
START and END aren't used frequently enough to justify. If a
fontification function needs them, it can get them from NODE.
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
* lisp/progmodes/js.el (js--fontify-template-string)
* lisp/progmodes/python.el (python--treesit-fontify-string)
(python--treesit-fontify-string-end): Change signature.
* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
(treesit-font-lock-fontify-region): Remove START and END arguments.
2022-11-02 Juri Linkov <juri@linkov.net>
Add the parameter :noquery to open-network-stream (bug#58948)
* doc/lispref/processes.texi (Network): Add :noquery for open-network-stream.
* lisp/net/network-stream.el (open-network-stream): Pass the
parameter :noquery to make-network-process. Doc fix.
* lisp/progmodes/eglot.el (eglot--connect): Pass `:noquery t' to
eglot--inferior-bootstrap to use in open-network-stream call, like
`:noquery t' is passed to make-process in other places.
2022-11-02 Stefan Kangas <stefankangas@gmail.com>
* lisp/man.el (Man-mode-map): Prefer defvar-keymap.
2022-11-02 Philip Kaludercic <philipk@posteo.net>
Track file name in 'package--downloads-in-progress'
* lisp/emacs-lisp/package.el (package--download-one-archive): Move
'cl-pushnew' call from 'package--download-one-archive' and cons file
name onto the archive.
(package--download-one-archive): Cons the file name onto the archive.
(package--download-and-read-archives): Remove 'cl-pushnew' call.
2022-11-02 Po Lu <luangruo@yahoo.com>
Improve commentary in some parts of xterm.c
* src/xterm.c (x_probe_xfixes_extension): Rename to
`x_fixes_pointer_blanking_supported', as fixes is now used for
selection tracking as well. All callers changed.
(x_focus_changed): Document where this code is used.
2022-11-02 Paul Eggert <eggert@cs.ucla.edu>
Remove unused local in simple_search
* src/search.c (simple_search): Remove unused local.
2022-11-01 Stefan Monnier <monnier@iro.umontreal.ca>
src/buffer.c: Fix interaction between overlays & indirect buffers (bug#58928)
* src/buffer.c (adjust_overlays_for_insert)
(adjust_overlays_for_delete): Repeat for all buffers sharing the same text.
* src/itree.c (itree_insert_gap, itree_delete_gap): Allow an empty tree.
* test/src/buffer-tests.el (buffer-tests--overlays-indirect-bug58928):
New test.
2022-11-01 Dmitry Gutov <dgutov@yandex.ru>
project-switch-project: Avoid altering default-directory in cb
* lisp/progmodes/project.el (project-switch-project):
Avoid altering default-directory in the current buffer, even
temporarily (bug#58784).
2022-11-01 Dmitry Gutov <dgutov@yandex.ru>
vc-svn-ignore-completion-table: Ignore empty lines
* lisp/vc/vc-svn.el (vc-svn-ignore-completion-table):
Make sure to ignore empty lines (bug#58889).
2022-11-01 Yuan Fu <casouri@gmail.com>
Fix string fontification for tree-sitter python-mode
Now when user inserts a ending quote, the whole string is ganranteed
to be refontified and redisplayed.
* lisp/progmodes/python.el (python--treesit-fontify-string): Change
docstring, now it's called on the leading quote.
(python--treesit-fontify-string-end): New function.
(python--treesit-settings): Capture both leading and ending quote in a
string.
2022-11-01 Yuan Fu <casouri@gmail.com>
Don't print buffer when printing tree-sitter node and parser
Additionally, print node's position in buffer.
* doc/lispref/parsing.texi (Retrieving Node): Reflect this change in
manual.
* src/print.c (print_vectorlike): Remove printing of buffer, add
printing of node position.
2022-11-01 Yuan Fu <casouri@gmail.com>
Allow user to add/remove tree-sitter font-lock features
* lisp/treesit.el (treesit-font-lock-recompute-features): Add
ADD-LIST, REMOVE-LIST argument.
2022-11-01 Yuan Fu <casouri@gmail.com>
Query on the root node in tree-sitter font-lock
Rather than querying on the smallest node that spans START to END, we
query on the root node between START to END.
* lisp/progmodes/python.el (python--treesit-fontify-string): Accept
the string rather than the quote node.
(python--treesit-settings): Capture the string rather than the quote
node.
* lisp/treesit.el (treesit-font-lock-fontify-region): Query the root
node rather than the smallest node.
2022-11-01 Gregory Heytings <gregory@heytings.org>
Add a script to ease bisecting.
* admin/git-bisect-start: New script.
* admin/notes/repo (Bisecting): Mention the script.
* admin/emake: Add a Copyright blurb.
2022-11-01 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/dbus.el (dbus-debug): Declare. (Bug#58865)
2022-11-01 Philip Kaludercic <philipk@posteo.net>
Ensure 'package-vc-update' runs 'package-vc-unpack-1' only once
* lisp/emacs-lisp/package-vc.el (package-vc-update): Use
'vc-sourced-packages-list' and other hacks.
2022-11-01 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_term_init): Fix last change.
2022-11-01 Po Lu <luangruo@yahoo.com>
Fix leak on Lucid build
* src/xterm.c (x_term_init): Rectify wrong fix for bug#18403.
2022-11-01 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
1862df834c ; * src/search.c (Fmatch_data): Doc fix.
15fc5225b1 ; * lisp/whitespace.el (whitespace-trailing): Fix a typo.
9f3c896f7c ; * doc/emacs/text.texi (Quotation Marks): Typo fix. (Bug...
# Conflicts:
# src/search.c
2022-11-01 Gerd Möllmann <gerd@gnu.org>
Preven a buffer-overflow (bug#58850)
* src/print.c (print_vectorlike): Don't use sprintf.
2022-11-01 Stefan Kangas <stefankangas@gmail.com>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-10-29 17:48:52 UTC.
2022-11-01 Po Lu <luangruo@yahoo.com>
Fix leaks of XImage structures in image.c
* src/image.c (image_clear_image, lookup_image): Fix coding
style.
(x_destroy_x_image): Remove unnecessary assertion. Call
XDestroyImage, since otherwise only the image data is freed.
(image_from_emacs_colors): Rename variables to make more sense.
2022-10-31 Stephen Leake <stephen_leake@stephe-leake.org>
Fix eglot-shutdown-all: Match current eglot-shutdown signature
2022-10-31 Yuan Fu <casouri@gmail.com>
Use treesit-fontify-with-override in tree-sitter functions
* lisp/progmodes/js.el (js--fontify-template-string)
* lisp/progmodes/python.el (python--treesit-fontify-string): Use
treesit-fontify-with-override.
2022-10-31 Yuan Fu <casouri@gmail.com>
Add an argument OVERRIDE to tree-sitter font-lock functions
* doc/lispref/modes.texi (Parser-based Font Lock): Reflect this change
in manual.
* lisp/progmodes/js.el (js--fontify-template-string): Add _OVERRIDE
argument.
* lisp/progmodes/python.el (python--treesit-fontify-string): Add
_OVERRIDE argument.
* lisp/treesit.el (treesit-font-lock-rules): Update docstring.
(treesit-fontify-with-override): New function.
(treesit-font-lock-fontify-region): Extract out into
treesit-fontify-with-override.
2022-10-31 Michael Albinus <michael.albinus@gmx.de>
Fix tramp-handle-file-newer-than-file-p
* lisp/net/tramp.el (tramp-handle-file-newer-than-file-p): Don't use
fractions of seconds. (Bug#58842)
2022-10-31 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in cus-edit.el
* lisp/cus-edit.el (custom-mode-map, custom-mode-link-map): Prefer
defvar-keymap.
2022-10-31 Stefan Kangas <stefankangas@gmail.com>
* lisp/emacs-lisp/multisession.el: Add Commentary. (Bug#58845)
* lisp/vcursor.el (vcursor-map): Prefer defvar-keymap.
2022-10-31 Philip Kaludercic <philipk@posteo.net>
Allow specifying and pinning source packages to be installed
* lisp/emacs-lisp/package-vc.el (package-vc--select-packages): Add
custom setter for 'package-vc-selected-packages'.
(package-vc-selected-packages): Add user option.
2022-10-31 Yuan Fu <casouri@gmail.com>
Use tree-sitter for font-lock's syntactic function (optionally)
Before this change, we rebind font-lock-fontify-region-function and
call font-lock's function in tree-sitter's function, and the order of
fontification is tree-sitter, font-lock syntax, font-lock regexp.
Now we make font-lock's syntax function customizable and replace it
with tree-sitter's function, and the order of fontification is
tree-sitter, font-lock regexp.
* doc/lispref/modes.texi (Parser-based Font Lock): Reflect the change
in manual.
* lisp/font-lock.el (font-lock-fontify-syntactically-function): New
varaible.
(font-lock-default-fontify-region): Call
font-lock-fontify-syntactically-function rather.
(font-lock-fontify-syntactically-region): Rename to
font-lock-default-fontify-syntactically
(font-lock-default-fontify-syntactically): Rename to this.
* lisp/treesit.el (treesit-font-lock-fontify-region): Don't call
font-lock functions.
(treesit-font-lock-enable): Remove this function. It is not used even
before this change.
(treesit-major-mode-setup): Instead of binding
font-lock-fontify-region-function, now bind to
font-lock-fontify-syntactically-function. And we can let font-lock do
it's thing.
2022-10-31 Yuan Fu <casouri@gmail.com>
Improve python tree-sitter's string fontification
* lisp/progmodes/python.el (python--treesit-fontify-string): Handle
not only f-strings, but also docstrings, and NODE is now the last
quote rather than the whole string.
(python--treesit-settings): Use python--treesit-fontify-string for
every occasion.
2022-10-30 Yuan Fu <casouri@gmail.com>
Add tresit--font-lock-verbose
* lisp/treesit.el (tresit--font-lock-verbose): New variable.
(treesit-font-lock-fontify-region): Take tresit--font-lock-verbose
into account. Return jit-lock-bounds.
2022-10-30 Yuan Fu <casouri@gmail.com>
Set jit-lock-contextually in treesit-major-mode-setup
* lisp/treesit.el (treesit-major-mode-setup): Set jit-lock-contextually.
2022-10-30 Dmitry Gutov <dgutov@yandex.ru>
Fix semantic-symref-perform-search when dir contains a space
* lisp/cedet/semantic/symref/grep.el (semantic-symref-grep--local-dir):
New variable.
(semantic-symref-perform-search): Use it. And use "." when
expanding the template to substitute for the current dir.
(semantic-symref-parse-tool-output-one-line): Use it (bug#55016)
2022-10-30 Dmitry Gutov <dgutov@yandex.ru>
Speed up vc-default-checkin-patch a little
* lisp/vc/vc.el (vc-default-checkin-patch): Drop some
'revert-buffer' calls to speed up the process a little (bug#52349).
2022-10-30 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in simula.el
* lisp/progmodes/simula.el (simula-mode-map): Prefer
defvar-keymap.
2022-10-30 Philip Kaludercic <philipk@posteo.net>
Merge remote-tracking branch 'origin/master' into feature/package+vc
2022-10-30 Juri Linkov <juri@linkov.net>
* lisp/tab-line.el: Allow user-defined cache-key function (bug#57848)
(tab-line-cache-key-default): New function.
(tab-line-cache-key-function): New variable.
(tab-line-format): Funcall tab-line-cache-key-function.
2022-10-30 Juri Linkov <juri@linkov.net>
* lisp/tab-line.el: Escape %-constructs in tab names (bug#57848)
(tab-line-tab-name-format-default): Replace % with %% in tab name
to escape %-constructs from processing by mode-line-format.
2022-10-30 Gregory Heytings <gregory@heytings.org>
Merge master into feature/improved-locked-narrowing.
2022-10-30 Philip Kaludercic <philipk@posteo.net>
Have 'last-change' accept a line number instead of a range
* lisp/emacs-lisp/package-vc.el (package-vc-release-rev): Use new
signature.
* lisp/vc/vc-git.el (vc-git-last-change): Update signature
* lisp/vc/vc.el (vc-default-last-change): Update signature and use
'annotate-command'.
2022-10-30 Philip Kaludercic <philipk@posteo.net>
Display a message after installing source packages
* lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Print message
and return t.
2022-10-30 Philip Kaludercic <philipk@posteo.net>
Prefer "Package-Version" over "Version" if available
* lisp/emacs-lisp/package-vc.el (package-vc-release-rev): Search for
both in sequence.
2022-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/url/url-util.el (url-insert-entities-in-string): Simplify
2022-10-30 Stefan Monnier <monnier@iro.umontreal.ca>
dom-print: Fix missing entities quoting
Also use `?\s` for the space character.
* lisp/dom.el (dom-print): Properly quote special characters to avoid
generating invalid HTML/XML.
(dom-tag, dom-attributes, dom-children, dom-node)
(dom-add-child-before): Simplify.
(dom-set-attribute): Add at beginning rather than at end (slightly
more efficient and less destructive).
2022-10-30 Stefan Kangas <stefankangas@gmail.com>
elide-head: Make trailing "/" in URL optional
* lisp/elide-head.el (elide-head-headers-to-hide): Make trailing
"/" in the gnu.org URL optional for the GPL.
* test/lisp/elide-head-tests.el
(elide-head--test-headers-to-hide/gpl3-5): New test.
2022-10-30 Damien Cassou <damien@cassou.me>
Make previous-buffer and next-buffer repeatable
* lisp/bindings.el (buffer-navigation-repeat-map): Add new map.
* lisp/bindings.el (previous-buffer, next-buffer): Mark as
repeatable. (Bug#58800)
2022-10-30 Philip Kaludercic <philipk@posteo.net>
Extract last source package release from local VCS data
* lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist):
Unmention :release-rev
(package-vc-desc->spec): Fall back on other archives if a
specification is missing.
(package-vc-main-file): Add new function, copying the behaviour of
elpa-admin.el.
(package-vc-generate-description-file): Use 'package-vc-main-file'.
(package-vc-unpack): Handle special value ':last-release'.
(package-vc-release-rev): Add new function using 'last-change'.
(package-vc-install): Pass ':last-release' as REV instead of a
release.
* lisp/vc/vc-git.el (vc-git-last-change): Add Git 'last-change'
implementation.
* lisp/vc/vc.el (vc-default-last-change): Add default 'last-change'
implementation.
This attempts to replicate the behaviour of elpa-admin.el's
"elpaa--get-last-release-commit".
2022-10-30 Damien Cassou <damien@cassou.me>
Make winner key sequences repeatable in repeat-mode
* lisp/winner.el (winner-repeat-map): New variable.
(winner-undo, winner-redo): Put 'repeat-map' property with
'winner-repeat-map'. (Bug#58799)
2022-10-30 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in etags.el
* lisp/progmodes/etags.el (select-tags-table-mode-map): Prefer
defvar-keymap.
2022-10-30 Visuwesh <visuweshm@gmail.com>
Fix set-language-info-alist when multiple PARENTS are given
* lisp/international/mule-cmds.el (set-language-info-setup-keymap):
Function factored out from...
(set-language-info-alist): ...here. Do not mess up the keymaps when
multiple parents are given in PARENTS. (Bug#58376)
2022-10-30 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Minibuffer follows selected tabs (bug#58728)
(tab-bar-select-tab): Set set-window-configuration
arg DONT-SET-MINIWINDOW to t. Reselect the previously active minibuffer
and unselect unnecessarily selected minibuffer.
(tab-bar-history-back, tab-bar-history-forward): Set set-window-configuration
arg DONT-SET-MINIWINDOW to t.
2022-10-30 Po Lu <luangruo@yahoo.com>
Plug big leaks upon display IO error
Frame GCs are still leaked, but there is nothing that can be
done in that case because the display connection is dead.
* src/xterm.c (x_delete_terminal): Always free xkb desc and
modmap.
2022-10-29 Yuan Fu <casouri@gmail.com>
Separate python tree-sitter fontification into features
Level 1: comment string function-name class-name
Level 2: keyword builtin constant type
Level 3: assignment decorator escape-sequence string-interpolation
* lisp/progmodes/python.el (python--treesit-settings): Separate.
(python-mode): Set features.
2022-10-29 Yuan Fu <casouri@gmail.com>
Fix byte-compile warning in treesit.el
Originally treesit-simple-indent-presets was
'((parent-is . (lambda (type)
`(lambda (n p b)
(equal (treesit-node-type p)
,type)))))
Then I changed it to
`((parent-is . ,(byte-compile
(lambda (type)
(lambda (n p b)
(equal (treesit-node-type p)
type))))))
but that generates "function already compiled" warning when
byte-compiling treesit.el. The latest form shouldn't have any problem
anymore.
* lisp/treesit.el (treesit-simple-indent-presets): Change byte-compile
to plain evaluation.
2022-10-29 Yuan Fu <casouri@gmail.com>
Not return noindent in treesit-indent
* lisp/treesit.el (treesit-indent): Don't return noindent.
(treesit-defun-type-regexp): Return (nil . nil) rather than nil.
2022-10-29 Yuan Fu <casouri@gmail.com>
Add treesit-node-top-level
Merge treesit-node-top-level-p and treesit--find-top-level-match into
treesit-node-top-level.
* doc/lispref/parsing.texi (Retrieving Node): Add manual entry for it.
* lisp/progmodes/js.el (js--treesit-imenu-1): Replace
treesit-node-top-level-p with treesit-node-top-level.
* lisp/treesit.el (treesit-node-top-level-p)
(treesit--find-top-level-match): Remove functions.
(treesit-node-top-level): New function.
* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Replace treesit--find-top-level-match with
treesit-node-top-level.
2022-10-29 Yuan Fu <casouri@gmail.com>
Reflect recent change in tree-sitter manual sections
* doc/lispref/modes.texi (Parser-based Font Lock):
treesit-font-lock-enable is replaced by treesit-major-mode-setup.
* doc/lispref/modes.texi (Parser-based Indentation): Mention
treesit-major-mode-setup,
* doc/lispref/parsing.texi (Tree-sitter major modes): Remove
treesit-mode and global-treesit-mode, explain setup guideline.
2022-10-29 Yuan Fu <casouri@gmail.com>
Fix parent-bol preset for tree-sitter indent
* lisp/treesit.el (treesit-simple-indent-presets): Return point rather
than column.
2022-10-29 Yuan Fu <casouri@gmail.com>
Keep cursor position in treesit-indent
* lisp/treesit.el (treesit-indent): Create a marker and jump back to
that marker after indentation.
2022-10-29 John Wiegley <johnw@newartisans.com>
Merge pull request from andreyorst/face-spec-set-third-argument
GitHub-reference: https://github.com/jwiegley/use-package/issues/1009
2022-10-29 Yuan Fu <casouri@gmail.com>
Remove hack in js-mode's tree-sitter indentation rules
* lisp/progmodes/js.el (js--treesit-backward-up-list): Remove
function.
(js--treesit-indent-rules): Replace with new rule.
2022-10-29 Yuan Fu <casouri@gmail.com>
Refine handling of node at point in treesit-indent
* doc/lispref/modes.texi (Parser-based Indentation): Document the
semantic clearly.
* lisp/treesit.el (treesit-simple-indent-presets): Replace with
current-indentation.
(treesit--indent-1): Now NODE always starts at BOL, and parent is
always the smallest node above NODE that spans BOL.
(treesit-indent): Don't use save-excurtion, no one else does.
2022-10-29 Yuan Fu <casouri@gmail.com>
Fix treesit-indent-region
* lisp/treesit.el (treesit-simple-indent-presets): Remove extra comma.
(treesit--indent-1): Return (ANCHOR . OFFSET) instead of column.
(treesit-indent): Accept (ANCHOR . OFFSET) from treesit--indent-1.
(treesit--indent-region-batch-size): Reduce to 400.
(treesit-indent-region): Put a marker on each line's ANCHOR and
compute the indentation with ANCHOR + OFFSET. Precomputing column
gives wrong indentation when the ANHOR line doesn't have correct
indent yet.
2022-10-29 Eli Zaretskii <eliz@gnu.org>
Set 'native-comp-debug' to zero on MS-Windows
* lisp/emacs-lisp/comp.el (native-comp-debug): Don't emit debug
symbols on MS-Windows. The default was originally made 1 because
without that, C backtraces on Windows would not show
natively-compiled functions correctly, or would even stop short of
reaching the topmost call frame. But that turned out to be due to
a bug in GDB, which was meanwhile fixed in GDB 12. So we can now
reset the value back to zero, and gain smaller *.eln files on
MS-Windows.
2022-10-29 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in ps-mode.el
* lisp/progmodes/ps-mode.el (ps-mode-map, ps-run-mode-map): Prefer
defvar-keymap.
2022-10-29 Alan Mackenzie <acm@muc.de>
Fix the subr-arity returned by native compiled functions with lots of args
This fixes bug #58739. Make subr-arity return, e.g., (12 . 12) rather than
(12 . many) for a function with a fixed number of arguments more than 8.
* lisp/emacs-lisp/comp.el (comp-prepare-args-for-top-level): Only return a cdr
of 'many when there are &rest arguments.
* src/eval.c (eval_sub): Also check for a fixed number of args over 8 when
using the nargs + *args calling convention.
(funcall_subr): Also check numargs <= 8 before using the fixed args calling
convention. Include the case numargs > 8 in the aMany calling convention.
* src/lisp.h (DEFUN): Amend the comment about MANY.
2022-10-29 Eli Zaretskii <eliz@gnu.org>
Make Dired header clickable on non-Posix systems as well
* lisp/dired.el (dired--make-directory-clickable): Support
MS-Windows and MS-DOS absolute directory names with drive letters
and UNCs. (Bug#21973)
2022-10-29 Eli Zaretskii <eliz@gnu.org>
Display the Dired buffer as unmodified initially
* lisp/dired.el (dired-readin): Make sure a newly-created Dired
buffer is shown as unmodified. (Bug#58863)
2022-10-29 Andrey Listopadov <andreyorst@gmail.com> (tiny change)
Allow passing the SPEC-TYPE argument via :custom-face
GitHub-reference: https://github.com/jwiegley/use-package/issues/1008
2022-10-29 Po Lu <luangruo@yahoo.com>
Fix another GCC warning
* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Fix
another compiler warning.
2022-10-29 Po Lu <luangruo@yahoo.com>
Fix crash destroying NS frame tool bar
* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): Work
around silly GCC bug causing splurious warnings.
([EmacsWindow dealloc]): Detach tool bar before dealloc'ing
window. (bug#58857)
2022-10-29 Alan Mackenzie <acm@muc.de>
c-get-fontification-context: Refine the last non-default arm of the cond
This fixes bug #58772.
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Make the function
return (decl . nil) when MATCH-POS is in the second paren list of something
like DEFUN (..) (..). Tidy up untidy code with save-excursion's for greater
accuracy. Set a c-type text property value c-decl-arg-start to speed up
future calls. Reindent the entire function.
2022-10-29 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in help.el
* lisp/help.el (help-key): New function.
(help-map): Prefer defvar-keymap.
2022-10-28 Yuan Fu <casouri@gmail.com>
Remove test of treesit-language-at
Because now it just calls a user-supplied function rather than doing
any work by itself.
* test/src/treesit-tests.el (treesit-parser-supplemental): Remove the
test.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in page-ext.el
* lisp/textmodes/page-ext.el (pages--ctl-x-ctl-p-map)
(pages-directory-mode-map): Prefer defvar-keymap.
2022-10-28 Yuan Fu <casouri@gmail.com>
Byte-compile treesit-simple-indent-presets
* lisp/treesit.el (treesit-simple-indent-presets): Byte-compile these
functions.
2022-10-28 Po Lu <luangruo@yahoo.com>
Fix last change
* src/itree.c (struct itree_iterator):
(itree_iterator_next): Fix some fields and const confusion.
2022-10-28 Yuan Fu <casouri@gmail.com>
Add treesit-indent-region
Now indenting a large buffer is reasonably fast.
* lisp/treesit.el (treesit-indent): Move meat to treesit--indent-1.
(treesit--indent-1)
(treesit-indent-region): New functions.
(treesit-major-mode-setup): Setup indent-region-function.
2022-10-28 Po Lu <luangruo@yahoo.com>
Fix function declarations in itree headers
* src/itree.h: Make all declarations `extern'.
2022-10-28 Po Lu <luangruo@yahoo.com>
Fix coding style of latest feature branch merge
* src/itree.c (interval_stack_ensure_space)
(interval_stack_push_flagged, struct itree_iterator)
(struct check_subtree_result, check_subtree, check_tree)
(itree_newlimit, interval_tree_inherit_offset)
(interval_tree_propagate_limit, itree_node_init, itree_node_begin)
(itree_node_end, itree_create, interval_tree_rotate_left)
(interval_tree_rotate_right, interval_tree_insert_fix)
(interval_tree_insert, itree_insert, itree_node_set_region)
(interval_tree_contains, interval_tree_subtree_min)
(interval_tree_remove_fix, interval_tree_replace_child)
(interval_tree_transplant, itree_remove, itree_iterator_start)
(itree_insert_gap, itree_delete_gap, interval_node_intersects)
(itree_iterator_next, itree_iterator_narrow): Tabify. Fix
comment and code coding style.
2022-10-28 Po Lu <luangruo@yahoo.com>
Include Cairo FreeType header when available
* src/xsettings.c: Include cairo-ft.h if CAIRO_HAS_FT_FONT.
(bug#58830)
2022-10-28 Yuan Fu <casouri@gmail.com>
Make Emacs compile without tree-sitter library
* lisp/treesit.el: Add function declaration forms.
* src/emacs.c: Always include syms_of_treesit.
2022-10-28 Theodor Thornhill <theo@thornhill.no>
Add in new font lock features in js/ts-mode
We want to support font lock features on the syntactic level, not only
the decoration-level level.
New supported features are:
- comment
- constant
- keyword
- string
- declaration
- identifier
- expression
- property
- pattern
- jsx
* lisp/progmodes/js.el (js--treesit-font-lock-settings, js-mode): Add
in the new features.
* lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Remove faulty '.'
anchor.
(ts-mode--font-lock-settings, ts-mode): Add in the new features.
2022-10-28 Yuan Fu <casouri@gmail.com>
* configure.ac (emacs_config_features): Change to TREE_SITTER
Last commit on this line has a wrong changelog, the subject should be
emacs_config_features, not WINDOW_SYSTEM_OBJ.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Fix warning in xsettings.c
* src/xsettings.c [USE_CAIRO]: Include cairo-ft.h.
Thanks to Vincent Bernat <bernat@luffy.cx>.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Remove redundant requires from make-mode.el
* lisp/progmodes/make-mode.el (imenu, dabbrev, add-log): Remove
redundant requires.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Use new sit-for calling convention in zone.el
* lisp/play/zone.el (zone-exploding-remove): Don't use obsolete
calling convention for 'sit-for'.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Minor doc fixes in make-mode.el
* lisp/progmodes/make-mode.el:
(makefile-insert-macro, makefile-pickup-everything)
(makefile-backslash-region): Minor doc fixes.
(makefile-browse): Use substitute-command-keys.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in make-mode.el
* lisp/progmodes/make-mode.el (makefile-mode-map)
(makefile-browser-map): Prefer defvar-keymap.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Prefer make-temp-name in make-mode.el
* lisp/progmodes/make-mode.el
(makefile-generate-temporary-filename): Make obsolete in favor of
'make-temp-name'. Simplify.
(makefile-save-temporary): Don't use above obsolete function.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Ensure temp file is deleted in makefile overview
* lisp/progmodes/make-mode.el (makefile-create-up-to-date-overview):
Ensure temp file is always deleted.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
510020d30d ; Improve doc strings in whitespace.el
# Conflicts:
# lisp/whitespace.el
2022-10-28 John Wiegley <johnw@newartisans.com>
Merge pull request from bhankas/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/1007
2022-10-28 Philip Kaludercic <philipk@posteo.net>
Explicitly handle :vc-backend in a package specification
* lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist):
Document the feature.
(package-vc-unpack): Check for :vc-backend in both PKG-SPEC and the
archive specification data.
2022-10-28 Philip Kaludercic <philipk@posteo.net>
Ensure that package specifications are always fetched
* lisp/emacs-lisp/package-vc.el (package-vc--archives-initialize): Add
new function, extending 'package--archives-initialize'.
(package-vc-install): Use new function.
(package-vc-link-directory): Use new function.
2022-10-28 Philip Kaludercic <philipk@posteo.net>
Allow specifying the VC backend used by 'package-vc-install'
* lisp/emacs-lisp/package-vc.el (package-vc-install): Add argument BACKEND.
2022-10-28 Philip Kaludercic <philipk@posteo.net>
Update handling for new elpa-packages.eld format
* lisp/emacs-lisp/package-vc.el (package-vc-elpa-packages-version):
Add constant.
(package-vc-archive-data-alist): Add variable.
(package-vc--read-archive-data): Separate package specifications from
metadata.
(package-vc-unpack): Check archive metadata.
2022-10-28 Alan Mackenzie <acm@muc.de>
CC Mode: Fontify cast types without adding them to c-found-types
* lisp/progmodes/cc-engine.el (c-forward-type): Test for the special new
value `just-one' of c-promote-possible-types, and if found, fontify the type,
but don't add it to c-found-types.
(c-forward-decl-or-cast-1): Add the new &optional parameter inside-macro.
Whilst checking for a cast construct, analyze the text following the closing
paren more rigorously.
Check for, and allow, the closing paren of a macro arglist before the putative
cast construct.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): In the lambda
function, pass the parameter inside-macro to c-forward-decl-or-cast-1.
* lisp/progmodes/cc-langs.el (c-primary-expr-regexp-details): New
c-lang-defvar which calculates `c-primary-expr-regexp' and three match
numbers for various sub-expressions in the regexp.
(c-primary-expr-regexp): Now extracted from `c-primary-expr-regexp-details'.
(c-per-++---match, c-per-&*+--match, c-per-\(-match): New
c-lang-defconsts/vars extracted from `c-primary-expr-regexp-details'.
2022-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
cconv.el: Fix regression in cconv-tests-interactive-closure-bug51695
The new code to make interpreted closures safe-for-space introduced
a regression in `cconv-tests-interactive-closure-bug51695`, only seen
when using TEST_LOAD_EL.
A few other issues were found and fixed along the way.
* lisp/emacs-lisp/cconv.el (cconv-fv): Change calling convention and
focus on finding the free variables.
(cconv-make-interpreted-closure): New function.
* lisp/loadup.el: Use `compiled-function-p` rather than
`byte-code-function-p` so we also use safe-for-space interpreted
closures when we build with native compilation.
(internal-make-interpreted-closure-function):
Use `cconv-make-interpreted-closure`.
* src/eval.c (syms_of_eval): Rename `internal-filter-closure-env-function`
to `internal-make-interpreted-closure-function`.
(Ffunction): Let that new var build the actual closure.
* test/lisp/emacs-lisp/cconv-tests.el
(cconv-tests-interactive-closure-bug51695): Test specifically the
interpreted case.
2022-10-28 Jonas Bernoulli <jonas@bernoul.li>
* lisp/transient.el: Update to package version v0.3.7-173-g81b29ca
2022-10-28 Po Lu <luangruo@yahoo.com>
Improve Drag and Drop preamble in the Lisp reference manual
* doc/lispref/frames.texi (Drag and Drop): Reword contents and
clear up some ambiguities and redundancies.
2022-10-28 Stefan Kangas <stefankangas@gmail.com>
Minor doc fixes in treesit.el
* lisp/treesit.el (treesit-font-lock-rules)
(treesit-font-lock-settings): Minor doc fixes.
2022-10-28 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/re-builder.el: Cosmetic changes
(reb-valid-string): Declare it risky so the mode-line will obey its
text-properties.
(reb-lisp-syntax-p): No need to make it `defsubst`.
(reb-target-value): New function to replace the
`reb-target-binding` macro. Adjust all callers.
(reb-auto-update): Give a more informative error message than just
"invalid" and give it a warning face.
(reb-update-regexp): Always update `reb-regexp-src` (it's harmless),
rather than only when it's necessary (reduces the need for advice in pcre.el).
2022-10-28 Jonas Bernoulli <jonas@bernoul.li>
Include more information in error data for sqlite errors
Introduce a new 'sqlite-error' and use it for all errors signaled in
'src/sqlite.c', except those that already used 'sqlite-locked-error'.
Include the values of 'sqlite3_errcode', 'sqlite3_extended_errcode',
'sqlite3_errstr' and 'sqlite3_errmsg' in the error data.
* src/sqlite.c (load_dll_functions): Load 'sqlite3_extended_errcode'.
(sqlite-load-extension): Use 'xsignal1' as required by argument type.
(syms_of_sqlite): Introduce a new error type 'sqlite-error'.
(check_sqlite, sqlite-open, bind_values, sqlite-execute)
(sqlite-select, sqlite-load-extension, sqlite-next): Use it.
(sqlite_prepare_errdata): New function.
(sqlite_prepare_errmsg): Remove function.
(sqlite-execute, sqlite-select): Use new function.
(sqlite-locked-error): Derive from 'sqlite-error'.
2022-10-28 Alan Mackenzie <acm@muc.de>
CC Mode: Fix wrong fontification of enum foo bar; in Objective C Mode
This fixes bug #58795 and bug #58796.
* lisp/progmodes/cc-langs.el (c-type-prefix-kwds): Add the missing entry for
objc.
2022-10-28 Payas Relekar <relekarpayas@gmail.com>
Bump version to 2.4.3
2022-10-28 Po Lu <luangruo@yahoo.com>
Simplify scroll valuator reset handling
* src/xterm.c (xi_populate_device_from_info)
(xi_reset_scroll_valuators_for_device_id, xi_handle_device_changed)
(handle_one_xevent):
* src/xterm.h (struct xi_scroll_valuator_t): Get rid of
`pending_enter_reset', which was extremely convoluted and kept
hitting server bugs. Now, valuators are reset upon all crossing
events.
2022-10-28 Po Lu <luangruo@yahoo.com>
Clean up some xwidgets code
* src/xterm.c (handle_one_xevent): [HAVE_XWIDGETS]: Fix coding
style and remove extra ifdefs. Also avoid redundant frame
lookups in some cases.
2022-10-28 Po Lu <luangruo@yahoo.com>
Fix Haiku subprocess support
* src/callproc.c: Disable posix_spawn on Haiku until some things
are fixed.
2022-10-28 Po Lu <luangruo@yahoo.com>
Fix build without Cairo FreeType and fontconfig support
* src/xsettings.c (apply_xft_settings): Don't enable Xft code
unless Cairo FreeType support is present. (bug#58830)
2022-10-28 Yuan Fu <casouri@gmail.com>
Reflect tree-sitter indent rule presets change in manual
* doc/lispref/modes.texi (Parser-based Indentation): String
equivalence checks are changed to regexp matching.
2022-10-28 Theodor Thornhill <theo@thornhill.no>
Improve tree-sitter indent rules in ts-mode and js-mode
* lisp/progmodes/js.el (js--treesit-indent-rules)
* lisp/progmodes/ts-mode.el (ts-mode--indent-rules): Add more rules.
(ts-mode): Create parser.
2022-10-28 Yuan Fu <casouri@gmail.com>
Add some js-mode tree-sitter indent rules
* lisp/progmodes/js.el (js--treesit-indent-rules): Add rules and a let
form.
2022-10-28 Yuan Fu <casouri@gmail.com>
Remove tree-sitter-indent's integration with cc-mode
Also minor improvement of tree-sitter-indent error messaging.
* lisp/progmodes/js.el (js--treesit-indent-rules): Fix it so it works
with the new presets (which expects regexps).
(js--treesit-cc-indent-rules): Remove variable.
(js-mode): Go back to js--treesit-indent-rules.
* lisp/treesit.el (treesit-indent): Don't report error message when
ANCHOR or OFFSET is nil: let treesit-simple-indent display the
message.
(treesit-simple-indent): Remove cc-mode integration. Display error
message when no rules matches.
2022-10-28 Yuan Fu <casouri@gmail.com>
* configure.ac (WINDOW_SYSTEM_OBJ): Move tree-sitter placement.
2022-10-28 Wamm K. D <jaft.r@outlook.com>
Fix failing test for package Hierarchy
This fixes a typo in one of the tests of Hierarchy which was causing
the test to fail.
* test/lisp/emacs-lisp/hierarchy-tests.el (hierarchy-delayed-add-trees):
Fix typo.
2022-10-28 Vincent Bernat <bernat@luffy.cx> (tiny change)
Fix detection of DPI changes in builds without Xft
* src/xsettings.c (apply_xft_settings) [!HAVE_XFT]: Support
XSETTINGS changes in non-XFT builds. (Bug#43128)
2022-10-28 Payas Relekar <relekarpayas@gmail.com>
bind-key.el: Bump version for ELPA
2022-10-28 Protesilaos Stavrou <info@protesilaos.com>
Update to modus-themes version 3.0.0
* doc/misc/modus-themes.org
(Option for red-green color deficiency or deuteranopia)
(Option for more bold constructs, Option for more italic constructs)
(Option for font mixing, Option for box buttons)
(Option for mode line presentation)
(Option for accented background in tab interfaces)
(Option for completion framework aesthetics, Option for mail citations)
(Option for line numbers, Option for mouseover effects)
(Option for diff buffer looks, Option for org-mode block styles)
(Option for Org agenda constructs)
(Option for the headings' overall style)
(Option for variable-pitch font in UI elements, Note on SHR fonts):
Revise markup of "non-nil" so that it is rendered properly in texinfo.
(Option for fringe visibility, Option for line highlighting): Reword
description of user option.
(Full support for packages or face groups): Update list of supported
packages or face groups.
(Note on ERC escaped color sequences)
(What is the best setup for legibility?)
(Port the Modus themes to other platforms?): Prefer American English.
(Note on pdf-tools link hints): Use double spacing between sentences
(Acknowledgements): Update list of names that have contributed to the
project, which was user feedback in this case.
* etc/themes/modus-themes.el (modus-themes, modus-themes-faces):
Reword doc string.
(modus-themes--version): Update to current version.
(modus-themes-version): Refine function definition.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected)
(modus-themes-completion-key-binding, modus-themes-intense-markup)
(modus-themes--heading-weights, modus-themes--completion): Delete
obsolete forms, which were deprecated many months/version ago.
(modus-themes-fringes, modus-themes-completions)
(modus-themes-hl-line): Update default value and reword doc string
accordingly.
(modus-themes-faces): Update list of supported faces and their
attributes.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Update version header.
Complete release notes: <https://protesilaos.com/codelog/2022-10-28-modus-themes-3-0-0/>.
2022-10-27 John Wiegley <johnw@newartisans.com>
Merge pull request from andreyorst/face-spec-set
GitHub-reference: https://github.com/jwiegley/use-package/issues/1004
2022-10-27 Wamm K. D <jaft.r@outlook.com>
Allow Hierarchy to delay computation of children
This adds an option to allow callers to specify that computing
the children of the hierarchy should be delayed to when the
user calls for them, by utilizing the tree-widget :expander
property.
* lisp/emacs-lisp/hierarchy.el (hierarchy-add-tree)
(hierarchy-add-trees): Add parameter 'delay-children-p'.
* lisp/emacs-lisp/hierarchy.el
(hierarchy--create-delayed-tree-widget): Add function.
* lisp/emacs-lisp/hierarchy.el (hierarchy-convert-to-tree-widget):
Utilize ':expander' if delaying children. (Bug#55900)
* test/lisp/emacs-lisp/hierarchy-tests.el: Add tests for
delayed-children functionality.
2022-10-27 kobarity <kobarity@gmail.com>
Disable completion/ElDoc/FFAP when Python program is running
* lisp/progmodes/python.el (python-completion-at-point)
(python-ffap-module-path, python-eldoc--get-doc-at-point): Add check
using `python-util-comint-end-of-output-p'.
(python-util-comint-end-of-output-p): New function.
* test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt):
Use `python-util-comint-end-of-output-p'.
(python-completion-at-point-while-running-1)
(python-ffap-module-path-1)
(python-ffap-module-path-while-running-1)
(python-eldoc--get-doc-at-point-1)
(python-eldoc--get-doc-at-point-while-running-1): New tests.
(Bug#58713)
2022-10-27 Andrea Monaco <andrea.monaco@autistici.org>
Allow applying Rmail summary filters consecutively
* lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs):
New variable.
(rmail-summary-apply-filters-consecutively): New user option.
(rmail-summary-fill-displayed-messages, rmail-summary-negate): New
functions.
(rmail-summary-by-labels, rmail-summary-by-recipients)
(rmail-summary-by-regexp, rmail-summary-by-topic)
(rmail-summary-by-senders): Obey
'rmail-summary-apply-filters-consecutively'.
KEEP-FILTERING, to narrow the existing filtered summary.
* etc/NEWS: Announce the change.
2022-10-27 Eli Zaretskii <eliz@gnu.org>
Revert "Allow applying filters to summary consecutively"
This reverts commit c8b9ba5fa1bf3a20b9b08a553ad088ca33f3d1ba.
2022-10-27 Andrea Monaco <andrea.monaco@autistici.org>
Allow applying filters to summary consecutively
* lisp/mail/rmailsum.el (rmail-summary-currently-displayed-msgs):
New variable.
(rmail-summary-fill-displayed-messages, rmail-summary-negate): New
functions.
(rmail-summary-by-labels, rmail-summary-by-recipients)
(rmail-summary-by-regexp, rmail-summary-by-topic)
(rmail-summary-by-senders): Accept an additional argument
KEEP-FILTERING, to narrow the existing filtered summary.
* etc/NEWS: Announce the change.
2022-10-27 Eli Zaretskii <eliz@gnu.org>
Avoid recentering when point enters invisible text at BOL
* src/xdisp.c (try_cursor_movement): Don't say we must scroll when
point is inside invisible text at beginning of a glyph row.
(Bug#58793)
2022-10-27 Stefan Kangas <stefankangas@gmail.com>
Minor copy-edits in tree-sitter docs
* doc/lispref/parsing.texi (Parsing Program Source): Improve wording.
2022-10-27 Po Lu <luangruo@yahoo.com>
Fix reporting of iconic state on old window managers
* src/xterm.c (x_handle_wm_state): Handle IconicState if the
window manager does not support _NET_WM_STATE_HIDDEN.
2022-10-27 Stephen Leake <stephen_leake@stephe-leake.org>
Fix auto-insert-alist ada-mode entry to match current ELPA ada-mode
2022-10-27 John Wiegley <johnw@newartisans.com>
Merge pull request from bhankas/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/1006
2022-10-26 Payas Relekar <relekarpayas@gmail.com>
Update version to 2.4.2
In preparation for inclusion to GNU ELPA.
2022-10-26 Yuan Fu <casouri@gmail.com>
Plug tree-sitter-simple-indent into c-offset-alist
Now tree-sitter indentation can produce a cc-engine syntax symbol and
use c-offset-alist to compute the offset. Catch: line-up functions
don't work with tree-sitter.
* lisp/progmodes/js.el (js--treesit-cc-indent-rules): New variable.
(js-mode): Use cc-indent rules by default.
* lisp/treesit.el (treesit-simple-indent-presets): Consider types as
regexp now. New matchers: n-p-gp, field-is, top-level, catch-all.
New anchors: nth-sibling, grand-parent, and, or, not, list.
first-sibling now returns the actual first sibling rather than the
first named sibling.
2022-10-26 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-node-top-level-p): New argument TYPE.
2022-10-26 Yuan Fu <casouri@gmail.com>
Generalize js--treesit-imenu-top-level-p
* lisp/progmodes/js.el (js--treesit-imenu-top-level-p): Move.
(js--treesit-font-lock-settings): Fix usage.
* lisp/treesit.el (treesit-node-top-level-p): Move to here.
2022-10-26 Yuan Fu <casouri@gmail.com>
Add tree-sitter navigation support to python-mode
* lisp/progmodes/python.el (python-mode): Set
treesit-defun-type-regexp.
2022-10-26 Yuan Fu <casouri@gmail.com>
Add tree-sitter imenu support for js-mode and ts-mode
js-mode's current imenu is pretty plain and incomplete, so I took the
liberty to add a bit more flair to it.
* lisp/progmodes/js.el (js--treesit-imenu-type-alist): New variable.
(js--treesit-imenu-top-level-p)
(js--treesit-imenu-label)
(js--treesit-imenu-1)
(js--treesit-imenu): New functions.
2022-10-26 Yuan Fu <casouri@gmail.com>
Fix tree-sitter navigation
* lisp/treesit.el (treesit-search-forward-goto): Track current
position with a local variable instead of (point). Clean up the
condition forms.
(treesit-beginning-of-defun): Fix traverse direction.
2022-10-26 Stefan Kangas <stefankangas@gmail.com>
Fix typo in textsec-restriction-level
* lisp/international/textsec.el (textsec-restriction-level):
* test/lisp/international/textsec-tests.el (test-restriction-level):
Fix typo in symbol name `moderately-restrictive'.
2022-10-26 Stefan Kangas <stefankangas@gmail.com>
Declare variable Info-minibuf-history
* lisp/info.el (Info-minibuf-history): Declare variable.
(Bug#58786)
2022-10-26 John Wiegley <johnw@newartisans.com>
Merge pull request from bhankas/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/1005
2022-10-26 Filipp Gunbin <fgunbin@fastmail.fm>
Compare addresses case-insensitively in message-update-smtp-method-header
* lisp/gnus/message.el (message-update-smtp-method-header): Compare
addresses case-insensitively.
2022-10-26 Alan Mackenzie <acm@muc.de>
c-find-decl-spots: Replace an arbitrary search limit by a parameter
The old arbitrary limit led to errors thrown whilst fontifying large areas of
syntactic whitespace containing "#undef", as in src/comp.c.
* lisp/progmodes/cc-engine.el (c-find-decl-spots): Replace the limit argument
to two calls of c-forward-syntactic-ws by the parameter `cfd-limit'.
2022-10-26 Mauro Aranda <maurooaranda@gmail.com>
Make completion-category-overrides choices dynamic
See https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html
* lisp/minibuffer.el (completion--update-styles-options): New internal
function.
(completion--styles-type): Use it.
2022-10-26 Eli Zaretskii <eliz@gnu.org>
Fix rare problems with current-column when text is invisible
* src/indent.c (scan_for_column, compute_motion): Don't miss
compositions when the position to check for composition happens to
be inside invisible text. (Bug#58791)
2022-10-26 Po Lu <luangruo@yahoo.com>
Prevent gui_consider_frame_title from restoring dead top frames
* src/xdisp.c (unwind_format_mode_line): Check that
old_top_frame is live before selecting it. It could have been
deleted, which leads to signals when the post-command-hook
installed by xterm-set-window-title runs upon the last frame of
a terminal being deleted.
(gui_consider_frame_title): Rearrange code to be more
understandable.
2022-10-26 Basil L. Contovounesios <contovob@tcd.ie>
Pacify recent unused/ignored lexvar warnings
Lexvars with special names like 'ignored' or 'unused' are no longer
treated specially.
* lisp/ansi-color.el (ansi-color-process-output):
* lisp/cus-edit.el (customize-apropos-options):
* lisp/cus-theme.el (customize-create-theme):
* lisp/dired-aux.el (dired-hide-all):
* lisp/emacs-lisp/crm.el (crm--choose-completion-string):
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-revert):
* lisp/ido.el (ido-choose-completion-string):
* lisp/international/mule-diag.el (describe-font-internal):
* lisp/mail/sendmail.el (sendmail-user-agent-compose):
* lisp/progmodes/fortran.el (fortran-uncomment-region):
* lisp/progmodes/prolog.el (prolog-inferior-guess-flavor):
* lisp/progmodes/ruby-mode.el (ruby-indent-line, ruby-indent-exp):
* lisp/url/url.el (url-mm-callback):
* lisp/xwidget.el (xwidget-webkit-history-reload): Prepend an
underscore to unused function parameter names.
* lisp/emacs-lisp/cconv.el (cconv--dummy-var): Remove unused
constant.
* lisp/files.el (hack-local-variables-filter): Remove unused lexvar.
2022-10-26 Po Lu <luangruo@yahoo.com>
Clean up some event handling code
* src/xterm.c (handle_one_xevent): Use dpyinfo where
FRAME_DISPLAY_INFO could be substituted for it.
2022-10-26 Michael Albinus <michael.albinus@gmx.de>
Modernize `auto-revert-notify-exclude-dir-regexp'
* lisp/autorevert.el (auto-revert-notify-exclude-dir-regexp): Use `rx'
and `mounted-file-systems'.
2022-10-26 Mattias Engdegård <mattiase@acm.org>
Dynamic validation of styles in completion-category-overrides
The type of the defcustom completion-category-overrides must be able
to accommodate dynamic changes to completion-styles-alist, because
some packages (eglot) make their own additions.
This change fixes a failure in test-custom-opts. See discussion at:
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01969.html
* lisp/minibuffer.el (completion--styles-type):
Add an "Other" case that accepts any symbol which is then validated
dynamically against completion-styles-alist.
2022-10-26 Philip Kaludercic <philipk@posteo.net>
Add support for :release-rev in 'package-vc-archive-spec-alist'
* lisp/emacs-lisp/package-vc.el (package-vc-archive-spec-alist):
Update docstring.
(package-vc-install): Use :release-rev if invoked with a prefix argument.
2022-10-26 Philip Kaludercic <philipk@posteo.net>
Allow nil as a valid value for 'ecomplete-filter-regexp'
* lisp/ecomplete.el (ecomplete-filter-regexp): Replace user option type.
Reported by Mattias Engdegård.
2022-10-26 Po Lu <luangruo@yahoo.com>
Fix Haiku build for recent changes to system headers
* src/callproc.c (emacs_posix_spawn_init_actions): Do not use
posix_spawn_file_actions_addchdir on Haiku; it links but does
not work.
2022-10-26 Andrea Corallo <andrea.corallo@arm.com>
Set `comp-no-spawn' earlier using -no-comp-spawn
* src/emacs.c (standard_args): Add '-no-comp-spawn' cmd line option.
* lisp/startup.el (command-line): Parse '-no-comp-spawn' cmd line
option.
* lisp/emacs-lisp/comp.el (comp-run-async-workers, comp-final):
Use '-no-comp-spawn'.
2022-10-26 Yuan Fu <casouri@gmail.com>
* src/treesit.c (treesit_search_dfs): Fix traverse algorithm.
2022-10-25 Yuan Fu <casouri@gmail.com>
* src/treesit.c (treesit_search_forward): Fix traverses algorithm.
2022-10-25 Yuan Fu <casouri@gmail.com>
Don't disable parse cache in tree-sitter activated js-mode
* lisp/progmodes/js.el (js-mode): Move parse cache setup back.
2022-10-25 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-simple-indent-rules): Make buffer-local.
2022-10-25 Yuan Fu <casouri@gmail.com>
Fix treesit-language-at
* lisp/treesit.el (treesit-language-at-point-function): New local
variable.
(treesit-language-at): Change to use
treesit-language-at-point-function rather than trying each parser
one-by-one.
* doc/lispref/parsing.texi (Multiple Languages): Update manual.
2022-10-25 Dmitry Gutov <dgutov@yandex.ru>
vc-hg-checkin-patch: Add implementation for Hg
* lisp/vc/vc-hg.el (vc-hg-checkin-patch): Add Hg-specific
implementation (bug#52349), like suggested in
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01533.html.
(vc-hg--extract-headers): Extract from vc-hg-checkin.
2022-10-25 Yuan Fu <casouri@gmail.com>
New tree-sitter toggle scheme
This version: central variable, everything controlled by
treesit-settings. Major mode sets up tree-sitter/non-tree-sitter
in a conditional branch, based on the setting.
* lisp/treesit.el (treesit-settings): New option.
(treesit-defun-type-regexp): Change docstring.
(treesit-mode-supported)
(treesit-required-languages)
(treesit--local-variable-backup): Remove variables.
(treesit--backup-local-variable)
(treesit-mode)
(global-treesit-mode--turn-on)
(global-treesit-mode): Remove functions.
(treesit--setting-for-mode): New function.
(treesit-ready-p): New argument MODE, changed REPORT to QUIET, and
LANGUAGEs to LANGUAGE (now it can be a single symbol or a list of
them).
(treesit-major-mode-setup): New function. Mostly comes from
treesit-mode.
* test/src/treesit-tests.el (treesit-misc): New test.
* lisp/progmodes/python.el (python-mode): Move some setup code into
the conditional branch at the end.
* lisp/progmodes/js.el (js-json-mode)
(js-mode): Move some setup code into the conditional branch at the
end.
* lisp/progmodes/ts-mode.el: Move tree-sitter setup into the
conditional branch.
2022-10-25 Andreas Schwab <schwab@linux-m68k.org>
Ignore non-base64 junk when decoding MIME
* src/fns.c (Fbase64_decode_region): Add optional argument
IGNORE-INVALID and pass down to base64_decode_1.
(Fbase64_decode_string): Likewise.
(base64_decode_1): Add argument IGNORE_INVALID.
* doc/lispref/text.texi (Base 64): Document them.
* lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding):
Ignore any junk when decoding base64.
2022-10-25 João Guerra <joca.bt@gmail.com> (tiny change)
* lisp/tab-line.el (tab-line-auto-hscroll): Set word-wrap to nil (bug#58740).
2022-10-25 Stefan Monnier <monnier@iro.umontreal.ca>
(Ffunction): Make interpreted closures safe for space
Interpreted closures currently just grab a reference to the complete
lexical environment, so (lambda (x) (+ x y)) can end up looking like
(closure ((foo ...) (y 7) (bar ...) ...)
(x) (+ x y))
where the foo/bar/... bindings are not only useless but can prevent
the GC from collecting that memory (i.e. it's a representation that is
not "safe for space") and it can also make that closure "unwritable"
(or more specifically, it can cause the closure's print
representation to be u`read`able).
Compiled closures don't suffer from this problem because `cconv.el`
actually looks at the code and only stores in the compiled closure
those variables which are actually used.
So, we fix this discrepancy by letting the existing code in `cconv.el` tell
`Ffunction` which variables are actually used by the body of the
function such that it can filter out the irrelevant elements and
return a closure of the form:
(closure ((y 7)) (x) (+ x y))
* lisp/loadup.el: Preload `cconv` and set
`internal-filter-closure-env-function` once we have a usable `cconv-fv`.
* lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Adjust to new
calling convention of `cconv-closure-convert`.
(byte-compile-not-lexical-var-p): Delete function, moved to `cconv.el`.
(byte-compile-bind): Use `cconv--not-lexical-var-p`.
* lisp/emacs-lisp/cconv.el (cconv--dynbound-variables): New var.
(cconv-closure-convert): New arg `dynbound-vars`
(cconv--warn-unused-msg): Remove special case for `ignored`,
so we don't get confused when a function uses an argument called
`ignored`, e.g. holding a list of things that it should ignore.
(cconv--not-lexical-var-p): New function, moved from `bytecomp.el`.
Don't special case keywords and `nil` and `t` since they are already
`special-variable-p`.
(cconv--analyze-function): Use `cconv--not-lexical-var-p`.
(cconv--dynbindings): New dynbound var.
(cconv-analyze-form): Use `cconv--not-lexical-var-p`.
Remember in `cconv--dynbindings` the vars for which we used
dynamic scoping.
(cconv-analyze-form): Use `cconv--dynbound-variables` rather than
`byte-compile-bound-variables`.
(cconv-fv): New function.
* src/eval.c (Fsetq, eval_sub): Remove optimization designed when
`lexical-binding == nil` was the common case.
(Ffunction): Use `internal-filter-closure-env-function` when available.
(eval_sub, Ffuncall): Improve error info for `excessive_lisp_nesting`.
(internal-filter-closure-env-function): New defvar.
2022-10-25 Filipp Gunbin <fgunbin@fastmail.fm>
Move required options out of ldap-ldapsearch-args
* lisp/net/ldap.el (ldap-ldapsearch-args, ldap-search-internal): Move
"-LLL" and "-tt" options as they're required for the code to work
properly.
2022-10-25 Stefan Kangas <stefankangas@gmail.com>
eglot: Prefer ensure-list on Emacs 28 or later
* lisp/progmodes/eglot.el (eglot--ensure-list): Make into alias
for 'ensure-list' on Emacs 28 or later.
2022-10-25 Michael Albinus <michael.albinus@gmx.de>
Handle context changes in Tramp kubernetes method
* doc/misc/tramp.texi (Inline methods): Remove note about cache reset.
(File name completion): Add tramp-completion-use-cache.
* etc/NEWS: Add 'tramp-completion-use-cache'.
* lisp/net/tramp-cache.el (tramp-completion-use-cache): New defcustom.
(tramp-parse-connection-properties): Use it.
* lisp/net/tramp-container.el (tramp-docker--completion-function)
(tramp-kubernetes--completion-function): Ensure the processes run
locally.
(tramp-kubernetes--current-context-data): New defun.
(tramp-methods) <kubernetes>: Add `tramp-config-check'.
* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Handle `tramp-login-args'.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
2022-10-25 Payas Relekar <relekarpayas@gmail.com>
Update copyright for submission to ELPA
- Update year to 2022
- Set copyright to Free Software Foundation, Inc.
2022-10-25 Robert Pluim <rpluim@gmail.com>
Fix eglot defcustom types
* lisp/progmodes/eglot.el (eglot-autoreconnect): Allow for 'nil'.
(eglot-connect-timeout): Allow for 'nil' and add descriptions.
(eglot-sync-connect): Split boolean into 'nil' and 't' and add descriptions.
(eglot-confirm-server-initiated-edits): Change 'symbol' type to 'const'.
2022-10-25 Alan Mackenzie <acm@muc.de>
Test face name variables are bound before using them in cc-fonts.el
This fixes bug #58641.
Also, set c-reference-face-name to font-lock-constant face in preference to
c-label-face-name.
* lisp/progmodes/cc-fonts.el (c-preprocessor-face-name, c-label-face-name)
(c-constant-face-name, c-reference-face-name): Test variables with the same
name as font-lock faces are bound before accessing their values.
(c-reference-face-name): Use font-lock-constant face in preference to
c-label-face-name.
2022-10-25 Robert Pluim <rpluim@gmail.com>
* lisp/progmodes/eglot.el: Remove not very funny joke.
2022-10-25 Lin Sun <sunlin7@hotmail.com>
lisp.h: Remove unnecessary preprocessor conditions
This removes the HAVE_PDUMPER || HAVE_UNEXEC condition
of gflags.will_dump_, which gets in the way when Emacs
is built without any dumping method. (Bug#58708)
2022-10-25 Po Lu <luangruo@yahoo.com>
Fix drag-and-drop bugs on Lucid build
Also, optimize Fx_translate_coordinates to avoid excessive calls
to _XReply.
* lisp/x-dnd.el (x-dnd-get-drop-rectangle): Return empty drop
rectangle if posn-area.
* src/xfns.c (Fx_translate_coordinates): Accept arg
`require_child'. If not set, allow optimizations based on
cached position data.
* src/xselect.c (x_handle_dnd_message): Use
x_translate_coordinates.
* src/xterm.c (x_translate_coordinates): Export function.
(x_handle_translate_coordinates): New function.
(handle_one_xevent): Fix coding style.
* src/xterm.h: Update prototypes.
2022-10-25 Brian Leung <leungbk@posteo.net>
eglot-server-programs: Account for new ts-mode
At the time of writing, this exists only in the unmerged tree-sitter
branch. It is not harmful to include, however.
* lisp/progmodes/eglot.el (eglot-server-programs): Add new major mode
to be used with the typescript-language-server. (Bug#58769)
2022-10-25 Brian Leung <leungbk@posteo.net>
eglot-server-programs: Account for new js-json-mode
js-json-mode derives from js-mode, so this reordering is necessary to
prevent js-mode's eglot server from starting if a user has something
like this in their config:
(add-to-hook 'js-json-mode #'eglot-ensure)
(add-to-hook 'js-mode #'eglot-ensure)
* lisp/progmodes/eglot.el (eglot-server-programs): Move the
json-language-server info before the entry for js-mode, and add on
js-json-mode. (Bug#58769)
2022-10-25 Robert Pluim <rpluim@gmail.com>
Improve the eglot info documentation
* doc/misc/eglot.texi (Eglot and Buffers): Improve phrasing.
(Eglot Commands): 'reference of' -> 'reference for' and a typo fix.
(Eglot Variables): Add markup for values.
(Customizing Eglot): Grammar fixes.
(Troubleshooting Eglot): Improve text.
2022-10-25 João Távora <joaotavora@gmail.com>
Fix M-x eglot breakage due to typo
* lisp/progmodes/eglot.el (eglot): Fix bug.
2022-10-25 Stephen Leake <stephen_leake@stephe-leake.org>
* lisp/progmodes/eglot.el (eglot): Ensure managed-major-mode is a list
2022-10-24 Yuan Fu <casouri@gmail.com>
* lisp/progmodes/ts-mode.el (ts-mode): Fix font-lock setup.
2022-10-24 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/progmodes/compile.el (compilation-mode-line-errors): Use `defvar`
This is not really a constant, e.g. it's modified in `grep.el`.
2022-10-24 Eli Zaretskii <eliz@gnu.org>
Unbreak the build broken by tab-bar.el changes
Without this change, compiling tab-bar.el errors out:
In tab-bar--load-buttons:
tab-bar.el:161:18: Warning: reference to free variable `tab-bar-new'
tab-bar.el:174:6: Error: `define-icon' defined after use in
(define-icon tab-bar-close nil (cons (cons 'image
(cons "tabs/close.xpm"
(cons :margin (cons tab-bar-button-margin '(:ascent center)))))
'((text " x"))) "Icon for closing the clicked tab."
:version "29.1" :help-echo "Click to close tab")
(missing `require' of a library file?)
tab-bar.el:174:18: Warning: reference to free variable `tab-bar-close'
* lisp/tab-bar.el (eval-when-compile): Require 'icons.
2022-10-24 Mattias Engdegård <mattiase@acm.org>
* doc/lispref/searching.texi (Rx Constructs): Elaborate intent.
Suggested by Michael Heerdegen (bug#58727).
2022-10-24 Po Lu <luangruo@yahoo.com>
Fix focus stealing in the Emacs server for old window managers
* src/xterm.c (x_focus_frame): Apply focus stealing preference
to non-EWMH focus as well. Otherwise frames get raised but not
focused.
2022-10-24 Mattias Engdegård <mattiase@acm.org>
Clarify RX... semantics in manual (bug#58727)
Suggested by Michael Heerdegen.
* doc/lispref/searching.texi (Rx Constructs): Explain implicit
concatenation of `RX...`.
2022-10-24 Martin Jerabek <om@mailservice.ms> (tiny change)
Repair nXML handling of URIs with hex escapes (bug#58718)
* lisp/nxml/rng-uri.el (rng-uri-file-name-1): Add missing backslashes.
(rng-uri-unescape-unibyte, rng-uri-unescape-unibyte-match):
Convert hex-encoded character to string.
2022-10-24 Mattias Engdegård <mattiase@acm.org>
Fix regexp matching with atomic strings and optimised backtracking
This bug occurs when an atomic pattern is matched at the end of
a string and the on-failure-keep-string-jump optimisation is
in effect, as in:
(string-match "\\'\\(?:ab\\)*\\'" "a")
which succeeded but clearly should not (bug#58726).
Reported by Michael Heerdegen.
* src/regex-emacs.c (PREFETCH): Add reset parameter.
(re_match_2_internal): Use it for proper atomic pattern treatment.
* test/src/regex-emacs-tests.el (regexp-atomic-failure): New test.
2022-10-24 Robert Pluim <rpluim@gmail.com>
Remove erroneous @w in yank-media cross ref
I added this by mistake, there's actually no need to keep the cross
ref on the same line.
* doc/emacs/killing.texi (Clipboard): Remove @w around @pxref.
2022-10-24 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Use customizable button icons (bug#51309, bug#51648)
* lisp/tab-bar.el (tab-bar--load-buttons): Use 'define-icon' to
define icons for tab-bar-new, tab-bar-close, tab-bar-menu-bar.
Also set tab-bar-new-button, tab-bar-close-button, tab-bar-menu-bar-button
to the specified icon-string.
(tab-bar-history-mode): Use 'define-icon' to
define icons for tab-bar-back, tab-bar-forward.
Also set tab-bar-back-button, tab-bar-forward-button
to the specified icon-string.
* lisp/emacs-lisp/icons.el (icons--create)<image>: Allow to easy
add new image props by using 'apply' on them. Add :margin.
2022-10-24 Juri Linkov <juri@linkov.net>
* lisp/minibuffer.el (completions-group-separator): Update :version.
2022-10-23 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-node-at): Remove argument LARGEST.
LARGEST returns the root node at BOB, finding the smallest node at
point and search upward is a better practice.
2022-10-23 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-parser-range-on): New function.
2022-10-23 Yuan Fu <casouri@gmail.com>
Fix treesit-beginning/end-of-defun
Now they always move to the top-level defun (i.e., skips nested ones).
* lisp/treesit.el (treesit--find-top-level-match): New function
(treesit-beginning-of-defun): Goes to the top-level match.
(treesit-end-of-defun): Simply move to the end of current match.
2022-10-23 Yuan Fu <casouri@gmail.com>
Make treesit-search-forward-goto accept a NODE argument
With NODE argument we can do
(setq node (treesit-search-forward-goto node))
And we can choose what node to pass to it (maybe we want to pass it
the largest node at point, rather than the smallest node, and in case
of multiple parsers, we can choose which parser to use).
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* lisp/treesit.el (treesit-search-forward-goto): Accept a NODE
argument.
2022-10-23 Yuan Fu <casouri@gmail.com>
Make treesit-node-at return the last leaf node at EOB
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* lisp/treesit.el (treesit-node-at): Add a (when node) form just to be
explicit, return the last leaf node if there is no node after POS.
2022-10-23 Yuan Fu <casouri@gmail.com>
Make treesit-node-child and fiends accept negative index
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* src/treesit.c (Ftreesit_node_child)
(Ftreesit_node_field_name_for_child): Accept and process negative
index.
2022-10-23 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-node-at): Add LARGEST argument.
2022-10-23 Yuan Fu <casouri@gmail.com>
Change function signiture of treesit search functions
Justification: We want to make the SIDE argument in
treesit-search-forward-goto optional, so I changed it to START.
It makes more sense for BACKWARD to follow START so two common
case, search for end forward and beginning backwards are
(treesit-search-forward-goto node pred)
(treesit-search-forward-goto node pred t t)
Then since we swapped BACKWARD and ALL for
treesit-search-forward-goto, it's best to swap them for
treesit-search-forward and treesit-search-subtree, too. And BACKWARD
will probably be used more frequently than ALL anyway.
* doc/lispref/parsing.texi (Retrieving Node): Resolve FIXME and update
function signitures.
* lisp/treesit.el (treesit-search-forward-goto): Change SIDE to
START, swap BACKWARD and ALL.
(treesit-beginning-of-defun)
(treesit-end-of-defun): Update use of treesit-search-forward-goto
* src/treesit.c (Ftreesit_search_subtree)
(Ftreesit_search_forward): Swap BACKWARD and ALL.
2022-10-23 Philip Kaludercic <philipk@posteo.net>
* doc/emacs/package.texi (Package from Source): Clarify prose
2022-10-23 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Pre-compute some frequent data for button icons (bug#57813)
(outline--button-icons): New buffer-local variable.
(outline-minor-mode): Set outline--button-icons.
Unify overlay name 'outline-margin' with 'outline-button'.
(outline--make-button-overlay, outline--make-margin-overlay)
(outline--insert-open-button, outline--insert-close-button): Remove functions.
(outline--create-button-icons, outline--insert-button): New functions
with code refactored from old functions. Add more support for icon faces.
(outline--fix-up-all-buttons): Use outline--insert-button.
(outline--fix-buttons-after-change): Unify overlay name
'outline-margin' with 'outline-button'.
* lisp/minibuffer.el (completions-group-separator): Change face
attribute :strike-through to :underline.
2022-10-23 Philip Kaludercic <philipk@posteo.net>
;Fix typo "pacakge" -> "package"
2022-10-23 Philip Kaludercic <philipk@posteo.net>
Extract separate function 'package-vc-guess-backend'
* lisp/emacs-lisp/package-vc.el (package-vc-guess-backend): New
function.
(package-vc-unpack): Use it.
(package-vc-sourced-packages-list): Use it.
(package-vc-install): Use it.
2022-10-23 Philip Kaludercic <philipk@posteo.net>
;Fix typo "heusitic" -> "heuristic"
2022-10-23 Philip Kaludercic <philipk@posteo.net>
Use user option 'package-vc-default-backend' when cloning
* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Respect
'package-vc-default-backend'.
2022-10-23 Philip Kaludercic <philipk@posteo.net>
Immediately check out the right branch or revision
* lisp/emacs-lisp/package-vc.el (package-vc-unpack) Use REV to avoid
checking out the wrong branch/revision first.
* lisp/vc/vc-bzr.el: Handle REV.
* lisp/vc/vc-git.el: Handle REV.
* lisp/vc/vc-hg.el: Handle REV.
* lisp/vc/vc-svn.el: Handle REV.
* lisp/vc/vc.el: Make BACKEND optional and add REV.
2022-10-23 Matt Armstrong <matt@rfc20.org>
Fix compiler warning about possible null pointer dereference
* src/itree.c (interval_tree_remove_fix): Use 'eassert' to both check
for non-null and suppress a compiler warning.
2022-10-23 Philip Kaludercic <philipk@posteo.net>
Add auxiliary function to query package specifications
* lisp/emacs-lisp/package-vc.el (package-vc-query-spec): Add
inline function.
2022-10-23 Po Lu <luangruo@yahoo.com>
Reduce duplicate code for creating "special windows"
* src/xterm.c (x_create_special_window): Define on all non-GTK
builds and all builds with XFixes.
(x_update_frame_user_time_window): Use x_create_special_window.
Also write a comment explaining what user time windows are.
* src/xterm.h: Fix style of `x_parse_color' prototype.
2022-10-23 Yuan Fu <casouri@gmail.com>
Fix infinite loop in treesit-search-forward-goto
* lisp/treesit.el (treesit-search-forward-goto): Remove UP argument.
* src/treesit.c (treesit_traverse_child_helper): New function.
(treesit_search_forward): Remove UP_ONLY and SKIP_START argument.
Don't traverse subtree of START. And after we've found the next
sibling/parent, go down to the first leaf node. Also change recursion
to loop.
(Ftreesit_search_forward): Change docstring, remove UP argument.
2022-10-23 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
f1f4a0c9d2 ; * doc/lispref/display.texi (Progress): Correct typo. (B...
2022-10-23 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
626525c29f ; Remove reference to non-existent Flymake function from m...
2022-10-22 Matt Armstrong <matt@rfc20.org>
Fix `get-pos-property' for the new overlay implementation.
Some of the trickier edge cases weren't handled properly. See
bug#58706.
* src/editfns.c (overlays_around): Extend the search range past POS by
one to fetch overlays beginning at POS. Fetch empty overlays, as they
may be extended by an insertion and thus be relevant to
`get-pos-property'. Make a note that the function now, unfortunately,
may return out of range overlays.
(Fget_pos_property): Deal with 'overlays_around' returning out of
range overlays.
2022-10-22 Matt Armstrong <matt@rfc20.org>
Add `get-pos-property' tests covering bug#58706
* test/src/buffer-tests.el (get-pos-property-overlay-beg): New test.
(get-pos-property-overlay-empty-rear-advance): ditto.
(get-pos-property-overlay-past-rear-advance): ditto.
(get-pos-property-overlay-at-narrowed-end): ditto.
2022-10-22 Yuan Fu <casouri@gmail.com>
Resolve FIXME's in tree-sitter manual sections
Pattern vs query: a query consists of many patterns. I tightened up
the use of pattern vs query in the manual, now there shouldn't be
ambiguities.
* doc/lispref/modes.texi (Parser-based Font Lock):
* doc/lispref/parsing.texi (Language Definitions): Resolve FIXME's.
2022-10-22 Basil L. Contovounesios <contovob@tcd.ie>
Improve error reporting of EUDC plist functions
* lisp/net/eudc.el (eudc--plist-member): Signal a more
informative wrong-type-argument instead of a generic error
(bug#58531#19, bug#58720).
* test/lisp/net/eudc-tests.el (eudc--plist-member)
(eudc-plist-member, eudc-plist-get, eudc-lax-plist-get):
Update tests accordingly.
2022-10-22 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Use 'outline-cycle' on buttons for 'RET' like 'TAB' uses.
(outline--make-button-overlay, outline--make-margin-overlay):
Use overlay keymap where RET and mouse-2 are bound to outline-cycle.
(outline--insert-open-button, outline--insert-close-button):
Move overlay keymap to outline--make-button-overlay and replace
bindings outline-hide-subtree/outline-show-subtree with outline-cycle.
2022-10-22 Juri Linkov <juri@linkov.net>
Unify outline-minor-mode-use-buttons with in-margins/insert values (bug#57813)
* doc/emacs/text.texi (Outline Mode): Remove outline-minor-mode-use-margins.
Document the values insert/in-margins of outline-minor-mode-use-buttons.
* lisp/help.el (describe-bindings):
Set outline-minor-mode-use-buttons to 'insert'.
* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common):
Set outline-minor-mode-use-buttons to 'in-margins'.
* lisp/outline.el (outline-minor-mode-use-buttons): Change :type
from 'buffer-predicate' to choice of const values nil/in-margins/t.
(outline--use-buttons, outline-minor-mode-insert-buttons)
(outline-minor-mode-use-margins, outline--use-margins): Remove variables.
(outline-minor-mode-highlight-buffer): Change overlay name
'outline-overlay' to 'outline-highlight'.
(outline-minor-mode): Simplify to handle possible values of
'outline-minor-mode-use-buttons' instead of using many variables.
(outline--make-button-overlay): Use value 'insert' of
'outline-minor-mode-use-buttons'.
(outline--insert-open-button, outline--insert-close-button)
(outline--fix-up-all-buttons, outline--fix-buttons-after-change):
Handle values of outline-minor-mode-use-buttons instead of using
many variables.
2022-10-22 Juri Linkov <juri@linkov.net>
* lisp/info.el (Info-toc-build): Remove message not needed anymore (bug#58634)
2022-10-22 Basil L. Contovounesios <contovob@tcd.ie>
Audit some plist uses with new predicate argument
* doc/lispref/lists.texi (Plist Access): Improve description of
default predicate.
* lisp/emacs-lisp/cl-extra.el (cl-getf, cl--set-getf): Assume
plist-member always returns a cons.
* lisp/emacs-lisp/gv.el (plist-get): Support new optional predicate
argument (bug#47425#91).
* lisp/emacs-lisp/map.el: Bump minor version.
(map--dispatch): Remove now that bug#58563 is fixed. Break two
remaining uses out into corresponding cl-defmethods.
(map--plist-p): Add docstring.
(map--plist-has-predicate, map--plist-member-1, map--plist-member)
(map--plist-put-1, map--plist-put): New definitions for supporting
predicate argument backward compatibly.
(map-elt): Fix generalized variable getter under a
predicate (bug#58531). Use predicate when given a plist.
(map-put): Avoid gratuitous warnings when called without the hidden
predicate argument. Improve obsoletion message.
(map-put!): Use predicate when given a plist.
(map-contains-key): Ditto. Declare forgotten
advertised-calling-convention (bug#58531#19).
(map--put): Group definition in file together with that of map-put!.
* lisp/files-x.el (connection-local-normalize-criteria): Simplify
using mapcan + plist-get.
* lisp/net/eudc.el (eudc--plist-member): New convenience function.
(eudc-plist-member, eudc-plist-get, eudc-lax-plist-get): Use it
instead of open-coding plist-member.
* src/fns.c (Fplist_get, plist_get, Fplist_put, plist_put): Pass the
plist element as the first argument to the predicate, for
consistency with assoc + alist-get.
(Fplist_member, plist_member): Move from widget to plist section.
Open-code the EQ case in plist_member, and call it from
Fplist_member in that case, rather than the other way around.
* test/lisp/apropos-tests.el (apropos-tests-format-plist): Avoid
polluting obarray.
* test/lisp/emacs-lisp/cl-extra-tests.el (cl-getf): Extend test with
generalized variables, degenerate plists, and improper lists.
* test/lisp/emacs-lisp/gv-tests.el: Byte-compile file; in the
meantime bug#24402 seems to have been fixed or worked around.
(gv-setter-edebug): Inhibit printing messages.
(gv-plist-get): Avoid modifying constant literals. Also test with a
predicate argument.
* test/lisp/emacs-lisp/map-tests.el (with-maps-do): Simplify
docstring.
(test-map-elt-testfn): Rename...
(test-map-elt-testfn-alist): ...to this. Also test with a predicate
argument.
(test-map-elt-testfn-plist, test-map-elt-gv, test-map-elt-signature)
(test-map-put!-plist, test-map-put!-signature)
(test-map-contains-key-signature, test-map-plist-member)
(test-map-plist-put): New tests.
(test-map-contains-key-testfn): Also test with a predicate argument.
(test-map-setf-alist-overwrite-key, test-map-setf-plist-insert-key)
(test-map-setf-plist-overwrite-key): Avoid modifying constant
literals.
(test-hash-table-setf-insert-key)
(test-hash-table-setf-overwrite-key): Fix indentation.
(test-setf-map-with-function): Make test more precise.
* test/lisp/net/eudc-tests.el: New file.
* test/lisp/subr-tests.el (test-plistp): Extend test with circular
list.
* test/src/fns-tests.el (test-cycle-equal, test-cycle-nconc): Move
from plist section to circular list section.
(plist-put/odd-number-of-elements): Avoid modifying constant
literals.
(plist-member/improper-list): Simplify.
(test-plist): Move to plist section. Also test with a predicate
argument.
2022-10-22 Eli Zaretskii <eliz@gnu.org>
Clean up tree-sitter sections of the ELisp manual
* doc/lispref/parsing.texi (Parsing Program Source):
* doc/lispref/modes.texi (Font Lock Mode)
(Parser-based Font Lock): Fix wording, punctuation, and markup.
Add index entries.
* lisp/treesit.el (treesit-node-at, treesit-language-at): Rename
argument POINT to POS.
2022-10-22 Po Lu <luangruo@yahoo.com>
Further fixes to menu event processing on no-toolkit builds
* src/xdisp.c (note_mouse_highlight): Return if a popup is
activated under the no-toolkit build as well.
* src/xmenu.c (pop_down_menu): Clear popup_activated_flag when
not on MS-DOS.
(x_menu_show): Set popup_activated_flag under X.
2022-10-22 Stefan Kangas <stefankangas@gmail.com>
* admin/notes/repo: Document feature and scratch branches.
2022-10-21 Matt Armstrong <matt@rfc20.org>
Fix a narrow-to-region vs. overlays-at bug
See bug#58703.
* src/buffer.c (overlays_in): Add a new TRAILING arg expressing the
behavior wanted by `overlays-at', namely to include all overlays
beginning at the POS passed to `overlays-at', even if POS is the end
of the narrowed region. Pass true and the search range is extended to
ZV+1 if END is greater than ZV, just as is done for EMPTY.
(overlays_at): Pass 'true' for the new trailing arg. At present this
is the only caller passing 'true'.
(mouse_face_overlay_overlaps): Pass 'false' for the new trailing arg.
(disable_line_numbers_overlay_at_eob): ditto.
(Foverlays_in): ditto.
* src/editfns.c (overlays_around): ditto.
* test/src/buffer-tests.el (sorted-overlays): Add a spot test for
this.
2022-10-21 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-font-lock-enable): Add function back.
2022-10-21 Matt Armstrong <matt@rfc20.org>
Fix handling of overlays that begin at END in 'overlays_in'
When passed EMPTY, 'overlays_in' should return empty overlays at END.
It was doing so, but it was also returning any other overlay that
happened to begin at END.
bug#58672
* src/buffer.c (overlays_in): Don't return overlays at END unless they
are empty overlays.
(disable_line_numbers_overlay_at_eob): Pass 'false' instead of 'NULL'
for the bool 'empty' arg.
* test/src/buffer-tests.el (sorted-overlays-in): New helper function.
(test-overlays-in-empty-range): New test exhaustively covering these
edge conditions.
(test-overlays-in-empty-range-bug58672): Simple test for one case.
2022-10-21 Philip Kaludercic <philipk@posteo.net>
Rephrase initial paragraph in "Package from Source" section
* doc/emacs/package.texi (Package from Source): Clarify motivation.
2022-10-21 Philip Kaludercic <philipk@posteo.net>
Request "elpa-packages.eld" instead of "elpa-packages"
* lisp/emacs-lisp/package-vc.el
(package-vc--read-archive-data): Apply change.
(package-vc--download-and-read-archives): Apply change.
2022-10-21 Philip Kaludercic <philipk@posteo.net>
Remove 'package-vc-install' alias 'package-checkout'
* lisp/emacs-lisp/package-vc.el (package-checkout): Remove it.
2022-10-21 Nacho Barrientos <nacho.barrientos@cern.ch> (tiny change)
Bindat (src, strz): Operate on vectors too
* lisp/emacs-lisp/bindat.el (bindat--unpack-str, bindat--unpack-strz):
Fix the non-string case.
* test/lisp/emacs-lisp/bindat-tests.el (bindat-test--strz-array-unpack)
(bindat-test--str-simple-array-unpack,bindat-test--str-combined-array-unpack):
New tests.
2022-10-21 Po Lu <luangruo@yahoo.com>
Fix various menu problems
* src/menu.c (x_popup_menu_1): Cancel hourglass timer before
displaying popup.
* src/xterm.c (x_show_hourglass): Avoid displaying hourglass
cursor during a popup.
(handle_one_xevent): Under X Toolkit and GTK+ 2.x builds with
XInput 2, clear the mouse face upon a core LeaveNotify; these
can be generated by menu grabs.
(x_wm_set_size_hint): Fix Motif build warning.
2022-10-21 Eli Zaretskii <eliz@gnu.org>
Improve and extend documentation of ElDoc
* lisp/emacs-lisp/eldoc.el (eldoc-documentation-strategy)
(eldoc-documentation-enthusiast)
(eldoc-documentation-compose-eagerly)
(eldoc-documentation-compose, eldoc-documentation-default)
(eldoc-minibuffer-message, eldoc-idle-delay)
(eldoc-print-after-edit)
(eldoc-echo-area-display-truncation-message)
(eldoc-echo-area-use-multiline-p)
(eldoc-echo-area-prefer-doc-buffer): Doc string fixes.
* doc/emacs/emacs.texi (Top):
* doc/emacs/programs.texi (Documentation, Programming Language Doc):
Rename "Lisp Doc" to "Programming Language Doc", including in
parent menus. All references changed.
(Programming Language Doc): Formerly "Lisp Doc". Rewrite to not
be specific to Emacs Lisp. Improve markup and wording. Document
more commands and variables.
* doc/emacs/maintaining.texi (Maintaining): Improve indexing.
2022-10-21 Po Lu <luangruo@yahoo.com>
Fix delivery of window manager ping events during menu
* oldXMenu/Activate.c (XMenuActivateSetExposeFunction)
(XMenuActivate):
* oldXMenu/XMenu.h: Remove expose functions.
* src/msdos.h (XMenuSetAEQ): Remove no longer used function.
* src/xmenu.c (x_menu_expose_event): Delete function.
(x_menu_dispatch_event): New function.
(x_menu_show): Set it as the XMenu event handler.
2022-10-21 Mauro Aranda <maurooaranda@gmail.com>
Fix last change in perl-mode
* lisp/progmodes/perl-mode.el (perl--syntax-exp-intro-regexp): Escape
$. Reported by Mattias Engdegård.
2022-10-21 Brian Leung <leungbk@posteo.net>
Add the "nil" language server to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add the "nil"
language server. Put it before rnix-lsp since it is more featureful
and more actively updated. (Bug#58676)
Ref: https://github.com/oxalica/nil
2022-10-21 Brian Leung <leungbk@posteo.net>
Add lua-language-server to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add
lua-language-server. It is, at the time of writing, more actively
developed and more popular than the lua-lsp server, so prioritize
that. (Bug#58676)
2022-10-20 Philip Kaludercic <philipk@posteo.net>
Have 'package-vc-link-directory' use name if given
* lisp/emacs-lisp/package-vc.el (package-vc-link-directory): Use the
NAME argument.
2022-10-20 Philip Kaludercic <philipk@posteo.net>
Build documentation like elpa-admin.el
* lisp/emacs-lisp/package-vc.el (package-vc-build-documentation): Add
function to build a documentation file.
(package-vc-unpack-1): Use 'package-vc-build-documentation'.
2022-10-20 Philip Kaludercic <philipk@posteo.net>
Merge remote-tracking branch 'origin/master' into feature/package+vc
2022-10-20 Filipp Gunbin <fgunbin@fastmail.fm>
Fix ldapsearch output parsing in ldap-search-internal
* lisp/net/ldap.el (ldap-search-internal): When parsing output, make
sure that file:// matched before opening the file. (bug#58605)
2022-10-20 Eli Zaretskii <eliz@gnu.org>
Add Eglot to the menu bar
* lisp/progmodes/eglot.el (eglot): Improve the doc string.
* lisp/menu-bar.el (menu-bar-tools-menu): Add Eglot to the menu.
2022-10-20 Eli Zaretskii <eliz@gnu.org>
Mention Eglot in the Emacs user manual
* doc/emacs/maintaining.texi (Xref):
* doc/emacs/programs.texi (Symbol Completion, Imenu): Mention Eglot.
2022-10-20 João Távora <joaotavora@gmail.com>
Merge branch 'feature/eglot2emacs'
2022-10-20 João Távora <joaotavora@gmail.com>
Minor fixes to doc/misc/eglot.texi
* doc/misc/eglot.texi (eglot-workspace-configuration): Correct
markup of eglot-{}
(Quick Start): Fix section cross reference.
2022-10-20 João Távora <joaotavora@gmail.com>
* lisp/info-look.el (mapc): Add Eglot manual's index.
2022-10-20 Po Lu <luangruo@yahoo.com>
Work around problems setting input focus when a frame is in the background
* src/xterm.c (server_timestamp_predicate, x_get_server_time):
New functions.
(x_ewmh_activate_frame, x_focus_frame, syms_of_xterm): Apply
various workarounds for window manager "focus stealing
prevention". (bug#57012)
2022-10-20 Po Lu <luangruo@yahoo.com>
* etc/PROBLEMS: Document window manager focus problems.
2022-10-20 João Távora <joaotavora@gmail.com>
Merge branch 'feature/eglot-texi-manual' into feature/eglot2emacs
2022-10-20 João Távora <joaotavora@gmail.com>
Revert "eglot.texi: Make example more realistic"
This quest for realism ignores the fact that a previous example for a
hypothetical language Foo and a language server "fools" already
exists. It also undermines the intended generality of the
instructions.
This reverts commit 16986a9cc42ef4de580456f4acc5feba682ac8b1.
2022-10-20 João Távora <joaotavora@gmail.com>
Fix Eglot manual's description of eglot-workspace-configuration
* doc/misc/eglot.texi (Customizing Eglot)
(eglot-workspace-configuration): Explain that plist may be
arbitrarily complex and correctly identify nil as the Elisp
equivalent to JSON null.
2022-10-20 Mauro Aranda <maurooaranda@gmail.com>
Improve HERE document detection in perl-mode
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Detect indented HERE documents when using a bare identifier.
(perl--syntax-exp-intro-keywords): Recognize HERE documents that come
after die, warn and eval.
(perl--syntax-exp-intro-regexp): Identify HERE documents when printing
to a filehandle with printf? and when they appear after a fat comma.
* test/lisp/progmodes/cperl-mode-resources/here-docs.pl: Add more tests.
2022-10-20 João Távora <joaotavora@gmail.com>
Expose eglot-{} to be used in eglot-workspace-configuration
* eglot.el (eglot-{}): New variable alias.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/1084
2022-10-20 João Távora <joaotavora@gmail.com>
Rework header of eglot.el
* eglot.el (Commentary): Rework.
2022-10-20 João Távora <joaotavora@gmail.com>
Do use eglot-connect-timeout if eglot-sync-connect is t
Reported by Eli Zaretskii <eliz@gnu.org>
* eglot.el (eglot--connect): Use eglot-connect-timeout in the case
eglot-sync-connect is t.
2022-10-20 Stefan Kangas <stefankangas@gmail.com>
eglot.texi: Explain where to find third-party packages
* doc/misc/eglot.texi (Eglot Features): Improve description on
third-party packages.
2022-10-20 Stefan Kangas <stefankangas@gmail.com>
eglot.texi: Make example more realistic
* doc/misc/eglot.texi (Eglot and Buffers): Prefer more realistic
*.c instead of *.foo in example.
2022-10-20 Stefan Kangas <stefankangas@gmail.com>
eglot.texi: Move sentence on LSP Servers earlier
* doc/misc/eglot.texi (Setting Up LSP Servers): Move explanation
on the (lack of) need for customizing servers earlier.
2022-10-20 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/Makefile.in (INFO_COMMON): Add eglot.
2022-10-20 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in modula2.el
* lisp/progmodes/modula2.el (m2-mode-map): Prefer defvar-keymap.
2022-10-20 Rudolf Adamkovič <salutis@me.com>
Add 'slovak-querty' input method (bug#58642)
* lisp/leim/quail/slovak.el ("slovak-querty"): New input method.
* etc/NEWS: Mention the new 'slovak-querty' input method.
2022-10-20 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
4b2c83eeaf ; * doc/lispref/modes.texi (Defining Minor Modes): Explain...
2022-10-19 Matt Armstrong <matt@rfc20.org>
Rename all exported itree.h functions with the itree_ prefix
For the most part, I replaced the interval_tree_ prefix with itree_,
interval_node_ with itree_node_, etc.
* src/alloc.c: Rename everywhere as appropriate.
* src/alloc.c: ditto.
* src/buffer.c: ditto.
* src/buffer.h: ditto.
* src/itree.c: ditto.
* src/itree.h: ditto.
2022-10-19 Matt Armstrong <matt@rfc20.org>
Prefix all itree.h type names with itree_
Rename interval_node -> itree_node, interval_tree -> itree_tree,
interval_tree_order -> itree_order.
* src/alloc.c: Renames.
* src/buffer.c: ditto.
* src/itree.c: ditto.
* src/itree.h: ditto.
* src/lisp.h: ditto.
* src/pdumper.h: ditto.
* src/textprop.c: ditto.
* src/xdisp.c: ditto.
2022-10-19 Matt Armstrong <matt@rfc20.org>
Revert "mark_overlays: Use the normal ITREE_FOREACH"
This reverts commit b8fbd42f0a7caa4cd9e2d50dd4e4b2101ac78acd,
with edits.
* src/alloc.c (mark_overlays): restore function.
(mark_buffer): Call it, not ITREE_FOREACH.
(garbage_collect): eassert (!itree_busy_p ()).
* src/itree.h: Comment tweak: explain why GC is considered risky. It
isn't that GC itself is risky, it is that GC can call ELisp by way of
a hook, and running ELisp during iteration is risks nested iteration.
2022-10-19 Matt Armstrong <matt@rfc20.org>
Remove the ITREE_NULL macro and use NULL everywhere.
* src/itree.h: Delete the ITREE_NULL macro.
* src/itree.c (check_subtree): Use NULL everywhere.
* src/pdumper.c (dump_buffer): ditto.
2022-10-19 Yuan Fu <casouri@gmail.com>
Revise the toggle scheme of tree-sitter (again)
Now instead of a toggle function (major-mode-backend-function), we let
major mode set local variables like treesit-font-lock-settings,
treesit-imenu-function, then treesit-mode takes care of activating
those things (clearing font-lock-keywords, setting
imenu-create-index-function to treesit-imenu-function, etc).
js.el and python.el: I've returned js-mode and python-mode to exactly
what they were before tree-sitter change, plus lines at the end
setting up tree-sitter variables. Sorry about all these fuss :-D
* lisp/treesit.el (treesit-mode-inhibit-message): Remove option.
(major-mode-backend-function)
(treesit-remapped-major-mode-alist): Remove variables.
(treesit-mode): Move down to the end of buffer. Do more things.
(global-treesit-mode): Move down to the end of buffer. Don't handle
major-mode-remap-alist anymore.
(global-treesit-mode--turn-on): Move down to the end of buffer.
(treesit-ready-p): Move down to the end of buffer. Changed signature.
(treesit-font-lock-enable): Remove function.
(treesit-defun-type-regexp): New variable.
(treesit-beginning-of-defun)
(treesit-end-of-defun): New function.
(treesit-imenu-function): New variable.
(treesit-mode-supported)
(treesit-required-languages)
(treesit--local-variable-backup): New variables.
(treesit--backup-local-variable): New function
* lisp/progmodes/js.el (js-use-tree-sitter): Remove option.
(js--treesit-defun-type-regexp): Remove variable. (Now set inline in
js-mode.)
(js--treesit-beginning-of-defun)
(js--treesit-end-of-defun): Remove functions. (Now use
treesit-beginning/end-of-defun.)
(js--backend-toggle)
(js--json-backend-toggle): Remove function.
(js-mode)
(js-json-mode): Restore back to before tree-sitter changes. Add
tree-sitter setup at the end.
* lisp/progmodes/python.el (python--backend-toggle): Remove function.
(python-mode): Restore back to before tree-sitter changes. Add
tree-sitter setup at the end.
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Use
js--fontify-template-string.
(ts-mode--fontify-template-string): Remove function (because we can
just use js--fontify-template-string).
(ts-mode--defun-type-regexp): Remove variable (now set inline in
ts-mode).
(ts-mode--beginning-of-defun)
(ts-mode--end-of-defun): Remove functions (now using
treesit-beginning/end-of-defun).
(ts-mode): Setup tree-sitter variables and then turn on treesit-mode
or move to js-mode.
2022-10-19 Andrea Corallo <akrl@sdf.org>
* Fix async native compilation (bug#58637)
* lisp/emacs-lisp/comp.el (comp--native-compile): Fix gate condition.
(comp-run-async-workers): Add assetion.
2022-10-19 Alan Mackenzie <acm@muc.de>
CC Mode: Cease adding types to found-types too eagerly
This fixes bug #58537 and bug #58539.
* lisp/progmodes/cc-engine.el (c-forward-type): Remove trailing whitespace
from an identifier before passing it to c-add-type.
(c-forward-decl-or-cast-1): CASE 3: Do not recognize two consecutive
identifiers as type + variable/function unless certain conditions are met.
CASE 10: Do not recognize the "type" as a found type unless certain condtions
are met. (Near end): Do not recognize the identifier in a cast as a type
unless certain conditions are met.
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): Recognize being
in declaration parens when there is a syntactially wrong "foo ((bar))"
preceding the match position.
* lisp/progmodes/cc-mode.el (c-update-new-id): Set c-new-id-is-type
unconditionally to nil to prevent a second identifier being wrongly marked as
a type.
2022-10-19 Po Lu <luangruo@yahoo.com>
Fix various builds
* src/xterm.c (x_handle_selection_monitor_event): Adjust for
build without XInput2.
(x_maybe_clear_preedit, xim_destroy_callback): Make conditional
on Release 6 XIM.
(x_get_keyboard_modifiers): Adjust for build without XCB.
2022-10-19 Po Lu <luangruo@yahoo.com>
Fix build warning without XKB, Xmb, and XInput 2
* src/xterm.c (handle_one_xevent): Avoid defining
USE_SAFE_ALLOCA when SAFE_ALLOCA is not actually used.
2022-10-19 João Távora <joaotavora@gmail.com>
Remove spurious trailing ':' in doc/misc/eglot.texi
* doc/misc/eglot.texi (Customizing Eglot): Remove spurious ':'.
2022-10-19 João Távora <joaotavora@gmail.com>
Tweak some node names in doc/misc/eglot.texi
"Shutting Down LSP Server" -> "Shutting Down LSP Servers"
"Setting Up LSP Server" -> "Setting Up LSP Servers"
* doc/misc/eglot.texi: Rework node names.
2022-10-19 Arun Isaac <arunisaac@systemreboot.net>
Add tamil99 input method (bug#58070)
* lisp/leim/quail/indian.el: Require pcase and seq.
("tamil99"): New input method.
* etc/NEWS: Mention new tamil99 input method.
2022-10-19 Stefan Kangas <stefankangas@gmail.com>
Add admin/emacs-shell-lib for shared bash code
* admin/emacs-shell-lib: New file for shared bash code.
* admin/automerge:
* admin/diff-tar-files:
* admin/emacs-shell-lib:
* admin/make-manuals:
* admin/update_autogen:
* admin/upload-manuals: Simplify and improve using above new library.
2022-10-19 Stefan Kangas <stefankangas@gmail.com>
* lib-src/rcs2log: Add fallback for $TMPDIR.
2022-10-19 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
efd3ef3ceb ; * src/window.c: Fix some comments. (Bug#58550)
2022-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
(sit-for): Add compiler-macro to warn about obsolete calling convention
* lisp/subr.el (sit-for): Add compiler-macro.
* lisp/eshell/esh-util.el (eshell-redisplay):
* lisp/play/zone.el (zone, zone-pgm-jitter, zone-pgm-whack-chars):
(zone-remove-text): Avoid obsolete calling convention.
2022-10-18 Yuan Fu <casouri@gmail.com>
Add a new section to tree-sitter's manual node
* doc/lispref/parsing.texi (Parsing Program Source): New section
Tree-sitter major modes.
2022-10-18 Philip Kaludercic <philipk@posteo.net>
Remove modifications to the list of ignored files in source packages
* lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Remove
'vc-ignore' calls.
2022-10-18 Theodor Thornhill <theo@thornhill.no>
Add more granular features in font-locking
There is now support for three font-locking levels, 'minimal',
'moderate' and 'full'. The richest experience is to be expected from
the 'full', and all levels are enabled by default.
* lisp/progmodes/js.el (js--treesit-font-lock-settings): New defvar
renamed from 'js--treesit-settings'.
(js--treesit-font-lock-settings): New defvar renamed from
'js--json-treesit-settings'.
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): New defvar
renamed from 'ts-mode--settings'.
2022-10-18 Philip Kaludercic <philipk@posteo.net>
Use 'elpa-packages' files for VC metadata
* lisp/emacs-lisp/package-vc.el (package-vc-default-backend): Add new
option.
(package-vc-archive-spec-alist): Add new variable to store the
contents of 'elpa-packages' for each archive.
(pacakge-vc-desc->spec): Add function to query package specifications.
(package-vc--read-archive-data): Add a 'package-read-archive-hook'
implementation.
(package-vc--download-and-read-archives): Add a
'package-refresh-contents-hook' implementation.
(package-vc-main-file): Remove function.
(package-vc-generate-description-file): Use package specifications.
(package-vc-unpack-1): Adapt to previous changes.
(package-vc-unpack): Adapt to previous changes.
(package-vc-sourced-packages-list): Adapt to previous changes.
(package-vc-install): Adapt to previous changes.
* lisp/emacs-lisp/package.el (package-read-archive-hook): Allow
extending 'package-read-all-archive-contents' using a hook.
(package-read-all-archive-contents): Use 'package-read-archive-hook'.
(package-refresh-contents-hook): Allow extending
'package-refresh-contents' using a hook.
(package-refresh-contents): Use 'package-refresh-contents-hook'.
2022-10-18 Yuan Fu <casouri@gmail.com>
Rename tree-sitter group to treesit
* lisp/treesit.el (tree-sitter): Rename to treesit.
(treesit-mode)
(global-treesit-mode): Use treesit group.
2022-10-18 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el: Add commentary.
2022-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix functions.texi syntax error
* doc/lispref/functions.texi (Function Documentation): Fix syntax
error.
2022-10-18 Yuan Fu <casouri@gmail.com>
Install new toggle scheme for tree-sitter
Basically we now have treesit-mode and global-treesit-mode. Major
modes set major-mode-backend-function which treesit-mode calls to
activate/deactivate tree-sitter.
js.el needs a bit explanation: I'm so sorry for messing up the
history, but basically now js-mode and js-json-mode should be exactly
the same as before any tree-sitter change was introduced, sans some
initialization code that are moved to js(-json)--backend-toggle.
js-mode and js-json-mode now just sets major-mode-backend-function and
initialize with js(-json)--backend-toggle.
* lisp/treesit.el (treesit-mode-inhibit-message): New option.
(treesit-can-enable-p): Remove function.
(major-mode-backend-function)
(treesit-remapped-major-mode-alist): New variables.
(treesit-mode)
(global-treesit-mode): New minor modes.
(global-treesit-mode--turn-on)
(treesit-ready-p): New functions.
* lisp/progmodes/python.el: Remove option.
(python--backend-toggle): New function.
(python-mode): Remove the if-form, all the initialization code are
moved to python--backend-toggle, python-mode now just sets
major-mode-backend-function and initialize with
python--backend-toggle.
* lisp/progmodes/js.el (js--treesit-can-enable-p)
(js--json-treesit-can-enable-p)
(js--treesit-enable)
(js--json-treesit-enable): Remove functions.
(js--backend-toggle)
(js-json--backend-toggle): New function.
* lisp/progmodes/ts-mode.el (ts-mode): Use treesit-ready-p.
2022-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
functions.texi: Fix bug#58602
* doc/lispref/functions.texi (Function Documentation): Document
`:documentation` and `function-documentation`.
2022-10-18 Philip Kaludercic <philipk@posteo.net>
Merge remote-tracking branch 'origin/master' into feature/package+vc
2022-10-18 Philip Kaludercic <philipk@posteo.net>
Have 'vc-clone' return a directory
* lisp/vc/vc-bzr.el (vc-bzr-clone): Return directory.
* lisp/vc/vc-git.el (vc-git-clone): Return directory.
* lisp/vc/vc-hg.el (vc-hg-clone): Return directory.
* lisp/vc/vc-svn.el (vc-svn-clone): Return directory.
* lisp/vc/vc.el (vc-clone): Ensure the backend returns directory.
2022-10-18 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-minor-mode-insert-buttons): New defvar-local.
(outline--make-button-overlay, outline--insert-open-button)
(outline--insert-close-button): Insert button when
outline-minor-mode-insert-buttons is non-nil, otherwise
put an overlay with before-string. (bug#57813)
* lisp/help.el (describe-bindings): Set buffer-local
outline-minor-mode-insert-buttons to t.
* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common):
Set buffer-local outline-minor-mode-use-margins to t. Don't set
outline-regexp for leading spaces because now spaces are not added
in the NEWS buffer.
2022-10-18 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Use one character wide strings for margins (bug#57813)
(outline-open-in-margins, outline-close-in-margins)
(outline-close-rtl-in-margins): Add 1-char emoji, symbol, text
for margins that are 1-column wide.
(outline-minor-mode): Force display of margins only for the selected buffer.
2022-10-18 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-file-name-equal-p): Fix docstring.
* etc/NEWS: Adapt connection-local variables entries.
2022-10-18 Matt Armstrong <matt@rfc20.org>
* .gitignore: Unignore the tests/manual directory. (Bug#58611)
2022-10-18 Stefan Monnier <monnier@iro.umontreal.ca>
(byte-compile--first-symbol-with-pos): Fix bug#58601
* lisp/emacs-lisp/bytecomp.el: Require `subr-x`.
(byte-compile--first-symbol-with-pos): Avoid inf-loops on circular data.
2022-10-18 João Távora <joaotavora@gmail.com>
More minor fixes to doc/misc/eglot.texi
Most, if not all of these, were previously discussed with Eli.
* doc/misc/eglot.texi (Setting Up LSP Server): Fix repetition of
"This variable".
(Setting Up LSP Server): Explain that single a running instance
supports multiple major modes.
(Starting Eglot, Eglot and Buffers): Correctly describe mode-line indication.
(Eglot Features): Suggest that company-mode is just one of the
possible packages. Explain that Eglot arranges for the completion
package to "instantiate" snippets. Could have used "expand".
Mention benefits of having the popular markdown-mode available.
(Eglot Commands): Explain how eglot-reconnect and
eglot-clear-status are useful.
(Eglot Variables): Clarify when eglot-autoreconnect is useful.
Clarify how eglot-sync-connect and eglot-connect-timeout relate to
each other. Clarify semantics of
eglot-confirm-server-initiated-edits.
2022-10-18 João Távora <joaotavora@gmail.com>
Minor stylistic fixes to introduction of doc/misc/eglot.texi
* doc/misc/eglot.texi (title): Add "the".
(Top): Fix sentence structure in top-level
introduction.
2022-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
Fix previous loaddefs-gen fix
2022-10-18 Eli Zaretskii <eliz@gnu.org>
Add new Texinfo manual for the Eglot LSP client
* doc/misc/eglot.texi: New file.
2022-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix faulty loaddefs detection
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--emacs-batch): Fix faulty loaddefs detection.
2022-10-18 Alan Mackenzie <acm@muc.de>
* lisp/progmodes/cc-defs.el Remove setting of inhibit-point-motion-hooks
2022-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-10-18 Andrea Corallo <akrl@sdf.org>
* Prevent potential native compilation infinite recursions
* lisp/emacs-lisp/comp.el (comp-no-spawn): New var.
(comp-subr-trampoline-install, comp-final, comp-run-async-workers)
(comp--native-compile): Update.
2022-10-17 Jim Porter <jporterbugs@gmail.com>
Print the correct $PATH when Eshell's 'which' fails to find a command
* lisp/eshell/esh-cmd.el (eshell/which): Use 'eshell-get-path'
(bug#20008).
2022-10-17 Jim Porter <jporterbugs@gmail.com>
Improve handling of $PATH in Eshell for remote directories
* lisp/eshell/esh-util.el (eshell-path-env, eshell-parse-colon-path):
Make obsolete.
(eshell-path-env-list): New variable.
(eshell-connection-default-profile): New connection-local profile.
(eshell-get-path): Reimplement using 'eshell-path-env-list'; add
LITERAL-P argument.
(eshell-set-path): New function.
* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Add entry for
$PATH.
(eshell-var-initialize): Add 'eshell-path-env-list' to
'eshell-subcommand-bindings'.
* lisp/eshell/esh-ext.el (eshell-search-path): Use 'file-name-concat'
instead of 'concat'.
(eshell/addpath): Use 'eshell-get-path' and 'eshell-set-path'.
* lisp/net/tramp-integration.el: Only apply Eshell hooks when
'eshell-path-env-list' is unbound.
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/path-var/local-directory)
(esh-var-test/path-var/remote-directory, esh-var-test/path-var/set)
(esh-var-test/path-var/set-locally)
(esh-var-test/path-var-preserve-across-hosts): New tests.
* test/lisp/eshell/esh-ext-tests.el: New file.
* test/lisp/eshell/eshell-tests-helpers.el
(with-temp-eshell): Set 'eshell-last-dir-ring-file-name' to nil.
(eshell-tests-remote-accessible-p, eshell-last-input)
(eshell-last-output): New functions.
(eshell-match-output, eshell-match-output--explainer): Use
'eshell-last-input' and 'eshell-last-output'.
* doc/misc/eshell.texi (Variables): Document $PATH.
* etc/NEWS: Announce this change (bug#57556).
2022-10-17 Jim Porter <jporterbugs@gmail.com>
Allow setting the values of variable aliases in Eshell
This makes commands like "COLUMNS=40 some-command" work as expected.
* lisp/eshell/esh-cmd.el (eshell-subcommand-bindings): Remove
'process-environment' from here...
* lisp/eshell/esh-var.el (eshell-var-initialize): ... and add to here,
along with 'eshell-variable-aliases-list'.
(eshell-inside-emacs): Convert to a 'defvar-local' to make it settable
in a particular Eshell buffer.
(eshell-variable-aliases-list): Make $?, $$, and $* read-only and
update docstring.
(eshell-set-variable): New function...
(eshell-handle-local-variables, eshell/export, eshell/unset): ... use
it.
(eshell/set, pcomplete/eshell-mode/set): New functions.
(eshell-get-variable): Get the variable alias's getter function when
appropriate and use a safer method for checking function arity.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/set/env-var)
(esh-var-test/set/symbol, esh-var-test/unset/env-var)
(esh-var-test/unset/symbol, esh-var-test/setq, esh-var-test/export)
(esh-var-test/local-variables, esh-var-test/alias/function)
(esh-var-test/alias/function-pair, esh-var-test/alias/string)
(esh-var-test/alias/string/prefer-lisp, esh-var-test/alias/symbol)
(esh-var-test/alias/symbol-pair, esh-var-test/alias/export)
(esh-var-test/alias/local-variables): New tests.
* doc/misc/eshell.texi (Built-ins): Add 'set' and update 'unset'
documentation.
(Variables): Expand documentation of how to get/set variables.
2022-10-17 Jim Porter <jporterbugs@gmail.com>
Add helpers to dynamically assign connection-local values
* lisp/files-x.el (connection-local-criteria)
(connection-local-profile-name-for-setq): New variables.
(with-connection-local-variables-1): ... let-bind them here.
(connection-local-update-profile-variables)
(connection-local-profile-name-for-criteria): New functions.
(with-connection-local-application-variables, setq-connection-local):
New macros.
* test/lisp/files-x-tests.el: Require 'tramp-integration'
(files-x-test--variable5, remote-lazy-var): New variables.
(files-x-test-hack-connection-local-variables-apply): Expand checks.
(files-x-test-with-connection-local-variables): Remove
'hack-connection-local-variables-apply' check (it belongs in the above
test), and expand some other checks.
(files-x-test--get-lazy-var, files-x-test--set-lazy-var): New
functions.
(files-x-test-connection-local-update-profile-variables)
(files-x-test-setq-connection-local): New tests.
* doc/lispref/variables.texi (Connection Local Variables): Split into
two subsections and document the new features.
* etc/NEWS: Announce 'setq-connection-local'.
2022-10-17 Paul Eggert <eggert@cs.ucla.edu>
Improve random doc re nonces
* doc/lispref/numbers.texi (Random Numbers): Improve coverage of
random seed, entropy pools, and why one shouldnt use random for
nonces. See Bug#58472.
2022-10-17 Po Lu <luangruo@yahoo.com>
Fix bug#58584
* src/xterm.c (x_handle_selection_monitor_event): Return if
selection event is one Emacs asked for.
(handle_one_xevent): In that case, drop the event and don't let
it reach GTK.
2022-10-17 Yuan Fu <casouri@gmail.com>
Change free to xfree in treesit.el
This should be in the last commit but I forgot.
* src/treesit.c (Ftreesit_parser_set_included_ranges): Change free to
xfree.
2022-10-17 Yuan Fu <casouri@gmail.com>
Change malloc to xmalloc in treesit.c
* src/treesit.c (Ftreesit_parser_set_included_ranges): Change malloc
to xmalloc.
2022-10-17 Yuan Fu <casouri@gmail.com>
Fix casts to uint32_t in treesit.c
* src/treesit.c (treesit_tree_edit_1): Add assertion.
(treesit_ensure_position_synced): Add assertion.
(treesit_check_buffer_size): Change error message.
(treesit_ensure_parsed): Move treesit_check_buffer_size and
treesit_ensure_position_synced together
(treesit_read_buffer): Add assertion.
(Ftreesit_parser_set_included_ranges): Add assertion. Signal error if
list too long. Add check for buffer size.
(Ftreesit_parser_included_ranges): Add check for buffer size.
(Ftreesit_query_capture): Add assertion.
2022-10-17 Dmitry Gutov <dgutov@yandex.ru>
Follow-up fixes for vc-default-checkin-patch
* lisp/vc/vc.el (vc-default-checkin-patch):
Call vc-revert-file on buffer-file-name (vc-backend failed on
relative name sometimes). Delete the tmp dir after copying all
files back, not just the first one. Bug#52349,
https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01446.html.
2022-10-17 Yuan Fu <casouri@gmail.com>
Simplify error reported by loading tree-sitter language definition
Before:
Error: Cannot load language definition:
"javascript",
("/home/jostein/.emacs.d/tree-sitter/libtree-sitter-javascript:
cannot open shared object file: No such file or directory"
"/home/jostein/.emacs.d/tree-sitter/libtree-sitter-javascript.so:
cannot open shared object file: No such file or directory"
"libtree-sitter-javascript: cannot open shared object file: No such
file or directory" "libtree-sitter-javascript.so: cannot open shared
object file: No such file or directory")
After:
(treesit-load-language-error
not-found
("libtree-sitter-z.so" "libtree-sitter-z.dylib")
"No such file or directory")
* src/treesit.c (treesit_load_language): Add base_candidates, remove
error_list, report base_candidates rather than error_list.
2022-10-17 Yuan Fu <casouri@gmail.com>
Skip tree-sitter tests unless language definition is available
* test/src/treesit-tests.el (treesit-basic-parsing)
(treesit-node-api)
(treesit-query-api)
(treesit-narrow)
(treesit-cross-boundary)
(treesit-multi-lang)
(treesit-node-supplemental): Add skip-unless form.
2022-10-17 Yuan Fu <casouri@gmail.com>
Fix memory leak in ts_load_language
* src/treesit.c (ts_load_language): Move initialization of c_name down
and free it right after use.
2022-10-17 Alan Mackenzie <acm@muc.de>
CC Mode: Don't fontify as types variables with the same names as struct tags
This fixes bug #58534.
* lisp/progmodes/cc-engine.el (c-forward-type): Only regard "struct" keywords
which create self contained types (e.g. C++'s "typename") as creating found
types.
* lisp/progmodes/cc-langs.el (c-self-contained-typename-kwds
(c-self-contained-typename-key): New language consts and variable.
2022-10-17 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in fortran.el
* lisp/progmodes/fortran.el (fortran-mode-map): Prefer
defvar-keymap.
2022-10-17 Stefan Kangas <stefankangas@gmail.com>
Update version information in Gnus manual
* doc/misc/gnus.texi (Gnus Versions): Update with some information
from https://www.gnus.org/history.html
(Ma Gnus): Explain that Gnus is now developed together with
Emacs. (Bug#58161)
2022-10-17 Stefan Monnier <monnier@iro.umontreal.ca>
* src/itree.c: Eliminate all prototypes for static functions
Massive code reorganization to move definitions of static functions
before their first use, so as to remove the need for
redundant prototypes.
While at it, fix a few places where the used more than 80 column.
2022-10-17 Basil L. Contovounesios <contovob@tcd.ie>
Silence recent comp-tests.el lexvar warnings
* test/lisp/emacs-lisp/comp-tests.el: Mark used native-compile
variables as special to pacify unknown lexvar warnings in the
default build.
(with-test-native-compile-prune-cache): Instrument macro arguments
for debugging and indent conventionally. Reindent all callers.
(test-native-compile-prune-cache/dont-delete-in-parent-of-cache):
Simplify file name expansion.
2022-10-17 Eli Zaretskii <eliz@gnu.org>
Make sure the treesit path variables are lists
* src/treesit.c: (treesit_load_language)
(treesit_find_override_name): Make sure the lists we use are
really lists.
2022-10-17 Matt Armstrong <matt@rfc20.org>
Rename itree iterators with itree_iterator prefix
* src/itree.h: Rename struct interval_generator -> itree_iterator.
Rename functions: itree_busy_p -> itree_iterator_busy_p,
interval_tree_iter_start -> itree_iterator_start,
interval_generator_narrow -> itree_iterator_narrow,
interval_tree_iter_finish -> itree_iterator_finish,
interval_generator_next -> itree_iterator_next.
* src/itree.c: Use new names everywhere.
* src/eval.c: ditto.
2022-10-17 Matt Armstrong <matt@rfc20.org>
Delete the itree_null sentinel node, use NULL everywhere.
This effort caught a few (already commited) places that were
dereferencing through ITREE_NULL in a confusing way. It makes some
functions have to check for NULL in more places, but in my experinece
this is worth it from a code clarity point of view.
In doing this I rewrote `interval_tree_remove` completely. There
there was one final bug in that function that I simply could not find
when I #define'd ITREE_NULL to NULL. I couldn't easily understand
that function, so instead I rewrote it completely with a focus on code
clarity. Bug went away.
I have left the ITREE_NULL #define in code, to reduce code review
noise. It is easily removed later, mechanically.
* src/itree.h: #define ITREE_NULL to NULL and leave a FIXME.
* src/itree.c (itree_null): Delete the itree_null static variable.
(null_is_sane): Delete (and all callers).
(interval_tree_insert): Insert the first node as black straight away.
(itree_newlimit): Handle NULL children.
(interval_tree_remove_fix): ditto.
(interval_tree_insert_fix): ditto.
(interval_tree_remove): Rewrite for clarity.
(null_safe_is_red): New function.
(null_safe_is_black): New function.
(interval_tree_replace_child): Renamed from interval_tree_transplant.
(interval_tree_transplant): New function that something I think is
more like a full transplantation. (names are hard)
2022-10-17 Stefan Kangas <stefankangas@gmail.com>
Improve native-compile-prune-cache messages
* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Quote name of
pruned directory.
2022-10-17 Stefan Kangas <stefankangas@gmail.com>
Don't prune *.eln files in parent of eln-load-path
* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Don't
prune *.eln files in parent directory of `native-comp-eln-load-path'.
* test/lisp/emacs-lisp/comp-tests.el
(test-native-compile-prune-cache/dont-delete-in-parent-of-cache):
New test.
2022-10-17 Stefan Kangas <stefankangas@gmail.com>
Add tests for native-compile-prune-cache
* test/lisp/comp-tests.el: New file.
2022-10-17 Po Lu <luangruo@yahoo.com>
Fix pieces of code being too expensive over slow network connections
* lisp/menu-bar.el (menu-bar-edit-menu): Test buffer-read-only
before gui-backend-selection-exists-p. This places the less
expensive condition before the more expensive one.
* src/xfns.c (compute_tip_xy): Use cached monitor attributes
whenever available.
(Fx_show_tip): Remove code that really did nothing.
(Fx_backspace_delete_keys_p): Do not download the entire keymap
from the server upon creating a frame.
* src/xmenu.c (create_and_show_popup_menu): Use
x_translate_coordinates_to_root.
(x_menu_show): Use x_translate_coordinates_to_root.
* src/xselect.c (Fx_selection_exists_p): If a temporary
selection owner can be found, use it.
* src/xterm.c (x_translate_coordinates_to_root)
(x_handle_selection_monitor_event, x_find_selection_owner): New
functions. These functions try to avoid downloading data from
the X server in places that are called very often (i.e. during
tool bar updates.)
(handle_one_xevent): Handle selection notify events. Also catch
some mistakes found. Fetch all kinds of key names as well.
(x_create_special_window): New function.
(x_term_init, x_delete_display): Ask for all key names. Also,
passively monitor selections that are given to
`x-selection-exists-p' during redisplay, so we do not have to
ask the server about them upon each redisplay.
(syms_of_xterm): New variable `x-fast-selection-list'.
* src/xterm.h (struct x_monitored_selection): New structure.
(X_INVALID_WINDOW): New define.
(struct x_display_info): New fields for selection monitoring.
Also, record the fixes extension base.
2022-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix spurious "Compilation finished" native-comp messages
* lisp/emacs-lisp/comp.el (native--compile-async): Don't start the
async compilation if we didn't add anything. This avoids spurious
"Compilation finished" messages in the *Async* buffer when it
turned out that all the files we considered nativecomping were
skipped.
2022-10-17 Yuan Fu <casouri@gmail.com>
Fix js/ts tree-sitter template_string font-lock
* lisp/progmodes/js.el (js--treesit-settings): Fontify
template_strings with js--fontify-template-string.
(js--fontify-template-string): New function.
(js--json-treesit-settings): Add missing :feature flag.
* lisp/progmodes/ts-mode.el (ts-mode--settings): Fontify
template_strings with js--fontify-template-string.
2022-10-17 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-font-lock-rules): Warn about :feature.
2022-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Avoid having the async compile log saying it's compiling loaddefs
* lisp/loadup.el (featurep): Define the hash table in nativecomp
builds (but not otherwise). A more natural place to define this
would be in comp.el, but comp.el isn't loaded yet when we load the
.elc file that updates comp--no-native-compile. We could change
the load order and move the definition to comp.el, though.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Allow
inhibiting nativecomp earlier (bug#57627).
* lisp/emacs-lisp/comp.el (native-compile-async-skip-p): Use the data.
2022-10-17 Andrey Listopadov <andreyorst@gmail.com> (tiny change)
Use face-spec-set instead of custom-set-faces
GitHub-reference: https://github.com/jwiegley/use-package/issues/934
2022-10-17 Stefan Kangas <stefankangas@gmail.com>
Make `message-canlock-generate' faster
* lisp/gnus/message.el (message-canlock-generate): Improve performance
by several orders of magnitude.
2022-10-16 Dmitry Gutov <dgutov@yandex.ru>
Add default implementation for 'checkin-patch'
* lisp/vc/vc.el (vc-default-checkin-patch):
Add default implementation for 'checkin-patch' (bug#52349).
The first attempt was here:
https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg01464.html
2022-10-16 Philip Kaludercic <philipk@posteo.net>
* src/keyboard.c (echo_add_key): Mention quick-help
2022-10-16 Philip Kaludercic <philipk@posteo.net>
Only clone packages if necessary
* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if
directory exists before cloning.
2022-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
cl-generic: Fix `advertised-calling-convention` declarations
* lisp/emacs-lisp/cl-generic.el (cl-generic-define-method):
Preserve the `advertised-calling-convention`, if any (bug#58563).
* lisp/subr.el (declare): Warn when we hit this.
* lisp/emacs-lisp/byte-run.el (get-advertised-calling-convention): New fun.
* lisp/progmodes/elisp-mode.el (elisp-get-fnsym-args-string):
* lisp/help-fns.el (help-fns--signature):
* lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition): Use it.
* test/lisp/emacs-lisp/cl-generic-tests.el (cl-generic-tests--acc): New fun.
(cl-generic-tests--advertised-calling-convention-bug58563): New test.
2022-10-16 Philip Kaludercic <philipk@posteo.net>
Attempt to infer the package subject if missing
* lisp/emacs-lisp/package-vc.el (package-vc-main-file): Add function.
(package-vc-generate-description-file): Infer the subject.
2022-10-16 kobarity <kobarity@gmail.com>
Move and rename Python completion ERTs
* test/lisp/progmodes/python-tests.el
(python-shell-completion-at-point-1)
(python-shell-completion-at-point-native-1)
(python-completion-at-point-1)
(python-completion-at-point-2, python-completion-at-point-pdb-1)
(python-completion-at-point-native-1)
(python-completion-at-point-native-2)
(python-completion-at-point-native-with-ffap-1)
(python-completion-at-point-native-with-eldoc-1): Renamed tests
(bug#58565).
2022-10-16 Eli Zaretskii <eliz@gnu.org>
Support MinGW build on MS-Windows
* src/treesit.c [WINDOWSNT]: Add MS-Windows boilerplate for
dynamically-loaded optional libraries.
(init_treesit_functions) [WINDOWSNT]: New function.
(load_tree_sitter_if_necessary): New function.
(ts_initialize): Call 'load_tree_sitter_if_necessary'.
(ts_delete_parser, ts_delete_query, ts_named_node_p): Wrapper
functions for TS calls from outside treesit.c.
(Ftreesit_parser_root_node, Ftreesit_parser_set_included_ranges)
(Ftreesit_parser_included_ranges, Ftreesit_node_type)
(Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_string)
(Ftreesit_node_parent, Ftreesit_node_child, Ftreesit_node_check)
(Ftreesit_node_field_name_for_child, Ftreesit_node_child_count)
(Ftreesit_node_next_sibling, Ftreesit_node_prev_sibling)
(Ftreesit_node_first_child_for_pos)
(Ftreesit_node_descendant_for_range, Ftreesit_node_eq)
(Ftreesit_query_compile, Ftreesit_query_capture)
(Ftreesit_search_subtree, Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Call 'ts_initialize' before any
other TS functions.
(Ftreesit_available_p): 'treesit-available-p' implemented in C, so
that on WINDOWSNT the library could be loaded dynamically.
* src/treesit.h (ts_delete_parser, ts_delete_query)
(ts_named_node_p): Add prototypes.
* src/print.c (print_vectorlike):
* src/alloc.c (cleanup_vector): Call tree-sitter function via
wrappers defined in treesit.c, not directly, because WINDOWSNT
redefines the TS functions to be called via function pointers.
* src/Makefile.in (base_obj): Add treesit.o
(TREE_SITTER_OBJ): Remove.
* lisp/treesit.el (treesit-available-p): Remove: now implemented
in C.
* lisp/term/w32-win.el (dynamic-library-alist): Add libtree-sitter
DLLs.
* configure.ac (TREE_SITTER): Support the MinGW build.
(TREE_SITTER_OBJ): Remove.
2022-10-16 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in ansi-osc.el
* lisp/ansi-osc.el (ansi-osc-hyperlink-map): Prefer defvar-keymap.
2022-10-16 Philip Kaludercic <philipk@posteo.net>
Mark source packages as always updatable
* lisp/emacs-lisp/package.el (package--updateable-packages): Add check
for source packages.
2022-10-16 Philip Kaludercic <philipk@posteo.net>
Delete 'package-contact-maintainer'
* doc/emacs/package.texi: Remove mention.
* etc/NEWS: Remove mention.
* lisp/emacs-lisp/package.el: Remove the command.
2022-10-16 Stefan Kangas <stefankangas@gmail.com>
Make help-for-help echo key on failure
* lisp/help-macro.el (make-help-screen): Echo key on failure.
2022-10-16 Stefan Kangas <stefankangas@gmail.com>
Bind "home"/"end" in help-for-help
* lisp/help-macro.el (make-help-screen): Bind "home"/"end" keys to
scrolling up/down.
2022-10-16 Stefan Kangas <stefankangas@gmail.com>
Don't ding when exiting help-for-help with C-g
* lisp/help-macro.el (make-help-screen): Don't ding on "C-g".
2022-10-16 Lars Ingebrigtsen <larsi@gnus.org>
Clear misleading message in help-quit-or-quick
* lisp/help.el (help-quit-or-quick): Clear misleading message
(bug#58542).
2022-10-16 kobarity <kobarity@gmail.com>
Fix invalid search bound error in python-shell-completion-at-point
* lisp/progmodes/python.el (python-shell-completion-at-point): Add
check if point is before line-start.
* test/lisp/progmodes/python-tests.el (python-shell-completion-shell-buffer-1)
(python-shell-completion-shell-buffer-native-1): New tests
(bug#58548).
2022-10-16 Daniel Martín <mardani29@yahoo.es>
Signal an error in dictionary lookup if there's no word at point
* lisp/net/dictionary.el (dictionary-lookup-definition): Signal an
error when there is no word at point (bug#58552).
2022-10-16 kobarity <kobarity@gmail.com>
Disable completion when PDB is active in Python Shell buffer
* lisp/progmodes/python.el (python-shell-completion-at-point): Disable
completion in Python buffer when PDB is active in Python Shell buffer.
* test/lisp/progmodes/python-tests.el (python-shell-completion-pdb-1):
New test (bug#58562).
2022-10-16 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
067361f3a2 ; Improve documentation of 'C-M-i'
fdb6f7cf26 ; Fix documentation of 'comp-enable-subr-trampolines'
be30369e01 ; Avoid incorrect indentation in an @example.
4bd3dd505e Document how to control where the *.eln files are written
b7d7c2d9e9 Add cross-reference to alternative syntaxes for Unicode
# Conflicts:
# doc/emacs/custom.texi
2022-10-16 Stefan Kangas <stefankangas@gmail.com>
Expand 'random' testsuite
* test/src/fns-tests.el (ert): Require.
(fns-tests-random): Expand test.
2022-10-16 Po Lu <luangruo@yahoo.com>
Adapt last change to Haiku port
* src/haikuterm.c (haiku_frame_up_to_date):
(haiku_clear_frame):
(haiku_update_begin):
(haiku_flush):
(haiku_flush_dirty_back_buffer_on):
(haiku_read_socket):
* src/haikuterm.h (struct haiku_output):
(FRAME_COMPLETE_P): Synchronize logic with X.
2022-10-16 Po Lu <luangruo@yahoo.com>
Fix multiple sources of flicker under X
Fix three kinds of flicker. The first is if you do:
(while t (sit-for 1) (redraw-display))
and press a key, the frame will turn blank until you C-g. The
second is where handling async input happens in the middle of
drawing and causes a buffer flip to happen. The third is where
unmapping the hourglass window causes exposures.
* src/dispnew.c (redraw_frame): Garbage the frame if it is a
window system frame.
* src/xterm.c (x_update_begin): Clear complete flag.
(x_flip_and_flush, XTframe_up_to_date): Set complete flag.
(x_show_hourglass): Fix hourglass window class.
(flush_dirty_back_buffer_on): Rename to
x_flush_dirty_back_buffer_on.
(x_flush_dirty_back_buffer_on): Check if the frame is complete
before trying to flip.
(handle_one_xevent): Flush frames in a more detailed fashion.
* src/xterm.h (struct x_output): New flag `complete'.
(FRAME_X_COMPLETE_P): New macro.
2022-10-15 Yuan Fu <casouri@gmail.com>
Update ts-mode font-lock to work with tree-sitter's :feature
* lisp/progmodes/ts-mode.el (ts-mode--settings): Add :feature flag.
(ts-mode): Set treesit-font-lock-feature-list.
2022-10-15 Paul Eggert <eggert@cs.ucla.edu>
Fix make bootstrap when the *.m4 files change
This should help avoid problems like Bug#58535.
* Makefile.in (bootstrap-clean): Also remove autom4te.cache.
2022-10-15 Michael Albinus <michael.albinus@gmx.de>
Minor Tramp fixes
* lisp/net/tramp-sh.el (tramp-perl-id): Fix Perl script.
(tramp-sh-handle-expand-file-name):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name):
Check, that there's really a Tramp file name.
2022-10-15 Philip Kaludercic <philipk@posteo.net>
Merge branch 'master' into feature/package+vc
* lisp/vc/vc-git.el (vc-git-symbolic-commit): Use --no-undefined
2022-10-15 Philip Kaludercic <philipk@posteo.net>
* lisp/vc/vc-git.el (vc-git-symbolic-commit): Add argument FORCE
(Bug#57400)
2022-10-15 Philip Kaludercic <philipk@posteo.net>
* lisp/vc/vc-git.el (vc-git--rev-parse): Allow abbreviating commits
* lisp/vc/vc-git.el (vc-git-working-revision): Use abbreviated comment
references. (Bug#57400)
2022-10-15 Philip Kaludercic <philipk@posteo.net>
Handle ;;;###theme-autoload comments in etc/themes
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--emacs-batch):
Extract the autoloads and have them loaded along with loaddefs.el.
* etc/NEWS: Mention the new feature. (Bug#57639)
2022-10-15 Philip Kaludercic <philipk@posteo.net>
Tag themes with properties
* doc/emacs/custom.texi (Custom Themes): Document 'theme-choose-variant'.
* doc/lispref/customize.texi (Custom Themes): Document the new
optional argument to 'deftheme'.
(Autoload): Mention that 'deftheme' is not copied verbatim.
* etc/themes/adwaita-theme.el (adwaita): Add properties.
* etc/themes/deeper-blue-theme.el (deeper-blue): Add properties.
* etc/themes/dichromacy-theme.el (dichromacy): Add properties.
* etc/themes/light-blue-theme.el (light-blue): Add properties.
* etc/themes/manoj-dark-theme.el (manoj-dark): Add properties.
* etc/themes/misterioso-theme.el (misterioso): Add properties.
* etc/themes/tango-dark-theme.el (tango-dark): Add properties.
* etc/themes/tango-theme.el (tango): Add properties.
* etc/themes/tsdh-dark-theme.el (tsdh-dark): Add properties.
* etc/themes/tsdh-light-theme.el (tsdh-light): Add properties.
* etc/themes/wheatgrass-theme.el (wheatgrass): Add properties.
* etc/themes/whiteboard-theme.el (whiteboard): Add properties.
* etc/themes/wombat-theme.el (wombat): Add properties.
* etc/themes/modus-operandi-theme.el: Add properties.
* etc/themes/modus-vivendi-theme.el: Add properties.
* etc/themes/leuven-dark-theme.el (leuven-dark): Add properties.
* etc/themes/leuven-theme.el (leuven): Add properties.
* lisp/custom.el (deftheme): Allow for optional arguments to set the
property list.
(custom-declare-theme): Accept the same optional arguments as 'deftheme'.
(theme-list-variants): Add new function.
(theme-choose-variant): Add new command for switching between members
of a theme family.
(toggle-theme): Add an alias for 'theme-choose-variant'.
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
Handle 'defcustom's by extracting the properties. (Bug#57639)
2022-10-15 Stefan Kangas <stefankangas@gmail.com>
Add no-byte-compile to the ".dir-locals.el" auto-insert template
* lisp/autoinsert.el (auto-insert-alist): Add the no-byte-compile
cookie to the ".dir-locals.el" template.
2022-10-15 Stefan Kangas <stefankangas@gmail.com>
Delete broken link to Network Theory Ltd.
Sadly, their website has been down for several months already.
I was unable to find a new link, but it seems like they haven't
published anything new for over a decade.
* doc/misc/org.org (Summary): Remove broken link to Network Theory Ltd.
2022-10-15 Eli Zaretskii <eliz@gnu.org>
Fix encoding and decoding of process I/O in Eshell on Windows
* lisp/eshell/esh-proc.el (eshell-gather-process-output): Set up
encoding and decoding of text to/from the subprocess for
MS-Windows. (Bug#58281)
2022-10-15 Po Lu <luangruo@yahoo.com>
Remove redundant call to expensive function XOpenDisplay
* src/xterm.c (x_term_init): Speed up opening Emacs over a slow
network connection by an order of magnitude on no toolkit builds
by avoiding a redundant call to XOpenDisplay.
2022-10-15 Po Lu <luangruo@yahoo.com>
Fix XDS file name expansion
* lisp/x-dnd.el (x-dnd-handle-xds-drop): Expand file names
again. That code was mistakenly removed.
2022-10-14 Stefan Kangas <stefankangas@gmail.com>
Use file-size-human-readable in memory-report--format
* lisp/emacs-lisp/memory-report.el (memory-report--format): Use
file-size-human-readable.
2022-10-14 Basil L. Contovounesios <contovob@tcd.ie>
Update image-circular-tests.el
* test/manual/image-circular-tests.el
(image-test-duplicate-keywords): Skip unless images are supported.
(image-test-circular-plist, image-test-:type-property-value): Ditto.
Wrap only failing forms in should[-error] rather than entire test
bodies. Use simpler printed notation in place of function calls.
(image-test-circular-specs): Ditto. Wrap overly wide docstring.
Mark as failing since shortly after its introduction (bug#36403#63).
2022-10-14 Stefan Monnier <monnier@iro.umontreal.ca>
src/textprop.c (get_char_property_and_overlay): Fix bug#58479
Correct `get-char-property` which failed to ignore empty overlays.
* src/textprop.c (get_char_property_and_overlay): Make sure the
overlay covers the character.
* test/src/buffer-tests.el (buffer-tests--overlay-bug58479): New test.
* src/buffer.h (buffer_has_overlays): Avoid `interval_tree_size`.
2022-10-14 Michael Albinus <michael.albinus@gmx.de>
Rename `file-attribute-file-number' to `file-attribute-file-identifier'
* doc/lispref/files.texi (File Attributes):
* etc/NEWS:
* lisp/files.el (find-buffer-visiting, find-file-noselect)
(set-visited-file-name, basic-save-buffer)
(file-attribute-file-identifier):
* lisp/startup.el (normal-top-level-add-subdirs-to-load-path):
* lisp/eshell/em-unix.el (eshell-shuffle-files):
* src/dired.c (Ffile_attributes):
Rename `file-attribute-file-number' to `file-attribute-file-identifier'.
2022-10-14 Eli Zaretskii <eliz@gnu.org>
Document how to control where the *.eln files are written
* doc/lispref/compile.texi (Native Compilation): Document the
trick of pointing $HOME to a non-existent directory.
(Native-Compilation Variables): Document the role of
'native-comp-eln-load-path' in determining where *.eln files are
written.
2022-10-14 Alan Mackenzie <acm@muc.de>
Correctly fontify C++'s operator"" _tag (...)
Give both the "" and _tag font-lock-function-name-face. Also correct the
fontification of an inherited class name when there is an attribute between
the class name being declared and the colon introducing the inheritance.
* lisp/progmodes/cc-engine.el (c-forward-over-colon-type-list): New function.
(c-forward-keyword-clause): Use the above new function instead of a
looking-at.
(c-forward-name, c-forward-declarator): Accept both the "" and the tag as part
of the name.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Fontify the "" (which
already has font-lock-string-face) and the tag with
font-lock-function-name-face.
* lisp/progmodes/cc-langs.el (c-overloadable-operators): Add "" to this list.
(c-sub-colon-type-list-re): New lang-const and lang-var.
2022-10-14 Philip Kaludercic <philipk@posteo.net>
Add a quick-help menu
* lisp/help.el (help-map): Bind 'help-quit-or-quick' instead of 'help-quit'.
(help-quick-sections): Add variable.
(help-quick): Add main command.
(cheat-sheet): Add alias for 'help-quick'.
(help-quit-or-quick): Add auxiliary command.
lisp/help.el (help-for-help): Mention 'help-quit-or-quick'.
* etc/NEWS (https): Mention 'help-quit'.
2022-10-14 Philip Kaludercic <philipk@posteo.net>
* lisp/net/rcirc.el (rcirc-bridged-nick): Inherit from highlight
2022-10-14 Philip Kaludercic <philipk@posteo.net>
Allow filtering what items are added to Ecomplete
* etc/NEWS: Mention new option.
* lisp/ecomplete.el (ecomplete-filter-regexp): Add new option.
(ecomplete-add-item): Respect new option. (bug#58487)
2022-10-14 Philip Kaludercic <philipk@posteo.net>
Prevent .dir-locals.el from being byte-compiled
* lisp/files-x.el (modify-dir-local-variable): Add a 'no-byte-compile'
file local variable when generating a .dir-locals.el
file.
* .dir-locals.el: Add 'no-byte-compile'. (Bug#58486)
2022-10-14 Philip Kaludercic <philipk@posteo.net>
* lisp/net/rcirc.el (rcirc-generate-log-filename): Append ".log"
(Bug#54718)
2022-10-14 Philip Kaludercic <philipk@posteo.net>
Prepare all inline patches at once
* lisp/vc/vc.el (vc-prepare-patch): Remove the usage of
'recursive-edit' when 'vc-prepare-patches-separately' is non-nil.
2022-10-14 Philip Kaludercic <philipk@posteo.net>
Allow reordering commits in 'vc-prepare-patch' prompt
* lisp/vc/vc.el (vc-prepare-patch): Use marked log-view commits as
initial input.
2022-10-14 Philip Kaludercic <philipk@posteo.net>
Mention that vc-prepare-patch can interact with a log-view
* lisp/play/zone.el (zone): Allow selecting a program
2022-10-14 Robert Pluim <rpluim@gmail.com>
Add cross-reference to alternative syntaxes for Unicode
These alternative syntaxes allow you to specify Unicode codepoints
using only ASCII, which helps avoid decoding issues.
* doc/emacs/custom.texi (Init Non-ASCII): Add cross reference to
"General Escape Syntax" in the Emacs Lisp Reference Manual.
2022-10-14 Reuben Thomas <rrt@sc3d.org>
Do perl documentation lookups case-insensitively, like man
* lisp/progmodes/cperl-mode.el (cperl-perldoc): add -i to the perldoc
command.
2022-10-14 Po Lu <luangruo@yahoo.com>
Fix bug#56153
* src/nsterm.m (get_keysym_name)
(ns_draw_glyphless_glyph_string_foreground): Fix new Mac OS
deprecations.
([EmacsApp terminate:]): Use kbd_buffer_store_event instead
of emacs_event. (bug#56153)
([EmacsView windowDidChangeBackingProperties:]): Fix new Mac
OS deprecation.
2022-10-14 Po Lu <luangruo@yahoo.com>
Avoid redundant creation of XRender pictures
* src/xterm.c (x_composite_image): Take arg DESTINATION. Do not
create a picture if it is set.
(x_draw_image_foreground, x_draw_image_foreground_1): Pass
destination where appropriate.
2022-10-14 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
85e47d9a9e ; Continued cleanup of "-hooks"
2022-10-13 Yuan Fu <casouri@gmail.com>
Update tree-sitter manual to reflect the previous commit
* doc/lispref/modes.texi: Update manual to reflect previous change:
remove :toggle and :level, add :feature. Document new variables and
functions.
* doc/lispref/parsing.texi: Add the missing closing bracket in
@code{(t . nil)}.
2022-10-13 Yuan Fu <casouri@gmail.com>
Rework tree-sitter font-lock
Remove :toggle and :level, add :feature.
* lisp/progmodes/js.el (js--treesit-settings): Add :feature.
(js--treesit-enable): Set treesit-font-lock-feature-list.
* lisp/progmodes/python.el: Replace :level with :feature.
(python-mode): Set treesit-font-lock-feature-list.
* lisp/treesit.el (treesit-font-lock-feature-list): New variable.
(treesit-font-lock-settings): Change format.
(treesit-font-lock-rules): Remove :toggle and :level, add :feature.
(treesit-font-lock-recompute-features): New function.
(treesit-font-lock-fontify-region): Change to work with the new
format.
(treesit-font-lock-enable): Add call to
treesit-font-lock-recompute-features. And improve the font-lock-mode
workaround.
2022-10-13 Yuan Fu <casouri@gmail.com>
* doc/lispref/parsing.texi: Add manual for treesit-query-language.
* src/treesit.c (Ftreesit_query_language): New function.
2022-10-13 Michael Albinus <michael.albinus@gmx.de>
Clarify structure of file-attribute's device number
* doc/lispref/buffers.texi (Buffer File Name): Fix description of
buffer-file-number.
* doc/lispref/files.texi (File Attributes): Clarify type of device
number. Describe file-attribute-file-number. (Bug#58446)
* etc/NEWS: Mention file-attribute-file-number.
* lisp/files.el (buffer-file-number, file-attribute-device-number)
(file-attribute-collect): Fix docstring.
(file-attribute-file-number): New defsubst.
(find-buffer-visiting, find-file-noselect)
(set-visited-file-name, basic-save-buffer):
* lisp/startup.el (normal-top-level-add-subdirs-to-load-path):
* lisp/eshell/em-unix.el (eshell-shuffle-files): Use it.
* src/dired.c (Ffile_attributes): Fix docstring.
2022-10-13 Paul Eggert <eggert@cs.ucla.edu>
Improve checks for recent "File exists" fixup
* src/fileio.c (Finsert_file_contents): Add an assertion (bug#42431).
2022-10-13 Stefan Kangas <stefankangas@gmail.com>
Make `info' treat "\n" in node names as "\s"
* lisp/info.el (info): Treat "\n" in node name as "\s". (Bug#57936)
2022-10-13 Po Lu <luangruo@yahoo.com>
Shrink client list window structure
* src/xterm.c (struct x_client_list_window): Rearrange members
for better alignment.
2022-10-13 Paul Eggert <eggert@cs.ucla.edu>
Simplify recent "File exists" fix
* src/fileio.c (Finsert_file_contents):
Simplify previous change that fixed bug#42431.
2022-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix hl-line-mode/global-hl-line-mode logic again
* lisp/hl-line.el (hl-line-mode): Make explicit calls to
(hl-line-mode 1) work again when global-hl-line-mode is on
(bug#58478).
2022-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix browse-url-emacs for file: URLs on Windows
* lisp/net/browse-url.el (browse-url-emacs): Fix up
file:///c:/foo/bar URLs on windows (bug#58464).
2022-10-13 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Rearrange button/margin functions.
(outline--make-button-overlay, outline--make-margin-overlay)
(outline--insert-open-button, outline--insert-close-button)
(outline--fix-up-all-buttons): Move to the section "Button/margin indicators".
2022-10-13 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline--fix-buttons-after-change): New function.
(outline-minor-mode): Use it.
(outline--make-margin-overlay): Remove inhibit-read-only.
2022-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix misleading "File exists, but cannot be read" in browse-url-emacs
* src/fileio.c (Finsert_file_contents): Don't signal an error
about not being able to open the file when we're fetching things
via handlers -- in that case, modtime isn't necessarily set, and
if there's a handler, it should take care of this (bug#42431).
2022-10-13 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
4b4b093ab3 ; * admin/make-tarball.txt: Fix typo.
2022-10-12 Stefan Monnier <monnier@iro.umontreal.ca>
src/frame.c (do_switch_frame): Fix bug#58343
* src/frame.c (do_switch_frame): Move call to `get-mru-window` outside
of the "critical region" where (selected-window) != (frame-selected-window).
* src/minibuf.c (move_minibuffers_onto_frame): Add arg `frame`.
Use it instead of `selected_frame`. Adjust all callers.
* src/lisp.h (move_minibuffers_onto_frame): Adjust declaration.
2022-10-12 Philip Kaludercic <philipk@posteo.net>
* etc/NEWS: Mention package-vc additions
2022-10-12 Philip Kaludercic <philipk@posteo.net>
Document package-vc
* doc/emacs/package.texi (Package Files): Add new node.
2022-10-12 Philip Kaludercic <philipk@posteo.net>
Allow specifying a package name for 'package-vc-link-directory'
* lisp/emacs-lisp/package-vc.el (package-vc-link-directory): Add argument NAME
2022-10-12 Philip Kaludercic <philipk@posteo.net>
* lisp/emacs-lisp/package-vc.el (package-vc-refresh): Add function.
2022-10-12 Philip Kaludercic <philipk@posteo.net>
Rename 'package-vc-link-project' to 'package-vc-link-directory'
* lisp/emacs-lisp/package-vc.el (package-vc-link-project): Rename it.
2022-10-12 Philip Kaludercic <philipk@posteo.net>
Run 'package-vc-unpack-1' after updating source packages
* lisp/emacs-lisp/package-vc.el (package-vc-update): Call
'package-vc-unpack-1'.
2022-10-12 John Wiegley <johnw@newartisans.com>
Merge pull request from conao3/add-commands-keyword
GitHub-reference: https://github.com/jwiegley/use-package/issues/917
2022-10-12 Yuan Fu <casouri@gmail.com>
Better signal data for treesit-load-language-error
* src/treesit.c (ts_load_language): Better formatted signal data,
(Ftreesit_langauge_available_p): Optionally return the signal data if
language not available.
* doc/lispref/parsing.texi: Document the signal data in detail.
2022-10-12 Philip Kaludercic <philipk@posteo.net>
Add new command to install a package via symbolic linking
* lisp/emacs-lisp/package-vc.el (package-vc-unpack-1): Add new function.
(package-vc-unpack): Use 'package-vc-unpack-1'.
(package-vc-link-project): Add new command.
2022-10-12 Lars Ingebrigtsen <larsi@gnus.org>
Clarify Native-Compilation Variables slightly
* doc/lispref/compile.texi (Native-Compilation Variables): Clarify
trampoline bit (bug#58429).
2022-10-12 Philip Kaludercic <philipk@posteo.net>
Only use 'package-vc-repository-store' if necessary
* lisp/emacs-lisp/package-vc.el (package-vc-unpack): Check if the
upstream data indicates a custom lisp directory.
* lisp/emacs-lisp/package.el (package--delete-directory): Adapt
accordingly.
2022-10-12 Po Lu <luangruo@yahoo.com>
Improve makefile-imake-mode
* lisp/progmodes/make-mode.el
(makefile-imake-font-lock-keywords): Give Imake priority over
CPP keywords, and don't require comments to start at BOL.
(makefile-imake-mode): Set comment-start to some sensible value.
2022-10-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix thinko in read-string-from-buffer
* lisp/textmodes/string-edit.el (string-edit-done): Return an empty
string when the user has entered no text.
2022-10-12 kobarity <kobarity@gmail.com>
Fix Python completion when point in shell buffer is before prompt
* lisp/progmodes/python.el (python-shell-completion-at-point): Limit
prompt boundaries check to shell buffer.
* test/lisp/progmodes/python-tests.el (python-shell-completion-2):
(python-shell-completion-native-2): New tests (bug#58441).
2022-10-12 Po Lu <luangruo@yahoo.com>
Stop relying on Xt hack to set window manager hints
* src/widget.c (get_wm_shell): Return WMShellWidget.
(update_wm_hints, widget_update_wm_size_hints): Return whether
or not size hints changed.
* src/widget.h: Delete `size_switch'.
* src/widgetprv.h (EmacsFramePart): Likewise.
* src/xterm.c (x_wm_set_size_hint): Set size hints the usual way
if Xt did not set them. (bug#58412)
2022-10-12 Theodor Thornhill <theo@thornhill.no>
Add TypeScript support with tree-sitter
* lisp/progmodes/ts-mode.el (ts-mode): New major mode for TypeScript
with support for tree-sitter. It uses the TSX parser, so that we get
support for TSX as well as TypeScript. If we cannot find tree-sitter,
we default to using js-mode.
2022-10-12 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
3787d0b11a ; * doc/lispref/windows.texi (Window Hooks): Fix markup (b...
2022-10-11 Andrea Corallo <andrea.corallo@arm.com>
Add trampoline AOT compilation target (bug#58318)
* Makefile.in (trampolines): New target.
* lisp/Makefile.in (trampolines): Likewise.
* lisp/emacs-lisp/comp.el (comp-compile-all-trampolines): New
function.
2022-10-11 Theodor Thornhill <theo@thornhill.no>
Fix byte-compile warning for js--treesit-defun-type-regexp
* lisp/progmodes/js.el (js--treesit-defun-type-regexp): Move before
js--treesit-beginning-of-defun.
2022-10-11 Yuan Fu <casouri@gmail.com>
Lazily compile tree-sitter query
See comment on struct Lisp_TS_Query for why. Previous commits adding
python and js support for tree-sitter breaks Emacs build if language
definitions aren't available at build time. This commit fixes that.
Now query object don't compile the query upon creation, but stores the
query source and language symbol, and compiles upon first use (in
treesit-query-capture).
I want ts_ensure_query_compiled to return signal symbol and data
rather than signaling itself, because it's a helper function not lisp
function. But because it calls ts_load_language, I had to update
ts_load_language to also use the signal symbol/data interface.
* src/treesit.h (struct Lisp_TS_Query): Add two new field.
* src/treesit.c (ts_load_language): Return signal symbol and data
rather than signaling itself.
(Ftreesit_langauge_available_p)
(Ftreesit_parser_create): Update usage of ts_load_language
(make_ts_query): Now returns a lisp object.
(ts_query_error_to_string): Moved because it's used by
ts_compose_query_signal_data.
(ts_compose_query_signal_data)
(ts_ensure_query_compiled): New functions.
(Ftreesit_query_compile): Delay compiling the query.
(Ftreesit_query_capture): Instead of creating a query object which
compiles the query, now goes two routes: if QUERY is a query object,
make sure it is compiled and use the TSQuery; if QUERY is a cons or
string, compile directly to TSQuery, and free it after use. Creating
a lisp query requires the language symbol, but in this function we
only have TSLanguage.
2022-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c (check_tree): Simplify
* src/itree.c (struct check_subtree_result): Remove `complete`.
(check_subtree): Remove `max_depth` arg (and adjust callers).
Use 0 as black-depth of empty tree.
Remove redundant `node->parent` check (already performed by the caller).
(check_tree): Replace with `check_tree_common` (update all callers).
Check the root's `parent` field.
(check_tree_no_rb): Delete function, inlined in its sole caller.
(interval_tree_remove): Add call to `check_tree` (without RB checks)
before `interval_tree_remove_fix`. Move update of `size`
field accordingly.
2022-10-11 Po Lu <luangruo@yahoo.com>
Also avoid setting _NET_WM_USER_TIME on crossing
* src/xterm.c (handle_one_xevent): Stop setting user time prop
on crossing events.
2022-10-11 João Távora <joaotavora@gmail.com>
* eglot.el (version): actually bump to 1.9
2022-10-11 Lars Ingebrigtsen <larsi@gnus.org>
Make read-string-from-buffer and string-edit mention each other
* lisp/textmodes/string-edit.el (read-string-from-buffer)
(string-edit): Mention each other in the doc strings.
2022-10-11 Eli Zaretskii <eliz@gnu.org>
Speed up scrolling when lines are very long and truncated
* src/window.c (window_scroll_for_long_lines): New function.
(window_scroll): Call 'window_scroll_for_long_lines' when lines
are very long and truncated on display. Also, disable
'fontification-functions' during scrolling in that case.
* src/xdisp.c (redisplay_window): When recentering the window's
display, go back to the centering position using a simplified
method, if lines in the buffer are very long and truncated on
display.
2022-10-11 Po Lu <luangruo@yahoo.com>
Remove some more unnecessary calls to block_input
* src/xterm.c (x_update_opaque_region, show_back_buffer)
(XTbuffer_flipping_unblocked_hook, x_clear_under_internal_border)
(x_after_update_window_line): Remove and add calls to
block_input as required.
2022-10-10 Matt Armstrong <matt@rfc20.org>
Stop reading and writing the itree_null.parent field entirely.
With this change all fields in the itree_null sentinel are read only.
This makes accessing itree_null thread safe in an obvious way.
Because it took two commits from two peole to get this right, I think
we can call this design fragile and difficult to reason about.
Another benefit of this commit is as preparation for removing sentinel
node completely, and just using NULL.
* src/itree.c (itree_null): Statically initialize itree_null.parent to
NULL. It is never accessed.
(null_is_sane): Assert parent == NULL.
(interval_tree_remove_fix): Remove unecessary assignments to parent
from node->parent. These were the last places itree_null.parent were
read.
(interval_tree_remove): Avoid an assignment to itree_null.parent
through min->right->parent.
(interval_tree_transplant): Avoid an assignment to itree_null.parent
through source->parent.
2022-10-10 Matt Armstrong <matt@rfc20.org>
Simplify itree_null initialization
* src/itree.c (null_is_sane): call eassert directly, check
REAR_ADVANCE, FRONT_ADVANCE. Add FIXME that PARENT is still
read/write.
(itree_null): initialize statically
(itree_init): remove initialization code, call eassert(null_is_sane())
(check_tree_common): call eassert (null_is_sane())
2022-10-10 Matt Armstrong <matt@rfc20.org>
Check red-black invariants in most places
Stefan recently disabled this but I happened to want it back soon
after.
* src/itree.c (check_subtree): new arg: allow_red_red
(check_tree_common): renamed from check_tree, pass allow_red_red
through.
(check_tree): new function, pass allow_red_red=false
(interval_tree_insert): check_tree -> check_tree_common with
allow_red_red=true.
2022-10-10 Matt Armstrong <matt@rfc20.org>
Improve check_subtree
* src/itree.c (struct check_subtree_result): new struct returned by
check_subtree.
(check_subtree): new function, renamed from recurse_check_tree. Add
new black height assertions.
(check_tree): assert that the tree has non-negative size, assert that
limiting to interval_tree_max_height(tree) levels is enough to
traverses the complete tree.
2022-10-10 F. Jason Park <jp@neverwas.me>
Accommodate missing spec values in erc-format-message
* lisp/erc/erc.el (erc-format-message): Although not mentioned in its
log message, commit 5281946fbf6b3cdbec5ce82e0057c71849faf4d2 "Make
format-spec accept function substitutions" also fixed a bug involving
the `ignore-missing' parameter of `format-spec'. Until now, ERC has
been relying on the old behavior to gracefully handle malformed server
messages. This commit tries to regain that functionality.
2022-10-10 Philipp Stephani <p.stephani2@gmail.com>
Add gettid to seccomp-filter
* lib-src/seccomp-filter.c (main): gettid is necessary on RHEL 9.0
(bug#56359).
2022-10-10 Lars Ingebrigtsen <larsi@gnus.org>
Remove the view-remove-frame-by-deleting variable
* lisp/view.el (view-remove-frame-by-deleting): Remove variable
that hasn't been used since 2011 -- 357f93d245344 reworked the
code and stopped using it (bug#58413).
2022-10-10 kobarity <kobarity@gmail.com>
Fix Python completion failure under certain conditions
* lisp/progmodes/python.el (python-shell-send-string-no-output):
Save and restore `comint-last-prompt-overlay' or `comint-last-prompt'.
* test/lisp/progmodes/python-tests.el (python-tests-shell-wait-for-prompt):
New helper function.
(python-tests-with-temp-buffer-with-shell): New helper macro.
(python-shell-completion-1, python-shell-completion-native-1)
(python-shell-completion-native-with-ffap-1)
(python-shell-completion-native-with-eldoc-1): New tests (bug#58389).
2022-10-10 Lars Ingebrigtsen <larsi@gnus.org>
Improve error message from sqlite-execute
* src/sqlite.c (sqlite_prepare_errmsg): New function.
(Fsqlite_execute): Use it to get the same error format for both
execute and select.
(Fsqlite_select): Factored out from here.
2022-10-10 Jim Porter <jporterbugs@gmail.com>
Don't prompt when killing an Emacs client if it's the last client
* lisp/server.el (server-kill-emacs-query-function): Ignore the
current client (if any) when checking for live clients (bug#58404).
2022-10-10 Daniel Martín <mardani29@yahoo.es>
Fix typo in Makefile.in
* src/Makefile.in (TREE_SITTER_CFLAGS): Set the correct C flags.
2022-10-10 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp completion on MS Windows
* lisp/net/tramp.el (tramp-build-remote-file-name-spec-regexp):
Revert previous change, it's too complicate.
(tramp-build-completion-file-name-regexp):
Use `tramp-prefix-format' instead of `tramp-prefix-regexp'. (Bug#558133)
2022-10-10 Paul Eggert <eggert@cs.ucla.edu>
Port bwrap/allows-stdout test to Ubuntu 22.04.1
Without this patch, Ubuntu 22.04.1 x86-64 "make check" reports a
failure in test/src/emacs-tests.els
emacs-tests/bwrap/allows-stdout. One can reproduce the bug
without using the Emacs executable, by running this script:
#!/bin/bash
export LC_ALL=C
exec strace -f -o /tmp/tr bwrap --ro-bind / / --seccomp 20 -- \
cat /dev/null 20< lib-src/seccomp-filter-exec.bpf
This script exits with status 159, because "cat" didnt get
started (it got a SIGSYS signal early on).
The command "journalctl -g SECCOMP" indicated that rseq (syscall
334) was the problem. This syscall is issued by
/lib64/ld-linux-x86-64.so.2 before main is called.
Theres another problem with the clone3 syscall, which is used by
pthread_create starting in glibc 2.34. pthread_create is called
by g_child_watch_source_new, which is called by
init_process_emacs.
* lib-src/seccomp-filter.c (main): Allow rseq, clone3. This
causes the test to pass. Perhaps a fancier, more accurate patch
could be written by someone who has the time.
2022-10-10 Yuan Fu <casouri@gmail.com>
Make treesit-node-at faster
* lisp/treesit.el (treesit-node-at): We only need to use
treesit-node-first-child-for-pos. This is both faster for large
buffers and simpler. Also remove the TODO comment.
2022-10-10 Theodor Thornhill <theo@thornhill.no>
Fix typo in treesit--check-manual-covarage
* lisp/treesit.el (treesit--check-manual-coverage): Fix typo in
function name and also lookup the correct library in
`find-library-name'
2022-10-10 Yuan Fu <casouri@gmail.com>
Improve treesit-search-forward-goto so it doens't stuck at EOF
* lisp/treesit.el (treesit-search-forward-goto): Handle the edge case.
2022-10-10 Yuan Fu <casouri@gmail.com>
* admin/notes/tree-sitter/starter-guide (Navigation): Improve demo.
2022-10-10 Yuan Fu <casouri@gmail.com>
Fix js--treesit-beginning/end-of-defun
* lisp/progmodes/js.el (require): Add rx.
(js--treesit-move-to-node): Remove function.
(js--treesit-beginning-of-defun)
(js--treesit-end-of-defun): Change to use treesit-search-forward-goto.
(js-treesit--defun-query): Remove variable.
(js--treesit-defun-type-regexp): Add variable.
2022-10-10 Theodor Thornhill <theo@thornhill.no>
Add tree-sitter functionality to js-mode
The diff for js-mode, js-json-mode, js-jsx-mode are a bit strange, but
all we did is to wrap some the old code in
(if tree-sitter
(tree-sitter-enable)
...some old-code)
...other old-code (thats tree-sitter-agnostic)
* lisp/progmodes/js.el (treesit): Add tree-sitter dependency
(js-use-treesitter)
(js-json-use-treesitter): New custom options.
(js--treesit-keywords)
(js--treesit-settings)
(js--treesit-indent-rules)
(js--json-treesit-settings)
(js--json-treesit-indent-rules): New variables.
(js--treesit-backward-up-list)
(js-treesit-current-defun)
(js--treesit-move-to-node)
(js--treesit-beginning-of-defun, js--treesit-end-of-defun)
(js--treesit-enable)
(js--json-treesit-enable): New functions.
(js-mode, js-json-mode, js-jsx-mode): Add support for tree-sitter
functionalities.
2022-10-10 Yuan Fu <casouri@gmail.com>
Fix tree-sitter build script in admin/notes
* admin/notes/tree-sitter/build-module/README: Add explaination.
* admin/notes/tree-sitter/build-module/build.sh: change
typescript to tsx.
2022-10-10 Lars Ingebrigtsen <larsi@gnus.org>
Add a test for sqlite "insert ... returning"
* test/src/sqlite-tests.el (sqlite-returning): Add a test for
"insert ... returning".
2022-10-10 Robert Pluim <rpluim@gmail.com>
Fix `vc-prepare-patch' docstring
* lisp/vc/vc.el (vc-prepare-patch): Correct description of
`vc-prepare-patches-separately'.
2022-10-10 Lars Ingebrigtsen <larsi@gnus.org>
Support "insert into ... returning ..." in sqlite-execute
* doc/lispref/text.texi (Database): Mention it.
* src/sqlite.c (Fsqlite_execute): Support syntax like "insert into
... returning ..." (bug#58390).
2022-10-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix some indentation in Fsqlite_execute
* src/sqlite.c (Fsqlite_execute): Fix indentation.
2022-10-09 Yuan Fu <casouri@gmail.com>
Rename custom group treesit to tree-sitter
* lisp/treesit.el (treesit): Rename.
2022-10-09 Yuan Fu <casouri@gmail.com>
Add :version tag for new tree-sitter custom options
* lisp/progmodes/python.el (python-use-tree-sitter): Add version tag.
* lisp/treesit.el (treesit):
(treesit-max-buffer-size): Add version tag.
2022-10-09 Yuan Fu <casouri@gmail.com>
Make python tree-sitter font-lock support decoration levels
* lisp/progmodes/python.el (python--treesit-settings): Stratify into
three levels.
2022-10-09 Yuan Fu <casouri@gmail.com>
Make tree-sitter font-lock support decoration levels
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
Update.
* admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html:
Update.
* doc/lispref/modes.texi: Mention the new :level option.
* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
(treesit-font-lock-rules): Support :level. Relayout the let form.
(treesit-font-lock-fontify-region): Support :level.
2022-10-09 Yuan Fu <casouri@gmail.com>
Add note on tree-sitter's naming convention
* admin/notes/tree-sitter/starter-guide: Add note.
* doc/lispref/parsing.texi: Add note.
2022-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
Tighten up handling of `otick`
Move args between `build_overlay` and `add_buffer_overlay`,
to try and keep buffer positions together with their buffer.
Be more strict in the `otick` values passed to `interval_tree_insert`.
Move a few things around to try and reduce dependencies through `.h` files.
Fix a thinko bug in `check_tree`.
* src/alloc.c (build_overlay): Remove `begin` and `end` args.
* src/buffer.c (add_buffer_overlay): Move from `buffer.h`.
Add `begin` and `end` args.
(copy_overlays): Adjust accordingly.
(Fmake_overlay): Use BUF_BEG and BUF_Z; adjust call to `build_overlay`
and `add_buffer_overlay`.
(Fmove_overlay): Use BUF_BEG and BUF_Z; Use the new `begin` and `end`
args of `add_buffer_overlay` so we don't need to use
`interval_node_set_region` when moving to a new buffer.
(remove_buffer_overlay, set_overlay_region): Move from `buffer.h`.
* src/buffer.h (set_overlay_region, add_buffer_overlay)
(remove_buffer_overlay): Move to `buffer.c`.
(build_overlay): Move from `lisp.h`.
(maybe_alloc_buffer_overlays): Delete function (inline into its only
caller).
* src/itree.c (interval_tree_insert): Move declaration `from buffer.h`.
(check_tree): Fix initial offset in call to `recurse_check_tree`.
Remove redundant check of the `limit` value.
(interval_node_init): Remove `begin` and `end` args.
(interval_tree_insert): Mark it as static.
Assert that the new node's `otick` should already be uptodate and its
new parent as well.
(itree_insert_node): New function.
(interval_tree_insert_gap): Assert the otick of the removed+added nodes
were uptodate and mark them as uptodate again after adjusting
their positions.
(interval_tree_inherit_offset): Check that the parent is at least as
uptodate as the child.
* src/lisp.h (build_overlay): Move to `buffer.h`.
* src/itree.h (interval_node_init): Adjust accordingly.
(interval_tree_insert): Remove declaration.
(itree_insert_node): New declaration.
2022-10-09 Philip Kaludercic <philipk@posteo.net>
Rename 'package-vc-fetch' to 'package-vc-install'
* lisp/emacs-lisp/package-vc.el (package-vc-fetch): Rename to preserve
symmetry with 'package-install'.
(package-checkout): Follow the previous rename.
2022-10-09 Michael Heerdegen <michael_heerdegen@web.de>
Try to speed up extended command shorthand computation
Discussed in Bug#51143.
* lisp/simple.el (execute-extended-command--shorter): Compute a
complete list of `commandp' symbols once. This significantly speeds
up complicated cases while the slowdown of simple cases is still
accetable.
2022-10-09 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Set the PARENTS argument for language environments
* lisp/language/indonesian.el
* lisp/language/philippine.el
* lisp/language/misc-lang.el
(set-language-info-alist): Add PARENTS argument. (Bug#58376)
2022-10-09 Lars Ingebrigtsen <larsi@gnus.org>
Make Fsqlite_select error data better
* src/sqlite.c (Fsqlite_select): Add more the more specific error
text to the error data (bug#58363).
2022-10-09 Lars Ingebrigtsen <larsi@gnus.org>
Clean up Fsqlite_select slightly
* src/sqlite.c (Fsqlite_select): Clean up code slightly.
2022-10-09 Po Lu <luangruo@yahoo.com>
Fix user time handling bug on GNOME Shell and Metacity
* src/xfns.c (x_window): Avoid extraneous
XChangeWindowAttributes.
* src/xterm.c (x_display_set_last_user_time): New argument
SET_PROPERTY. Do not change the user time property if it is not
true. All callers changed.
(handle_one_xevent): Avoid setting the user time property on
LeaveNotify and XI_Leave events.
2022-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Use `interval_tree_inherit_offset`
The insertion code tried to manipulate the offset in its own way,
and apparently there was a bug in it. Replace that with a call to
`interval_tree_inherit_offset`, making the whole logic a bit simpler,
and fixing a bug along the way (not sure where the bug was, to be honest).
* src/itree.c (interval_tree_insert): Use `interval_tree_inherit_offset`.
Check the tree before insert_fix.
(recurse_check_tree): Don't check RB invariants.
(itree_limits_are_stable): Delete function (subsumed by `check_tree`).
2022-10-09 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
32ef7550ed ; Improve documentation of 'file-in-directory-p'
2022-10-08 Matt Armstrong <matt@rfc20.org>
Debug check overlay tree invariants
* src/itree.c (check_tree):
(recurse_check_tree): new functions.
(interval_tree_insert): call them.
(interval_tree_remove): ditto.
(interval_tree_insert_fix): ditto.
2022-10-08 Matt Armstrong <matt@rfc20.org>
Comment change: explain inheriting "dirty" offsets
handles inheriting offsets from dirty nodes.
2022-10-08 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/url/url-file.el (url-file): Don't bind `coding-system-for-read`
Binding it causes errors when some of the enclosed code ends up
loading a `.el` file, and it is unnecessary since the rest of
the code (in `url-file-asynch-callback`) is already careful to
use `insert-file-contents-literally`.
2022-10-08 Mattias Engdegård <mattiase@acm.org>
Restrict string-lessp vectorisation to safe architectures
* src/fns.c (HAVE_FAST_UNALIGNED_ACCESS): New.
(Fstring_lessp): Only use word operations where safe, because string
data from purespace may be unaligned.
2022-10-08 Mattias Engdegård <mattiase@acm.org>
Better Lisp_String comments
* src/lisp.h (struct Lisp_String): Comments improved.
* src/pdumper.c (dump_string): Update hash (comment change only).
2022-10-08 Mattias Engdegård <mattiase@acm.org>
Improved format string error message (bug#58168)
* src/editfns.c (styled_format): Better message when the conversion
char is non-ASCII from a unibyte format string.
2022-10-08 Philip Kaludercic <philipk@posteo.net>
* lisp/emacs-lisp/package-vc.el: Autoload 'package-vc-prepare-patch'
2022-10-08 Stefan Monnier <monnier@iro.umontreal.ca>
package.el: Understand a few more variations in tarball formats
* lisp/emacs-lisp/package.el (package-untar-buffer): Fix thinko.
(package-tar-file-info): Handle the case where the first file is in
a subdirectory.
* test/lisp/emacs-lisp/package-tests.el (package-test-bug58367): New test.
* test/lisp/emacs-lisp/package-resources/ustar-withsub-0.1.tar:
* test/lisp/emacs-lisp/package-resources/v7-withsub-0.1.tar: New files.
2022-10-08 Lars Ingebrigtsen <larsi@gnus.org>
Make sqlite-select signal errors when there's an error
* src/sqlite.c (load_dll_functions): Update.
(Fsqlite_select): Signal an error when there's an error preparing
the statement.
2022-10-08 Lars Ingebrigtsen <larsi@gnus.org>
Fix vtable-insert-object line insertion
* lisp/emacs-lisp/vtable.el (vtable-insert-object): Pass in the
correct ellipsis values (bug#58370).
(vtable--insert-line): Don't bug out on missing optional arguments.
2022-10-08 Visuwesh <visuweshm@gmail.com>
Fix misleading prompt in vc-git-create-tag
* lisp/vc/vc-git.el (vc-git-create-tag): Actually pass the DEFAULT
argument to vc-read-revision (bug#58378).
2022-10-08 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in etc/TODO
2022-10-08 Michael Albinus <michael.albinus@gmx.de>
* etc/TODO (Wishlist items): Add libarchive(3) integration.
2022-10-08 Lars Ingebrigtsen <larsi@gnus.org>
Mention seq-keep in shortdoc
* lisp/emacs-lisp/shortdoc.el (sequence): Mention seq-keep.
2022-10-08 João Távora <joaotavora@gmail.com>
Fix docstring of eglot-list-connections-mode
* eglot.el (eglot-list-connections-mode): Fix mistaken reference
to similar non-Eglot code.
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Clone packages into a separate directory
* lisp/emacs-lisp/package-vc.el (package-vc-repository-store): Add new
user option.
(package-vc-unpack): Use 'package-vc-repository-store'.
* lisp/emacs-lisp/package.el (package--delete-directory): Check and
handle source packages.
(package-delete): Invoke 'package--delete-directory' with an
additional argument.
2022-10-08 Philip Kaludercic <philipk@posteo.net>
* lisp/emacs-lisp/package.el (package-report-bug): Use 'file-in-directory-p'
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Extend package-vc heuristics to multiple source forges
* package-vc.el (package-vc-probable-repository-regexp): Rename to
'package-vc-heusitic-alist'.
(package-vc-heusitic-alist): Add support for multiple VC backends.
(package-vc-sourced-packages-list): Use 'package-vc-heusitic-alist'
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Use 'package-vc-p' in package-vc.el
* package-vc.el (package-vc-commit): Use it instead of 'eq'.
(package-vc-version): Use it instead of 'eq'.
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Add a package-vc command for submitting ptches
* lisp/emacs-lisp/package-vc.el (package-vc-read-pkg): Add auxiliary
command for querying source packages.
(package-vc-prepare-patch): Add it.
* lisp/emacs-lisp/package.el (package-maintainers): Add an optional
NO-ERROR argument.
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Extract package maintainer guessing code into a separate function
* package.el (package-maintainers): Add new function.
(package-contact-maintainer): Use it.
(package-report-bug): Use it.
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Add an inline procedure for checking for source packages
* package.el (eval-when-compile): Require 'inline during compilation.
(package-vc-p): Add inline function.
(package-desc-full-name): Use it.
(package-load-descriptor): Use it.
(package--get-activatable-pkg): Use it.
(package-install-from-archive): Use it.
(package-update): Use it.
(package-desc-status): Use it.
(package--remove-hidden): Use it.
(package-menu--print-info-simple): Use it.
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Merge branch 'master' into feature/package+vc
2022-10-08 Philip Kaludercic <philipk@posteo.net>
Add a VC command to prepare patches
* doc/emacs/vc1-xtra.texi (Miscellaneous VC): Add new node.
(Editing VC Commands): Document new feature.
* etc/NEWS: Mention 'vc-prepare-patch'.
* lisp/vc/log-view.el: Autoload 'log-view-get-marked'.
* lisp/vc/vc-git.el (vc-git-prepare-patch): Add Git implementation.
* lisp/vc/vc-hg.el (vc-git-prepare-patch): Add Mercurial implementation.
* lisp/vc/vc-bzr.el (vc-git-prepare-patch): Add Bazaar implementation.
* lisp/vc/vc.el (vc-read-revision): Add a MULTIPLE argument.
(vc-read-multiple-revisions): Add an auxiliary function that always
calls 'vc-read-revision' with a non-nil value for MULTIPLE.
(vc-prepare-patches-separately): Add user option.
(message-goto-body): Declare function.
(message--name-table): Declare function.
(vc-default-prepare-patch): Add a default implementation.
(vc-prepare-patch): Add command. (Bug#57400)
2022-10-08 Po Lu <luangruo@yahoo.com>
Stop passing CurrentTime to SetInputFocus
* src/xterm.c (xi_focus_handle_for_device, handle_one_xevent):
Set the last user time where required for focus to be handled
correctly.
(x_focus_frame): Do not perform actions prohibited by the ICCCM.
2022-10-08 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Coptic script (bug#58330)
* lisp/language/misc-lang.el ("Coptic"): New language environment.
Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support coptic.
* lisp/leim/quail/misc-lang.el ("coptic"): New input method.
* etc/HELLO: Add a Coptic greeting.
* etc/NEWS: Announce the new language environment.
2022-10-08 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
cfb1e21844 Update name of hs-mouse-toggle-hiding in Emacs manual
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
itree: Try and detect non-local exits during itree iterations
* src/itree.c (itree_busy_p): New function.
* src/eval.c (signal_or_quit): Use it.
* src/itree.h (itree_busy_p): Declare it.
2022-10-07 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in bibtex.el
* lisp/textmodes/bibtex.el (bibtex-mode-map): Prefer defvar-keymap.
2022-10-07 Stefan Kangas <stefankangas@gmail.com>
Fix setting the wallpaper with "swaybg" and "wbg"
* lisp/image/wallpaper.el (wallpaper-setter): Add 'init-action'
and 'detach' fields to structure.
(wallpaper--init-action-kill): New helper function.
(wallpaper--default-setters): Use above new fields for "swaybg" and
"wbg", to start/restart the corresponding processes as needed.
(wallpaper-default-set-function): Call 'init-action' function if
there is one. If 'detach', use 'call-process' instead of
'start-process'. (Bug#57781)
* test/lisp/image/wallpaper-tests.el (wallpaper--find-setter)
(wallpaper--find-setter/call-predicate)
(wallpaper--find-setter/set-current-setter)
(wallpaper-set/runs-command, wallpaper-set/runs-command/detach)
(wallpaper-set/calls-init-action)
(wallpaper-set/calls-wallpaper-set-function): New tests.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
subr.el (inhibit-point-motion-hooks): Mark it as obsolete
When Emacs-25 changed the default of `inhibit-point-motion-hooks` to t,
/etc/NEWS declared it as obsolete and so did its docstring, but
it was not marked as obsolete so as not to emit too many warnings
in code where it was impractical to remove the let-binding while
keeping backward compatibility with older Emacsen.
Those backward compatibility issues are not serious any more now that
Emacs-25 is itself considered old.
* lisp/subr.el (inhibit-point-motion-hooks): Mark it as obsolete.
* src/textprop.c (inhibit-point-motion-hooks): Don't mention it being
obsolete in the docstring any more.
* lisp/simple.el (line-move-1, line-move-finish): Silence warnings.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/isearch.el (isearch-search): Don't bind `inhibit-point-motion-hooks`
The let-binding was added back in 1997 (commit 79c7a4fa5f974a9d3b)
"because we might have to search inside invisible and intangible text".
So it's been redundant since Emacs-25 changed the default to t.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
verilog-mode.el: Don't bind `inhibit-point-motion-hooks`
Keep binding it in Emacs<25 but not in Emacs≥25 (where such bindings
are redundant and the var is declared obsolete).
* lisp/progmodes/verilog-mode.el (verilog-save-buffer-state):
Don't bind `inhibit-point-motion-hooks` if Emacs≥25.
(verilog-save-font-no-change-functions): Same, and refrain from
binding `before/after-change-functions` as well while we're at it,
since `inhibit-modification-hooks` already covers it in Emacs≥25.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
(nxml-with-invisible-motion): Delete macro.
Don't use this macro any more since it doesn't do anything since Emacs-25
changed the default of `inhibit-point-motion-hooks` to t.
* lisp/nxml/nxml-util.el (nxml-with-invisible-motion): Delete macro.
* lisp/nxml/nxml-mode.el (nxml-mode, nxml-cleanup):
* lisp/nxml/rng-valid.el (rng-do-some-validation):
* lisp/nxml/rng-nxml.el (rng-set-state-after): Don't use it.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/pcomplete.el (pcomplete-arg): Simplify
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
(line-move-1): Obey `inhibit-point-motion-hooks`
`line-move-1` was written back before `inhibit-point-motion-hooks`
was made obsolete and it's written under the assumption that its
value is nil, whereas since Emacs-25 it's t.
To work around problems linked to a nil value of
`inhibit-point-motion-hooks`, the code temporarily binds that var to
t while it moves around trying to find the final destination and then
later in a few key spots it binds it "back" to nil so as to run the
point-motion hooks according to the final destination, as if the
overall motion had been made "normally".
Change the code so that the "bind back" indeed binds the var back to
the value it had originally, rather than always to nil.
* lisp/simple.el (line-move-1): Obey `inhibit-point-motion-hooks`
(line-move-finish): New optional arg `not-ipmh`.
2022-10-07 Matt Armstrong <matt@rfc20.org>
Use a bool instead of a bitfield
* src/itree.c (struct interval_generator): use a bool instead of a
bitfield, since space is not an issue.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
org.el: Improve bindings of `inhibit-*` vars
Remove binding of `inhibit-point-motion-hooks` (it's t by default
anyway and it's obsolete) and don't "manually" bind
`inhibit-modification-hooks`.
* lisp/org/org.el (org-unfontify-region): Use `with-silent-modifications`.
(org-display-inline-remove-overlay): Remove ineffective binding of
`inhibit-modification-hooks` around code which doesn't modify the
buffer anyway.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
Remove aliases of `with-silent-modifications`
There were many reinventions of `with-silent-modifications` (tho
many of them weren't reinventions but copy&paste of code from
font-lock, IIUC). Now that those don't even need to let-bind
`inhibit-point-motion-hooks` they're really just obsolete.
* lisp/font-lock.el (save-buffer-state): Delete macro.
(font-lock-unfontify-region, font-lock-default-fontify-region):
Use `with-silent-modifications` instead.
(font-lock-after-change-function, font-lock-fontify-block): Don't
let-bind `inhibit-point-motion-hooks`.
* lisp/htmlfontify.el (hfy-save-buffer-state): Delete macro.
(hfy-mark-trailing-whitespace, hfy-unmark-trailing-whitespace):
Use `with-silent-modifications` instead.
* lisp/jit-lock.el (with-buffer-prepared-for-jit-lock): Delete macro.
(jit-lock--debug-fontify, jit-lock-refontify, jit-lock-function)
(jit-lock-fontify-now, jit-lock-force-redisplay)
(jit-lock-deferred-fontify, jit-lock-context-fontify)
(jit-lock-after-change): Use `with-silent-modifications` instead.
* lisp/progmodes/antlr-mode.el (save-buffer-state-x): Delete macro.
(antlr-hide-actions): Use `with-silent-modifications` instead.
* lisp/progmodes/hideshow.el (hs-life-goes-on): Don't
let-bind `inhibit-point-motion-hooks`.
2022-10-07 Stefan Monnier <monnier@iro.umontreal.ca>
Remove redundant let-bindings of `inhibit-point-motion-hooks`
`inhibit-point-motion-hooks` has defaulted to t (and been declared
obsolete) since Emacs-25, so remove left-over bindings to that
now default value.
* lisp/dabbrev.el (dabbrev--search):
* lisp/format.el (format-insert-file):
* lisp/forms.el (forms-next-field, forms-prev-field):
* lisp/minibuf-eldef.el (minibuf-eldef-setup-minibuffer):
* lisp/simple.el (primitive-undo):
* lisp/cedet/semantic/edit.el (semantic-change-function):
* lisp/cedet/srecode/fields.el (srecode-field-mod-hook):
* lisp/cedet/srecode/insert.el (srecode-insert-fcn):
* lisp/erc/erc-button.el (erc-button-add-buttons):
* lisp/erc/erc.el (erc-display-line):
* lisp/eshell/em-script.el (eshell-source-file):
* lisp/eshell/em-smart.el (eshell-smart-scroll-window):
* lisp/eshell/esh-arg.el (eshell-parse-arguments):
* lisp/eshell/esh-cmd.el (eshell-with-temp-command):
* lisp/eshell/esh-mode.el (eshell-send-input, eshell-output-filter):
* lisp/gnus/gnus-art.el (gnus-with-article-headers)
(article-hide-headers, article-hide-boring-headers)
(article-decode-mime-words, article-decode-charset)
(article-decode-encoded-words, article-decode-group-name)
(article-decode-idna-rhs, article-hide-list-identifiers)
(article-strip-banner, article-really-strip-banner)
(article-strip-leading-blank-lines)
(article-strip-multiple-blank-lines, article-strip-leading-space)
(article-strip-trailing-space, article-strip-all-blank-lines)
(gnus-article-narrow-to-signature, gnus-article-show-hidden-text)
(article-date-ut, article-verify-x-pgp-sig)
(gnus-article-only-boring-p, gnus-article-highlight-signature)
(gnus-article-add-buttons, gnus-signature-toggle, gnus-button-push):
* lisp/gnus/gnus-cite.el (gnus-article-highlight-citation)
(gnus-article-fill-cited-article, gnus-article-hide-citation)
(gnus-article-toggle-cited-text, gnus-article-hide-citation-maybe)
(gnus-cite-parse-wrapper, gnus-cite-add-face, gnus-cite-toggle):
* lisp/gnus/gnus-gravatar.el (gnus-gravatar-insert):
* lisp/gnus/gnus-rfc1843.el (rfc1843-decode-article-body):
* lisp/gnus/gnus-sum.el (gnus-summary-toggle-header):
* lisp/gnus/gnus-util.el (gnus-fetch-field):
* lisp/gnus/message.el (message-fetch-field, message-reply)
(message-followup, message-hide-headers):
* lisp/net/goto-addr.el (goto-address-fontify):
* lisp/obsolete/linum.el (linum-update-window):
* lisp/play/zone.el (zone-shift-left, zone-shift-right)
(zone-fill-out-screen):
* lisp/progmodes/opascal.el (opascal-save-excursion):
* lisp/progmodes/vhdl-mode.el (vhdl-prepare-search-2):
* lisp/textmodes/enriched.el (enriched-encode):
* lisp/textmodes/flyspell.el (flyspell-word-search-backward)
(flyspell-word-search-forward):
* lisp/textmodes/table.el (table--point-entered/left-cell-function):
Remove let-binding of `inhibit-point-motion-hooks`.
2022-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Update name of hs-mouse-toggle-hiding in Emacs manual
* doc/emacs/programs.texi (Hideshow): Update the name of
hs-mouse-toggle-hiding (bug#58331).
2022-10-07 Matt Armstrong <matt@rfc20.org>
Handle successive mime sections in decoding.
rmailsum.el (rmail-epa-decode):Handle blank lines at start.
Handle both ending delim and another starting delim.
2022-10-07 Mattias Engdegård <mattiase@acm.org>
Speed up string-lessp for multibyte strings
Improve comparison speed when both arguments are multibyte strings,
at least one of them containing a non-ASCII character. (All-ASCII
multibyte strings are already fast.)
The speed-up is about 2× for strings of 10 chars, 10× for strings of
100 chars.
* src/fns.c (Fstring_lessp): Quickly skip the common prefix by
comparing words.
2022-10-07 Mattias Engdegård <mattiase@acm.org>
Clearer byte-compiler arity warnings (bug#58319)
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature-string):
Replace '3+' and '3-4' with '3 or more' and '3 or 4', respectively.
2022-10-07 Miha Rihtaršič <miha@kamnitnik.top>
comint-fontify-input: Don't fontify output as input, different approach
* lisp/comint.el (comint-output-filter): Propertize process output
with field=output before inserting it into buffer to prevent
comint-fontify-input from fontifying it (bug#58169).
2022-10-07 Miha Rihtaršič <miha@kamnitnik.top>
Revert "comint-fl: Prevent fontification of output as input"
This reverts commit 90744ff0be581b69cedea1194b7e78265bdb67a4.
2022-10-07 Michael Albinus <michael.albinus@gmx.de>
* lisp/dired.el (dired-make-relative): Make change less aggressive.
2022-10-07 Po Lu <luangruo@yahoo.com>
Handle IM server disconnects during preedit
* src/xterm.c (x_maybe_clear_preedit): New function.
(xim_destroy_callback): Call that function.
2022-10-07 Stefan Kangas <stefankangas@gmail.com>
Improve package-check-signature docstring
* lisp/emacs-lisp/package.el (package-check-signature): Improve
docstring.
2022-10-07 Yuan Fu <casouri@gmail.com>
Add a :toggle option for tree-sitter font-lock
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
Update html manual.
* admin/notes/tree-sitter/html-manual/build-manual.sh: Fix manual
path.
* admin/notes/tree-sitter/starter-guide: Mention :toggle.
* doc/lispref/modes.texi: Mention :toggle.
* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
(treesit-font-lock-rules): Handle :toggle. Also change
some wrong-type-argument signal to treesit-font-lock-error which is
easier to understand.
(treesit-font-lock-fontify-region): Handle :toggle.
2022-10-07 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
5f8849425c Fix typo in `(emacs) Lisp Doc'
f0a06364fb Fix references to 'default-indent-new-line'
2022-10-06 Yuan Fu <casouri@gmail.com>
* src/treesit.c (syms_of_treesit): Add Streesit_language_version.
2022-10-06 Michael Albinus <michael.albinus@gmx.de>
Better support for remote file names in dired
* lisp/dired.el (dired-make-relative): Expand DIR anyway, because
it could also be an abbreviated remote file name. (Bug#58300)
2022-10-06 Philip Kaludercic <philipk@posteo.net>
Add a generic bug reporting command for packages
* lisp/emacs-lisp/package.el (package-menu-mode-map): Bind
'package-report-bug'.
(package-report-bug): Add new command.
2022-10-06 Philip Kaludercic <philipk@posteo.net>
* lisp/vc/vc-svn.el (vc-svn-clone): Add 'clone' implementation
* lisp/vc/vc-cvs.el (vc-cvs-clone): Add 'clone' implementation
* lisp/vc/vc-bzr.el (vc-bzr-clone): Add 'clone' implementation
* lisp/vc/vc-hg.el (vc-hg-clone): Add 'clone' implementation
2022-10-06 Yuan Fu <casouri@gmail.com>
Merge branch 'master' into feature/tree-sitter
2022-10-06 Arash Esbati <arash@gnu.org>
Pass correct environment name to `reftex-label'
* lisp/textmodes/tex-mode.el (latex-block-body-alist): Pass
"figure" to `reftex-label' when inserting a figure float.
(bug#58329)
2022-10-06 Lars Ingebrigtsen <larsi@gnus.org>
etc/NEWS: Fix typo in seq-keep entry.
2022-10-06 Justus Winter <justus@sequoia-pgp.org>
Replace aging OpenPGP artifacts in gnus' mml-sec tests.
This replaces the old OpenPGPv4 keys that are used in the test suite
with more modern OpenPGPv4 keys.
Having old cryptographic artifacts in the test suite presents a
problem once the old algorithms are rejected by contemporary
implementations (bug#58301).
2022-10-06 Justus Winter <justus@sequoia-pgp.org>
Replace aging OpenPGP artifacts in the package-resources tests.
This replaces the old OpenPGPv4 key that is used in the test suite
with a more modern OpenPGPv4 key. The key is the Alice key from
https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/. All
cryptographic artifacts in the test suite are updated accordingly.
Having old cryptographic artifacts in the test suite presents a
problem once the old algorithms are rejected by contemporary
implementations.
2022-10-06 Justus Winter <justus@sequoia-pgp.org>
Replace aging OpenPGP artifacts in the epg tests.
This replaces the old OpenPGPv4 key that is used in the test suite
with a more modern OpenPGPv4 key. The key is the Alice key from
https://datatracker.ietf.org/doc/draft-bre-openpgp-samples/. All
cryptographic artifacts in the test suite are updated accordingly.
Having old cryptographic artifacts in the test suite presents a
problem once the old algorithms are rejected by contemporary
implementations.
2022-10-06 Justus Winter <justus@sequoia-pgp.org>
Fix epg's reliance on an implicit GnuPG command.
Previously, epg invoked GnuPG without an explicit command to verify
signatures. Make that operation explicit. Happily, this aligns how
gpg and gpgsm is invoked, so it actually makes the code simpler.
2022-10-06 Manuel Giraud <manuel@ledu-giraud.fr>
Fix BSD battery mode over TRAMP (bug#58307)
* lisp/battery.el (battery--call-process-to-string): Simple wrapper
to `call-process' that outputs to a string.
(battery-bsd-apm): Use it instead of `shell-command-to-string'
(bug#58307).
2022-10-06 Matt Armstrong <matt@rfc20.org>
Fix calling `package-reinstall' just after quick initialization.
* lisp/emacs-lisp/package.el (package-reinstall): call
`package--archives-initialize', just like `package-install' does.
This populates `package-alist', and so fixes calling
`package-reinstall' as the first thing done after package "quick
init" (Bug#53527).
2022-10-06 Gerd Möllmann <gerd@gnu.org>
Add missing staticpro (bug#58327)
* src/window.c (init_window_once): staticpro old_selected_window.
2022-10-06 Stefan Kangas <stefankangas@gmail.com>
Fix typo in `(emacs) Lisp Doc'
* doc/emacs/programs.texi (Lisp Doc): Fix reference to
'eldoc-echo-area-display-truncation-message'. (Bug#58324)
2022-10-06 Stefan Kangas <stefankangas@gmail.com>
Fix references to 'default-indent-new-line'
* doc/emacs/programs.texi (Comment Commands)
(Multi-Line Comments): Fix references to
'default-indent-new-line'. (Bug#58325)
2022-10-06 Gerd Möllmann <gerd@gnu.org>
Inhibit GC in probably_quit (bug#58042)
2022-10-06 Stefan Kangas <stefankangas@gmail.com>
* etc/NEWS: Document how to continue using 'linum'. (Bug#58220)
2022-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Get rid of the trick using null->parent
* src/itree.c (interval_tree_remove_fix): Add a `parent` argument.
Change the loop so it always keeps both `node` and `parent` in sync,
thus avoiding the use of `node->parent` on the initial node (since
that one can be null).
(interval_tree_remove): Manually keep track of the `broken` node's
parent to pass it to `interval_tree_remove_fix`.
2022-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
* src/itree.c (interval_tree_remove_fix): Move before first use
2022-10-05 Po Lu <luangruo@yahoo.com>
Minor fixes to IM locale handling
* lisp/term/x-win.el (x-get-input-coding-system): Translate locales.
* src/xterm.c (x_term_init): If the X library doesn't support
the current locale, don't set up input methods.
2022-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Fix corner case errors in offsets
In some cases, `interval_tree_remove` could cause some nodes to
inherit fewer (or additional) offsets than the should because nodes
were transplanted between two parts of the tree where offsets had not
been propagated "equally". So we remove/apply all offsets along the
path between the two points of a transplant before doing the transplant.
* src/itree.c (interval_tree_subtree_min): Move before first use; delete
the declaration; add an `otick` argument, and use it to update offsets
along the way.
(interval_tree_remove): Update all offsets on the way from `node` to `min`.
Reorder some of the operations so that when we transplant `min` to `node`
those nodes are in the proper state where `interval_tree_transplant`
can do its sanity checks.
(itree_total_offset): New function.
(interval_tree_transplant): Use it to sanity check that improper
offsets aren't accidentally inherited/lost because of the transplant.
(itree_newlimit): New function.
(itree_limit_is_stable, interval_tree_update_limit)
(interval_tree_propagate_limit): Use it.
(null_is_sane): Remove `inline` annotation; it's not needed.
(interval_tree_inherit_offset): Sanity check that `offset` is 0 when
`otick` is uptodate. Skip the unneeded increments when the offset is 0.
(interval_tree_insert_fix): Add sanity check that we indeed have 2 reds.
2022-10-05 Po Lu <luangruo@yahoo.com>
Fix nsmenu crash when exiting popup dialog
* src/nsmenu.m (pop_down_menu): Do not discard menu items here.
(ns_popup_dialog): Call discard_menu_items after
unuse_menu_items. (bug#58296)
2022-10-05 Stefan Kangas <stefankangas@gmail.com>
* etc/NEWS: Add instructions for replacing 'linum'. (Bug#58220)
2022-10-05 Yuan Fu <casouri@gmail.com>
Merge branch 'master' into feature/tree-sitter
2022-10-05 Yuan Fu <casouri@gmail.com>
Add tree-sitter admin notes
starter-guide: Guide on writing major mode features.
build-module: Script for building official language definitions.
html-manual: HTML version of the manual for easy access.
* admin/notes/tree-sitter/build-module/README: New file.
* admin/notes/tree-sitter/build-module/batch.sh: New file.
* admin/notes/tree-sitter/build-module/build.sh: New file.
* admin/notes/tree-sitter/starter-guide: New file.
* admin/notes/tree-sitter/html-manual/Accessing-Node.html: New file.
* admin/notes/tree-sitter/html-manual/Language-Definitions.html: New file.
* admin/notes/tree-sitter/html-manual/Multiple-Languages.html: New file.
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Font-Lock.html:
New file.
* admin/notes/tree-sitter/html-manual/Parser_002dbased-Indentation.html:
New file.
* admin/notes/tree-sitter/html-manual/Parsing-Program-Source.html: New
file.
* admin/notes/tree-sitter/html-manual/Pattern-Matching.html: New file.
* admin/notes/tree-sitter/html-manual/Retrieving-Node.html: New file.
* admin/notes/tree-sitter/html-manual/Tree_002dsitter-C-API.html: New
file.
* admin/notes/tree-sitter/html-manual/Using-Parser.html: New file.
* admin/notes/tree-sitter/html-manual/build-manual.sh: New file.
* admin/notes/tree-sitter/html-manual/manual.css: New file.
2022-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Fix incomplete update of `limit`s in corner cases
`interval_tree_remove` called `interval_tree_propagate_limit (subst)`
and `interval_tree_propagate_limit (min_right)` but both of those nodes
are moved without touching their subtrees, so their `limit`s are
"stable" causing `interval_tree_propagate_limit` to do nothing.
Indeed we don't need to update those nodes's `limit`s but we *do*
need to update their parents since those nodes have been moved.
Incidentally, this removes some uses of `null->parent` :-)
There are more uses of `null->parent`, tho, so I added more comments
explaining them (with the help of the matching section of the book
from which the algorithm was taken).
* src/itree.c (interval_tree_update_limit): Remove unused arg `tree`.
(interval_tree_rotate_left, interval_tree_rotate_right): Adjust callers.
(interval_tree_contains): Mark as static.
(itree_limit_is_stable, itree_limits_are_stable): New functions.
(interval_tree_remove): Fix incomplete update of `limit`s in corner
cases.
(interval_generator_next): Add sanity check to make sure the `limit`s
were properly updated.
* src/itree.h (interval_tree_contains): Remove declaration.
2022-10-05 João Távora <joaotavora@gmail.com>
Make eglot-code-actions usable non-interactively
* eglot.el (eglot--read-execute-code-action): New helper.
(eglot-code-actions): Use new helper. Offer non-interactive version.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/1070
2022-10-05 João Távora <joaotavora@gmail.com>
Add half-baked m-x eglot-list-connections
Not very useful for now, but more functionality could be added later,
like bindings for disconnecting a given connection, switching to its
events buffers, or just listing some details like capabilities.
* eglot.el (eglot-list-connections-mode, eglot-list-connections):
New mode and function.
2022-10-05 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (repeat-exit): Add autoload cookie.
* etc/tutorials/TUTORIAL.uk: Fix typos.
2022-10-05 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Clarify how the sentinel is used
* src/itree.c (null_is_sane): New function.
(interval_tree_iter_start): Use it to make sure we haven't garbled null.
(itree_init): Fully initialize `itree_null` here...
(interval_tree_clear): ...instead of here.
(interval_tree_propagate_limit): Remove special code that read NULL->parent.
(interval_tree_remove): Do it explicitly before the call in those two
places where it can happen.
2022-10-05 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp manual
* doc/misc/tramp.texi (Inline methods): Method "kubernetes" does
not support user names.
2022-10-05 Stefan Kangas <stefankangas@gmail.com>
New command 'world-clock-copy-time-as-kill'
* lisp/time.el (world-clock-copy-time-as-kill): New command.
(world-clock-mode-map): Bind above new command to "w".
2022-10-05 Stefan Kangas <stefankangas@gmail.com>
Add face help-key-binding in help-char echo
* src/keyboard.c (echo_add_key): Add help-key-binding face to the
"?" key in 'help-char' echo. (Bug#57906)
(syms_of_keyboard) <Qhelp_key_binding>: New DEFSYM.
2022-10-04 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Remove some unnecessary `tree` arguments
* src/itree.c (interval_tree_propagate_limit)
(interval_tree_subtree_min): Remove `tree` argument.
(interval_node_set_region, interval_tree_remove)
(interval_tree_insert_gap, interval_tree_delete_gap): Adjust callers.
2022-10-04 Po Lu <luangruo@yahoo.com>
Fix bug in "macintization" of x_draw_glyph_string
* src/nsterm.m (ns_draw_stretch_glyph_string): Restore text decoration
drawing code ommitted during "macintization" to convert the X function
into NS code. Reported by Qiantan Hong <qthong@stanford.edu>.
2022-10-04 Filipp Gunbin <fgunbin@fastmail.fm>
Add tramp-kubernetes integration
* doc/misc/tramp.texi (Inline methods): Add kubernetes.
(Customizing Methods): Remove kubernetes-tramp.
* etc/NEWS: Mention new Tramp method "kubernetes".
* lisp/net/tramp-compat.el (kubernetes-tramp): Warn if that package is
used.
* lisp/net/tramp-container.el (tramp-kubernetes-program): New
defcustom.
(tramp-kubernetes-method): New defconst.
(tramp-kubernetes--completion-function): New function.
2022-10-04 Filipp Gunbin <fgunbin@fastmail.fm>
Rename lisp/net/tramp-docker.el to lisp/net/tramp-container.el
2022-10-04 Yuan Fu <casouri@gmail.com>
Add :override flag for python tree-sitter font-lock settings
* lisp/progmodes/python.el (python--treesit-settings): Add :override.
2022-10-04 Yuan Fu <casouri@gmail.com>
Add :override flag for tree-sitter font-lock
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
(treesit-font-lock-rules): Handle :override.
(treesit-font-lock-fontify-region): Handle :override. Also set
inhibit-point-motion-hooks to t.
2022-10-04 Yuan Fu <casouri@gmail.com>
Fix python tree-sitter font-lock
Add fontification for lhs attribute and some operators.
* lisp/progmodes/python.el (python--treesit-keywords): Add operators.
(python--treesit-settings): Add lhs attribute.
2022-10-04 Yuan Fu <casouri@gmail.com>
Add treesit-language-version
* doc/lispref/parsing.texi (Language Definitions): Update manual.
* src/treesit.c (Ftreesit_language_version): New function
2022-10-04 Yuan Fu <casouri@gmail.com>
Improve documentation of tree-sitter search functions
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* src/treesit.c (treesit-search-subtree)
(treesit-search-forwardn)
(treesit-induce-sparse-tree): Mention case-insensitivity.
* lisp/treesit.el (treesit-simple-indent): Mention case-insensitivity.
2022-10-04 Yuan Fu <casouri@gmail.com>
Ignore some capture name in treesit-font-lock-fontify-region
* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
* lisp/treesit.el: (treesit-font-lock-fontify-region): Ignore names
that are not face nor function.
(treesit-font-lock-rules): Update docstring.
2022-10-04 Yuan Fu <casouri@gmail.com>
Remove treesit-query-in
Because treesit-query-capture can now do everything it does.
* doc/lispref/parsing.texi (Pattern Matching): Update manual.
* lisp/treesit.el (treesit-query-in): Remove function.
* src/treesit.c (Ftreesit_query_capture): Accept parser and language
symbol as NODE.
2022-10-04 Vibhav Pant <vibhavp@gmail.com>
Add comment explaining gcc_jit_context_new_bitcast usage.
Address styling comments.
comp.c: Add declaration for gcc_jit_type_is_pointer.
2022-10-04 Vibhav Pant <vibhavp@gmail.com>
src/comp.c: Use libgccjit's bitcast API for type coercion, when available.
* (type_to_cast_index, define_type_punning, define_cast_from_to,
define_cast_functions): Define functions when
gcc_jit_context_new_bitcast is not available.
* (emit_coerce): Use gcc_jit_context_new_bitcast to coerce types, when
available.
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Put all seq.el news into one section
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Add 'seq-keep'
* doc/lispref/sequences.texi (Sequence Functions): Document it.
* lisp/emacs-lisp/seq.el (seq-keep): New function (bug#58278).
2022-10-04 Brian Cully <bjc@kublai.com>
Add method description for podman in Tramp
* doc/misc/tramp.texi (Inline methods): Adapt docker method.
Describe podman method.
2022-10-04 João Távora <joaotavora@gmail.com>
Rename "eglot -> eglot" in docstrings
* eglot.el (eglot-mode-line, eglot-client-capabilities)
(eglot--stay-out-of-p, eglot-managed-p)
(eglot-managed-mode-hook, eglot--managed-mode)
(eglot-current-server, eglot--current-server-or-lose)
(eglot--mode-line-format, eglot-xref-backend)
(eglot-imenu): Rename "EGLOT" -> "Eglot"
2022-10-04 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
a78af3018e * src/emacs.c (load_pdump): Propery handle case when execu...
# Conflicts:
# src/emacs.c
2022-10-04 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
78c262e1c2 ; * lisp/progmodes/glasses.el (glasses-face): Expand the d...
2022-10-04 Alan Mackenzie <acm@muc.de>
CC Mode: A new operator and some new keywords for C++20
* lisp/progmodes/cc-langs.el (c-operators, c-overloadable-operators)
(c-arithmetic-operators): Add the "spaceship" operator for C++.
(c-primitive-type-kwds): Add char8_t for C++.
(c-decl-hangon-kwds, c-paren-nontype-kwds): Add alignas for C++.
2022-10-04 Michael Albinus <michael.albinus@gmx.de>
* etc/NEWS: Mention new Tramp method "podman". Fix typos.
2022-10-04 Brian Cully <bjc@kublai.com>
Provide Podman containers on their own method in Tramp
* lisp/net/tramp-docker.el (tramp-podman-program): New defcustom.
(tramp-podman-method): New defconst.
(tramp-docker-program): Remove "podman" from option list.
(top): Update comments to refer to Docker-alike where necessary.
Add description for how to use the podman method.
2022-10-04 Andreas Schwab <schwab@linux-m68k.org>
* src/emacs.c (load_pdump): Propery handle case when executable
wasn't found.
2022-10-04 Alan Mackenzie <acm@muc.de>
CC Mode: Optimize c-fontify-new-found-type and amend a debug spec
* lisp/progmodes/cc-fonts.el (c-fontify-new-found-type): Write the `face'
property directly, rather than removing `fontified' properties and letting
font-lock do the work.
* lisp/progmodes/cc-defs.el (cc-eval-when-compile): Amend the debug spec from
t to (&rest body), in line with the fix to bug #16184.
2022-10-04 Eli Zaretskii <eliz@gnu.org>
Revert "Improve manual display tests of undisplayable chars (bug#58168)"
This reverts commit 849b7756fd31a69791e67dfe010b1e10f0168c83.
Please don't rush installing changes that are still being
discussed.
2022-10-04 Stefan Kangas <stefankangas@gmail.com>
* lisp/subr.el (y-or-n-p): Use substitute-command-keys.
2022-10-04 Stefan Kangas <stefankangas@gmail.com>
image-dired: Shorten several long names
* lisp/image/image-dired.el (image-dired-image-mode-map)
(image-dired-image-mode): Rename from
'image-dired-display-image-mode-map' and
'image-dired-display-image-mode'. Update all uses and make old
names into obsolete aliases.
(image-dired-display-this, image-dired-display-next)
(image-dired-display-previous): Rename from
'image-dired-display-thumbnail-original-image',
'image-dired-display-next-thumbnail-original', and
'image-dired-display-previous-thumbnail-original'. Update all uses
and make old names into obsolete aliases.
* doc/emacs/dired.texi (Image-Dired): Update documentation for the
above changes, and improve indexing.
2022-10-04 Mattias Engdegård <mattiase@acm.org>
Improve manual display tests of undisplayable chars (bug#58168)
Test display of multibyte raw bytes, as well as undisplayable
multibyte chars (C1 controls and other values).
The test still assumes that raw bytes should be displayed identically
to undisplayable characters (such as C1 controls) because that is how
the display code currently works.
* test/manual/redisplay-testsuite.el (test-redisplay-5-toggle)
(test-redisplay-5): Fix likely typo (#x3fffc) of raw byte value.
(test-redisplay-6): New.
2022-10-04 Stefan Kangas <stefankangas@gmail.com>
image-dired: Fix arrow keys in thumbs buffer
* lisp/image/image-dired.el (image-dired-thumbnail-mode-map): Also
remap 'left-char' and 'right-char'.
2022-10-04 Eli Zaretskii <eliz@gnu.org>
Fix recent changes for Ukrainian language
* etc/HELLO:
* lisp/language/cyrillic.el ("Ukrainian"): Fix greetings and
remove redundant Ukrainian entry in cyrillic.el.
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Make cropping of images work in message-mode
* lisp/gnus/message.el (message-mode): Set the image cropping function.
(message--yank-media-image-handler): Factor out...
(message--image-part-string): ... here for reuse.
(message--update-image-crop): Update the cropped data.
2022-10-04 Alan Mackenzie <acm@muc.de>
CC Mode: Make c-forward-declarator move over a suffix after parens, e.g. const
Also tidy up several inaccuracies in the code.
* lisp/progmodes/cc-engine.el (c-forward-decl-arglist): Move point for modes
other than C++ Mode.
(c-forward-declarator): Move over a suffix following arglist parens
(e.g. const). Set the ARGLIST element of the return value to non-nil on
encountering an unbalanced open parenthesis. Don't move forward out of
enclosing parens.
* lisp/progmodes/cc-mode.el (c-fl-decl-end): Handle being in a multi-line
string. Move forward over token after declarator.
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Move image commands to the 'i' sub map
* doc/lispref/display.texi (Showing Images): Adjust.
* lisp/image.el (image-map): Move all keys under the "i" prefix.
(image--repeat-map): New map.
(image-increase-size, image-rotate, image-decrease-size): Make
repeatable.
(image--delayed-change-size): New function.
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix the arguments in tags--compat-initialize
* lisp/progmodes/etags.el (tags--compat-initialize): Fix argument
order -- swap the last two arguments (bug#58272).
2022-10-04 Po Lu <luangruo@yahoo.com>
Update Ukrainian language info alist
* lisp/language/cyrillic.el ("Ukrainian"): Replace "Glory to
Ukraine" with "hello". See
www.gnu.org/prep/maintain/html_node/Other-Politics.html.
2022-10-04 Denys Nykula <vegan@libre.net.ua>
Add Ukrainian tutorial
* etc/tutorials/TUTORIAL.uk: Create the translation.
* lisp/language/cyrillic.el: Link "Emacs Tutorial"
to the translation if the system is Ukrainian, and
add our modern greeting as a sample text.
* etc/NEWS:
* etc/tutorials/TUTORIAL.translators: Attribute my work (bug#55250).
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix NEWS item about obsoleting the `eq' gv
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Make `eq' obsolete as a generalized variable
* lisp/emacs-lisp/gv.el (eq): Make obsolete as a generalized
variable.
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Mention cond/if as generalized variables in the manual
* doc/lispref/variables.texi (Setting Generalized Variables):
Mention cond and if (bug#52290).
2022-10-04 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in STRING_CHAR
* src/xdisp.c (handle_composition_prop):
* src/editfns.c (styled_format): Don't call 'STRING_CHAR' on
unibyte strings. This avoids assertion violation in
'string_char_and_length'.
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Make loaddefs-generate more resilient
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't bug
out when there's an existing loaddefs file that's not formatted
properly (bug#58280).
2022-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Don't bug out in advice--make-docstring when there's not doc string
* lisp/emacs-lisp/nadvice.el (advice--make-docstring): Don't bug
out on functions with no documentation (bug#58284).
2022-10-04 Eli Zaretskii <eliz@gnu.org>
Avoid errors in interactive calls of 'calendar-goto-day-of-year'
* lisp/calendar/cal-move.el (calendar-goto-day-of-year): Fix the
default value of DAY; doc fix. (Bug#58283)
2022-10-04 Stefan Kangas <stefankangas@gmail.com>
* etc/NEWS: Clarify confusing Image-Dired entry. (Bug#58279)
2022-10-03 Po Lu <luangruo@yahoo.com>
Fix deiconification handling on FVWM and possibly other window managers
I can't believe we weren't doing this before.
* src/xterm.c (x_handle_wm_state): New function.
(handle_one_xevent): Handle window state changes in WM_STATE
messages, and use them for signalling deiconification.
(bug#58164)
2022-10-03 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
992611b10a Fix documentation of 'TAB' in cc-mode
08e485a2a5 Fix 'org-export-dispatch' command name in manual
e5a49f44ff * src/emacs.c (load_pdump): Fix use of xpalloc.
7ff5207624 Avoid assertion violation in 'xpalloc'
# Conflicts:
# src/emacs.c
2022-10-03 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (repeat-exit-key): Replace type 'key-sequence' with 'key'.
(repeat-post-hook, repeat-echo-message-string): Add backward-compatibility
code for repeat-exit-key to keep support for 'key-sequence' type (bug#55986).
2022-10-03 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (repeat-exit): New command.
(repeat-exit-function): New variable.
(repeat-post-hook): Set repeat-exit-function.
Call repeat-exit from run-with-idle-timer.
Also use repeat--exit.
(repeat--exit): New internal function.
2022-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/textmodes/tex-mode.el (tex--redirect-to-submode): Fix last change
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Improve messaging in ecomplete-remove
* lisp/ecomplete.el (ecomplete-remove): Make messaging better.
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in last help-fns--insert-menu-bindings change
* lisp/help-fns.el (help-fns--insert-menu-bindings): Fix typo in
last change.
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Improve help-fns--insert-menu-bindings formatting
* lisp/help-fns.el (help-fns--insert-menu-bindings): Make this
work better for menus that turn out to not be reachable after all
-- i.e., don't insert " and " before the heading in certain cases.
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Add commands to edit/remove ecomplete entries
* lisp/ecomplete.el (ecomplete-add-item): Allow forcing new values.
(ecomplete--remove-item):
(ecomplete--prompt-type): New functions.
(ecomplete-edit, ecomplete-remove): New commands.
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Rename to inhibit-automatic-native-compilation
* src/comp.c (maybe_defer_native_compilation):
(syms_of_comp):
* lisp/subr.el (native-comp-deferred-compilation):
* lisp/startup.el (inhibit-native-compilation):
(normal-top-level):
* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load):
* lisp/emacs-lisp/comp.el (comp-trampoline-compile):
* etc/NEWS:
* doc/lispref/compile.texi (Native-Compilation Variables): Rename
inhibit-native-compilation to inhibit-automatic-native-compilation.
2022-10-03 Stefan Monnier <monnier@iro.umontreal.ca>
files.el (major-mode-remap-alist): New custom var (bug#58075)
* lisp/files.el (major-mode-remap-alist): New custom var.
(set-auto-mode--last): New var.
(set-auto-mode-0): Obey `major-mode-remap-alist`.
* doc/emacs/modes.texi (Choosing Modes): Document `major-mode-remap-alist`.
* lisp/progmodes/cperl-mode.el: Recommend the use of
`major-mode-remap-alist` over the crude `defalias` solution.
* lisp/textmodes/tex-mode.el (tex--guess-mode): Simplify.
(tex--redirect-to-submode): Obey `major-mode-remap-alist`.
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Add new variable 'inhibit-native-compilation'
* doc/lispref/compile.texi (Native-Compilation Variables):
Document it.
* lisp/startup.el (normal-top-level): Set
inhibit-native-compilation from environment variable.
* lisp/subr.el (native-comp-deferred-compilation): Make obsolete.
* lisp/emacs-lisp/comp.el (comp-trampoline-compile): Don't write
trampolines to disk.
* lisp/progmodes/elisp-mode.el
(emacs-lisp-native-compile-and-load): Adjust.
* src/comp.c (syms_of_comp): New variable
inhibit-native-compilation.
(maybe_defer_native_compilation): Use it.
2022-10-03 Po Lu <luangruo@yahoo.com>
Fix coding systems used for X input methods
* doc/emacs/mule.texi (International): Refer to X Coding as
well.
(Communication Coding): Document that locale-coding-system is
not always used on X to decode keyboard input.
(X Coding): New node.
* etc/NEWS: Announce change to input method coding resolution.
* lisp/term/x-win.el (x-get-input-coding-system): New function.
* src/coding.c (syms_of_coding): Update doc string of
locale-coding-system.
* src/xfns.c (struct x_xim_text_conversion_data)
(x_xim_text_to_utf8_unix_1, x_xim_text_to_utf8_unix_2)
(x_xim_text_to_utf8_unix): Accept dpyinfo. Use the coding
system specified inside if possible.
(xic_preedit_draw_callback): Pass dpyinfo.
* src/xterm.c (handle_one_xevent): Use XIM coding system for IM
input.
(xim_open_dpy): Try to determine the input method coding system.
(mark_xterm): Mark `xim_coding'.
(syms_of_xterm): New variable `x-input-coding-system'.
* src/xterm.h (struct x_display_info): New field `xim_coding'.
(FRAME_X_XIM_CODING): New macro.
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Add --with-native-compilation=aot configuration option
* configure.ac: Allow --with-native-compilation=aot to switch full
ahead-of-time on.
* lisp/Makefile.in: Use the setting from configure.
2022-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Revert "keymap.el: Ease up support for non-`kbd` formats."
This reverts commit 570a11052be6178954956a1c59c8ebcbdb77d38e.
We do not want to support several keymap formats in
`keymap-set' and friends -- the point is to have an
interface with easy-to-understand semantics that
give good feedback on valid/invalid key sequences.
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
Improve auto-insert-mode documentation
* lisp/autoinsert.el: Improve usage instructions and formatting.
(auto-insert-directory): Doc fix; the directory does not have to end
in slash.
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
Fix documentation of 'TAB' in cc-mode
* doc/emacs/programs.texi (C Indent): Fix documentation of 'TAB'
in cc-mode. (Bug#58258)
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
Fix 'org-export-dispatch' command name in manual
* doc/emacs/text.texi (Org Authoring): Fix 'org-export-dispatch'
command name. (Bug#58260)
2022-10-02 Paul Eggert <eggert@cs.ucla.edu>
Port TZ settings to POSIX
* lisp/Makefile.in (.el.elc):
* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times):
Use the POSIX standard TZ=UTC0 rather than the GNU extension
TZ=UTC to set the time zone to UTC.
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
Actually delete markers in dired-do-flagged-delete
* lisp/dired.el (dired-do-flagged-delete): Actually delete
markers. (Bug#58256)
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
Fix more overly long docstrings in eieio
* lisp/emacs-lisp/eieio.el (defclass): Fix more overly long
docstrings. (Bug#58252)
2022-10-02 Paul Eggert <eggert@cs.ucla.edu>
Dont truncate seccomp-filter diagnostic
* lib-src/seccomp-filter.c (fail): Do not truncate diagnostic
arbitrarily to 1000 bytes when ERROR is nonzero.
2022-10-02 Paul Eggert <eggert@cs.ucla.edu>
Prefer static_assert to verify in seccomp-filter
Prefer static_assert in just one file for now; the idea is to do
it elsewhere eventually. static_assert is standard (starting with
C23) whereas verify is not, and static_assert can be used even in
pre-C23 files due to Gnulibs support for it.
* lib-src/seccomp-filter.c: Do not include verify.h.
Prefer static_assert to verify.
2022-10-02 Alan Mackenzie <acm@muc.de>
Suppress irritating/misleading message in make bootstrap about old .elc files
These are the "compile-first" .elc files, artificially given an old timestamp
to cause them later to be native compiled. This fixes bug #58224.
* lisp/Makefile.in (compile-first .el.elc): Give these .elc's the UTC epoch.
Amend the comment.
* src/lread.c (Fload): New variable, epoch_timestamp, initialized to binary
zero. Compare with this the timestamp of .elc's being loaded, and if they
match, don't output the message about the source file being newer than the
file being loaded.
2022-10-02 Paul Eggert <eggert@cs.ucla.edu>
* .gitignore: Add lib/assert.h (Bug#58254).
2022-10-02 Juri Linkov <juri@linkov.net>
* lisp/vc/vc-git.el (vc-git-checkin): Add more checks for vc-git-patch-string
Check that vc-git-patch-string contains the same changes that already exists
in the staged area when files were added/removed by vc commands (bug#52349).
2022-10-02 Juri Linkov <juri@linkov.net>
In vc-git-log-incoming use the repository in the command "fetch" (bug#50340)
* lisp/vc/vc-git.el (vc-git-log-incoming): Use repository part
from non-nil remote-location in the command "fetch".
* lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Mention in
docstrings and prompts that REMOTE-LOCATION can be a remote branch name.
* doc/emacs/maintaining.texi (VC Change Log): For commands
vc-log-incoming and vc-log-outgoing, use the term "remote location"
instead of "repository".
2022-10-02 Peter Münster <pm@a16n.net>
Delete thumbs in image-dired-do-flagged-delete after confirmation
* lisp/image/image-dired.el (image-dired-do-flagged-delete): Remove
thumbnails only after confirming deletion of the files. (Bug#58255)
2022-10-02 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (repeat<defgroup>): New customization group.
(repeat-too-dangerous, repeat-on-final-keystroke)
(repeat-exit-key, repeat-exit-timeout, repeat-keep-prefix)
(repeat-check-key, repeat-echo-function, repeat-mode):
Change group to 'repeat'.
2022-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
keymap.el: Ease up support for non-`kbd` formats.
While we want to standardize on the `kbd` syntax for user-facing code,
the internal vector representation of key sequences is not going away,
so let's not impose silly `key-description + key-parse` roundtrips.
Also, provide some support for packages stuck with user configs defined
to hold old-style key formats.
* lisp/keymap.el (keymap-set): Allow vectors as `key`.
(key-parse-old-format): New function, which stands out better than
`key-description` when searching for uses of the old syntax.
* lisp/outline.el (outline-minor-mode): Use it.
2022-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
itree: Use a single iterator object
Instead of having one iterator object per buffer, use just a single
global one. There is virtually no benefit to having per-buffer
iterators anyway: if two iterations can be active at the same time,
then there can be cases where those two iterations happen
to operate on the same buffer :-(
* src/itree.h (struct interval_tree): Remove `iter` field.
* src/itree.c (interval_generator_destroy)
(interval_tree_iter_ensure_space): Delete functions.
(iter): New global variable.
(init_itree_null): Rename to `itree_init` and adjust all callers.
Initialize `iter` as well.
(interval_tree_create, interval_tree_init):
Don't initialize `iter` field any more.
(interval_tree_destroy): Don't destroy `iter` field any more.
(interval_tree_insert): Don't bother growing the iterator (it's grown
in `interval_stack_push_flagged` if needed anyway, and in any case
there's no `iter` here to grow any more).
(interval_tree_remove): Tweak assertion to be more precise and
self-evident.
(interval_tree_iter_start): Use the global `iter`.
(interval_generator_create): Make it work with a NULL argument.
2022-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
mark_overlays: Use the normal ITREE_FOREACH
This commit basically reverts commit 5b954f8f9. The problem of nested
iterations hasn't been fixed in the mean time, but since the GC can
run arbitrary ELisp code (via `post-gc-hook`), running the GC from
within an itree iteration is already unsafe anyway :-(
* src/alloc.c (mark_overlays): Delete function.
(mark_buffer): Use ITREE_FOREACH.
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
* lisp/files.el (after-find-file): Use substitute-command-keys.
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
Fix overly wide docstrings generated by eieio
* lisp/emacs-lisp/eieio-core.el (eieio-make-class-predicate)
(eieio-make-child-predicate, eieio-defclass-internal): Don't generate
overly wide docstrings. (Bug#58252)
2022-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Remove `tree` field from iterator
* src/itree.c (interval_generator_ensure_space, interval_generator_reset):
Inline and then delete functions.
(interval_tree_inherit_offset): Only take the tree's `otick` as arg.
Update all callers.
(struct interval_generator): Remove `tree` field, replace with a copy
of the tree's `otick`.
(interval_stack_push_flagged): The arg should be a real node.
(interval_tree_insert_gap): Prefer checking root==NULL rather than size==0.
Skip loop when tree is empty to avoid pushing&processing the NULL node.
(interval_tree_inherit_offset): Prefer parent==NULL rather than
node==root to avoid accessing the tree object.
2022-10-02 Lars Ingebrigtsen <larsi@gnus.org>
Kill URL buffer in url-insert-file-contents-literally
* lisp/url/url-handlers.el (url-insert-file-contents-literally):
Kill the URL buffer after use.
2022-10-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix coding system problems in gnus-read-ephemeral-bug-group
* lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): Don't
bind coding system variables, because that leads to loading other
files (like cookie files) using that coding system (bug#58227).
* lisp/url/url-handlers.el (url-insert-file-literally): New function.
(url-insert): Allow forcing no-decode.
2022-10-02 Stefan Kangas <stefankangas@gmail.com>
Decrease use of the word "Emacsen" in Tramp docs
* lisp/net/tramp-archive.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-uu.el:
* lisp/net/tramp.el: Don't say "Emacsen" when a different wording
would be clearer.
2022-10-02 Lars Ingebrigtsen <larsi@gnus.org>
perform-replace doc string fix
* lisp/replace.el (perform-replace): Fix doc string (bug#58177).
2022-10-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix point movement when indenting in sieve-mode
* lisp/net/sieve-mode.el (sieve-mode-indent-function): Fix point
movement when point is at the start of the line (bug#58202).
2022-10-02 Andreas Schwab <schwab@linux-m68k.org>
* src/emacs.c (load_pdump): Fix use of xpalloc.
2022-10-02 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violation in 'xpalloc'
* src/emacs.c (load_pdump): Ensure the 3rd argument of xpalloc is
always positive. (Bug#58232)
2022-10-02 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Gothic script (bug#58194)
* lisp/language/misc-lang.el ("Gothic"): New language environment.
Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support gothic.
* lisp/leim/quail/misc-lang.el ("gothic"): New input method.
* etc/HELLO: Add Gothic greetings.
* etc/NEWS: Announce the new language environment.
2022-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
Merge remote-tracking branch 'origin/feature/noverlay' into noverlay
2022-10-02 Stefan Monnier <monnier@iro.umontreal.ca>
New ITREE_FOREACH macro
* src/itree.h (interval_tree_iter_start): Adjust type.
(interval_tree_nodes): Delete declaration.
(ITREE_FOREACH, ITREE_FOREACH_ABORT, ITREE_FOREACH_NARROW): New macros.
* src/itree.c (interval_tree_contains, interval_tree_insert_gap):
Use the new ITREE_FOREACH macro.
(interval_tree_nodes): Delete function.
(interval_tree_iter_start): Return the iterator.
(interval_generator_next, interval_tree_destroy):
Don't accept a NULL arg any more.
* src/xdisp.c (load_overlay_strings, strings_with_newlines):
* src/textprop.c (get_char_property_and_overlay):
* src/buffer.c (copy_overlays, delete_all_overlays)
(set_overlays_multibyte, swap_buffer_overlays, overlays_in)
(next_overlay_change, previous_overlay_change, overlay_touches_p)
(overlay_strings, Foverlay_lists, report_overlay_modification)
(evaporate_overlays): Use the new ITREE_FOREACH macro.
* src/buffer.h (buffer_overlay_iter_start1)
(buffer_overlay_iter_start, buffer_overlay_iter_next)
(buffer_overlay_iter_finish, buffer_overlay_iter_narrow):
Delete declarations.
2022-10-01 Po Lu <luangruo@yahoo.com>
Only rely on EWMH window activation if possible
* xterm.c (x_ewmh_activate_frame): Remove unnecessary
x_wm_supports check.
(x_focus_frame): When the window manager supports
_NET_ACTIVE_WINDOW, just use it; anything else may confuse the
window manager.
2022-10-01 Stefan Kangas <stefankangas@gmail.com>
Revert "Decrease use of the word "Emacsen" in docs"
This reverts commit 55f46cc77cb9d72fbabadb63d8aeab45c5e005e2.
Ref. https://lists.gnu.org/r/emacs-devel/2022-10/msg00016.html
2022-10-01 Michael Albinus <michael.albinus@gmx.de>
Tramp cleanup
* doc/misc/tramp.texi (Password handling): Fix typos.
* lisp/net/tramp-docker.el (tramp-default-remote-shell):
* lisp/net/tramp-sshfs.el (tramp-default-remote-shell): Declare.
* lisp/net/tramp.el (tramp-methods): Fix docstring.
(tramp-get-remote-tmpdir): Revert previous patch, it isn't needed
anymore.
2022-10-01 Stefan Kangas <stefankangas@gmail.com>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-09-27 20:39:13 UTC.
2022-10-01 Michael Albinus <michael.albinus@gmx.de>
Use a version for the Tramp cache
* lisp/net/tramp-cache.el (tramp-cache-version): New defconst.
(top): Check the cache version, and flush the cache in case of
mismatch. Suggested by Paul Pogonyshev <pogonyshev@gmail.com>.
* lisp/net/tramp-cmds.el (tramp-cleanup-all-connections):
Re-initialize the cache version.
2022-10-01 Stefan Kangas <stefankangas@gmail.com>
Decrease use of the word "Emacsen" in docs
"Emacsen" is either a less clear way of saying "old versions of
Emacs", or an implicit reference to XEmacs. We recommend against
using it in the FAQ. So use the more clear wording instead.
* doc/misc/gnus.texi (Oort Gnus):
* doc/misc/widget.texi (Basic Types, toggle):
* lisp/cedet/semantic/bovine/c.el (semantic-c-skip-conditional-section):
* lisp/cedet/semantic/wisent/comp.el (wisent-compile-grammar):
* lisp/desktop.el (desktop-save):
* lisp/erc/erc-compat.el:
* lisp/erc/erc-log.el:
* lisp/gnus/gnus-util.el (gnus-replace-in-string):
* lisp/mail/footnote.el:
* lisp/net/tramp-archive.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-uu.el:
* lisp/net/tramp.el:
(with-tramp-locked-connection):
* lisp/org/ol-eww.el:
* lisp/org/org-compat.el:
(org-define-error):
* lisp/shadowfile.el:
* lisp/winner.el: Don't use the word "Emacsen".
2022-10-01 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
be3eac3929 ; * etc/NEWS: Fix typos.
99a8c53247 Fix connection property incompatibility in Tramp
# Conflicts:
# etc/NEWS
2022-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Make mailcap--regexp-quote-type more resilient
* lisp/net/mailcap.el (mailcap--regexp-quote-type): Make more
resilient in the presence of junk.
2022-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Make "git pull" output slightly prettier
* lisp/vc/vc-git.el (vc-git--pushpull): Translate ^M in output
(bug#58199).
2022-10-01 Eli Zaretskii <eliz@gnu.org>
Fix vertical motion in some rare bidi situations
* src/xdisp.c (move_it_by_lines): Handle the case where we
didn't move vertically at all.
2022-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Make mailcap consistent about regexp-quoting minors
* lisp/net/mailcap.el (mailcap-mime-data): Quote regexp.
(mailcap-mime-extensions): Ditto.
(mailcap--regexp-quote-type): New function.
(mailcap-parse-mimetype-file): Use it to get consistent quoting of
(regexp) strings (bug#52038). Before you'd get both
application/vnd\.ms-excel and application/vnd.ms-excel (etc),
making prompting confusing.
2022-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix url-retrieve-synchronously on very short timeouts
* lisp/url/url.el (url-retrieve-synchronously): Don't kill the
process buffer unless we made one (bug#58218). This makes HTTP
free connection marking work on premature timeouts.
2022-10-01 Matthias Meulien <orontee@gmail.com>
Define ansi-osc customization group
* lisp/ansi-osc.el (ansi-osc): Define ansi-osc customization group
(ansi-osc-for-compilation-buffer): Fix wrong group
2022-10-01 Matthias Meulien <orontee@gmail.com>
Rename osc.el to ansi-osc.el (bug#58200)
* lisp/osc.el: Move from here...
* lisp/ansi-osc.el: ...to here.
* test/lisp/osc-tests.el: Move from here...
* test/lisp/ansi-osc-tests.el: ...to here.
2022-10-01 Protesilaos Stavrou <info@protesilaos.com>
Update to Modus themes stable version 2.7.0
* doc/misc/modus-themes.org (Load theme depending on time of day): Add
missing keyword from sample configuration.
(Full support for packages or face groups): Update list of supported packages.
(Note on goto-address-mode faces): Add documentation about possible
user-level tweaks.
(Are these color schemes?): Fix typo.
(Acknowledgements): Update list of contributors to the project.
* etc/themes/modus-themes.el (modus-themes--version): Update to
current stable version.
(modus-themes-vivendi-colors): Tweak value of a single color.
(modus-themes-faces): Update list of supported faces.
(modus-themes-custom-variables): Remove outdated "TODO" comment.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Update version header.
Release notes: <https://protesilaos.com/codelog/2022-10-01-modus-themes-2-7-0/>.
2022-10-01 Gerd Möllmann <gerd@gnu.org>
Make it compile with ITREE_DEBUG defined
* src/buffer.c (make_lispy_interval_node): Use make_fixnum.
(overlay_tree): Use ITREE_NULL.
2022-10-01 Eli Zaretskii <eliz@gnu.org>
Fix 'C-a' and 'C-e' under 'visual-line-mode'
* src/xdisp.c (move_it_vertically_backward): Fix last change.
(Bug#58210)
2022-09-30 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
2022-09-30 Stefan Monnier <monnier@iro.umontreal.ca>
itree.c: Improve division between tree and iterator
* src/buffer.c (delete_all_overlays): Add comment.
* src/itree.c (struct interval_generator): New fields `running`,
`file`, and `line` moved from `interval_tree`.
(interval_stack_push_flagged): Adjust comment to resolve a FIXME.
(interval_tree_clear): Replace assignment with an a
(interval_tree_iter_next): Delete function.
(interval_tree_clear): Don't set `iter_running` here any more.
(interval_generator_create): Set it here instead.
(interval_tree_iter_start): Fetch `iter` once and for all.
(interval_generator_narrow): Mark it as non-static.
(interval_tree_iter_next, interval_tree_iter_narrow):
Delete functions. Inline their old bodies in the callers.
(interval_tree_iter_finish): Take the iter rather than
the whole tree. Adjust all callers.
(interval_generator_next): Move `running `assertion here from
`interval_tree_iter_next`.
* src/buffer.h: Adjust accordingly.
* src/itree.h (struct interval_tree): Remove fields `iter_running`,
`file`, and `line`, moved to `interval_generator`.
(interval_generator_narrow): Replace `interval_tree_iter_narrow`.
2022-09-30 Yuan Fu <casouri@gmail.com>
Change tree-sitter indent anchor preset 'prev-line'
* doc/lispref/modes.texi: Update manual.
* lisp/treesit.el (treesit-simple-indent-presets): Change prev-line to
mean bol of prev-line.
2022-09-30 Yuan Fu <casouri@gmail.com>
Fix tree-sitter manuals
* doc/lispref/modes.texi: Fix typos, reword, etc.
* doc/lispref/parsing.texi: Fix typos, reword, etc.
2022-09-30 Michael Albinus <michael.albinus@gmx.de>
Fix connection property incompatibility in Tramp
* lisp/net/tramp.el (tramp-get-remote-tmpdir): Remove obsolete
connection property "tmpdir". (Bug#57800)
2022-09-30 Miha Rihtaršič <miha@kamnitnik.top>
Rename comint-fl-* to comint-fontify-input-* and mention it in NEWS
* lisp/comint.el
(comint-fontify-input-mode):
(comint--fontify-input-saved-jit-lock-contextually):
(comint--fontify-input-on):
(comint--fontify-input-off):
(comint--fontify-input-ppss-flush-indirect):
(comint--fontify-input-fontify-region): Replace comint-fl-* with
comint-fontify-input-*.
* lisp/ielm.el (ielm-fontify-input-enable):
(ielm-fontify-input-enable):
(ielm-indirect-setup-hook):
(inferior-emacs-lisp-mode): Replace comint-fl-* with
comint-fontify-input-*.
* lisp/shell.el (shell-comint-fl-enable):
(shell-mode): Replace comint-fl-* with comint-fontify-input-*.
* etc/NEWS: Mention the new modes and how to disable or enable
them (bug#58169).
2022-09-30 Miha Rihtaršič <miha@kamnitnik.top>
comint-fl: Prevent fontification of output as input
* lisp/comint.el (comint-output-filter): Inhibit jit-lock
fontification of inserted process output before marking it with the
'output' filed property (bug#58169).
2022-09-30 Lars Ingebrigtsen <larsi@gnus.org>
Further with-locale-environment refresh fixes
* lisp/international/mule-cmds.el
(set-display-table-and-terminal-coding-system): Allow inhibiting
refresh.
(set-locale-environment): Inhibit refresh in more paths (bug#58193).
2022-09-30 Sean Whitton <spwhitton@spwhitton.name>
Add vc-edit-next-command
* lisp/vc/vc.el (vc-read-revision): Override
vc-filter-command-function back to its default value.
(vc-print-branch-log): Remove recently-added prefix argument.
(vc-edit-next-command): New command.
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind it to 'C-x v !'.
* etc/NEWS:
* doc/emacs/vc1-xtra.texi (Editing Shell Commands): Document it.
2022-09-30 Mattias Engdegård <mattiase@acm.org>
Rectify string= documentation
* doc/lispref/strings.texi (Text Comparison): Describe the current
behaviour since about 20 years back.
2022-09-30 Mattias Engdegård <mattiase@acm.org>
Strengthen string-lessp tests
* test/src/fns-tests.el (fns-tests--string-lessp-cases)
(fns-tests-string-lessp): Check more cases, and in a more robust way.
2022-09-30 Mattias Engdegård <mattiase@acm.org>
Speed up string-lessp further
* src/fns.c (Fstring_lessp): Use the memcmp fast path for ASCII-only
multibyte strings as well. Specialise loops on argument
multibyteness.
2022-09-30 Lars Ingebrigtsen <larsi@gnus.org>
Don't refresh the frame in with-locale-environment
* lisp/international/mule-cmds.el (with-locale-environment):
Inhibit refresh so that there's no flickering (bug#58193).
(set-locale-environment): Allow inhibiting the refresh.
* lisp/international/mule.el (set-terminal-coding-system): Ditto.
2022-09-30 Lars Ingebrigtsen <larsi@gnus.org>
Make gnus-user-agent less verbose
* lisp/gnus/gnus.el (gnus-user-agent): Don't include the Emacs/OS
version for privacy reasons (bug#58171).
2022-09-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix the `dictionary' parent defgroup
* lisp/net/dictionary.el (dictionary): The `hypermedia' group
doesn't exist, so put it in the same parent group that `ispell'
uses (bug#58178).
2022-09-30 Jose A. Ortega Ruiz <jao@gnu.org>
docview: fixes for imenu generation
* lisp/doc-view.el: (doc-view--pdf-outline):
(doc-view-imenu-index):
(doc-view-imenu-setup): Fix multiple empty index generation for
documents without an outline, caching the result (see discussion in
bug#58103).
(doc-view--imenu-subtree): Fix for nested imenus (bug introduced in
commit fe002cc8ce) (bug#58180).
2022-09-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix rename-visited-file when renaming to a directory name
* lisp/files.el (rename-visited-file): Allow renaming to a
directory file name (bug#58182).
2022-09-30 Lars Ingebrigtsen <larsi@gnus.org>
Improve message-sendmail-f-is-evil documentation
* lisp/gnus/message.el (message-sendmail-f-is-evil): Move some of
the explanation here.
* lisp/mail/feedmail.el (feedmail-sendmail-f-doesnt-sell-me-out):
Refer to message-sendmail-f-is-evil (bug#58185).
2022-09-30 Eli Zaretskii <eliz@gnu.org>
Fix some issues with vertical-motion in bidi-reordered text
This fixes some uses of vertical-motion when a screen line
starts withcharacters of directionality that is opposite to
the current paragraph's base direction.
* src/xdisp.c (move_it_vertically_backward): Adjust NLINES to
compensate for its increasing when DY == 0.
2022-09-30 Gerd Möllmann <gerd@gnu.org>
Remove the per-tree null node
"make check" shows 0 unexpcted.
* src/itree.h (itree_null): Declare extern.
(ITREE_NULL): New macro
(struct interval_tree): Remove null member.
* src/alloc.c (mark_overlays): Use ITREE_NULL.
* src/itree.c: Use ITREE_NULL insteads of a tree's null.
* src/pdumper.c (dump_buffer): Use ITREE_NULL.
2022-09-30 Po Lu <luangruo@yahoo.com>
Fix calculation of frame times when X server time overflows
* etc/TODO: Add TODO about frame synchronization and animations.
* src/xterm.c (x_display_set_last_user_time): Handle cases when
the monotonic time is not the server time due to the latter
overflowing.
2022-09-30 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Toto script (bug#58181)
* lisp/language/indian.el ("Toto"): New language environment.
Add input method.
* lisp/international/fontset.el (script-representative-chars):
Support Toto.
* lisp/leim/quail/indian.el ("toto"): New input method.
* etc/NEWS: Announce the new language environment.
2022-09-30 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
64e8cc14b5 ; * lisp/image.el (create-image): Fix last change in doc s...
f3e3632394 Update some Gnus documentation in the Emacs manual
2022-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
itree: Remove the `visited` flag from the tree nodes
These bits really belong in the "workstack" used within
`interval_generator_next`, so move them there.
* src/itree.c (nodeptr_and_flag): New type;
(struct interval_stack): Use it.
(make_nav, nav_nodeptr, nav_flag): New functions.
(interval_tree_insert_gap, interval_tree_delete_gap): Adjust accordingly.
(interval_generator_next): Stash the `visited` bit in the work stack
rather than inside the tree nodes.
(interval_stack_create, interval_stack_destroy, interval_stack_clear)
(interval_stack_ensure_space, interval_stack_push_flagged)
(interval_stack_push, interval_stack_pop): Move before first use.
* src/itree.h (struct interval_node): Remove `visited` field.
* src/pdumper.c (dump_interval_node): Adjust accordingly.
2022-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
free_buffer_overlays: Move nearer to its sole caller
* src/buffer.c (free_buffer_overlays): Move from `buffer.h`.
* src/buffer.h (free_buffer_overlays): Move to `buffer.c`.
* src/itree.c (interval_tree_iter_narrow, interval_tree_iter_finish)
(interval_tree_iter_next): Prefer `eassert`.
2022-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
* src/itree.c (interval_tree_iter_start): Improve error message
2022-09-29 Stefan Kangas <stefankangas@gmail.com>
Fix loading wallpaper.el on MS-Windows
* lisp/image/wallpaper.el (wallpaper--find-command)
(wallpaper--find-command-args): Avoid backtrace when
'wallpaper--find-setter' returns nil, e.g. on MS-Windows.
(Bug#58167)
2022-09-29 Alan Mackenzie <acm@muc.de>
CC Mode: Refactor c-forward-delarator and callers
c-forward-declarator now moves over a complete declarator, including any
arglist expression, but possibly not including certain C++20 constructs.
* lisp/progmodes/cc-engine.el (c-forward-decl-arglist): New function,
extracted from c-do-declarators.
(c-forward-declarator): Extend the result list by one element, denoting
whether the function parsed an argument list. Insert special handling for a
C++ operator<op> construct. If there is a parenthesis expression, and it is
an argument list, move forward over it.
(c-do-declarators): Append an optional parameter, cdd-anon-accepted
instructing the function to handle declarators without identifiers. Extract
c-forward-decl-arglist.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarators): New &optional
parameter accept-anon, as above. Analyze and use the identifier location
returned by c-do-declarators, rather than using c-last-identifier-range.
(c-font-lock-single-decl): Determine accept-anon from the context, passing it
as argument to c-font-lock-declarators.
* lisp/progmodes/cc-langs.el (c-opt-identifier-prefix-key): Make a
c-lang-defvar out of this existing c-lang-defconst.
* lisp/progmodes/cc-mode.el (c-fl-decl-end): Adapt for the new
c-forward-declarator which now moves over arglists. Amend better to handle
certain syntactically invalid constructs in C++.
2022-09-29 Peter Münster <pm@a16n.net>
New command image-dired-do-flagged-delete
* lisp/image/image-dired.el (image-dired-delete-marked): Remove command,
because it was too buggy.
(image-dired-do-flagged-delete): New command that does almost the same
as the above removed command but with flagged images.
(image-dired-thumbnail-mode-map): Bind "x" to
'image-dired-do-flagged-delete'.
2022-09-29 Peter Münster <pm@a16n.net>
image-dired-delete-char: Don't disturb formatting
* lisp/image/image-dired.el (image-dired-delete-char): Don't disturb
the expected formatting of the thumbnail buffer (always one
space/newline after a thumbnail).
2022-09-29 Stefan Kangas <stefankangas@gmail.com>
wallpaper-set: Get monitor name on non-graphical display
* lisp/image/wallpaper.el
(wallpaper--format-arg): Break out function from here...
(wallpaper--x-monitor-name): ...to here. Try to get the monitor name
non-graphical displays, and prompt if that doesn't work.
(wallpaper-default-set-function): Improve debugging output.
Ref. https://lists.gnu.org/r/emacs-devel/2022-09/msg01910.html
2022-09-29 Stefan Kangas <stefankangas@gmail.com>
Prompt for wallpaper width/height only when needed
* lisp/image/wallpaper.el (wallpaper--format-arg): Don't prompt for
width and height unless the values are actually used.
2022-09-29 Stefan Kangas <stefankangas@gmail.com>
Make format-spec accept function substitutions
* lisp/format-spec.el (format-spec): Accept a function producing the
substitution for a character.
* doc/lispref/strings.texi (Custom Format Strings): Document the
above change.
* test/lisp/format-spec-tests.el (format-spec/function): New test.
Ref. https://lists.gnu.org/r/emacs-devel/2022-09/msg01875.html
2022-09-29 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Wancho script (bug#58159)
* lisp/language/indian.el ("Wancho"): New language environment.
Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Wancho.
* lisp/leim/quail/indian.el ("wancho"): New input method.
* etc/HELLO: Add a Wancho greeting.
* etc/NEWS: Announce the new language environment.
2022-09-29 Stefan Monnier <monnier@iro.umontreal.ca>
alloc.c: Avoid nested overlay iterations (bug#58158)
* src/alloc.c (mark_overlays): New function.
(mark_buffer): Use it instead of using the overlay iterator.
2022-09-29 Stefan Kangas <stefankangas@gmail.com>
Remove Emacs 21 compat code for gnus-user-agent
* lisp/gnus/gnus.el (gnus-user-agent): No longer convert old
(< 2005-01-10) symbol type values.
2022-09-29 Lars Ingebrigtsen <larsi@gnus.org>
Update some Gnus documentation in the Emacs manual
* doc/emacs/misc.texi (Gnus Group Buffer, Gnus Summary Buffer):
Update documentation (bug#58145).
2022-09-29 Lars Ingebrigtsen <larsi@gnus.org>
Tweak while-let definition
* lisp/subr.el (while-let): Use if-let* since we don't need/want
the backwards compat of if-let.
2022-09-29 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Mende Kikakui script (bug#58151)
* lisp/language/misc-lang.el ("Mende Kikakui"): New language environment.
Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Mende Kikakui, Indic Siyaq Numbers,
Ottoman Siyaq Numbers.
* lisp/leim/quail/misc-lang.el ("mende-kikakui"): New input method.
* etc/HELLO: Add Mende Kikakui greeting.
* etc/NEWS: Announce the new language environment.
2022-09-29 Jacob First <jacob.first@member.fsf.org>
bind-keys supports passing a list of keymaps as :map argument
Fix bind-chords docs: :map argument may be a list of keymaps
2022-09-29 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
cf38e1c393 Clarify image file search
fc212364ce ; Fix typo.
2022-09-28 Po Lu <luangruo@yahoo.com>
Pacify compiler warning in xterm.c
* src/xterm.c (handle_one_xevent): Mark gen_help_time UNINIT.
Reported by Lars Ingebrigtsen <larsi@gnus.org>.
2022-09-28 Po Lu <luangruo@yahoo.com>
Fix the MS-DOS build
* config.bat: Add assert.in-h.
* msdos/sed2v2.inp: Define HAVE_STDBOOL_H.
* msdos/sedlibmk.inp (GL_GNULIB_LCHMOD, HAVE_LCHMOD): Define to
reflect realities.
(NEXT_ASSERT_H, @GL_GENERATE_ASSERT_H_CONDITION@): Define.
(assert.h): Edit command group into individual commands appending
to assert.h-t.
2022-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
itree.[ch]: Add sanity checks, comments, and minor tweaks
* src/alloc.c (mark_overlay): Add sanity check.
* src/buffer.c (next_overlay_change, previous_overlay_change):
Tweak code to keep the same vars for the bounds.
* src/itree.c (interval_tree_clear, interval_tree_insert)
(interval_tree_remove, interval_tree_insert_fix, interval_tree_remove_fix):
Adjust to the `color` -> `red` change.
(interval_tree_clear): Prefer `true/false` for booleans.
(interval_generator_create): Use an actual `interval_tree_order` value
rather than 0.
(interval_generator_next): Simplify a tiny bit. Add comment.
(interval_generator_narrow): Add sanity check.
* src/itree.h (struct interval_node): Replace `color` field with
boolean `red` field.
(enum interval_tree_order): Remove unused `ITREE_DEFLT_ORDER` value.
* src/pdumper.c (dump_interval_node): Adjust to the
`color` -> `red` change.
2022-09-28 Eli Zaretskii <eliz@gnu.org>
Clarify image file search
* doc/lispref/display.texi (Defining Images, Image Descriptors):
* lisp/image.el (create-image): Clarify that non-absolute image
files are searched along 'image-load-path'. (Bug#52931)
2022-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/lispref/functions.texi (Declare Form) <compiler-macro>: Re-rephrase
2022-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/lispref/functions.texi (Declare Form) <compiler-macro>: Rephrase
See bug#57397.
2022-09-28 Stefan Monnier <monnier@iro.umontreal.ca>
Merge remote-tracking branch 'origin/scratch/noverlay-wip' into noverlay
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
* .mailmap: Fixes for Emacs 29.
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
8033947fe2 .mailcap: Some additional fixes.
b1e92c59ed Avoid assertion violations in 'pop_it'
2022-09-28 Gerd Möllmann <gerd@gnu.org>
Avoid nested iteration over intervals (bug#58144)
* src/xdisp.c (strings_with_newlines): Call
buffer_overlay_iter_finish.
2022-09-28 Gregory Heytings <gregory@heytings.org>
Remove hard-coded path to pwd in Makefiles.
* Makefile.in:
* lib-src/Makefile.in:
* nextstep/Makefile.in:
* nt/Makefile.in: Replace hard-coded calls to /bin/pwd by calls
to 'pwd -P'. Fixes bug#58080.
2022-09-28 Gerd Möllmann <gerd@gnu.org>
Add debugging help for nested iterators (nug#58144)
When starting an iteration, store __FILE__ and __LINE__ where this
happens in the interval_tree structure.
* src/buffer.h (buffer_overlay_iter_start): New macro adding __FILE
and __LINE__.
(buffer_overlay_iter_start1): Renamed from ..._start.
* src/itree.h (struct interval_tree): Add file and line info.
* src/itree.c: (interval_tree_contains, interval_tree_nodes,
interval_tree_insert_gap): Pass __FILE__ and __LINE__ to iter_start.
(interval_tree_iter_start): Record file and line info in tree.
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
.mailcap: Some additional fixes.
2022-09-28 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in 'pop_it'
* src/xdisp.c (pop_it): Avoid assertion violations when handling
lists or vectors of display properties. (Bug#58122)
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
72aac80184 ; Fix typo
c54a64491f Add .mailmap for proper git log output
f9a072c592 ; Fix typo
3d056f6947 * doc/emacs/ack.texi (Acknowledgments): Update maintainers.
00159c086c ; Add commentary to disabled OTF support code in font.c
# Conflicts:
# src/font.c
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
Add .mailmap for proper git log output
This file is used to fix a few misspelled names in various git
listings (e.g., "git log"). This can be used to fix incorrect
attribution, poor display, or names showing up more than once.
It also allows updating an old email addresses to a new one.
See "man git-shortlog" for more information on the format.
* .mailmap: New file.
2022-09-28 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Adlam script (bug#58111)
* lisp/language/misc-lang.el ("Adlam"): New language environment.
Add composition rules for Adlam. Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars):
Support Adlam.
* lisp/leim/quail/misc-lang.el ("adlam"): New input method.
* etc/HELLO: Add Adlam greeting.
* etc/NEWS: Announce the new language environment.
2022-09-28 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Improve Gurmukhi composition rules (Bug#58098)
* lisp/language/indian.el: Improve composition rules for Gurmukhi.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Chess Symbols.
2022-09-28 Po Lu <luangruo@yahoo.com>
Apply root window coordinate optimizations to crossing events as well
* src/xterm.c (xi_compute_root_window_offset_enter): New
function.
(handle_one_xevent): Apply root window crossing optimizations to
XI_Enter and XI_Leave events too. Not strictly necessary but
since we apply them to motion events it would be consistent to
apply them to crossing events as well as recommended by the
ICCCM.
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
* lisp/files.el (auto-mode-alist): Add entry for ".mailmap".
2022-09-28 Lars Ingebrigtsen <larsi@gnus.org>
Simplify eww--rescale-images code
* lisp/net/eww.el (eww--rescale-images): Simplify code.
2022-09-28 Lars Ingebrigtsen <larsi@gnus.org>
Add new macro 'while-let'
* doc/lispref/control.texi (Conditionals): Document
when-let/if-let/while-let.
* lisp/subr.el (while-let): New macro.
2022-09-28 Jose A. Ortega Ruiz <jao@gnu.org>
docview: new customization options for imenu
* doc/emacs/misc.texi (DocView Navigation):
* lisp/doc-view.el (doc-view-imenu-title-format, doc-view-imenu-flatten):
(doc-view--imenu-subtree): customizable format for imenu entry titles,
and flag to disable nested submenus.
* lisp/doc-view.el (doc-view--pdf-outline): clean up whitespace
markers '\r' and '\t' in imenu item titles (bug#58131).
2022-09-28 Lin Sun <sunlin7@hotmail.com>
package-update would always re-install package
* lisp/emacs-lisp/package.el (package--updateable-packages): fix
version comparison between available packages and archived
packages (bug#58129).
2022-09-28 Visuwesh <visuweshm@gmail.com>
Follow #target links in eww without re-rendering
* lisp/net/eww.el (eww-follow-link): Do a text property search instead
of re-rendering to follow #target links in the same page. (bug#58118)
(eww-link-keymap): Bind <mouse-2> to eww-follow-link as well.
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
image-dired: End thumbnail file names with ".jpg"
* lisp/image/image-dired-util.el (image-dired-thumb-name): Always
end thumbnail name in ".jpg" and simplify naming to just use the
SHA-1 hash. (Bug#57961)
* test/lisp/image/image-dired-util-tests.el
(image-dired-thumb-name/image-dired): Adjust test for the above
change.
* etc/NEWS: Announce the above change.
2022-09-28 Stefan Kangas <stefankangas@gmail.com>
Standardize XPM files
These headers make GraphicsMagick croak with "Improper image header".
Note that the copyright information is already in README.
* etc/images/checked.xpm:
* etc/images/gnus/gnus.xpm:
* etc/images/gnus/gnus-pointer.xpm:
* etc/images/mh-logo.xpm:
* etc/images/unchecked.xpm: Normalize file headers.
2022-09-28 Gerd Möllmann <gerd@gnu.org>
Fix last change
2022-09-28 Paul Eggert <eggert@cs.ucla.edu>
Port better to C23 bool+true+false keywords
C23 is adding the C++ keywords bool, true, and false;
prefer them to <stdbool.h> if they are available.
* admin/merge-gnulib (GNULIB_MODULES):
Add stdbool, which emulates C23 on pre-C23 platforms.
(AVOIDED_MODULES): Remove stdbool; Gnulib has renamed
this module to stdbool-c99 and nobody uses it so it does
not need to be avoided.
* m4/c-bool.m4: New file, from Gnulib stdbool module.
* lib-src/seccomp-filter.c, src/conf_post.h, src/dynlib.h:
* src/emacs-module.c, src/nsterm.m, src/systhread.h:
* test/src/emacs-module-resources/mod-test.c:
Use the C23 style and use bool without including <stdbool.h>.
The Gnulib stdbool module causes config.h to include stdbool.h
on pre-C23 platforms.
* src/emacs-module.h.in:
Dont include <stdbool.h> if C23 or later, or if
it has already been included.
2022-09-28 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
2022-09-27 Sean Whitton <spwhitton@spwhitton.name>
Maintaining ChangeLog history: add more details
* admin/notes/repo (Maintaining ChangeLog history): Add more details.
See <https://debbugs.gnu.org/58092#37>.
2022-09-27 Stefan Kangas <stefankangas@gmail.com>
Make image-dired-dired-toggle-marked-thumbs faster
* lisp/image/image-dired-dired.el
(image-dired-dired-toggle-marked-thumbs): Don't show progress, since
it makes things slower.
2022-09-27 Lin Sun <sunlin7@hotmail.com>
Load compiled "calc-loaddefs", if any
* lisp/calc/calc.el ("calc-loaddefs"): Load the .elc file (if it
exists) (bug#58127).
2022-09-27 Stefan Kangas <stefankangas@gmail.com>
image-dired: Fix header line when file is missing
* lisp/image/image-dired.el
(image-dired-format-properties-string): Don't error when file has
been deleted.
2022-09-27 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/files.el (file-backup-file-names): Don't burp if dir doesn't exist
2022-09-27 Stefan Kangas <stefankangas@gmail.com>
Add back useful information from gnus-coding.texi
* lisp/international/rfc1843.el:
* lisp/net/pop3.el: Improve Commentary by adding back text from
deleted file gnus-coding.texi.
2022-09-27 Stefan Kangas <stefankangas@gmail.com>
* doc/emacs/ack.texi (Acknowledgments): Update maintainers.
2022-09-27 Lars Ingebrigtsen <larsi@gnus.org>
Remove gnus-coding.text (bug#58119)
2022-09-27 Michael Albinus <michael.albinus@gmx.de>
Some tramp-docker.el adaptions
* lisp/net/tramp-docker.el (tramp-docker--completion-function):
Add ;;;###tramp-autoload cookie. Make implementation more robust.
(tramp-methods) Use `tramp-default-remote-shell'.
2022-09-27 Stefan Kangas <stefankangas@gmail.com>
* etc/NEWS.23: Belatedly announce 'format-spec'.
2022-09-27 Stefan Kangas <stefankangas@gmail.com>
Document the new "XRandR 1.5" value
* src/xfns.c (Fx_display_monitor_attributes_list):
* lisp/frame.el (display-monitor-attributes-list):
* doc/lispref/frames.texi (Multiple Terminals): Document the new
"XRandR 1.5" value.
2022-09-27 Po Lu <luangruo@yahoo.com>
Improve doc of `x-window-property'
* src/xfns.c (Fx_window_property): Fix errors in doc string and
document where to obtain documentation for standardized window
properties.
2022-09-27 Jose A. Ortega Ruiz <jao@gnu.org>
docview: imenu access to table of contents
* lisp/doc-view.el (doc-view-imenu-enabled): user option to disable
imenu generation.
* lisp/doc-view.el (doc-view--outline-rx):
(doc-view--pdf-outline, doc-view--imenu-subtree, doc-view-imenu-index):
functions implementing the imenu index generation via mutool.
* lisp/doc-view.el (doc-view-imenu-setup, doc-view-mode): setup of the
new functionality in doc-view mode.
* lisp/imenu.el (imenu-submenus-on-top):
(imenu--split-menu): new local variable to optionally inhibit
grouping of entries with children at the top of imenu menus.
* doc/emacs/misc.texi: documentation for the new functionality
(bug#58103).
2022-09-27 Richard Hansen <rhansen@rhansen.org>
ert-x: Improve realism of `ert-with-test-buffer-selected'
* lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): Set
`inhibit-read-only' and `buffer-read-only' to nil when executing the
body to provide a more realistic test environment.
2022-09-27 Gerd Möllmann <gerd@gnu.org>
Fix macOS build (bug#58108)
* src/itree.h (struct interval_tree): Rename member nil to null.
* src/itree.c: Use null instead of nil
* src/pdumper.c (dump_buffer): Use null instead of nil.
* src/itree.c: Fix copyright.
* src/itree.h: Fix copyright.
2022-09-27 Alan Mackenzie <acm@muc.de>
* lisp/progmodes/cc-defs.el (c-let*-maybe-max-specpdl-size): Fix glitches
2022-09-27 Alan Mackenzie <acm@muc.de>
CC Mode: Don't bind max-specpdl-size when it doesn't exist or is obsolete
This is part of the changes for bug #57911.
* lisp/progmodes/cc-defs.el (c-let*-maybe-max-specpdl-size): New macro.
(c-get-lang-constant): Use the new macro in place of let*.
2022-09-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Avoid uninitialized variable warning
* src/composite.c (composition_gstring_adjust_zero_width): Simplify
last change with respect to an exit condition.
2022-09-26 Po Lu <luangruo@yahoo.com>
Optimize coordinate translation during event handling
These changes noticeably improve turning the mouse wheel on top of
scroll bars etc over slow network connections.
* src/xterm.c (x_dnd_note_self_position, x_dnd_note_self_wheel)
(x_dnd_note_self_drop): Use x_translate_coordinates.
(x_compute_root_window_offset): New function for calculating and
caching root window offsets of edit window.
(x_translate_coordinates): New function. Use cached values
whenever possible.
(xi_compute_root_window_offset)
(xi_compute_root_window_offset_pinch): New wrappers for XI2
events.
(x_construct_mouse_click, handle_one_xevent): Use
x_translate_coordinates wherever appropriate.
* src/xterm.h (struct x_output): New fields for keeping track of
the root window offset of the edit window.
2022-09-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Adjust zero-width grapheme clusters so they are displayed (Bug#50951)
* src/composite.c (composition_gstring_adjust_zero_width): New function.
* src/composite.h: Declare it.
* src/font.c (Ffont_shape_gstring): Use it before putting gstring to cache.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Fix OBOE in image-dired--with-marked
* lisp/image/image-dired.el (image-dired--with-marked): Fix off-by-one
error.
2022-09-26 Sean Whitton <spwhitton@spwhitton.name>
vc-filter-command-function: Abbreviate default value
* lisp/vc/vc-dispatcher.el (vc-filter-command-function): Abbreviate
`(lambda (&rest args) args)' as just `list'.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Get rid of default wallpaper-setter constructor
* lisp/image/wallpaper.el (wallpaper-setter): Actually get rid of
the default constructor.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Set XFCE wallpaper also in single-workspace-mode
This fixes setting the wallpaper on XFCE whether or not the
"/backdrop/single-workspace-mode" setting is true or false.
That XFCE setting controls whether or not the same wallpaper is used
on all workspaces or not.
* lisp/image/wallpaper.el (wallpaper-setter)
(wallpaper-command-args, wallpaper-default-set-function): Allow
using a function for getting the command line arguments.
(wallpaper-xfce-command-args): New function.
(wallpaper--default-setters): Use above new function for XFCE.
2022-09-26 Alan Mackenzie <acm@muc.de>
CC Mode: Handle C++20 concepts
* lisp/progmodes/cc-align.el (c-lineup-topmost-intro-cont): Amend so as not to
indent lines following a requires line.
* lisp/progmodes/cc-engine.el (c-forward-primary-expression)
(c-forward-c++-requires-clause): New functions.
(c-forward-declarator): Skip forward over any trailing requires clause.
(c-forward-decl-or-cast-1): Skip requires clauses before and after the type.
Amend the second element of the return list to include information on two
consecutive identifiers in <...>.
(c-looking-at-or-maybe-in-bracelist): Don't recognize braces in requires
expressions as brace lists.
(c-guess-basic-syntax): CASE 5D.7: New case to handle the continuation of a
"concept foo = " line.
* lisp/progmodes/cc-fonts.el (c-basic-matchers-before): Add a new clause to
handle the declaration of a concept.
(c-get-fontification-context): Treat the arglist of a requires construct as a
declaration arglist.
* lisp/progmodes/cc-langs.el (c-equals-nontype-decl-kwds/key)
(c-fun-name-substitute-kwds/key, c-pre-concept-<>-kwds/key): New
c-lang-consts/vars.
(c-constant-key): New c-lang-var.
(c-type-decl-suffix-key): Include "requires" in the keywords matched.
* lisp/progmodes/cc-mode.el (c-fl-decl-start): Fix an off by one error. Use
equal rather than eq to compare two syntax contexts.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Don't auto-resize image if echo area is non-empty
* lisp/image-mode.el (image-fit-to-window): Don't auto-resize
image if there's a message in the echo area.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Display a message when wallpaper was set
* lisp/image/wallpaper.el (wallpaper-default-set-function): Display a
message when the wallpaper was successfully set.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Fix setting the wallpaper in XFCE
* lisp/image/wallpaper.el (wallpaper-command-args)
(wallpaper-default-set-function): Support new format specifiers
%S for screen, %W for workspace, and %M for monitor.
(wallpaper--default-setters): Use above new specifiers for XFCE.
(wallpaper--format-arg): New defun broken out from...
(wallpaper-default-set-function): ...here.
(wallpaper--get-height-or-width): Support noninteractive use.
* test/lisp/image/wallpaper-tests.el (wallpaper--format-arg/filename)
(wallpaper--format-arg/filename-hex)
(wallpaper--format-arg/width, wallpaper--format-arg/screen)
(wallpaper--format-arg/monitor, wallpaper--format-arg/workspace):
New tests.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Rewrite wallpaper.el to use a cl-defstruct
* lisp/image/wallpaper.el
(wallpaper--default-commands): Delete variable.
(wallpaper-setter): New cl-defstruct.
(wallpaper--default-methods-create): New macro.
(wallpaper--default-setters):
(wallpaper--current-setter): New variables.
(wallpaper--find-setter): New defun to pick a wallpaper-setter.
(wallpaper--find-command, wallpaper--find-command-args):
Use 'wallpaper--find-setter'.
(wallpaper-command): Doc fix.
* test/lisp/image/wallpaper-tests.el
(wallpaper--find-command/return-string)
(wallpaper--find-command-args/return-list)
(wallpaper--image-file-regexp/return-string): New tests.
2022-09-26 Protesilaos Stavrou <info@protesilaos.com>
Add log-edit-summary-separator face (bug#58092)
* lisp/vc/log-edit.el (log-edit-summary-separator): Add new face.
(log-edit-font-lock-keywords): Replace hardcoded face attributes with
named face.
* etc/NEWS: Announce the new face.
2022-09-26 Stefan Kangas <stefankangas@gmail.com>
Autoload image-dired-thumbnail-storage :safe property
* lisp/image/image-dired.el (image-dired-thumbnail-storage):
Autoload :safe property.
2022-09-26 Lars Ingebrigtsen <larsi@gnus.org>
Fix (thing-at-point 'url) in eww forms
* lisp/net/eww.el (eww-tag-input): Don't claim to have an URL here
(bug#58091).
* lisp/net/shr.el (shr-next-link, shr-previous-link): Search for
shr-tab-stop instead of shr-url so that we can be more general.
(shr-urlify): Mark all links as tabbable-to.
2022-09-26 João Távora <joaotavora@gmail.com>
Make clojure-lsp handle more major modes at once
Suggested-by: Witoslaw Koczewski <wi@koczewski.de>
* eglot.el (eglot-server-programs): Enhance clojure-specific section.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/682
2022-09-26 Lars Ingebrigtsen <larsi@gnus.org>
Rescale images along with text in eww with `C-x C-+'
* lisp/net/eww.el (eww--rescale-images): Also rescale images when
using `C-x C-+' etc (bug#58047).
2022-09-26 Lars Ingebrigtsen <larsi@gnus.org>
Fix percentage width computation in vtable
* lisp/emacs-lisp/vtable.el (vtable--compute-width): Fix
percentage computation (bug#58067).
2022-09-26 Lars Ingebrigtsen <larsi@gnus.org>
Keep point in eww after hitting `g'
* lisp/net/eww.el (eww-retrieve): Keep point after hitting `g'
(bug#58076).
2022-09-26 Lars Ingebrigtsen <larsi@gnus.org>
Fix whitespace-mode in read-only buffers
* lisp/whitespace.el (whitespace--update-bob-eob): Don't bug out
in read-only buffers (bug#58082).
2022-09-26 João Távora <joaotavora@gmail.com>
Add support for "single server, multiple modes"
Previously, if an entry such as:
((c++-mode c-mode) . ("clangd)")
were found in eglot-server-programs, it meant that opening a .cpp file
and a .c file in the same project and enabling eglot for both would
lead to two clangd instances. Now only one instance is created to
handle all buffers of those major modes, as long as they are in the
same project.
This change accomplishes this with minimal changes and NO modification
to the already complicated syntax of eglot-server-programs.
Naturally, this means that a subtle backward-incompatibility was
introduced. If, instead of "clangd", someone is using some kind
"c++-or-c-but-not-both-at-once" server, this commit now breaks that
person's configuration.
After analysing the entries of this variable, an educated guess was
made that this situation is rare. If it's not rare, then some change
to the syntax of eglot-server-programs will have to ensue.
* eglot.el (eglot-server-programs): Update docstring.
(eglot-lsp-server): Replace major-mode -> major-modes.
(eglot--lookup-mode): Rework.
(eglot--guess-contact): Rework.
(eglot--connect): Reword first parameter.
(eglot-reconnect): Use eglot--major-modes.
(eglot--read-server): Rework.
(eglot--ensure-list): New helper.
(eglot-current-server): Rework.
(eglot-handle-request workspace/configuration): Use first of
managed major modes.
* NEWS.md: Mention change.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/681
2022-09-26 João Távora <joaotavora@gmail.com>
Shoosh byte-compilation warnings about line numbering functions
Also add warning at the top of file about not using functionality
incompatible with 26.3
* eglot.el:
(eglot-current-column, eglot-current-column): Use line-beginning-position
(eglot--xref-make-match): Use line-beginning-position,
line-end-position, line-number-at-pos
2022-09-25 Stefan Monnier <monnier@iro.umontreal.ca>
* src/buffer.c (overlays_in): Fix confusion Z-vs-ZV
This fixes test failures in `test-overlays-in-2` and `test-remove-overlays`.
2022-09-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Make average width computation on ftcr more permissive (Bug#43058)
* src/ftcrfont.c (ftcrfont_open): Use only non-zero width glyphs for
computing average width.
2022-09-25 Stefan Monnier <monnier@iro.umontreal.ca>
Merge 'master' into noverlay
2022-09-25 Stefan Monnier <monnier@iro.umontreal.ca>
tex-mode.el: Don't override AUCTeX modes
* lisp/textmodes/tex-mode.el (TeX-mode, plain-TeX-mode, LaTeX-mode):
Only define them as aliases in `lisp/loaddefs.el` so we don't
override AUCTeX's own definitions when we load `tex-mode.el`.
2022-09-25 Mattias Engdegård <mattiase@acm.org>
Boolean constant detection additions
* lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form):
`set` is boolean identity in its second argument.
(byte-compile-trueconstp): `set-marker` is always true.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Refactor system specific code in wallpaper.el
* lisp/image/wallpaper.el (wallpaper-set-function): New defvar
containing system specific function for setting wallpaper.
(wallpaper-default-set-function): Factor out function from...
(wallpaper-set): ...here. Use above new defvar.
(wallpaper-default-file-name-regexp): Delete defvar.
(wallpaper-image-file-extensions): New defvar.
(wallpaper--image-file-regexp): New defun that returns a regexp to
match for completion purposes.
(wallpaper--use-default-set-function-p): New defun.
(wallpaper--find-command, wallpaper--find-command-arguments):
Do nothing on MS-Windows and Haiku.
2022-09-25 Mattias Engdegård <mattiase@acm.org>
Don't crash in copy-alist with non-list argument
* src/fns.c (Fcopy_alist): Check argument type.
* test/src/fns-tests.el (fns--copy-alist): New test.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Add reasonable default to wallpaper-set
* lisp/image/wallpaper.el
(wallpaper-default-file-name-regexp): New variable.
(wallpaper--get-default-file): New function.
(wallpaper-set): Use above new function to set a default.
* test/lisp/image/wallpaper-tests.el: New file.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Add :buffer argument to ert-with-temp-file
* lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Add new keyword
argument :buffer SYMBOL to visit the file with `find-file-literally'
before running the body, and cleaning up after.
2022-09-25 Po Lu <luangruo@yahoo.com>
Implement font-use-system-font on Haiku
* doc/emacs/frames.texi (Fonts): Update documentation to say
what font-use-system-font really does and where it can be used.
* src/haiku_font_support.cc (language_code_points): Fix coding
style.
(font_style_to_flags, be_font_style_to_flags): Accept const char
*.
(be_send_font_settings, be_listen_font_settings)
(be_lock_font_defaults, be_unlock_font_defaults)
(be_get_font_default, be_get_font_size): New functions used to
retrieve default font data.
* src/haiku_io.c (haiku_len): Handle FONT_CHANGE_EVENT.
* src/haiku_support.h (enum haiku_event_type): New event type
FONT_CHANGE_EVENT.
(enum haiku_what_font): New enum.
(struct haiku_font_change_event): New struct.
* src/haikufont.c (Ffont_get_system_normal_font)
(Ffont_get_system_font, haiku_handle_font_change_event): New
functions.
(syms_of_haikufont): Provide `dynamic-setting' and define new
variables and subrs.
* src/haikuterm.c (haiku_default_font_parameter): Use system font.
(haiku_read_socket): Handle FONT_CHANGE_EVENTS.
(haiku_term_init): Start listening for font configuration changes.
* src/haikuterm.h: Update prototypes.
* src/xsettings.c (Ffont_get_system_normal_font)
(Ffont_get_system_font): Update doc string.
(syms_of_xsettings): Replace calls to intern with a static
string.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
wallpaper: URI-encode gsettings argument
* lisp/image/wallpaper.el (wallpaper--default-commands)
(wallpaper-command-args, wallpaper-set): URI-encode gsettings
argument.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Improve shortdoc documentation
* doc/emacs/help.texi (Name Help):
* doc/lispref/help.texi (Documentation Groups): Refer to
'shortdoc' convenience alias instead of 'shortdoc-display-group'.
* lisp/emacs-lisp/shortdoc.el: Add Commentary.
(shortdoc-next, shortdoc-previous)
(shortdoc-next-section, shortdoc-previous-section): Doc fixes.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Make image-dired-thumb-name more portable
* lisp/image/image-dired-util.el
(image-dired-thumb-name): Create file names in a portable manner.
* test/lisp/image/image-dired-util-tests.el
(image-dired-thumb-name/standard)
(image-dired-thumb-name/image-dired)
(image-dired-thumb-name/per-directory): Expand tests.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Fix shortdoc movement commands
* lisp/emacs-lisp/shortdoc.el (shortdoc--goto-section): Don't skip
over current function or section when searching.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Add new command 'shortdoc-copy-function-as-kill'
* lisp/emacs-lisp/shortdoc.el
(shortdoc-copy-function-as-kill): New command.
(shortdoc-mode-map): Bind above new command to "w".
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
* etc/NEWS.22: Belatedly announce 'dired-copy-filename-as-kill'.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Bind "N"/"P" to next/prev section in shortdoc
* lisp/emacs-lisp/shortdoc.el (shortdoc-mode-map): Bind "N" and
"P" to 'shortdoc-next-section' and 'shortdoc-previous-section'.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
* lisp/bookmark.el (bookmark-rename): Improve prompt.
2022-09-25 Stefan Kangas <stefankangas@gmail.com>
Add new command image-dired-copy-filename-as-kill
* lisp/image/image-dired.el
(image-dired-copy-filename-as-kill): New command.
(image-dired-thumbnail-mode-map): Bind above new command to "w".
2022-09-25 Philip Kaludercic <philipk@posteo.net>
* lisp/net/rcirc.el (rcirc-print): Remove 'fill-region' call
See Bug#57376.
2022-09-25 Philip Kaludercic <philipk@posteo.net>
Add formatting commands to rcirc
* etc/NEWS: Mention new command
* lisp/net/rcirc.el (rcirc-format): Add new utility function.
(rcirc-unformat): Add new command.
(rcirc-format-bold): Add new command.
(rcirc-format-italic): Add new command.
(rcirc-format-underline): Add new command.
(rcirc-format-strike-trough): Add new command.
(rcirc-format-fixed-width): Add new command.
(rcirc-mode-map): Bind formatting commands.
(rcirc-multiline-minor-mode-map): Bind formatting commands.
2022-09-25 Yuan Fu <casouri@gmail.com>
Fix treesit-induce-sparse-tree
Because not-at-all-werid way we implemented ts_build_sparse_tree, its
return value needs a bit post-processing (i.e., reverse its cdr).
* src/treesit.c (Ftreesit_induce_sparse_tree): Reverse the top-level
children list.
(ts_build_sparse_tree): Add comment.
2022-09-25 Yuan Fu <casouri@gmail.com>
Improve treesit-search-forward-goto
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* lisp/treesit.el (treesit-search-forward-goto): Instead of taking a
node, use the node at point, and make sure we make progress.
2022-09-25 Yuan Fu <casouri@gmail.com>
Fix treesit-search-forward
* src/treesit.c (ts_search_forward): Fix return value.
2022-09-25 Yuan Fu <casouri@gmail.com>
Update and enable treesit-imenu function in python.el
* lisp/progmodes/python.el (python--treesit-settings): Add docstring.
(python--imenu-treesit-create-index-1): Rewrite with
treesit-induce-sparse-tree.
(python-imenu-treesit-create-index): Move main body to
python--imenu-treesit-create-index-1.
(python-imenu-treesit-create-flat-index): Fix typo.
(python-mode): Enable treesit-imenu. Also fix indentation for
which-func code.
2022-09-25 Yuan Fu <casouri@gmail.com>
Add the treesit-search functions that supplant the removed ones
The signatures also changed.
treesit-traverse-depth-first -> treesit-search-subtree
treesit-traverse-breadth-first ->
treesit-traverse-forward -> treesit-search-forward
treesit-search-forward -> treesit-search-forward-goto
treesit-search-beginning/end -> treesit-search-forward-goto
-> treesit-induce-sparse-tree
* doc/lispref/parsing.texi (Retrieving Node): Add relevant manual
sections.
* lisp/treesit.el (treesit-search-forward-goto): New function.
* src/treesit.c (ts_traverse_sibling_helper)
(ts_traverse_match_predicate)
(ts_search_dfs)
(ts_search_forward)
(treesit-search-subtree)
(treesit-search-forward)
(ts_build_sparse_tree)
(Ftreesit_induce_sparse_tree): Add functions.
* test/src/treesit-tests.el (treesit-node-supplemental): Add comments.
2022-09-25 Yuan Fu <casouri@gmail.com>
Remove treesit-traverse functions
Remove before adding the replacements.
* doc/lispref/parsing.texi (Retrieving Node): Remove relevant sections.
* lisp/treesit.el (treesit-traverse-depth-first)
(treesit--traverse-breadth-first-1)
(treesit-traverse-breadth-first)
(treesit-next-sibling-or-up)
(treesit-traverse-forward)
(treesit-search-forward)
(treesit-search-beginning):
(treesit-search-end): Remove functions.
(treesit-defun-query): Remove variable.
(treesit-beginning-of-defun)
(treesit-end-of-defun): Remove functions.
* test/src/treesit-tests.el: Remove comments.
2022-09-25 Yuan Fu <casouri@gmail.com>
Accept nil as NODE in treesit-node-text
* lisp/treesit.el (treesit-node-text): Just wrap function body
in (when ...).
2022-09-25 Yuan Fu <casouri@gmail.com>
Change make_string to build_string in treesit.c
* src/treesit.c (Ftreesit_node_string)
(Ftreesit_node_field_name_for_child): Change make_string to
build_string.
2022-09-25 Yuan Fu <casouri@gmail.com>
Improve printing treesit nodes
* src/print.c (print_vectorlike): Instead of position, print the type
of the node.
2022-09-25 Yuan Fu <casouri@gmail.com>
Rename treesit-expand-query/pattern
* src/treesit.c (treesit-expand-pattern): Rename to
treesit-patter-expand.
(treesit-expand-query): Rename to treesit-query-expand.
(make_ts_query): Use new name.
* test/src/treesit-tests.el (treesit-query-api): Fix name.
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Tweak window handling in vc-pull-and-push
* lisp/vc/vc-dispatcher.el (vc--inhibit-async-window): Rename
variable.
(vc-do-async-command): Allow inhibiting all window changes.
* lisp/vc/vc-git.el (vc-git-pull-and-push): Don't pop up the
window asynchronously on the "pull" because that gets in the way
of doing other things.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Add faces for header line
* lisp/image/image-dired.el (image-dired-thumb-header-file-name)
(image-dired-thumb-header-directory-name)
(-image-dired-thumb-header-file-size)
(image-dired-thumb-header-image-count): New faces.
(image-dired-format-properties-string): Use above new faces.
(image-dired-thumb-mark, image-dired-thumb-flagged): Move
definition further down.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Add new %-format specifiers for header line
* lisp/image/image-dired.el
(image-dired-format-properties-string): Add new specifiers "%n", "%d",
and "%s".
(image-dired-display-properties-format): Change default format to use
above new specifiers.
(image-dired--number-of-thumbnails): New variable.
(image-dired-insert-thumbnail, image-dired-display-thumbs): Keep
track of file number when appending it into the thumbnail buffer.
(image-dired--update-header-line): Support above new format
specifiers. Rename from 'image-dired-update-header-line' and
update callers.
* lisp/image/image-dired-dired.el
(image-dired-dired-display-properties): Support above new format
specifiers.
2022-09-24 Sean Whitton <spwhitton@spwhitton.name>
Generalize & simplify implementation of user edits to VC commands
* lisp/vc/vc-dispatcher.el (vc-pre-command-functions)
(vc-want-edit-command-p): Delete.
(vc-filter-command-function): New variable.
(vc-user-edit-command): Factor out of vc-do-command.
(vc-do-command, vc-do-async-command)
* lisp/vc/vc-git.el (vc-git--pushpull)
* lisp/vc/vc.el (vc-print-branch-log): Use vc-filter-command-function
in place of vc-pre-command-functions and vc-want-edit-command-p.
2022-09-24 Juri Linkov <juri@linkov.net>
* lisp/emacs-lisp/icons.el (icons--create): Use default rotation 0 (bug#57813)
2022-09-24 Michael Albinus <michael.albinus@gmx.de>
Adapt tramp-docker integration
* doc/misc/tramp.texi (Inline methods): Add docker.
(Customizing Methods): Remove docker-tramp. Adapt references to this.
* etc/NEWS: Mention new Tramp method "docker". Fix typos.
* lisp/net/tramp-compat.el (docker-tramp): Warn, if that package is used.
* lisp/net/tramp-docker.el: Format header lines.
(tramp-docker): Remove custom group.
(tramp-docker-program, tramp-docker-method): Add
;;;###tramp-autoload cookie.
(tramp-docker-program): Change group to `tramp'. Add version.
(tramp-docker--completion-function): Fix docstring.
(tramp-docker--add-method, tramp-docker--remove-method)
(tramp-docker-unload-function, tramp-docker-setup): Remove functions.
(tramp-methods, tramp-set-completion-function): Initialize via
`tramp--with-startup'.
(tramp-unload-hook): Unload `tramp-docker'.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Move menu definitions to keymaps
* lisp/image/image-dired.el (image-dired-thumbnail-mode-menu):
* lisp/image/image-dired-dired.el (image-dired-minor-mode-menu):
Delete variables and move menus to...
* lisp/image/image-dired.el (image-dired-thumbnail-mode-map):
* lisp/image/image-dired-dired.el(image-dired-minor-mode-map):
...here.
2022-09-24 Manuel Giraud <manuel@ledu-giraud.fr>
Ensure no memory leaks of glyph_matrix
each glyph_matrix only when it's NULL. (Bug#58028)
2022-09-24 kobarity <kobarity@gmail.com>
hideshow.el: Improve hs-toggle-hiding behavior
* lisp/progmodes/hideshow.el
(hs-find-block-beginning-match): New function to be used in
`hs-already-hidden-p'.
(hs-already-hidden-p): Add check if beginning of line is inside a
block.
(hs-toggle-hiding): Don't change to selected-window's buffer when
event arg is absent.
* test/lisp/progmodes/hideshow-tests.el
(hideshow-tests-with-temp-buffer-selected): New helper macro.
(hideshow-tests-make-event-at): New helper function.
(hideshow-already-hidden-p-1): New test.
(hideshow-toggle-hiding-1): New test.
(hideshow-mouse-toggle-hiding-1): New test (bug#52092).
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Remove "manual" package--builtin-versions updates
* lisp/emacs-lisp/nadvice.el:
* lisp/emacs-lisp/cl-generic.el: Don't push to
package--builtin-versions "manually", because loaddefs-gen does
this correctly now.
2022-09-24 Brian Cully <bjc@kublai.com>
* lisp/net/tramp-docker.el: New file.
2022-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
(event-start/end): Fix part of bug#52092
When synthesizing a posn for keyboard events, make sure the `posn-point`
i the same as `point`.
* lisp/subr.el (event--posn-at-point): New function.
(event-start, event-end): Use it.
2022-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
Merge branch 'emacs-28'
2022-09-24 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/progmodes/hideshow.el (hs-toggle-hiding): Fix `interactive` form
This fixes the first part of bug#52092, which is a regression
introduced by commit d0e9113de97.
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Make dired-do-rename refuse to rename . and ..
* lisp/dired-aux.el (dired-do-rename): Refuse to rename . and ..
(bug#52004). This used to error out after renaming.
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Add a new command vc-pull-and-push
* lisp/vc/vc-svn.el (vc-exec-after):
* lisp/vc/vc-hg.el (vc-exec-after):
* lisp/vc/vc-git.el (vc-exec-after):
* lisp/vc/vc-cvs.el (vc-exec-after):
* lisp/vc/vc-bzr.el (vc-exec-after):
* lisp/org/org-macro.el (vc-exec-after):
* lisp/obsolete/vc-mtn.el (vc-exec-after):
* lisp/obsolete/vc-arch.el (vc-exec-after): Update declaration.
* lisp/vc/vc-dispatcher.el (vc--process-sentinel): Allow running
code only on success.
(vc-exec-after): Ditto.
(vc--inhibit-change-window-start): New variable.
(vc-do-async-command): Use it to allow chaining commands without
moving window point. Return the process instead of the buffer,
since the process may have exited already, and then we can't get
at the process.
* lisp/vc/vc-git.el (vc-git--pushpull): Return the process object.
(vc-git-pull-and-push): New function.
* lisp/vc/vc.el (vc-pull-and-push): New command (bug#51964).
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Tweak binding of `+' in vc-dir
* lisp/vc/vc-dir.el (vc-dir-mode-map): Point to the actual
function instead of the alias. This makes *Help* more helpful.
2022-09-24 Alan Mackenzie <acm@muc.de>
CC Mode. Make AWK Mode work with electric-pair-mode
Also fix some minor anomalies with other CC Mode modes in electric-pair-mode.
This fixes bug #53446.
* lisp/progmodes/cc-mode.el (c-open-string-opener): New buffer local
variable.
(c-after-change-mark-abnormal-strings): Set c-open-string-opener when an
unbalanced string is detected.
(c-before-change): Initilize c-open-string-opener to nil, each buffer change.
(c-electric-pair-inhibit-predicate): Use the value of c-open-string-opener to
flag an unbalaced string rather than trying to calculate it again.
* lisp/progmodes/cc-awk.el (c-awk-syntax-tablify-string): Set
c-open-string-opener when an unbalanced string is detected.
2022-09-24 Visuwesh <visuweshm@gmail.com>
docview: Use svg images when using mupdf for conversion
* lisp/doc-view.el (doc-view-mupdf-use-svg, doc-view-svg-background)
(doc-view-svg-foreground): New user options.
(doc-view-insert-image): Add :background and :foreground image
attributes when display svg images.
(doc-view-set-up-single-converter): Produce svg images when using
mupdf (bug#58041).
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Prefer command remapping
* lisp/image/image-dired.el (image-dired-thumbnail-mode-map):
Prefer command remapping to binding keys directly.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Fix C-a/C-e in thumbnail buffer
* lisp/image/image-dired.el
(image-dired--movement-ensure-point-pos): New function, and...
(image-dired--movement-command): ...new macros broken out from...
(image-dired-next-line, image-dired-previous-line)
(image-dired-beginning-of-buffer, image-dired-end-of-buffer):
...here.
(image-dired-move-beginning-of-line)
(image-dired-move-end-of-line): New commands.
(image-dired-thumbnail-mode-map): Remap 'move-beginning-of-line'
and 'move-beginning-of-line' to above new commands.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
Make thumbs.el obsolete
* lisp/obsolete/thumbs.el: Add Obsolete-since.
* etc/NEWS: Announce obsoletion of thumbs.el. (Bug#57779)
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
Move thumbs.el to lisp/obsolete
* lisp/thumbs.el:
* test/lisp/thumbs-tests.el: Move from here...
* lisp/obsolete/thumbs.el:
* test/lisp/obsolete/thumbs-tests.el: ...to here. (Bug#57779)
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Regenerate old thumbnails when needed
* lisp/image/image-dired.el
(image-dired--get-create-thumbnail-file): Rename from
'image-dired-get-thumbnail-image'. Update callers and make old
name into an obsolete alias.
(image-dired-display-thumbs): Use above function to simplify and
regenerate the thumbnail if it's outdated.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Improve performance of marking commands
* lisp/image/image-dired.el (image-dired-thumbnail-storage): Mark
(image-dired--thumb-update-mark-at-point): New function.
(image-dired--thumb-update-marks):
(image-dired--do-mark-command): Use it.
(image-dired--thumb-update-marks): Rename from
'image-dired-thumb-update-marks'. Update all callers and make the
old name into an obsolete alias.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Mark 'per-directory' as :safe
* lisp/image/image-dired.el (image-dired-thumbnail-storage): Mark
'per-directory' value as :safe.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
Add new macro image-dired--with-dired-buffer
* lisp/image/image-dired-util.el
(image-dired--with-dired-buffer): New macro.
* lisp/image/image-dired.el (image-dired-track-original-file)
(image-dired--on-file-in-dired-buffer)
(image-dired--do-mark-command)
(image-dired--on-file-in-dired-buffer)
(image-dired-jump-original-dired-buffer)
(image-dired-thumb-file-marked-p, image-dired-delete-marked):
Use above new macro to simplify and improve error handling.
(image-dired-show-all-from-dir): Simplify removing Dired marks.
(image-dired-thumb-update-marks): Avoid triggering above new error
handling.
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how :override advice is formatted in *Help*
* lisp/emacs-lisp/nadvice.el (advice--make-single-doc): Format
:overrides specially (bug#57974).
(advice--make-docstring): Put overrides at the front.
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Rename file-name-directory
* lisp/emacs-lisp/shortdoc.el (file-name):
* doc/lispref/files.texi (Directory Names): Adjust.
* lisp/files.el (file-name-parent-directory): Rename from
`file-name-directory' (bug#58039).
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that cus-load doesn't add things twice
* lisp/cus-dep.el (custom-make-dependencies): Use it.
* lisp/custom.el (custom--add-custom-loads): New function.
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
`append' doc string clarification
* src/fns.c (Fappend): Clarify whether arguments are copied.
2022-09-24 Lars Ingebrigtsen <larsi@gnus.org>
Clarify message-newline-and-reformat doc string
* lisp/gnus/message.el (message-newline-and-reformat): Clarify the
DWIM-ness in the doc string (bug#57986).
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
Improve image-dired-thumbnail-display-external
* lisp/image/image-dired.el: (image-dired-external-viewer): Add more
image viewers and slightly re-arrange.
(image-dired-thumbnail-display-external): Correctly handle
external viewers with spaces or flags.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
* lisp/emacs-lisp/shortdoc.el (file-name): Improve examples.
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Use command substitution for tags bindings
* lisp/image/image-dired-tags.el
(image-dired-dired-edit-comment-and-tags): Use substitute-command-keys
2022-09-24 Stefan Kangas <stefankangas@gmail.com>
image-dired: Various code clean ups
* lisp/image/image-dired.el
(image-dired--display-thumb-properties-fun): Delete function.
(image-dired-forward-image): Immediately update header line. Improve
docstring.
(image-dired-backward-image, image-dired-next-line)
(image-dired-previous-line, image-dired-beginning-of-buffer)
(image-dired-end-of-buffer, image-dired-display-image): Improve
docstring.
(image-dired-comment-thumbnail): Fix interactive declaration.
2022-09-24 João Távora <joaotavora@gmail.com>
Fix blunder in eglot--guess-contact
* eglot.el (eglot--guess-contact): Add back
'split-string-and-unquote' lost in https://github.com/joaotavora/eglot/issues/940 fix.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/940
2022-09-24 Po Lu <luangruo@yahoo.com>
Reduce complexity of scroll bar window protection code
It turns out my previous theories of why ClientMessages were
generated were wrong, and they are just generated so we can set
finish to X_EVENT_GOTO_OUT to have them delivered immediately.
This allows for the code to be simplified greatly, by not
unpacking pointers to the raw window into the client messages.
* src/xterm.c (x_unprotect_window_for_callback): Return the
window removed from the queue, or nil if none.
(x_scroll_bar_to_input_event)
(x_horizontal_scroll_bar_to_input_event): Use window provided by
x_unprotect_window_for_callback.
(handle_one_xevent): Pass dpyinfo to functions that need it.
(x_free_frame_resources): Remove "first scroll bar request"
code.
* src/xterm.h (struct x_display_info): Likewise.
2022-09-24 Augusto Stoffel <arstoffel@gmail.com>
New Flymake backend using the shellcheck program
See bug#57884.
* lisp/progmodes/sh-script.el: Require let-alist and subr-x when
compiling.
(sh--json-read): Helper function to deal with possible absence of
json-parse-buffer.
(sh-shellcheck-program, sh--shellcheck-process,
sh-shellcheck-flymake): Variables and function defining a Flymake
backend.
(sh-mode): Add it to 'flymake-diagnostic-functions'.
2022-09-23 Sean Whitton <spwhitton@spwhitton.name>
vc-git--pushpull: Restore handling of vc-git-program
* lisp/vc/vc-git.el (vc-git--pushpull): Restore handling of
vc-git-program before recent change: respect a buffer-local value of
vc-git-program, and don't ignore user edits to the git program name
when PROMPT.
2022-09-23 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/eieio.el (defclass): Fix bug#51068
Accept (defclass <class> <superclasses> (.. <slotname> ..)) without
having to wrap the slot name within parentheses.
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
image-dired: Rewrite and extend slideshow feature
* lisp/image/image-dired.el
(image-dired--slideshow-start-timer)
(image-dired--slideshow-stop-timer)
(image-dired--slideshow-show-message): New functions.
(image-dired--slideshow-current-delay): New variable.
(image-dired--slideshow-initial): Delete variable.
(image-dired-slideshow-start): Simplify and ensure we display the
image at start.
* lisp/image/image-dired.el (image-dired--slideshow-stop): Add support
for pausing, and going backwards and forwards during slideshow.
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
image-dired: Mark two slideshow defuns as internal
* lisp/image/image-dired.el (image-dired--slideshow-step)
(image-dired--slideshow-stop): Rename from
'image-dired--slideshow-step' and 'image-dired--slideshow-stop'.
Update callers and make old names into obsolete aliases.
2022-09-23 Stefan Monnier <monnier@iro.umontreal.ca>
cconv.el: Fix interactive closure bug#51695
Make cconv.el detect when a closure's interactive form needs to
capture variables from the context and tweak the code accordingly
if so.
* lisp/emacs-lisp/cconv.el (cconv--interactive-form-funs): New var.
(cconv-convert): Handle the case where the interactive form captures
vars from the surrounding context. Remove left over handling of
`declare` which was already removed from the cconv-analyze` phase.
(cconv-analyze-form): Adjust analysis of interactive forms accordingly.
* lisp/emacs-lisp/oclosure.el (cconv--interactive-helper): New type and
function.
* lisp/simple.el (function-documentation, oclosure-interactive-form):
Add methods for it.
* test/lisp/emacs-lisp/cconv-tests.el
(cconv-tests-interactive-closure-bug51695): New test.
2022-09-23 Visuwesh <visuweshm@gmail.com>
Make Gnus respect mode-line-buffer-identification-keymap
* lisp/gnus/gnus-group.el (gnus-group-set-mode-line): Use
'propertized-buffer-identification' to buttonise and fontify the
buffer name.
* lisp/gnus/gnus-sum.el (gnus-set-mode-line):
* lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Adjust
calls to above.
* lisp/gnus/gnus-srvr.el (gnus-browse-foreign-server): Add missing
'gnus-modeline-buffer-identification' call (bug#57977).
2022-09-23 Visuwesh <visuweshm@gmail.com>
Make bounding box of 'image-crop' more noticeable
* lisp/image/image-crop.el (image-crop--crop-image-1): Darken the
selected region to make the bounding-box more noticable in images
which are mostly white (bug#58004).
2022-09-23 Lars Ingebrigtsen <larsi@gnus.org>
Don't overwrite cus-load dependencies
* lisp/cus-dep.el (custom-make-dependencies): Don't overwrite
elements added by packages (bug#58015).
2022-09-23 Lars Ingebrigtsen <larsi@gnus.org>
Make loaddefs-gen register parent :groups from defcustom
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--make-autoload): Also register parent :groups from
`defgroup' entries (bug#58015).
2022-09-23 kobarity <kobarity@gmail.com>
Fix syntax check in python-info-looking-at-beginning-of-defun
* lisp/progmodes/python.el
(python-info-looking-at-beginning-of-defun): Check syntax after moving
to the beginning of line.
* test/lisp/progmodes/python-tests.el (python-nav-beginning-of-defun-6)
(python-end-of-defun-1, python-info-looking-at-beginning-of-defun-3):
New tests (bug#58023).
2022-09-23 Lars Ingebrigtsen <larsi@gnus.org>
Inhibit image-crop when there's overlays
* lisp/image/image-crop.el (image-crop): Don't mess with overlays,
because they're a pain to reconstruct (bug#58027).
2022-09-23 Lars Ingebrigtsen <larsi@gnus.org>
Delete the correct region after cropping an image
* lisp/image/image-crop.el (image-crop): Delete the correct region
after editing (bug#58027).
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
image-dired: Disable 'image-map' in thumbnail buffer
These bindings are more likely to mess up the buffer than to be
helpful here; image manipulation is better done in the display buffer.
* lisp/image/image-dired.el (image-dired-insert-thumbnail): Disable
`image-map' in thumbnail buffer.
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
Update manual for recent image-dired changes
* doc/emacs/dired.texi (Image-Dired): Update to reflect recent
changes.
2022-09-23 Mattias Engdegård <mattiase@acm.org>
* lisp/files.el (risky-local-variable): Remove max-specpdl-size.
2022-09-23 Mattias Engdegård <mattiase@acm.org>
Remove max-specpdl-size overrun test
* test/src/eval-tests.el (eval-tests--exceed-specbind-limit)
(eval-exceed-specbind-with-signal-hook): Remove test that is
no longer useful, since there is no longer any specpdl limit
to overrun. (The test still passed but vacuously so, by
hitting the max-lisp-eval-depth limit instead.)
This silences an obsoletion warning.
2022-09-23 Michael Albinus <michael.albinus@gmx.de>
* lisp/bookmark.el (bookmark-make-record): Fix thinko.
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
Improve prompt of 'image-dired' command
* lisp/image/image-dired.el (image-dired-show-all-from-dir):
Improve prompt.
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
Rename 'image-dired-db-file' to 'image-dired-tags-db-file'
* lisp/image/image-dired.el (image-dired-tags-db-file): Rename
from 'image-dired-db-file'. Update all uses and make old name
into an obsolete variable alias.
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
60ac12d21f Fix shaping with bitmap-only fonts on HarfBuzz 5.2.0 (Bug#...
9f65e52362 ; Minor copyedits of elisp.texi
2022-09-23 Po Lu <luangruo@yahoo.com>
Fix more toolkit scroll bar window protection issues
* src/xterm.c (handle_one_xevent): Ignore outdated scroll bar
events.
(x_free_frame_resources): Clear protected windows and invalidate
previous scroll bar events.
* src/xterm.h (struct x_display_info): New field
`first_valid_scroll_bar_req'.
2022-09-23 Stefan Kangas <stefankangas@gmail.com>
Autoload wallpaper-set
* lisp/image/wallpaper.el (wallpaper-set): Autoload.
* lisp/image-mode.el (wallpaper):
* lisp/image/image-dired.el (wallpaper):
* lisp/thumbs.el (wallpaper): Don't require.
2022-09-23 Eli Zaretskii <eliz@gnu.org>
Support Noto Emoji font as fallback
The black-and-white emoji font is back under active development,
see https://github.com/googlefonts/noto-emoji. So this adds
that font as fallback for systems that don't have the capability
of using color fonts.
* lisp/international/fontset.el (setup-default-fontset): Support
black-and-white Noto Emoji font as fallback for Emoji display.
2022-09-23 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fix shaping with bitmap-only fonts on HarfBuzz 5.2.0 (Bug#57976)
* src/ftcrfont.c (ftcrhbfont_begin_hb_font): Undo last change for
HarfBuzz 5.2.0.
2022-09-22 Stefan Kangas <stefankangas@gmail.com>
Support several new DEs in wallpaper.el
* lisp/image/wallpaper.el (wallpaper--default-commands)
(wallpaper--check-command, wallpaper-command): Add support for Unity,
Pantheon, Budgie, LXQt, and LXDE. Also add support for Lubuntu,
Xubuntu, and Pop!_OS.
2022-09-22 Stefan Kangas <stefankangas@gmail.com>
image-dired: Obsolete two unused functions
* lisp/image/image-dired-util.el (image-dired-display-window)
(image-dired-associated-dired-buffer-window): Make obsolete; they are
currently unused.
2022-09-22 Yuan Fu <casouri@gmail.com>
Utilize tree-sitter in python.el
* lisp/progmodes/python.el (python-use-tree-sitter): New option.
(python--treesit-keywords, python--treesit-builtins)
(python--treesit-constants, python--treesit-operators)
(python--treesit-special-attributes, python--treesit-exceptions): New
variables.
(python--treesit-fontify-string, python--treesit-settings)
(python--imenu-treesit-create-index)
(python--imenu-treesit-create-flat-index)
(python-info-treesit-current-defun): New functions.
(python-mode): Enable tree-sitter font-lock and which-func.
2022-09-22 Mattias Engdegård <mattiase@acm.org>
Don't rewrite `set` to `setq` of lexical variables
Only perform the rewrite
(set 'VAR X) -> (setq VAR X)
for dynamic variables, as `set` isn't supposed to affect
lexical vars (and never does so when interpreted).
* lisp/emacs-lisp/byte-opt.el (byte-optimize-set):
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--xx): New.
(bytecomp-tests--test-cases): Add test cases.
* test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el:
Remove obsolete test.
2022-09-22 Stefan Kangas <stefankangas@gmail.com>
image-dired: Improve minor mode docstring
* lisp/image/image-dired-dired.el (image-dired-minor-mode):
Improve docstring.
2022-09-22 Stefan Kangas <stefankangas@gmail.com>
image-dired: Remove redundant keybindings
* lisp/image/image-dired-dired.el (image-dired-minor-mode-map):
Don't redundantly bind keys that are already bound in dired.
2022-09-22 Stefan Kangas <stefankangas@gmail.com>
Fix failing image-dired test
* test/lisp/image/image-dired-util-tests.el (ert-x, xdg): Require.
(image-dired-thumb-name/): Delete test.
(image-dired-thumb-name/standard)
(image-dired-thumb-name/image-dired)
(image-dired-thumb-name/per-directory): New tests.
2022-09-22 Stefan Kangas <stefankangas@gmail.com>
Add X-Hashcash to the end of mail headers
* lisp/mail/hashcash.el (mail-add-payment): Move headers to the end of
the headers.
2022-09-22 Michael Albinus <michael.albinus@gmx.de>
Improve don't save bookmark context from encrypted files
* etc/NEWS: Mention 'bookmark-inhibit-context-functions'.
Fix typos.
* lisp/bookmark.el (bookmark-inhibit-context-functions): New defcustom.
(bookmark-make-record): Use it.
* lisp/auth-source-pass.el (auth-source-pass-file-name-p):
* lisp/auth-source.el (auth-source-file-name-p): New defuns. Add
them to `bookmark-inhibit-context-functions'.
* lisp/epa-hook.el (epa-file-name-p):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-p): Add them to
`bookmark-inhibit-context-functions'.
2022-09-22 Po Lu <luangruo@yahoo.com>
Work around rare crash when turning scroll wheel
* src/xterm.c (handle_one_xevent): Don't allow devices to be
added twice handling hierarcy events.
2022-09-21 Sean Whitton <spwhitton@spwhitton.name>
Add support for user edits to VC command arguments
* lisp/vc/vc-dispatcher.el (vc-pre-command-functions): New hook.
(vc-want-edit-command-p): New variable.
(vc-do-command): If vc-want-edit-command-p is non-nil, prompt the user
to edit the VC command & arguments before execution. Run the new hook.
(vc-do-async-command): Use the new hook to insert into BUFFER the
command that's next to be run.
* lisp/vc/vc-git.el (vc-git--pushpull): Drop prompting code. Bind
vc-want-edit-command-p so that vc-do-command handles the prompting.
Use the new hook to update compile-command with the edited command.
* lisp/vc/vc.el (vc-print-branch-log): A non-nil prefix argument now
means vc-want-edit-command-p is bound to a non-nil value (bug#57807).
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
Prefer command remapping in image-dired-minor-mode
* lisp/image/image-dired-dired.el (image-dired-minor-mode-map):
Prefer command remapping.
(image-dired-minor-mode): Improve docstring.
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
Obsolete image-mode--images-in-directory
* lisp/image-mode.el (image-mode--images-in-directory): Make
unused function obsolete.
2022-09-21 Robert Pluim <rpluim@gmail.com>
Update version tag of rmail-retry-ignored-headers
* lisp/mail/rmail.el (rmail-retry-ignored-headers): Set :version to "29.1".
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
* test/lisp/image/image-dired-util-tests.el: New file.
2022-09-21 Richard Stallman <rms@gnu.org>
Add more headers to default value of rmail-retry-ignored-headers.
* rmail.el (rmail-retry-ignored-headers): Add more headers to default.
Don't bother with `purecopy'. Split value readably.
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
Add new function xdg-session-type to xdg.el
* lisp/xdg.el (xdg-session-type): New function.
2022-09-21 Thuna <thuna.cing@gmail.com> (tiny change)
Correct the usage of `image-file-name-regexps'
* lisp/image-file.el (image-file-name-regexp): Treat
`image-file-name-regexps' as a list of regexps (as documented) in
addition to a regexp string (bug#57971).
2022-09-21 Po Lu <luangruo@yahoo.com>
Fix handling of nil device names
* lisp/frame.el (device-class):
* lisp/term/pgtk-win.el (pgtk-device-class):
* lisp/term/x-win.el (x-device-class): Handle `nil'
correctly. (bug#57969)
2022-09-21 Po Lu <luangruo@yahoo.com>
Small adjustments to precision pixel scrolling
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-factor): Adjust for
increased accuracy.
(pixel-scroll-precision-interpolate): Slightly decrease accuracy
in exchange for consing less floats.
(pixel-scroll-interpolate-down, pixel-scroll-interpolate-up):
Fix usage of function.
2022-09-21 Po Lu <luangruo@yahoo.com>
Improve scroll interpolation in pixel-s-precision-mode
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
arg FACTOR. Use it to determine the interpolation factor if
non-nil. Also, clear scroll remainder if direction changes, and
determine deltas based on the absolute amount of time passed.
(bug#57967)
(pixel-scroll-interpolate-down, pixel-scroll-interpolate-up):
Pass factor of 0 to scroll exactly 1 page.
2022-09-21 Lars Ingebrigtsen <larsi@gnus.org>
Make emacs-build-description into a command
* lisp/mail/emacsbug.el (report-emacs-bug, submit-emacs-patch):
Adjust callers.
(emacs-build-description): Rename from
`emacs-bug--system-description' and make into a command.
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
478b786d5a ; * doc/lispref/windows.texi (Window Hooks): Fix a typo (b...
5085351645 * lisp/text-modes/tex-mode.el (tex-mode): Fix AUCTeX regre...
ee6f8598ca Add vc-annotate-switches to manual
616dcf27e5 ; Fix typos in Lisp symbols
5405852541 Remove mention of non-existent `annotate-switches'
191505b8a3 Mention that src/macuvs.h sometimes needs committing
10373c4b68 ; More comment fixes in font.h (bug#57935)
c2595b8dcc ; * src/font.h (struct font_driver): Comment fix.
97b928ce09 MacOS ld warning from native compilation (bug#57849)
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
* admin/gitmerge.el (gitmerge): Use substitute-command-keys.
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
Bind 'n'/'p' in gitmerge-mode to line scroll
* admin/gitmerge.el (gitmerge-mode-map): Bind 'n' and 'p' to
'next-line' and 'previous-line'.
2022-09-21 Robert Pluim <rpluim@gmail.com>
Fix substitute-command-keys for global binding lookup
The previous change forgot to account for the (rare) case of doing a
lookup for a global binding when a specific keymap is in force.
* lisp/help.el (substitute-command-keys): Redo lookup in global map if
lookup in specific map fails.
*
test/lisp/help-tests.el (help-tests-substitute-command-keys/keymap-change):
Add testcase for specific map overriding advertised-binding.
2022-09-21 Juri Linkov <juri@linkov.net>
* lisp/outline.el: More improvements for buttons/margins (bug#57813)
(outline-minor-mode-use-margins): Don't use for modes derived from help-mode
that are handled by 'outline-minor-mode-use-buttons'.
(outline-open, outline-close, outline-close-rtl): Use image height
proportional to font height of 0.8em.
(outline-minor-mode): Remove overlays 'outline-button' and 'outline-margin',
and move such overlay removal after the call of 'outline-show-all'
that might trigger overlay addition.
2022-09-21 Stefan Kangas <stefankangas@gmail.com>
image-dired: Support the customize-mode command
* lisp/image/image-dired.el (image-dired-thumbnail-mode)
(image-dired-display-image-mode): Add custom group 'image-dired'.
2022-09-21 Po Lu <luangruo@yahoo.com>
Fix minor thinko in focus tracking logic
* src/xterm.c (xi_handle_focus_change): Prefer explicit focus to
implicit focus.
2022-09-20 Yuan Fu <casouri@gmail.com>
Improve treesit-query-capture
* src/treesit.c (Ftreesit_query_capture): Add a suggestion in the
signal message.
2022-09-20 Yuan Fu <casouri@gmail.com>
Fix treesit-query-validate
* lisp/treesit.el (treesit-query-validate): Add a call to
treesit-query-expand so this function works on both sexp and string
query, as expected.
2022-09-20 Yuan Fu <casouri@gmail.com>
Rename treesit-expand-query/pattern
* src/treesit.c (treesit-expand-pattern): Rename to
treesit-patter-expand.
(treesit-expand-query): Rename to treesit-query-expand.
(make_ts_query): Use new name.
2022-09-20 Mauro Aranda <maurooaranda@gmail.com>
Recognize the backslash operator in perl-mode
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Add new rule to detect a backslash operator. (Bug#11996)
* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-11996): New
test.
* test/lisp/progmodes/cperl-mode-resources/cperl-bug-11996.pl: New
file.
2022-09-20 Stefan Kangas <stefankangas@gmail.com>
Make linum.el obsolete
* lisp/obsolete/linum.el: Add Obsolete-since.
* etc/NEWS: Announce obsoletion of linum.el. (Bug#57412)
* doc/misc/efaq.texi (Displaying the current line or column):
* etc/TODO:
* lisp/faces.el: Don't mention linum.el.
2022-09-20 Stefan Kangas <stefankangas@gmail.com>
Move linum.el to lisp/obsolete
* lisp/linum.el: Move from here...
* lisp/obsolete/linum.el: ...to here. (Bug#57412)
2022-09-20 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/ede.texi (Extending EDE): Fix reference.
2022-09-20 Philip Kaludercic <philip@icterid>
Have rcirc handle bridge bots
* doc/misc/rcirc.texi (Dealing with Bridge Bots): Document new feature.
* etc/NEWS: Mention the new feature.
* lisp/net/rcirc.el (rcirc-markup-text-functions): Add new markup function
(rcirc-pseudo-nicks): Add new local variable.
(rcirc-channel-nicks): Use 'rcirc-pseudo-nicks' for nick completion.
(rcirc-bridge-bot-alist): Add new user option.
(rcirc-bridged-nick): Add new face.
(rcirc-markup-bridge-bots): Add new function.
2022-09-20 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Bind margin mouse event to cycle outlines (bug#57813)
(outline-minor-mode): In mode keymap bind
'right/left-margin mouse-1' to outline-cycle, and
'right/left-margin S-mouse-1' to outline-cycle-buffer.
(outline-hide-subtree, outline-show-subtree): Add save-excursion
to keep point unmoved after mouse click.
(outline-cycle): Add optional arg 'event' like in
outline-hide-subtree and outline-show-subtree, and
add save-excursion to keep point unmoved after mouse click.
(outline--make-button-overlay, outline--make-margin-overlay):
Put overlay property 'evaporate' to t.
(outline--insert-open-button, outline--insert-close-button):
Remove temporary attempts to bind margin-local mouse events.
2022-09-20 Robert Pluim <rpluim@gmail.com>
Allow keymap to override advertised-binding in docstrings
Previously
(substitute-command-keys "\\<undo-repeat-map>\\[undo]")
would use the global advertised-binding for `undo', even though
there's a binding in `undo-repeat-map', which is highly
counter-intuitive. Now the binding is looked up in the specified
keymap first.
* lisp/help.el (substitute-command-keys): Restrict the initial key
lookup to the specified keymap (if there is one). (Bug#51384)
2022-09-20 Robert Pluim <rpluim@gmail.com>
Specify keymap in gnus-custom-mode docstring
* lisp/gnus/gnus-cus.el (gnus-custom-mode): Put in the keymap to use,
otherwise the bindings are looked up in the global map (where they
don't exist).
2022-09-20 Drew Adams <drew.adams@oracle.com>
Tweak how use-region-p works with `use-empty-active-region'
* lisp/simple.el (use-region-p): Don't report non-nil if the user
has just clicked mouse-1 without extending the region (bug#51874).
2022-09-20 Lars Ingebrigtsen <larsi@gnus.org>
Attempt to clarify Input Focus documentation
* doc/lispref/frames.texi (Input Focus): Try to clarify the
documentation (bug#51862).
2022-09-20 Gregory Heytings <gregory@heytings.org>
Improve display of advices on build failures.
* Makefile.in: Use three leading '*' characters, and redirect to stderr.
2022-09-20 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/textmodes/tex-mode.el (tex-mode): Fix AUCTeX regression
As discussed in
https://lists.gnu.org/r/auctex/2022-08/msg00004.html
AUCTeX installs its own advice to redefine `tex-mode`, and that
advice used to take precedence before commit 6075a7c5ae3fa456cd.
2022-09-20 Michael Albinus <michael.albinus@gmx.de>
Wrap max-specpdl-size with with-no-warnings in Tramp
* lisp/net/tramp-archive.el (max-specpdl-size):
* lisp/net/tramp-gvfs.el (max-specpdl-size): Wrap with
`with-no-warnings'.
2022-09-20 Robert Pluim <rpluim@gmail.com>
Add vc-annotate-switches to manual
* doc/emacs/maintaining.texi (Old Revisions): Add description of
`vc-annotate-switches' and `vc-BACKEND-annotate-switches'.
2022-09-20 Lars Ingebrigtsen <larsi@gnus.org>
Mention compilation in the Package Installation node
* doc/emacs/package.texi (Package Installation): Mention that
packages are compiled (bug#51660).
2022-09-20 Lars Ingebrigtsen <larsi@gnus.org>
Allow hl-line-mode so work when global-hl-line-mode is active
* lisp/hl-line.el (hl-line-mode): Allow switching off the global
mode in the current buffer (bug#51580).
2022-09-20 Lars Ingebrigtsen <larsi@gnus.org>
Get fewer false positives for :keyword and &options
* lisp/emacs-lisp/lisp-mode.el (lisp-mode--search-key): New
function to check more carefully for start of :keywords and
&options (bug#51574).
(lisp-fdefs): Use it.
2022-09-20 Stefan Kangas <stefankangas@gmail.com>
Obsolete unused variable in debug.el
* lisp/emacs-lisp/debug.el (debugger-previous-backtrace): Make
unused variable obsolete.
2022-09-20 Lars Ingebrigtsen <larsi@gnus.org>
Further ffap-read-file-or-url tweaks
* lisp/ffap.el (ffap-read-file-or-url): Make this work for URLs
again if you're using `ido-everywhere' (bug#57943).
2022-09-20 Robert Pluim <rpluim@gmail.com>
Remove mention of non-existent `annotate-switches'
* lisp/vc/vc.el (vc-annotate-switches): Remove mention of
`annotate-switches'. As far as I can tell this has never existed in
Emacs.
2022-09-20 Robert Pluim <rpluim@gmail.com>
Mention that src/macuvs.h sometimes needs committing
* admin/notes/unicode: src/macuvs.h is generated, but needs to be
committed sometimes.
2022-09-20 Stefan Kangas <stefankangas@gmail.com>
Use "set -o nounset" in bash scripts
* admin/automerge:
* admin/make-manuals:
* admin/update-copyright:
* admin/update_autogen:
* admin/upload-manuals: Use "set -o nounset".
2022-09-20 Stefan Kangas <stefankangas@gmail.com>
Revert "Allow nil value for filter-buffer-substring-function"
This reverts commit a7c65fc6660878e244432a5b25fb3a4ff20e8604.
2022-09-19 Po Lu <luangruo@yahoo.com>
Remove intern calls with a static string from haiku*.c
* src/haikufns.c (Fx_show_tip, syms_of_haikufns):
* src/haikufont.c (haikufont_maybe_handle_special_family)
(syms_of_haikufont):
* src/haikuterm.c (haiku_term_init, syms_of_haikuterm): Replace
intern with real predefined symbols.
2022-09-19 F. Jason Park <jp@neverwas.me>
Bury new ERC buffers by default
* lisp/erc/erc.el (erc-join-buffer): Change default value to `bury'.
(erc-setup-buffer): Make `window-noselect' behave more like its
description and abstain from ever replacing the current buffer.
* test/lisp/erc/erc-scenarios-base-reconnect.el
(erc-scenarios-common-base-reconnect-options): Update helper to handle
new default value for option `erc-join-buffer'.
(erc-scenarios-base-reconnect-options--buffer): Update and rename
function `erc-scenarios-base-reconnect-options--default'.
(erc-scenarios-base-reconnect-options--default): Update and rename
function `erc-scenarios-base-reconnect-options--bury'.
* etc/ERC-NEWS: Update existing display-buffers section for 5.5.
(Bug#51753)
2022-09-19 F. Jason Park <jp@neverwas.me>
Offer to regexp-quote new items in erc-match commands
* lisp/erc/erc-match.el (erc-match-quote-when-adding) Add new option
to quote new items added to match lists.
(erc-add-entry-to-list): Add optional `alt' parameter indicating
whether to flip the behavior indicated by
`erc-match-quote-when-adding'.
(erc-add-pal, erc-add-fool, erc-add-keyword, erc-add-dangerous-host):
Pass universal arg to `erc-add-entry-to-list' as `alt' argument.
(erc-match-pal-p, erc-match-fool-p, erc-match-keyword-p,
erc-match-dangerous-host-p): Don't bother matching when list is nil.
* lisp/erc/erc.el (erc-list-match (lst str): Join input list as regexp
union instead of looping over items.
* etc/ERC-NEWS: Update misc-UX section for 5.5.
* test/lisp/erc/erc-match-tests.el: New file. (Bug#56450)
2022-09-19 F. Jason Park <jp@neverwas.me>
Don't record undo history in erc-protocol buffers
* lisp/erc/erc.el (erc-log-irc-protocol): Disable undo history.
2022-09-19 F. Jason Park <jp@neverwas.me>
Stabilize channels variant of erc-reuse-buffers test
* lisp/erc/erc-networks.el (erc-networks--id-sort-buffers): Use
`buffer-local-value' instead of `with-current-buffer'.
* test/lisp/erc/erc-scenarios-base-reuse-buffers.el
(erc-scenarios-common--base-reuse-buffers-channel-buffers): Wait for
buffers to be created by server-initiated JOINs.
(erc-scenarios-base-reuse-buffers-channel-buffers--disabled): Remove
`:unstable' tag.
* test/lisp/erc-tests.el (erc-ring-previous-command): Remove
unnecessary `goto-char'.
2022-09-19 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Fix bug#57903
Fall back to old slower calling convention in dynbound code (bug#56596).
2022-09-19 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-open): Revert 'text' back to " open ".
(outline-close): Revert 'text' back to " close ".
(outline-close-rtl): Remove 'text' since it's inherited from the parent
'outline-close'.
2022-09-19 Gregory Heytings <gregory@heytings.org>
Improve advices on build failures.
* Makefile.in: Mention "make extraclean; make". Mention mailing the
bugtracker among the possible choices. Fix typo.
2022-09-19 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-minor-mode-use-margins): New user option.
(outline--use-margins, outline--use-buttons, outline--use-rtl):
New buffer-local internal variables.
(outline-open, outline-close): Move :ascent center to default of define-icon.
Use ASCII-art for text. Fix docstring and help-echo.
(outline-close-rtl, outline-open-in-margins)
(outline-close-in-margins, outline-close-rtl-in-margins): New icon
definitions.
(outline-minor-mode-highlight-buffer): Remove outline--insert-open-button
since initial outline--fix-up-all-buttons is added now to outline-minor-mode.
(outline-minor-mode): Set buffer-local outline--use-buttons,
outline--use-margins and outline--use-rtl. Show/hide margins for
outline--use-margins. Add hook after-change-functions for editable buffers.
Move outline--fix-up-all-buttons for both cases: font-lock and non-font-lock.
(outline--use-buttons-p): Remove function.
(outline--make-button-overlay): Use outline--use-rtl icon outline-close-rtl.
(outline--make-margin-overlay): New function.
(outline--insert-open-button, outline--insert-close-button): Add optional
arg 'use-margins'.
(outline--fix-up-all-buttons): Call outline--insert-close-button
and outline--insert-open-button with arg outline--use-margins.
(outline-cycle-buffer): Remove outline--fix-up-all-buttons
that is already called from outline-flag-region.
* lisp/emacs-lisp/icons.el (icons--create): Handle keywords :rotation
and :ascent with the default value 'center (bug#57813).
* doc/emacs/text.texi (Outline Mode): Mention outline-minor-mode-use-margins.
2022-09-19 Matthias Meulien <orontee@gmail.com>
Minor touch-ups of some recent OSC stuff
* lisp/comint.el (comint-osc-handlers):
(comint-osc-hyperlink-map): Use defvaralias (bug#57821).
* lisp/osc.el: Fix some comments.
2022-09-19 Mauro Aranda <maurooaranda@gmail.com>
perl-mode: / is a regexp match if there's nothing before it
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
A "/" that starts the first statement is a regexp match. (Bug#997)
* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-997): New
test.
2022-09-19 Mattias Engdegård <mattiase@acm.org>
Abolish max-specpdl-size (bug#57911)
The max-lisp-eval-depth limit is sufficient to prevent unbounded stack
growth including the specbind stack; simplify matters for the user by
not having them to worry about two different limits. This change
turns max-specpdl-size into a harmless variable with no effects,
to keep existing code happy.
* lisp/subr.el (max-specpdl-size):
Define as an ordinary (but obsolete) dynamic variable.
* admin/grammars/Makefile.in:
* doc/lispintro/emacs-lisp-intro.texi (Loops & Recursion):
* doc/lispref/control.texi (Cleanups):
* doc/lispref/edebug.texi (Checking Whether to Stop):
* doc/lispref/eval.texi (Eval):
* doc/lispref/variables.texi (Local Variables):
* doc/misc/calc.texi (Recursion Depth):
Update documentation.
* etc/NEWS: Announce.
* src/eval.c
(FletX): Use safe iteration to guard against circular bindings list.
(syms_of_eval): Remove old max-specpdl-size definition.
(init_eval_once, restore_stack_limits, call_debugger)
(signal_or_quit, grow_specpdl_allocation):
* leim/Makefile.in:
* lisp/Makefile.in:
* lisp/calc/calc-stuff.el (calc-more-recursion-depth)
(calc-less-recursion-depth):
* lisp/calc/calc.el (calc-do):
* lisp/cedet/semantic/ede-grammar.el (ede-proj-makefile-insert-rules):
* lisp/cedet/semantic/grammar.el (semantic-grammar-batch-build-one-package):
* lisp/cus-start.el (standard):
* lisp/emacs-lisp/comp.el (comp--native-compile):
* lisp/emacs-lisp/edebug.el (edebug-max-depth):
(edebug-read-and-maybe-wrap-form, edebug-default-enter):
* lisp/emacs-lisp/regexp-opt.el (regexp-opt):
* lisp/eshell/esh-mode.el (eshell-mode):
* lisp/loadup.el (max-specpdl-size):
* lisp/mh-e/mh-e.el (mh-invisible-headers):
* lisp/net/shr.el (shr-insert-document, shr-descend):
* lisp/play/hanoi.el (hanoi-internal):
* lisp/progmodes/cperl-mode.el:
* src/fileio.c (Fdo_auto_save):
Remove references to and modifications of max-specpdl-size.
2022-09-19 João Távora <joaotavora@gmail.com>
Revert "fix jdtls support"
This reverts commit e5b021c01fceea02b7e6622cde0a347b842ca6f3.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/1008
2022-09-19 João Távora <joaotavora@gmail.com>
Don't use three-argument plist-get
* eglot.el (eglot-handle-request): Don't use three-argument
plist-get.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/1024
2022-09-19 Stefan Kangas <stefankangas@gmail.com>
Allow nil value for filter-buffer-substring-function
* lisp/simple.el
(filter-buffer-substring): Support a nil value to be more resilient.
(filter-buffer-substring-function): Doc fix; improve and update for
above change.
2022-09-19 Stefan Kangas <stefankangas@gmail.com>
Support imenu in emacs-news-mode
* lisp/outline.el (outline-imenu-generic-expression): New variable
broken out from...
(outline-mode): ...here.
* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Use
above new variable to add imenu support.
2022-09-19 Eli Zaretskii <eliz@gnu.org>
Fix 'posn-at-point' around several 'display' properties
* src/xdisp.c (pos_visible_p): Fix the case when CHARPOS is hidden
by a display property, and its neighbors are also hidden.
(Bug#45915)
2022-09-19 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/misc/eieio.texi (Introduction, Generics): Remove outdated limits
Reported by Hokomo <hokomo@airmail.cc>.
2022-09-19 Philipp Stephani <phst@google.com>
Improve check for misleading 'cl-case' cases (Bug#57915).
* lisp/emacs-lisp/cl-macs.el (cl-case): Check that the case is of the
form (quote FOO), not just (quote).
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-no-warning): New unit test.
2022-09-19 Michael Albinus <michael.albinus@gmx.de>
Revert change in Tramp inotifywait
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Revert use of "-P", it doesn't exist in older inotifywait versions.
* test/lisp/filenotify-tests.el: Deactivate instrumentation.
2022-09-19 Stefan Kangas <stefankangas@gmail.com>
Prefer DE specific commands to set wallpaper
* lisp/image/wallpaper.el (wallpaper--default-commands): Rearrange
order to prioritize desktop environment specific commands before
general Wayland commands like "wbg" or even "swaybg". (Bug#57781)
2022-09-19 Stefan Kangas <stefankangas@gmail.com>
Avoid an unnecessary call to intern
* src/doc.c (Fdocumentation): Prefer DEFSYM to using intern directly.
2022-09-19 Daniel Pettersson <daniel@dpettersson.net> (tiny change)
Fix eshell directory and executable completion on action t
* lisp/eshell/em-cmpl.el (eshell--pcomplete-executables): New
function (bug#57905).
(eshell--complete-commands-list): Use it.
2022-09-19 Lars Ingebrigtsen <larsi@gnus.org>
Don't save bookmark context from encrypted files
* doc/emacs/regs.texi (Bookmarks): Mention this.
* lisp/bookmark.el (bookmark-make-record): Don't include context
in encrypted files (bug#57856).
* lisp/epa-hook.el (epa-file-name-p): New function.
2022-09-19 Gregory Heytings <gregory@heytings.org>
Revert 60de98f6f0 and b2d419ed5b.
2022-09-19 Po Lu <luangruo@yahoo.com>
* Makefile.in: Readd warnings about "git clean -fdx"
2022-09-19 Po Lu <luangruo@yahoo.com>
Revert "; * Makefile.in: Partly revert 5b3c4004a9."
This reverts commit e54da280ff4bf458c437f87dd64e848cdc75479c.
2022-09-19 Lars Ingebrigtsen <larsi@gnus.org>
make gen-clean remove some newly-added generated files
* admin/unidata/Makefile.in (gen-clean): Remove some newly-added
generated files.
2022-09-19 Gerd Möllmann <gerd@gnu.org>
MacOS ld warning from native compilation (bug#57849)
* lisp/emacs-lisp/comp.el (native-comp-driver-options): Add "-Wl,-w"
on Darwin systems.
* etc/NEWS: Describe change.
2022-09-19 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
a2f9788cbc ; Minor copyedits of *-frame-alist doc strings
c200098dde ; * src/intervals.c (get_local_map): Fix commentary.
69cc3d38bc Fix Tramp error with eshell integration
2022-09-18 Po Lu <luangruo@yahoo.com>
Remove calls to intern with a static string from code that runs on X
* Makefile.in (actual-all): Reword build failure advice.
* src/bytecode.c (exec_byte_code, syms_of_bytecode):
* src/font.c (syms_of_font):
* src/hbfont.c (uni_combining):
* src/xfns.c (Fx_display_backing_store, Fx_display_visual_class)
(x_create_tip_frame, Fx_show_tip, syms_of_xfns):
* src/xfont.c (xfont_supported_scripts, xfont_driver)
(syms_of_xfont):
* src/xsmfns.c (Fhandle_save_session, syms_of_xsmfns): Remove
calls to intern with a static string.
2022-09-18 Po Lu <luangruo@yahoo.com>
Get rid of intern calls to static strings in xterm.c
* src/xterm.c (x_cr_export_frames): Use Qconcat instead of
interning concat.
(syms_of_xterm): New defsym Qconcat.
2022-09-18 Po Lu <luangruo@yahoo.com>
Fix GC protection of scroll bar windows
* src/xterm.c (x_atom_refs): Add _EMACS prefix to
vendor-specific scroll-bar atoms.
(handle_one_xevent): Unprotect windows immediately upon
receiving an _EMACS_SCROLLBAR event, instead of waiting for the
event to be put on the keyboard buffer. Reported by martin
rudalics <rudalics@gmx.at>.
2022-09-18 Gregory Heytings <gregory@heytings.org>
Display a help message when building Emacs failed.
* Makefile.in (actual-all): New target, replacing the former 'all'
target.
(advice-on-failure, sanity-check): New targets.
(all): Use the new targets.
(bootstrap-all): New target, identical to 'all' but meant for the
'bootstrap' target in GNUmakefile.
(actual-bootstrap): New target, replacing the former 'bootstrap'
target. Use the 'actual-all' target instead of the 'all' target.
(bootstrap): Use the new targets.
* GNUmakefile (bootstrap): Use the new 'bootstrap-all' target.
2022-09-18 Stefan Kangas <stefankangas@gmail.com>
Prefer using DEFSYMs to intern with wrong_type_argument
* src/data.c (syms_of_data) <Qbooleanp>:
* src/fileio.c (syms_of_fileio) <Qinserted_chars, Qfile_offset>:
* src/font.c (syms_of_font) <Qfont_extra_type>: New DEFSYMs.
* src/dbusbind.c (xd_signature, xd_append_arg):
* src/fileio.c (file_offset, Finsert_file_contents):
* src/font.c (Ffontp): Prefer using above new DEFSYMs to using intern
directly.
2022-09-18 Michael Albinus <michael.albinus@gmx.de>
Minor Tramp cleanups
* lisp/net/tramp-compat.el (tramp-compat-rx): Declare.
* lisp/net/tramp-integration.el (info-lookup-maybe-add-help):
Fix `rx' call.
2022-09-18 Michael Heerdegen <michael_heerdegen@web.de>
Turn gv-synthetic-place into a function
This fixes Bug#57397.
* lisp/emacs-lisp/gv.el (gv-synthetic-place): Make a function and add
trivial compiler macro to avoid decreasing efficiency.
2022-09-18 Matthias Meulien <orontee@gmail.com>
Add NEWS entry for osc.el (bug#57821)
2022-09-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix osc.el compilation warning
* lisp/osc.el (compilation-filter-start): Avoid compilation warning.
2022-09-18 Matthias Meulien <orontee@gmail.com>
OSC escape sequences filter for compilation buffer
* lisp/osc.el (osc-control-seq-regexp): Regexp matching OSC control sequence.
(osc-filter-region): Filter out OSC control sequences from region.
(osc-for-compilation-buffer): Determines what to do with OSC escape
sequences in compilation output.
(osc-compilation-filter): Implement OSC escape sequence handling for
compilation output (bug#57821).
2022-09-18 Matthias Meulien <orontee@gmail.com>
Handle OSC command to set window title
* lisp/osc.el (osc-handlers): Bind osc-window-title-handler to OSC
command 2.
(osc-window-title): Local variable storing string extracted from OSC
command 2.
(osc-window-title-handler): Copy text from OSC command 2 to
osc-window-title (bug#57821).
2022-09-18 Matthias Meulien <orontee@gmail.com>
Extract support of OSC escape sequences from comint
* lisp/comint.el (osc): Now requires osc.el.
(comint-osc-directory-tracker): Alias to osc-directory-tracker.
(comint-osc-hyperlink-handler): Alias to osc-hyperlink-handler.
(comint-osc-hyperlink-map): Alias to osc-hyperlink-map.
(comint-osc-handlers): Alias to osc-handlers.
(comint-osc-hyperlink): Alias to osc-hyperlink.
(comint-osc-process-output): Rewritten to call osc-apply-on-region.
* lisp/osc.el (osc-handlers): Clone comint-osc-handlers.
(osc--marker): Clone comint-osc--marker.
(osc-apply-on-region): Implementation taken from comint-osc-process-output.
(osc-directory-tracker): Clone from comint-osc-directory-tracker.
(osc-hyperlink-map): Clone from comint-osc-hyperlink-map.
(osc-hyperlink): Clone from comint-osc-hyperlink.
(osc-hyperlink--state): Clone from comint-osc-hyperlink--state.
(osc-hyperlink-handler): Clone from comint-osc-hyperlink-handler.
* test/lisp/osc-tests.el (osc): Test osc-apply-region (bug#57821).
2022-09-18 Lars Ingebrigtsen <larsi@gnus.org>
Improve the initial-frame-alist doc string
* lisp/frame.el (initial-frame-alist): Clarify how to set this
variable (bug#57890).
2022-09-18 Lars Ingebrigtsen <larsi@gnus.org>
Restore the point after aborting an image crop
* lisp/image/image-crop.el (image-crop): Restore point after
aborted cropping (bug#57874).
2022-09-18 Augusto Stoffel <arstoffel@gmail.com>
pulse-momentary-highlight-one-line: Act on visual line
* lisp/cedet/pulse.el (pulse-momentary-highlight-one-line): Act on
entire visual line, ignoring fields etc (bug#57876).
2022-09-18 Augusto Stoffel <arstoffel@gmail.com>
Remap 'up-list' in python-mode-map
* lisp/progmodes/python.el (python-mode-map): Remap 'up-list' to
'python-nav-up-list' (bug#57885).
2022-09-18 Augusto Stoffel <arstoffel@gmail.com>
Add new command python-shell-restart
* lisp/progmodes/python.el (python-shell-restart): New command (bug#57885).
2022-09-18 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp error with eshell integration
* lisp/net/tramp-integration.el (tramp-eshell-directory-change):
Respect local `default-directory'. (Bug#57556)
2022-09-18 Stefan Kangas <stefankangas@gmail.com>
image-dired: Don't require subr-x
* lisp/image/image-dired-dired.el (subr-x):
* lisp/image/image-dired.el (subr-x): Don't require, since string-join
is now autoloaded.
2022-09-18 João Távora <joaotavora@gmail.com>
Don't return hash tables from e-w-configuration-plist
* eglot.el (eglot-signal-didChangeConfiguration): Adjust.
(eglot-handle-request workspace-configuration): Adjust.
(eglot--workspace-configuration-plist): Don't return a hashtable.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/1033
2022-09-18 João Távora <joaotavora@gmail.com>
Allow eglot-workspace-configuration to be a plist
Suggested-by: Augusto Stoffel <arstoffel@gmail.com>
* NEWS.md: Mention change.
* README.md (eglot-workspace-configuration): Update yet again. Update
examples to use pylsp.
* eglot.el (eglot--workspace-configuration-plist): Noop if already
a plist.
(eglot-handle-request workspace/configuration): Use
eglot--workspace-configuration-plist.
(eglot-workspace-configuration): Document variable.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/590
GitHub-reference: per https://github.com/joaotavora/eglot/issues/790
GitHub-reference: per https://github.com/joaotavora/eglot/issues/1033
2022-09-18 João Távora <joaotavora@gmail.com>
Don't exceed max-specdl-size in big go projects
When invoking client/registerCapability for
workspace/didChangeWatchedFiles, Gopls lists each file to watch
separately. This makes eglot--glob-emit-{} emit a closure with an
'or' form containing a potentially large number of 're-search-forward'
forms.
For large Go project such as "Kubernetes", this list becomes so large
that -- for some reason I don't understand -- it triggers the
'max-specdl-size' limit.
An alternative using `regexp` opt doesn't seem to trigger the error.
* eglot.el (eglot--glob-emit-{}): Use regexp-opt.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/633
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/1067
2022-09-18 Po Lu <luangruo@yahoo.com>
Remove what should be unnecessary calls to block_input
* src/xterm.c (handle_one_xevent): Do not block input inside.
This function is not reentrant and is always called with input
blocked.
2022-09-18 Gerd Möllmann <gerd@gnu.org>
Fix possible null pointer access
* src/term.c (Ftty__output_buffer_size): Handle case of
decode_tty_terminal returning NULL.
2022-09-18 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
50bb9ec84c ; * admin/admin.el (make-news-html-file): Fix typo.
2022-09-17 Sean Whitton <spwhitton@spwhitton.name>
vc-do-command: Actually include "torsocks" in the command
* lisp/vc/vc-dispatcher.el (vc-do-command): When vc-tor is non-nil,
actually include "torsocks" in the command to be run (bug#57870).
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
image-dired: Display image on double click
* lisp/image/image-dired.el (image-dired-thumbnail-mode-map):
Display image on 'double-mouse-1'.
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
image-dired: Remove spurious message on C-<mouse-1>
* lisp/image/image-dired.el (image-dired-thumbnail-mode-map): Fix
spurious message about C-<down-mouse-1> being undefined.
2022-09-17 João Távora <joaotavora@gmail.com>
Allow :initializationoptions in eglot-server-programs
Also see https://github.com/joaotavora/eglot/issues/1038.
This feature was poorly tested, and simply wouldn't work when trying
to initialize the server object.
The simple solution is to ignore :initializationOptions initarg in
this context. It is still stored separately as and accessed as the
'eglot--saved-initargs' slot.
Another complication arises in eglot--guess-contact, which tried too
hard to be able to compose an interactive prompt (when the server
program can't be found). The solution is just to give up when
:autoport or :initializationOptions is found. It's not easy or
practical to have the user provide non-string arguments via a string
interface like the minibuffer.
* eglot.el (initialize-instance :before eglot-lsp-server): Don't pass
:initializationOptions initarg onward.
(eglot--guess-contact): Simplify. Don't try heroics with
:autoport and :initializationOptions.
* eglot-tests.el (eglot-server-programs-simple-missing-executable):
Update test.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/940
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
Increase image-dired-thumb-size to 128
* lisp/image/image-dired.el (image-dired-thumb-size): Increase default
to 128.
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
image-dired: Change some custom types to natnum
* lisp/image/image-dired.el (image-dired-thumb-size)
(image-dired-thumb-relief, image-dired-thumb-margin)
(image-dired-thumbs-per-row, image-dired-thumb-width)
(image-dired-thumb-height): Change :type to natnum.
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
Make `image-dired-thumb-(height|width)' obsolete
* lisp/image/image-dired.el (image-dired-thumb-width)
(image-dired-thumb-height): Make obsolete.
(image-dired-thumb-size): Clean up and improve docstring.
* lisp/image/image-dired-external.el (image-dired-thumb-size): Use
'image-dired-thumb-size' instead of above obsolete variables.
(image-dired-create-thumb-1): Support %s format specifier for size.
(image-dired-cmd-create-thumbnail-options): Document %s format
specifier.
(image-dired--thumb-size): Rename function from
'image-dired-thumb-size' and make old name into an obsolete alias.
Update all callers.
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
Simplify image-dired-thumbnail-storage customization
* lisp/image/image-dired.el (image-dired-dir): Improve docstring.
(image-dired-thumbnail-storage): Change default to `image-dired',
maintain `use-image-dired-dir' for backwards compatibility.
* lisp/image/image-dired-util.el (image-dired-thumb-name): Handle
above new default value.
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
* lisp/image/image-dired.el: Bump version for Emacs 29.
2022-09-17 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fix rare shaping problems with Urdu and Arabic
* src/composite.c (fill_gstring_body): Clear unused slots of the
gstring. (Bug#50951)
2022-09-17 Gerd Möllmann <gerd@gnu.org>
Optimize tty display updates (bug#57727)
* src/dispnew.c (update_frame_1): Don'f flush if tty's
output_buffer_size is non-zero.
* src/sysdep.c (init_sys_modes): Setvbuf depending on the tty's
output_buffer_size.
* src/term.c (Ftty__set_output_buffer_size, Ftty__output_buffer_size):
Low-level interface for setting and retrieving a tty's output buffer
size.
(syms_of_term): Defsubr the new functions.
* src/termchar.h (struct tty_display_info): New member
output_buffer_size.
* etc/NEWS: Describe the change.
2022-09-17 Michael Albinus <michael.albinus@gmx.de>
Fix recent filenotify-tests changes
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Use "-P".
* test/lisp/filenotify-tests.el (file-notify-test11-symlinks):
Adapt test.
2022-09-17 Lars Ingebrigtsen <larsi@gnus.org>
Autoload string-join
* lisp/emacs-lisp/subr-x.el (string-join): Autoload since it's
being used more now.
2022-09-17 Gregory Heytings <gregory@heytings.org>
Further improvements to admin/emake.
* admin/emake: Better parsing of script options. Add a --quieter option,
which removes everything except errors.
2022-09-17 João Távora <joaotavora@gmail.com>
Adjust last commit about workspace configuration
* README.md (way): Adjust.
* eglot.el (json): Don't require needlessly.
(eglot-show-workspace-configuration): Don't depend on json-mode.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/790
GitHub-reference: per https://github.com/joaotavora/eglot/issues/590
2022-09-17 Po Lu <luangruo@yahoo.com>
Fix MPX focus tracking upon frame deletion
* src/xterm.c (x_free_frame_resources): Consider focus change
after.
2022-09-17 Eli Zaretskii <eliz@gnu.org>
Fix running spell-checking in remote buffers
* lisp/textmodes/ispell.el (ispell-with-safe-default-directory):
Don't use remote 'default-directory' when running the speller.
(Bug#57649)
2022-09-17 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Update Unicode support to Unicode version 15.0.0 (bug#57846)
* admin/unidata/BidiBrackets.txt
* admin/unidata/BidiMirroring.txt
* admin/unidata/Blocks.txt
* admin/unidata/IVD_Sequences.txt
* admin/unidata/IdnaMappingTable.txt
* admin/unidata/NormalizationTest.txt
* admin/unidata/PropertyValueAliases.txt
* admin/unidata/ScriptExtensions.txt
* admin/unidata/Scripts.txt
* admin/unidata/SpecialCasing.txt
* admin/unidata/UnicodeData.txt
* admin/unidata/confusables.txt
* admin/unidata/copyright.html
* admin/unidata/emoji-data.txt
* admin/unidata/emoji-sequences.txt
* admin/unidata/emoji-test.txt
* admin/unidata/emoji-zwj-sequences.txt
* test/manual/BidiCharacterTest.txt: Updated files from Unicode
15.0.
* admin/unidata/unidata-gen.el (unidata-file-alist): Add new ranges.
* lisp/international/fontset.el (script-representative-chars): Add
new scripts.
(otf-script-alist): Update from latest version.
(setup-default-fontset): Add new scripts.
* lisp/international/characters.el: Update syntax and category
tables for new characters and scripts.
(char-width-table): Update for changes in Unicode 15.0.
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--failing-lines-part1)
(ucs-normalize-tests--failing-lines-part2): Update per the test
results.
* doc/lispref/nonascii.texi (Character Properties): Update Unicode
version number.
* etc/NEWS: Announce support for Unicode 15.0.
2022-09-17 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
320f0cac80 ; * etc/NEWS: Fix typo.
5dbe4fa64a Simplify regexp in make-news-html-file
069ffbda09 * admin/admin.el (make-news-html-file): Set id on correct ...
bcc84ac7fe Add version headlines to HTML NEWS export
5d227ae83e ; * etc/NEWS: Fix formatting.
# Conflicts:
# etc/NEWS
2022-09-16 João Távora <joaotavora@gmail.com>
Rework readme.md about workspace configuration again
Also tweak eglot-show-workspace-configuration a bit.
* README.md (Workspace configuration): Rework.
* eglot.el (eglot-show-workspace-configuration): Rework.
(eglot--workspace-configuration-plist): New helper.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/590
2022-09-16 Fredrik Bergroth <fbergroth@gmail.com>
Add eglot-show-configuration to debug workspace configurations
Also see https://github.com/joaotavora/eglot/issues/790, https://github.com/joaotavora/eglot/issues/1033.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/590
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Simplify regexp in make-news-html-file
* admin/admin.el (make-news-html-file): Simplify regexp.
Suggested by Mattias Engdegård <mattiase@acm.org>.
2022-09-16 Gregory Heytings <gregory@heytings.org>
Various improvements to admin/emake.
* admin/emake: Return the status code of make when the build fails.
Filter the output of emake *clean. Add three options --no-color
(useful for emake check for example), --no-check (useful for quicker
builds during development) and --no-fast.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Support XFCE in wallpaper.el
* lisp/image/wallpaper.el (wallpaper--default-commands)
(wallpaper-command): Support XFCE. (Bug#57781)
Thanks to Thierry Volpiatto <thievol@posteo.net>.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Accept more wide function signatures in docstrings
* test/lisp/emacs-lisp/bytecomp-tests.el
("warn-wide-docstring-ignore-function-signature.el"): New test.
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
Make regexp more allowing to silence warning.
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-function-signature.el:
New file.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
image-dired: Add support for PDF files (Bug#26432)
* lisp/image/image-dired.el
(image-dired--file-name-regexp): New function.
(image-dired-display-thumbnail-original-image): Clean up.
(image-dired-display-image): Support visiting PDF files.
* lisp/image/image-dired-dired.el
(image-dired-dired-toggle-marked-thumbs):
* lisp/image/image-dired.el (image-dired-get-thumbnail-image)
(image-dired-show-all-from-dir): Use above new function instead of
'image-file-name-regexp'.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
image-dired: Print command when debugging
* lisp/image/image-dired-external.el (image-dired-create-thumb-1):
Display command and arguments when debugging.
* lisp/image/image-dired-util.el (image-dired-debug): Rename from
'image-dired-debug-message'.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Delete mystery code from cperl-mode.el
* lisp/progmodes/cperl-mode.el: Delete commented out code referring to
some 'edit-var-mode-alist' that we don't think is used for anything.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Delete some commented out code in cperl-mode.el
The differences between this and the existing `cperl-ps-print-init'
are that some faces had been moved from italic to bold or vice versa,
and that there were some obsolete or non-existent face names
mentioned. So there is no point to keeping it given that it's been
commented out since 1999.
* lisp/progmodes/cperl-mode.el: Delete code commented out since 1999:
a slightly different, duplicate definition of `cperl-ps-print-init'.
2022-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
Fix last occurrence of `font-lock-reference-face`
Well... except for CC-mode.
* lisp/cedet/semantic/grammar.el (semantic-grammar-mode-keywords-1):
Redirect reference to obsolete `font-lock-reference-face` to
`font-lock-constant-face`.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
* admin/admin.el (make-news-html-file): Set id on correct tag.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Add version headlines to HTML NEWS export
This allows linking to, e.g. "NEWS.28.html#28.1" to go directly to
those release notes.
* admin/admin.el (admin--org-export-headers-format)
(make-news-html-file): Add XX.Y version headlines with an HTML anchor.
2022-09-16 Mattias Engdegård <mattiase@acm.org>
* lisp/subr.el (list-of-strings-p): Declare pure and error-free
2022-09-16 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Optimize performance of S-TAB (bug#57813)
(outline-hide-subtree): Don't call outline--insert-close-button, because
it's handled by outline--fix-up-all-buttons called from outline-flag-region.
(outline-show-subtree): Don't call outline--insert-open-button, same reason.
(outline--fix-up-all-buttons): Check invisible outlines explicitly instead of
using slow outline--cycle-state.
2022-09-16 Michael Albinus <michael.albinus@gmx.de>
Enable `dont-follow' for inotify file notifications
* doc/lispref/os.texi (File Notifications): Symlinks aren't followed.
* lisp/filenotify.el (file-notify--add-watch-inotify):
Add `dont-follow' flag.
* lisp/net/tramp.el (tramp-handle-file-notify-rm-watch):
Suppress errors when reading process output.
* test/lisp/filenotify-tests.el (file-notify-test11-symlinks)
(file-notify-test11-symlinks-remote): New tests.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Use substitute-command-keys in some vc messages
* lisp/vc/vc-dispatcher.el (vc-start-logentry):
* lisp/vc/vc.el (vc-steal-lock): Use substitute-command-keys.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
f232d989fd Improve HTML export of NEWS file
397890ba77 Delete "etc/NEWS*.html" from .gitignore
70ca5f6524 ; * etc/NEWS: Fix typos.
19de241a7d Recommend NonGNU ELPA over MELPA
f25f9dbf30 Minor doc fixes in picture.el
520b041b54 * lisp/textmodes/page-ext.el: Improve Commentary.
# Conflicts:
# etc/NEWS
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Improve HTML export of NEWS file
* admin/admin.el (admin--org-export-headers-format)
(admin--org-html-postamble): New variables.
(admin--require-external-package): New function.
(make-news-html-file): Improve HTML export.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Add command to delete temporary markers in NEWS
* lisp/textmodes/emacs-news-mode.el
(emacs-news-delete-temporary-markers): New command.
* admin/make-tarball.txt: Update instructions.
2022-09-16 Alan Mackenzie <acm@muc.de>
cc-fonts.el: Eliminate an Emacs compiler warning introduced yesterday.
* lisp/progmodes/cc-fonts.el (top level): Introduce a cc-bytecomp-defvar for
font-lock-reference-face.
2022-09-16 Mattias Engdegård <mattiase@acm.org>
Faster and more robust list-of-strings-p
* lisp/subr.el (list-of-strings-p): Speed up by a factor 4 (approx.)
and don't crash on dotted lists.
* test/lisp/subr-tests.el (test-list-of-strings-p): Extend test.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Delete "etc/NEWS*.html" from .gitignore
We actually do want to see it when preparing a release, so that we
don't include it in a tarball by mistake.
* .gitignore: Don't ignore "etc/NEWS*.html".
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Recommend NonGNU ELPA over MELPA
* doc/misc/org.org (Using CDLaTeX to enter math, Footnotes): Recommend
NonGNU ELPA over MELPA.
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix *Help* output for native-comp functions from IELM
* lisp/help-fns.el (find-lisp-object-file-name): Don't claim that
native-comp functions that are defined outside of files (for
instance, created by calling `native-compile' in IELM) are in C
source (bug#57819).
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Inhibit image-mode resizing in the minibuffer
* lisp/image-mode.el (image-fit-to-window): Don't resize when in
the minibuffer (bug#57823).
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix cperl list indentation problem
* lisp/progmodes/cperl-mode.el (cperl-calculate-indent): Indent
foo:bar() in lists correctly (bug#57829).
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in picture.el
* lisp/textmodes/picture.el (picture-mode-map): Prefer defvar-keymap.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
Minor doc fixes in picture.el
* lisp/textmodes/picture.el: Improve Commentary.
(picture-forward-column, picture-backward-column)
(picture-move-down, picture-move-up, picture-movement-nw)
(picture-movement-ne, picture-movement-sw, picture-movement-se)
(picture-set-motion, picture-clear-line, picture-newline)
(picture-tab, picture-yank-rectangle)
(picture-yank-rectangle-from-register, picture-insert-rectangle)
(picture-draw-rectangle): Minor doc fixes.
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Don't use autoloaded functions for safe-local-variable
* doc/lispref/symbols.texi (Standard Properties): Clarify how
safe-local-variable should look.
* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words)
(checkdoc-symbol-words): Use list-of-strings-p.
(checkdoc-list-of-strings-p): Obsolete.
* lisp/vc/vc-git.el (vc-git-annotate-switches): Remove.
(vc-git-annotate-switches): Open-code the check.
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Add new predicate list-of-strings-p
* lisp/subr.el (list-of-strings-p): New function.
2022-09-16 Stefan Kangas <stefankangas@gmail.com>
* lisp/textmodes/page-ext.el: Improve Commentary.
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix sorting of backends in vc-responsible-backend
* lisp/vc/vc.el (vc-responsible-backend): When comparing directory
names, expand them first so that we get consistent sorting of ~/
etc (bug#57777).
2022-09-16 Po Lu <luangruo@yahoo.com>
Fix icon spec for outline icons
* lisp/outline.el (outline-open):
(outline-close): Fix listing of multiple images. Reported by
Lars Ingebrigtsen <larsi@gnus.org>.
2022-09-16 Lars Ingebrigtsen <larsi@gnus.org>
Rename `image-elide' to `image-cut' and add more bindings
* doc/lispref/display.texi (Showing Images): Update.
* lisp/image.el (image-map): Move binding to mirror Gimp bindings.
* lisp/image/image-crop.el (image-crop-cut-command): Rename.
(image-cut-color): New user option.
(image-cut): Rename and remove prefix.
(image-crop): Remove prefix.
(image-crop--crop-image-update): Add commands to switch to
move/square modes.
2022-09-16 Po Lu <luangruo@yahoo.com>
Fix wrong source window being generated for XDND leave events
* src/xterm.c (x_dnd_update_state, handle_one_xevent): Let
x_dnd_last_seen_toplevel remain at its old value until any
XdndLeave event was definitely sent.
2022-09-16 Po Lu <luangruo@yahoo.com>
Avoid asserting for fontset validity before it is used
* src/fontset.c (face_for_char): Move `eassert' to before the
fontset is really used. Suggested by Eli Zaretskii
<eliz@gnu.org>
2022-09-16 Po Lu <luangruo@yahoo.com>
Add portable versions of the outline SVGs
* lisp/outline.el (outline-open):
(outline-close): Add PBM images.
* etc/images/outline-open.pbm:
* etc/images/outline-close.pbm: New images used on systems
without librsvg.
2022-09-16 Juri Linkov <juri@linkov.net>
Add outline open/close images (bug#57813)
* etc/images/outline-open.svg:
* etc/images/outline-close.svg: New files.
* lisp/outline.el (outline-open, outline-close): Use images
outline-open.svg and outline-close.svg.
* lisp/emacs-lisp/icons.el (icons--create): Add :ascent 'center'.
2022-09-16 Gerd Möllmann <gerd@gnu.org>
Fix crash in GC on macOS (bug#57751)
* src/nsterm.m ([EmacsView windowDidMove:]): Initialize input_event.
2022-09-15 Peter Münster <pm@a16n.net>
image-dired: Fix thumbnail options for gm
* lisp/image/image-dired-external.el
(image-dired-cmd-create-standard-thumbnail-options): Fix options for
"gm" (GraphicsMagick). (Bug#52200)
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Improve image-dired-display-properties-format
* lisp/image/image-dired.el
(image-dired-display-properties-format): Change default format,
improve docstring and add :safe property
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
image-dired: Show header line on start
* lisp/image/image-dired.el (image-dired-show-all-from-dir): Update
header line, to ensure that it is immediately visible on start.
2022-09-15 Stefan Monnier <monnier@iro.umontreal.ca>
combine-change-calls-1: Fix case where `body` also changes other bufs
* lisp/subr.el (combine-change-calls-1): Only set the current buffer's part
of the `*-change-functions` hooks.
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
image-dired: Fix performance bug with mouse click
* lisp/image/image-dired.el
(image-dired--on-file-in-dired-buffer): Move call to
'image-dired-thumb-update-marks' from here...
(image-dired--do-mark-command): ...to here. Add new optional
argument UPDATE to control calling it. Update callers.
(image-dired-mouse-toggle-mark-1): Fix performance bug by setting
above new optional argument to nil. (Bug#53599)
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Make image-dired-toggle-mark-thumb-original-file obsolete
* lisp/image/image-dired.el
(image-dired-toggle-mark-thumb-original-file): Make obsolete.
(image-dired-mouse-toggle-mark-1): Don't use above obsolete
function.
2022-09-15 Mattias Engdegård <mattiase@acm.org>
Include nil as valid wallpaper-commmand
* lisp/image/wallpaper.el (wallpaper-command):
Include nil in the type since that is a valid value for the variable,
and may be the default value. This should fix test-custom-opts.
2022-09-15 Alan Mackenzie <acm@muc.de>
CC Mode: Handle C++20 modules
* lisp/progmodes/cc-engine.el (c-before-after-change-check-c++-modules): New
function.
(c-forward-<>-arglist): Add special handling for "import <...>".
* lisp/progmodes/cc-fonts.el (c-preprocessor-face-name): Add extra "fallback"
face after font-lock-reference-face, namely font-lock-constant-face.
(c-cpp-matchers): Don't fontify the <> delimiters for XEmacs in #include <..>.
(c-basic-matchers-before): Add c-font-lock-c++-modules to the C++ value.
(c-forward-c++-module-name, c-forward-c++-module-partition-name)
(c-font-lock-c++-modules): New functions.
* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions)
(c-before-font-lock-functions): Include
c-before-after-change-check-c++-modules in the C++ value of these variables.
(c-module-name-re): New c-lang-const/var.
(c-other-decl-kwds): Add a C++ value "export".
(c-<>-sexp-kwds): Add a new component c-import-<>-kwds.
(c-import-<>-kwds, c-module-kwds): New c-lang-consts.
(c-module-key): New c-lang-const/var.
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Document MS-Windows support in wallpaper.el
* lisp/image/wallpaper.el: Add MS-Windows to Commentary.
(wallpaper-command, wallpaper-command-args, wallpaper-set):
Document MS-Windows support.
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Improve error when wallpaper-command is nil
* lisp/image/wallpaper.el (wallpaper-set): Improve the error message
when 'wallpaper-command' is nil.
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Support macOS in wallpaper.el
* lisp/image/wallpaper.el (wallpaper--default-commands)
(wallpaper-command): Support macOS using "osascript".
(wallpaper-set): Display image name when wallpaper-debug is t.
2022-09-15 Juri Linkov <juri@linkov.net>
Fix outline image icon display (bug#57813)
* lisp/outline.el (outline--make-button-overlay): Don't overwrite
image display with string display when image exists.
(outline--fix-up-all-buttons): Optimize.
2022-09-15 Eli Zaretskii <eliz@gnu.org>
Implement support for 'wallpaper-set' on MS-Windows
* src/w32fns.c (Fw32_set_wallpaper): New primitive.
(syms_of_w32fns): Defsubr it.
(globals_of_w32fns): Attempt to load SystemParametersInfoW from
its DLL at run time.
* lisp/image/wallpaper.el (wallpaper-set): Support MS-Windows by
calling 'w32-set-wallpaper'.
* etc/NEWS: Update and simplify wording of the 'wallpaper-set'
entry.
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Add rudimentary font-locking to edit-abbrevs-mode
* lisp/abbrev.el (abbrev-table-name): New face.
(edit-abbrevs-mode-font-lock-keywords): New defvar.
(edit-abbrevs-mode): Support font-locking.
2022-09-15 Mattias Engdegård <mattiase@acm.org>
Use `eql` or `eq` instead of `=` in some places
For a switch op to be generated, comparisons must be made using `eq`,
`eql` or `equal`, not `=`.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
* lisp/files.el (file-modes-char-to-who, file-modes-char-to-right):
* lisp/international/titdic-cnv.el (tit-process-header):
* lisp/language/ethio-util.el (ethio-input-special-character)
(ethio-fidel-to-tex-buffer):
* lisp/language/lao.el (consonant):
Use `eq` or `eql` instead of `=`.
In these cases either `eq` or `eql` would do and the choice does not
affect the resulting code. We compare numbers with `eql` and
characters with `eq` as a matter of style.
2022-09-15 Mattias Engdegård <mattiase@acm.org>
Simplify and shrink reader buffers
A big on-stack buffer in a potentially long-running function can
interact badly with the GC's conservative scanning of the C stack.
It may make the scanning slower (since the stack frame is big) and
risks accidental retention of objects from stack detritus
(because the buffer isn't cleaned on entry).
* src/lread.c (stackbufsize): Remove.
(read_integer, read_string_literal, read_bool_vector): Use a local
buffer instead of piggy-backing on that in read0.
(read0): Reduce buffer to something suitable for most identifiers and
numbers.
2022-09-15 Mattias Engdegård <mattiase@acm.org>
mapconcat fast path with `identity` function argument
This makes (mapconcat #'identity SEQ) slightly faster than
(apply #'concat SEQ), which used to be much faster.
Notably, `string-join` benefits from this change as it uses mapconcat.
* src/fns.c (Fmapconcat): Speed up execution when the function
argument is `identity`.
2022-09-15 Po Lu <luangruo@yahoo.com>
More fixes for XDND proxy support
* src/xterm.c (handle_one_xevent): Check replies against
toplevel, not proxy.
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Use substitute-command-keys in proced-help
* lisp/proced.el (proced-help-string, proced-help): Use
substitute-command-keys.
2022-09-15 Eli Zaretskii <eliz@gnu.org>
Revert "; Fix doc string of 'loaddefs-generate'"
This reverts commit 5fe9a1a85ae6d54196031157a735352f6ab655ff.
It included unrelated changes.
2022-09-15 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
5543aea1b2 Automate exporting etc/NEWS to HTML
23a91163ed * Makefile.in (uninstall): Remove the *.eln files. (Bug#5...
2022-09-14 Jim Porter <jporterbugs@gmail.com>
Allow using a symbol as an index into an alist in Eshell
* lisp/eshell/esh-var.el (eshell-index-value): If INDEX is a symbol,
use 'assoc' for indexing.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-assoc)
(esh-var-test/quoted-interp-var-assoc): Add checks for indexing via
symbol (bug#57787).
2022-09-14 Sean Whitton <spwhitton@spwhitton.name>
Use '^' key for detach command bindings
* lisp/tab-bar.el (tab-prefix-map): Move tear-off-window to C-x w ^ f.
Bind tab-window-detach to C-x w ^ t.
* lisp/window.el (window-prefix-map): Bind tab-detach to C-x t ^ f.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Add image-transform-reset-to-original to manual
* doc/emacs/files.texi (Image Mode):
Add 'image-transform-reset-to-original'.
Suggested by Juri Linkov <juri@linkov.net>.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Support fbsetbg in wallpaper.el
* lisp/image/wallpaper.el (wallpaper--default-commands)
(wallpaper-command): Add "fbsetbg".
2022-09-14 Augusto Stoffel <arstoffel@gmail.com>
pcomplete: Generate completions from --help messages
* lisp/pcomplete.el (pcomplete-from-help): New function (and hash
table) to get pcomplete candidates from help messages.
(pcomplete-here-using-help): Helper function to define pcomplete for
simple commands
(pcomplete-completions-at-point): Provide annotation-function and
company-docsig properties.
* lisp/pcmpl-git.el: New file, provides pcomplete for Git.
* lisp/pcmpl-gnu.el: Add pcomplete for awk, gpg and gdb, emacs and
emacsclient.
* lisp/pcmpl-linux.el: Add pcomplete for systemctl and journalctl.
* lisp/pcmpl-rpm.el: Add pcomplete for dnf.
* lisp/pcmpl-unix.el: Add pcomplete for sudo and most commands found
in GNU Coreutils.
* lisp/pcmpl-x.el: Add pcomplete for tex, pdftex, latex, pdflatex,
rigrep and rclone.
* test/lisp/pcomplete-tests.el (pcomplete-test-parse-gpg-help,
pcomplete-test-parse-git-help): Tests for the new functions.
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Allow specifying the color to use in image-elide
* lisp/image/image-crop.el (image-crop-elide-command): Adjust to
allow specifying the color.
(image-elide): Prompt for a color.
(image-crop--crop-image-update): Pass the color along.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Automate exporting etc/NEWS to HTML
* admin/admin.el (make-news-html-file): New function.
* .gitignore: Ignore generated "etc/NEWS*.html" file.
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Make image-crop variables into user options
* lisp/image/image-crop.el (image-crop): New group.
(image-crop-crop-command, image-crop-resize-command)
(image-crop-elide-command, image-crop-crop-command): Make into
defcustoms.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Support hsetroot in wallpaper.el
* lisp/image/wallpaper.el (wallpaper--default-commands)
(wallpaper-command): Add "hsetroot".
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Speed up Emacs build by autoloading vc-git-annotate-switches-safe-p
* lisp/vc/vc-git.el (vc-git-annotate-switches-safe-p): Put the
definition into the loaddefs file.
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix image-mode.el compilation
* lisp/image/image-crop.el (text-property-search): Require.
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Make image cropping work in image-mode buffers
* lisp/image-mode.el (image-mode): Update the buffer text after
cropping (bug#57793).
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Don't alter the buffer contents in image-crop by default
* lisp/image/image-crop.el (image-crop-buffer-text-function):
Allow modes to alter the textual representation.
(image-crop): Delete the complete image data without assuming it's
all on one line (which isn't the case in image-mode, for instance).
(image-crop--crop-image-update, image-crop--insert-image-data):
Use image-crop-buffer-text-function.
(image-crop--default-buffer-text): New default action -- don't
alter the buffer contents (bug#57793).
2022-09-14 Mattias Engdegård <mattiase@acm.org>
Raise default max-specpdl-size and max-lisp-eval-depth
Recent changes have caused bootstrapping to fail for certain
configurations, and it was likely getting close to the limits
for others. This change raises the limits to those previously
used when configured for nativecomp:
max-specpdl-size raised from 1800 to 2500
max-lisp-eval-depth raised from 800 to 1600
* src/eval.c (init_eval_once): Raise limits.
* doc/lispref/eval.texi (Eval):
* doc/lispref/variables.texi (Local Variables): Document new values.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Rename image transform commands to be less confusing
* lisp/image-mode.el
(image-transform-original): Rename from this...
(image-transform-reset-to-original): ...to this. Make old name
into an obsolete function alias and update all callers.
(image-transform-reset): Rename from this...
(image-transform-reset-to-initial): ...to this. Make old name
into an obsolete function alias and update all callers.
(Bug#51451)
* doc/emacs/files.texi (Image Mode): Update for above change.
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Remove the save-match-data from shell-command
* lisp/simple.el (shell-command): Remove save-match-data, since
we're (in many cases) altering the match data earlier in the
function anyway (bug#57795).
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix textsec-suspicious foreground color
* lisp/international/textsec-check.el (textsec-suspicious): Set
the foreground, too (bug#57796).
2022-09-14 Lars Ingebrigtsen <larsi@gnus.org>
Also use eww URL transformers in the actual links
* lisp/net/eww.el (eww-mode): Use it to transform URLs
(bug#57796).
* lisp/net/shr.el (shr-url-transformer): New variable.
(shr-tag-a): Use it.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Add new command image-mode-wallpaper-set
* lisp/image-mode.el (wallpaper): Require.
(image-mode-wallpaper-set): New command.
(image-mode-map): Bind above new command to "W".
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Add :type to wallpaper-command
* lisp/image/wallpaper.el (wallpaper-command): Make it easier to
customize by adding a :type declaration covering all supported values.
2022-09-14 Evan Klitzke <evan@eklitzke.org> (tiny change)
Add consteval and constinit keywords to cc-mode
* lisp/progmodes/cc-langs.el (c-modifier-kwds): Add consteval and
constinit keywords (introduced in C++20) (bug#51092).
2022-09-14 Eli Zaretskii <eliz@gnu.org>
* Makefile.in (uninstall): Remove the *.eln files. (Bug#57771)
2022-09-14 Basil L. Contovounesios <contovob@tcd.ie>
Fix more misleading cl-case quoting in tests
* test/lisp/dnd-tests.el (x-begin-drag):
* test/lisp/so-long-tests/so-long-tests-helpers.el
(so-long-tests-assert-active, so-long-tests-assert-reverted): Remove
misleading quoting in cl-case clauses (bug#51368).
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Make it easier to customize wallpaper command
* lisp/image/wallpaper.el
(wallpaper--default-commands): New defvar.
(wallpaper--find-command): Use above new defvar.
(wallpaper--find-command-arguments): New defun.
(wallpaper-command): Rename from 'wallpaper-commands' and change
type to string. Use 'wallpaper--find-command' to set it.
(wallpaper-command-args): New defcustom. Use
'wallpaper--find-command-arguments' to set it.
(wallpaper--set-wallpaper-command): New defun. Use as :set property
for 'wallpaper-command'.
(wallpaper-set): Use above new defcustoms to set the wallpaper.
Suggested by Eli Zaretskii <eliz@gnu.org>.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Improve wallpaper.el docs for recent changes
* lisp/image/wallpaper.el: Fix documentation to better reflect that no
external command is needed on Haiku.
* etc/NEWS: Update entry on wallpaper.el.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Allow setting wallpaper from TTY
* lisp/image/wallpaper.el (wallpaper-set): Allow setting wallpaper
when 'display-graphic-p' is nil.
(wallpaper-default-width, wallpaper-default-height):
New variables.
(wallpaper--get-height-or-width): New helper function.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
* lisp/image/wallpaper.el (wallpaper-commands): Add xwallpaper.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Support recent KDE Plasma in wallpaper.el
* lisp/image/wallpaper.el (wallpaper-commands): Support recent KDE
Plasma.
(wallpaper--check-command): New cl-defmethod.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Fix desktop environment check on Ubuntu
* lisp/image/wallpaper.el (xdg): Require.
(wallpaper--check-command): Use xdg-current-desktop instead of reading
XDG_CURRENT_DESKTOP directly. This fixes things on e.g. Ubuntu, where
XDG_CURRENT_DESKTOP might contain a string like "ubuntu:GNOME".
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Add new function xdg-current-desktop to xdg.el
* lisp/xdg.el (xdg-current-desktop): New function.
* test/lisp/xdg-tests.el (xdg-current-desktop): New test.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Improve messages in image-crop.el
* lisp/image/image-crop.el (image-crop)
(image-crop--crop-image-1): Improve messages and include the name
of the current operation.
2022-09-14 Po Lu <luangruo@yahoo.com>
Implement wallpaper.el support for Haiku
* lisp/image/wallpaper.el (haiku-set-wallpaper, wallpaper-set):
Use `haiku-set-wallpaper' on Haiku.
* lisp/term/haiku-win.el (haiku-write-node-attribute)
(haiku-send-message, haiku-set-wallpaper): New function.
* src/haiku_support.cc (be_write_node_message, be_send_message):
New functions.
* src/haiku_support.h: Update prototypes.
* src/haikuselect.c (haiku_message_to_lisp)
(haiku_lisp_to_message): Fix CSTR type handling to include NULL
byte.
(haiku_report_system_error, Fhaiku_write_node_attribute)
(Fhaiku_send_message): New functions.
(syms_of_haikuselect): Add defsubrs.
2022-09-14 Stefan Kangas <stefankangas@gmail.com>
Support wbg in wallpaper.el (Bug#57781)
* lisp/image/wallpaper.el (wallpaper-commands): Add "wbg".
(wallpaper--check-command): New cl-defmethod for "wbg".
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix recently-added cl-macs tests
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-error)
(cl-case-warning): Fix warning matches.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Make help-fns--generalized-variable more resilient
* lisp/help-fns.el (help-fns--generalized-variable): Don't bug out
when a key binding isn't a symbol.
2022-09-13 Juri Linkov <juri@linkov.net>
Prefer defvar-keymap for repeat-map in outline.el
* lisp/outline.el (outline-navigation-repeat-map)
(outline-editing-repeat-map): Prefer defvar-keymap.
2022-09-13 Paul Eggert <eggert@cs.ucla.edu>
Port alignas definition to C23
* src/lisp.h (alignas): C23 is removing the __alignas_is_defined
macro, so do not rely on it. Instead, do not define alignas if C23
or later, or if C++11 or later.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix wallpaper.el build warning
* lisp/image/wallpaper.el (require): Fix build warning.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix help--analyze-key problem when not called from menu"
This reverts commit 7e374b96635ce70f574fba351defc765e9a52da9.
This should not be needed -- perhaps it was triggered by
an ephemeral code change in my running Emacs.
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Use wallpaper-set in thumbs.el
* lisp/thumbs.el (wallpaper): Require.
(thumbs-setroot-command): Make defcustom obsolete.
(thumbs-call-setroot-command): Make obsolete in favor of
wallpaper-set.
(thumbs-set-image-at-point-to-root-window, thumbs-set-root)
(thumbs-dired-setroot): Use wallpaper-set instead of
thumbs-call-setroot-command.
(thumbs-before-setroot-hook, thumbs-after-setroot-hook): Make
obsolete.
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Add new command image-dired-set-wallpaper
* lisp/image/image-dired.el (wallpaper): Require.
(image-dired-set-wallpaper): New command.
(image-dired-thumbnail-mode-map): Bind above new command to "W".
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Add new library wallpaper.el
* lisp/image/wallpaper.el: New file.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Remove a nil cl-case case
* lisp/emacs-lisp/testcover.el (testcover-coverage-combine):
Remove the nil case, which will never match (bug#51368).
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix some misleading quoting in cl-case
* lisp/progmodes/compile.el (compilation-auto-jump):
* lisp/image/image-crop.el (image-crop--crop-image-1):
(image-crop--crop-image-1):
* lisp/image/exif.el (exif--process-value):
* lisp/image-mode.el (image-mode--next-file):
* lisp/dnd.el (dnd-begin-text-drag):
(dnd-begin-file-drag):
(dnd-begin-drag-files): Fix misleading quoting in cl-case (bug#51368).
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-09-13 Philipp Stephani <phst@google.com>
Have 'cl-case' warn about suspicious cases
* lisp/emacs-lisp/cl-macs.el (cl-case): Warn if the user passes a nil
key list (which would never match). Warn about quoted symbols that
should probably be unquoted.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-warning): New unit
test (bug#51368).
2022-09-13 Philipp Stephani <phst@google.com>
Signal an error if a fallback cl-case is misplaced
* lisp/emacs-lisp/cl-macs.el (cl-case): Warn if the user passes a nil
key list (which would never match). Warn about quoted symbols that
should probably be unquoted.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-case-warning): New unit
test (bug#51368).
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Move imagep in image.c from the debugging section
* lisp/simple.el (imagep): Remove.
* src/image.c (Fimagep): Always define.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix help--analyze-key problem when not called from menu
* lisp/help.el (help--analyze-key): Don't bug out when not called
from the menu.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Add new commands 'image-crop' and 'image-elide'
* doc/lispref/display.texi (Showing Images): Document it.
* lisp/image.el (image-map): Bind commands.
* lisp/image/image-crop.el: New file (bug#51331).
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Add new function imagep
* lisp/simple.el (imagep): New function.
2022-09-13 Gerd Möllmann <gerd@gnu.org>
Fix whitespace-tests on macOS
* test/lisp/whitespace-tests.el (whitespace-tests--empty-bob):
(whitespace-tests--empty-eob): Use C-a/C-e instead of
<home>/<end> (bug#57763).
2022-09-13 Stefan Monnier <monnier@iro.umontreal.ca>
comp-tests.el: Enable compilation again
Rather than disable byte-compilation to circumvent bug#51104,
change the ELisp code so that `most-positive/negative-fixnum` does
not end up hardcoded in the `.elc` file.
* test/src/comp-tests.el (comp-tests-define-type-spec-test):
Don't quote the type expressions.
(comp-tests-type-spec-tests): Quote them here instead.
2022-09-13 Eli Zaretskii <eliz@gnu.org>
Fix last change in image.c
* src/image.c (svg_load_image): Don't call Lisp to remove trailing
whitespace from librsvg error messages, do it in C instead; this
reduces consing and is much cleaner. Don't display empty error
reason if librsvg happens to return an empty message text.
(syms_of_image): Don't DEFSYM string-trim-right. (Bug#57755)
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in several cases
* lisp/calc/calc-embed.el (calc-override-minor-modes-map):
* lisp/calc/calc-yank.el (calc-edit-mode-map):
* lisp/calc/calc.el (calc-trail-mode-map):
* lisp/cedet/semantic/mru-bookmark.el (semantic-mru-bookmark-mode-map):
* lisp/cedet/semantic/util-modes.el (semantic-highlight-edits-mode-map)
(semantic-show-unmatched-syntax-mode-map)
(semantic-show-parser-state-mode-map)
(semantic-stickyfunc-mode-map, semantic-highlight-func-mode-map):
* lisp/cedet/srecode/srt-mode.el (srecode-template-mode-map):
* lisp/gnus/gnus-art.el (gnus-prev-page-map, gnus-next-page-map):
* lisp/gnus/gnus-search.el (gnus-search-minibuffer-map):
* lisp/gnus/score-mode.el (gnus-score-mode-map):
* lisp/gnus/smime.el (smime-mode-map):
* lisp/indent.el (edit-tab-stops-map):
* lisp/isearch.el (minibuffer-local-isearch-map):
* lisp/printing.el (pr-interface-map):
* lisp/progmodes/prog-mode.el (prog-mode-map):
* lisp/progmodes/subword.el (subword-mode-map):
* lisp/reveal.el (reveal-mode-map):
* lisp/strokes.el (strokes-mode-map):
* lisp/textmodes/flyspell.el (flyspell-mouse-map):
* lisp/textmodes/less-css-mode.el (less-css-mode-map):
* lisp/textmodes/remember.el (remember-mode-map)
(remember-notes-mode-map):
* lisp/wid-browse.el (widget-browse-mode-map):
* lisp/wid-edit.el (widget-key-sequence-map): Prefer defvar-keymap in
some easy-to-convert cases.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Enable undo in eww buffers
* lisp/net/eww.el (eww-render): Enable undo after rendering. This
allows using `undo' in text input boxes.
(eww-setup-buffer): Disable undo before rendering (bug#57750).
* lisp/net/shr.el (shr-image-fetched): Inhibit undo tracking.
2022-09-13 Lars Ingebrigtsen <larsi@gnus.org>
Indirect Buffers manual improvement
* doc/emacs/buffers.texi (Indirect Buffers): There's no point in
mentioning both clone-indirect-buffer and
clone-indirect-buffer-other-window here since they do the pretty
much the same (bug#57753).
2022-09-13 dickmao <dick.r.chiang@gmail.com>
Avoid double svg error reporting and segfaults
* src/image.c (svg_load_image): Use g_error_free directly instead
of the helder g_clear_error (since we're only calling it with
non-nil values).
(svg_load_image): Avoid segfault and double reporting errors.
* test/manual/image-tests.el (image-tests-load-image/svg-too-big)
(image-tests-load-image/svg-invalid): Test it (bug#57755).
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in pixel-scroll-precision-mode-map
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Prefer
defvar-keymap.
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in tab-line.el
* lisp/tab-line.el (tab-line-tab-map, tab-line-add-map)
(tab-line-tab-close-map, tab-line-left-map, tab-line-right-map):
Prefer defvar-keymap.
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in lisp/epa*.el
* lisp/epa-ks.el (epa-ks-search-mode-map):
* lisp/epa.el (epa-key-list-mode-map, epa-key-mode-map): Prefer
defvar-keymap.
2022-09-13 Po Lu <luangruo@yahoo.com>
Fix frames with explicit parent being unmapped after parent shuts down
* src/xterm.c (handle_one_xevent): Delete leftover _XEMBED_INFO
property after parent shuts down.
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
86f0601392 ; * admin/notes/www: Fix typos.
2cdb9d03fd ; * admin/make-tarball.txt: Minor clarifications.
2022-09-13 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
739b5d0e52 Update HISTORY for Emacs 28.2
2022-09-12 Stefan Kangas <stefankangas@gmail.com>
* Version 28.2 released.
2022-09-12 Paul Eggert <eggert@cs.ucla.edu>
Fix comp-tests.el problem after reconfiguring
* test/src/comp-tests.el: Do not byte-compile, as the .elc
file would be machine-dependent (bug#51104).
2022-09-12 Juri Linkov <juri@linkov.net>
Document the recently added branch commands (bug#50344)
* doc/emacs/maintaining.texi (VC Directory Commands): Change the
prefix key from "B" to "b". Replace vc-create-tag with vc-create-branch,
and vc-retrieve-tag with vc-switch-branch.
(Switching Branches): Mention vc-switch-branch bound to 'C-x v b s'.
(Creating Branches): Mention vc-create-branch bound to 'C-x v b c'.
* lisp/vc/vc-dir.el (vc-dir-mode-map): In branch keymap 'b' rebind
"c" from vc-create-tag to vc-create-branch, and "s" from
vc-retrieve-tag to vc-switch-branch.
2022-09-12 Juri Linkov <juri@linkov.net>
* lisp/vc/vc.el (vc-print-branch-log): Fix interactive spec.
For reading vc-read-revision in the interactive spec use the same 'backend'
and 'rootdir' as in the body of the same function.
2022-09-12 Juri Linkov <juri@linkov.net>
'C-x v b' prefix key is used for branch commands to create/switch/print branch
* lisp/vc/vc.el (vc-create-branch): New command.
(vc-retrieve-tag): Add new optional arg 'branchp'.
(vc-switch-branch): New command (bug#50344).
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind "b c" to vc-create-branch,
"b l" to vc-print-branch-log, "b s" to vc-switch-branch. Remove obsolete
and suppressed "b" from vc-switch-backend.
* lisp/vc/vc-dir.el (vc-dir-mode-map): Rebind 'branch-map' from "B" to "b"
for consistency with 'vc-prefix-map'.
* lisp/vc/vc-git.el (vc-git-create-tag): For a new branch read
its start-point. Ask a confirmation if modified files exist.
2022-09-12 Sean Whitton <spwhitton@spwhitton.name>
Add new C-x w prefix map
* window.el (window-prefix-map): New map.
(ctl-x-map): Unbind split-root-window-below and
split-root-window-right. Bind window-prefix-map to C-x w.
2022-09-12 Stefan Kangas <stefankangas@gmail.com>
Skip manual GIF metadata test on MS-Windows
* test/manual/image-tests.el
(image-skip-unless): Add new arg CONDITION.
(image-tests-image-metadata/gif): Skip test on MS-Windows when
using native image API. (Bug#57691)
2022-09-12 Lars Ingebrigtsen <larsi@gnus.org>
Don't overwrite error message in `x' in package.el
* lisp/emacs-lisp/package.el (package-menu--perform-transaction):
Return whether there were errors.
(package-menu-execute): Don't overwrite the error message(s) with
a success message (bug#51201).
2022-09-12 Lars Ingebrigtsen <larsi@gnus.org>
Remove some XEmacs references in speedbar.el
* lisp/speedbar.el (speedbar-toggle-etags): Remove some references
to etags support being XEmacs specific (bug#51102).
2022-09-12 Lars Ingebrigtsen <larsi@gnus.org>
Document :vert-only tool bar property
* doc/lispref/keymaps.texi (Tool Bar): Document what :vert-only
does (bug#51049). This is not what it was intended to do -- but
what it intended to do didn't really make that much sense either,
so perhaps the prop should just be renamed :image-only?
2022-09-12 Arthur Miller <arthur.miller@live.com>
Remove edebug props in edebug-remove-instrumentation
* lisp/emacs-lisp/edebug.el (edebug--strip-plist): New function
(bug#51026).
(edebug-remove-instrumentation): Use it to remove pros added while
running edebug.
2022-09-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix length issues in gnus-cloud-make-chunk
* lisp/gnus/gnus-cloud.el (gnus-cloud-make-chunk): Make buffer
unibyte (bug#50988).
2022-09-12 Arash Esbati <arash@gnu.org>
Consider key=val labels when renumbering
* lisp/textmodes/reftex-global.el (reftex-translate): Recognize
key=val labels given in the optional or mandatory argument of
environments (AUCTeX bug#57720).
* test/lisp/textmodes/reftex-tests.el
(reftex-renumber-simple-labels): New Test.
2022-09-12 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp test
* lisp/net/tramp-compat.el (tramp-compat-rx):
Add `tramp-autoload' function property.
2022-09-12 Po Lu <luangruo@yahoo.com>
Fix focus restoration upon x_mouse_leave again
* src/xterm.c (x_mouse_leave): Call xi_handle_focus_change after
changing the implicit focus.
2022-09-11 Stefan Kangas <stefankangas@gmail.com>
Update HISTORY for Emacs 28.2
* etc/HISTORY: Update for the Emacs 28.2 release.
2022-09-11 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/xref.el: Bump the version.
2022-09-11 Kévin Le Gouguec <kevin.legouguec@gmail.com>
Restrict replace-*-in-region to the bounds defined by caller
* lisp/subr.el (replace-string-in-region, replace-regexp-in-region):
Narrow to region before iterating over matches, instead of giving a
bound to the search functions.
* test/lisp/subr-tests.el (test-replace-string-in-region): Add
regression tests (bug#57733).
2022-09-11 Michael Albinus <michael.albinus@gmx.de>
Disable Tramp cache for relative file names
* lisp/net/tramp.el (tramp-file-name-unify):
Return `tramp-cache-undefined' if LOCALNAME is a relative file name.
* lisp/net/tramp-cache.el (tramp-get-file-property)
(tramp-set-file-property, tramp-file-property-p)
(tramp-flush-file-property, tramp-flush-file-upper-properties)
(tramp-flush-file-properties): Handle KEY being
`tramp-cache-undefined'.
(tramp-flush-file-function): Revert last change.
2022-09-11 Richard Hansen <rhansen@rhansen.org>
whitespace: Redo BoB/EoB empty line highlighting
* lisp/whitespace.el (whitespace--empty-at-bob-matcher,
whitespace--empty-at-eob-matcher, whitespace--update-bob-eob,
whitespace-color-off, whitespace-color-on,
whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp,
whitespace-looking-back, whitespace-post-command-hook): Redo the
`empty' line highlighting logic to ensure that a buffer change causes
all affected `empty' lines to become (un)highlighted (bug#37467).
Also, for improved UX, don't highlight BoB empty lines at or below
point (not just when point is at 1), or EoB empty lines at or above
point (not just when point is `eobp').
(whitespace-bob-marker, whitespace-eob-marker): Clarify documentation.
* test/lisp/whitespace-tests.el (whitespace--with-test-buffer,
whitespace--fu, whitespace-tests--empty-bob,
whitespace-tests--empty-eob): Add tests.
2022-09-11 Richard Hansen <rhansen@rhansen.org>
whitespace: Include empty final line in BoB empty match
* lisp/whitespace.el (whitespace-empty-at-bob-regexp): Include any
last line trailing whitespace in the BoB empty line match to ensure
that those characters get highlighted.
2022-09-11 Richard Hansen <rhansen@rhansen.org>
whitespace: Reset `whitespace-buffer-changed' when refontifying
* lisp/whitespace.el (whitespace-post-command-hook): Add missing reset
of `whitespace-buffer-changed' back to nil between commands.
2022-09-11 Richard Hansen <rhansen@rhansen.org>
ert-x: New `ert-with-test-buffer-selected' convenience macro
* lisp/emacs-lisp/ert-x.el (ert-with-test-buffer-selected): New
convenience macro that extends `ert-with-test-buffer' by displaying
the test buffer in a temporary selected window. This makes it easier
to simulate user input in the body via `execute-kbd-macro'.
* test/lisp/emacs-lisp/ert-x-tests.el
(ert-test-test-buffer-selected/*): Add tests.
2022-09-11 Philip Kaludercic <philipk@posteo.net>
Revert "Add new command 'toggle-theme'"
This reverts commit f31b9d86a67f1b3fd70339f277dff52478890351.
2022-09-11 Philip Kaludercic <philipk@posteo.net>
Revert "Add new user option 'custom-ensure-single-theme'"
This reverts commit b4dbf7184cd68ecd8d1a27fbc1407be0eae7e64c.
2022-09-11 Philip Kaludercic <philipk@posteo.net>
Add new user option 'custom-ensure-single-theme'
* etc/NEWS: Mention it.
* lisp/custom.el (custom-ensure-single-active-theme): Add it.
(load-theme): Use it.
2022-09-11 Philip Kaludercic <philipk@posteo.net>
Add new command 'toggle-theme'
* doc/emacs/custom.texi (Custom Themes): Mention it.
* etc/themes/leuven-dark-theme.el (leuven-dark): Add dual theme.
* etc/themes/leuven-theme.el (leuven): Add dual theme.
* etc/themes/tango-dark-theme.el (tango-dark): Add dual theme.
* etc/themes/tango-theme.el (tango): Add dual theme.
* etc/themes/tsdh-dark-theme.el (tsdh-dark): Add dual theme.
* etc/themes/tsdh-light-theme.el (tsdh-light): Add dual theme.
* lisp/cus-theme.el (describe-theme-1): Say if a theme has a dual.
* lisp/custom.el (toggle-theme): Add new command.
2022-09-11 Miha Rihtaršič <miha@kamnitnik.top>
Improve some shell highlight doc strings
* lisp/shell.el (shell-highlight-undef-mode-restart): Rename function.
* lisp/shell.el (shell-comint-fl-enable):
(shell--highlight-undef-indirect)
* lisp/ielm.el (ielm-comint-fl-enable):
* lisp/comint.el: (comint--fl-fontify-region): Improve doc strings.
2022-09-11 Po Lu <luangruo@yahoo.com>
Make it easier to clear the Motif drag window for debugging
* src/xterm.c (xm_get_drag_window_1): Add comment explaining
side effect of x_special_window_exists_p.
(handle_one_xevent): Clear Motif drag window upon DestroyNotify.
In addition to debugging, it also reduces syncs necessary to
communicate via the Motif protocol after a defective/old client
sets the drag window without setting the disconnect mode.
2022-09-11 Juri Linkov <juri@linkov.net>
* lisp/vc/vc.el (vc-diff-patch-string): Fix arg in revert-buffer-function.
2022-09-11 Sean Whitton <spwhitton@spwhitton.name>
* lisp/vc/vc.el (vc-deduce-backend): Handle eshell-mode.
2022-09-10 John Wiegley <johnw@newartisans.com>
Merge pull request from sdwolfz/native-compiler-warning
GitHub-reference: https://github.com/jwiegley/use-package/issues/998
2022-09-10 Codruț Constantin Gușoi <mail+git@codrut.pro>
Fix emacs native compilation warning for bind-key
To reproduce, have emacs built with native compilation and notice the
compilation logs. You can then open the offending file and run `M-x
emacs-lisp-native-compile-and-load` before and after the changes to see
the warning is removed.
```
■ Warning (comp): bind-key.el:150:2: Warning: docstring has wrong
usage of unescaped single quotes (use \= or different quoting)
```
2022-09-10 ookami <mail@ookami.one> (tiny change)
Fix project-remember-projects-under when recursing
* lisp/progmodes/project.el (project-remember-projects-under):
Actually recurse into directories (bug#57714).
2022-09-10 Michael Albinus <michael.albinus@gmx.de>
Ensure, that Tramp cache works over absolute file names
* lisp/net/tramp.el (tramp-skeleton-directory-files)
(tramp-skeleton-directory-files-and-attributes)
(tramp-skeleton-set-file-modes-times-uid-gid)
(tramp-handle-add-name-to-file, tramp-handle-file-exists-p)
(tramp-handle-file-readable-p, tramp-handle-file-writable-p):
* lisp/net/tramp-adb.el (tramp-adb-handle-file-executable-p)
(tramp-adb-handle-file-exists-p)
(tramp-adb-handle-file-readable-p)
(tramp-adb-handle-file-writable-p)
* lisp/net/tramp-gvfs.el (tramp-gvfs-info, tramp-gvfs-handle-delete-file)
(tramp-gvfs-get-directory-attributes)
(tramp-gvfs-get-root-attributes)
(tramp-gvfs-handle-file-executable-p):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
(tramp-sh-handle-file-exists-p)
(tramp-sh-handle-set-visited-file-modtime)
(tramp-sh-handle-file-selinux-context)
(tramp-sh-handle-set-file-selinux-context)
(tramp-sh-handle-file-acl, tramp-sh-handle-file-executable-p)
(tramp-sh-handle-file-readable-p)
(tramp-sh-handle-file-directory-p)
(tramp-sh-handle-file-writable-p)
(tramp-sh-handle-file-ownership-preserved-p)
(tramp-sh-handle-add-name-to-file)
(tramp-sh-handle-copy-directory, tramp-sh-handle-delete-file)
(tramp-sh-handle-dired-compress-file):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-add-name-to-file)
(tramp-sudoedit-handle-delete-file)
(tramp-sudoedit-handle-file-acl)
(tramp-sudoedit-handle-file-executable-p)
(tramp-sudoedit-handle-file-exists-p)
(tramp-sudoedit-handle-file-readable-p)
(tramp-sudoedit-handle-file-selinux-context)
(tramp-sudoedit-handle-file-writable-p)
(tramp-sudoedit-handle-make-symbolic-link)
(tramp-sudoedit-handle-set-file-selinux-context):
Use `expand-file-name'. (Bug#57572)
* lisp/net/tramp-cache.el (tramp-flush-file-function):
Expand `buffer-file-name'. (Bug#57676)
* lisp/net/tramp.el (tramp-file-name-unify): Extend error message.
* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
Do not check remoteness of TARGET anymore.
2022-09-10 Po Lu <luangruo@yahoo.com>
Fix compliance with the XDND specification when dropping on a proxy
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave, x_dnd_send_drop, x_dnd_do_drop): New
parameter `toplevel'. Use it as the window in sent client
messages.
(x_dnd_cancel_dnd_early, x_dnd_cleanup_drag_and_drop)
(x_dnd_process_quit, x_dnd_update_state, handle_one_xevent)
(x_connection_closed): Give the right toplevel to the client
message sending functions.
2022-09-10 Paul Eggert <eggert@cs.ucla.edu>
Make wdired match dired with symlink permissions
* lisp/wdired.el (wdired-do-perm-changes): Do not follow symlinks,
to be consistent with plain dired (bug#50189).
2022-09-10 Lars Ingebrigtsen <larsi@gnus.org>
Make `format-prompt' use `substitute-command-keys'
* doc/lispref/minibuf.texi (Text from Minibuffer): Mention it.
* lisp/minibuffer.el (format-prompt): Run through
`substitute-command-keys' (bug#51040).
2022-09-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix diff-mode.el compilation warnings
* lisp/vc/diff-mode.el (diff-auto-refine-mode): Suppress
byte-compile warnings.
2022-09-10 Stefan Kangas <stefan@marxist.se>
New function substitute-quotes
* lisp/help.el (substitute-quotes): New function. (Bug#51040)
* doc/lispref/help.texi (Keys in Documentation): Document
substitute-quotes.
* test/lisp/help-tests.el (help-tests-substitute-quotes): New test.
* lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
* lisp/cus-theme.el (describe-theme-1):
* lisp/emacs-lisp/cl-extra.el (cl--describe-class):
* lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor):
* lisp/emacs-lisp/package.el (describe-package-1):
* lisp/help-fns.el (help-fns--parent-mode, help-fns--var-risky)
(help-fns--var-file-local, help-fns--var-bufferlocal)
(describe-face):
* lisp/help.el (substitute-command-keys):
* lisp/progmodes/octave.el (octave-help): Use the new function
instead of 'substitute-command-keys'.
2022-09-10 Stefan Kangas <stefan@marxist.se>
Doc fixes for 'text-quoting-style'
* doc/lispref/help.texi (Keys in Documentation): Remove duplicate
entry for 'text-quoting-style'. Document the function with the same
name instead.
* src/doc.c (Ftext_quoting_style): Doc fix: clarify the return values.
(syms_of_doc) <Vtext_quoting_style>: Doc fix: clarify that you should
not read the value of this variable directly; use Ftext_quoting_style
instead (bug#51040).
2022-09-10 Lars Ingebrigtsen <larsi@gnus.org>
Make a flymake.texi code example more resilient
* doc/misc/flymake.texi (An annotated example backend): Make the
example code resilient wrt. narrowed buffers (bug#51437).
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
* src/w32image.c (w32_can_use_native_image_api): Fix comment.
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
Support outline-minor-mode in emacs-authors-mode
* lisp/textmodes/emacs-authors-mode.el (emacs-authors-mode):
Support and enable outline-minor-mode.
2022-09-09 Po Lu <luangruo@yahoo.com>
Fix several printfs for 32 bit systems
* lib-src/emacsclient.c (main): Use right length modifier when
printing uintmax_t.
* src/alloc.c (check_pure_size): Use right length modifier when
printing ptrdiff_t.
2022-09-09 John Wiegley <johnw@newartisans.com>
Merge pull request from CeleritasCelery/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/743
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
* lisp/subr.el (string-split): New alias for split-string.
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
Set vc-git-annotate-switches to "-w" in .dir-locals.el
* .dir-locals.el: Set vc-git-annotate-switches to "-w".
Ref: https://lists.gnu.org/r/emacs-devel/2022-09/msg00453.html
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
Accept "-w" as safe value for vc-git-annotate-switches
* lisp/vc/vc-git.el
(vc-git-annotate-switches-safe-p): New predicate function.
(vc-git-annotate-switches): Use above new predicate function to
check if it's :safe.
2022-09-09 Theodor Thornhill <theo@thornhill.no>
Prefer documentchanges to changes in server-initiated edits
Some servers return both.
PR: https://github.com/joaotavora/eglot/issues/949
* eglot.el (eglot--apply-workspace-edit): When both documentChanges
and changes are present, prefer the documentChanges. By doing that we
ensure that we don't double edit, rendering the document in an
unusable state.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/704
2022-09-09 jgart <47760695+jgarte@users.noreply.github.com> (tiny change)
Add support for jedi-language-server (again)
* eglot.el (eglot-server-programs): Add jedi-language-server
* README.md: Mention jedi-language-server
* NEWS.md: Mention jedi-language-server
GitHub-reference: close https://github.com/joaotavora/eglot/issues/961
2022-09-09 Paul Eggert <eggert@cs.ucla.edu>
Fix problem with Glib 2.73.2+ and SIGCHLD handler
This code fix is by Stefan Monnier (Bug#57699).
* src/process.c (init_process_emacs) [HAVE_GLIB && !WINDOWSNT]:
Adjust to Glib 2.73.2 behavior change on Linux kernel 5.3+.
2022-09-09 John Wiegley <johnw@newartisans.com>
Merge pull request from sdwolfz/native-compiler-warning
GitHub-reference: https://github.com/jwiegley/use-package/issues/997
2022-09-09 Miha Rihtaršič <miha@kamnitnik.top>
Input indentation for M-x shell
* lisp/comint.el
(comint-indent-input-line):
(comint-indent-input-line-default):
(comint-indent-input-region):
(comint-indent-input-region-default): New functions that implement a
general mechanism for input indentation through an indirect buffer in
comint derived major modes.
* lisp/shell.el (shell-mode): Set up input indentation according to
sh-mode (bug#51940).
2022-09-09 Miha Rihtaršič <miha@kamnitnik.top>
Highlight non-existent commands in M-x shell
* lisp/shell.el (shell-mode): Enable highlighting of non-existent
commands if requested.
(shell-highlight-undef-aliases):
(shell-highlight-undef-remote-file-name-inhibit-cache): New user
options.
(shell-highlight-undef-mode): New minor mode.
(shell-highlight-undef-defined-face):
(shell-highlight-undef-undefined-face):
(shell-highlight-undef-alias-face): New faces.
(shell-highlight-undef--exec-cache):
(shell-highlight-undef--face):
(shell-highlight-undef-keywords):
(shell-highlight-undef-regexp):
(shell-highlight-undef--executable-find):
(shell-highlight-undef-matcher):
(shell-highlight-undef--indirect):
(shell-highlight--setup):
(shell-highlight-undef-reset-mode): New functions and buffer local
variables (bug#51940).
2022-09-09 Miha Rihtaršič <miha@kamnitnik.top>
Input fontification for M-x ielm
* lisp/ielm.el (ielm-comint-fl-enable): New user option to control
input fontification.
(ielm-indirect-setup-hook): New hook.
(inferior-emacs-lisp-mode): Set up and enable input fontification.
2022-09-09 Miha Rihtaršič <miha@kamnitnik.top>
Input fontification for M-x shell
* lisp/comint.el
(comint-indent-input-line):
(comint-indent-input-line-default):
(comint-indent-input-region):
(comint-indent-input-region-default): New functions that implement a
general mechanism for input indentation through an indirect buffer in
comint derived major modes.
* lisp/shell.el (shell-mode): Set up input indentation according to
sh-mode (bug#51940).
* lisp/comint.el
(comint-indent-input-line):
(comint-indent-input-line-default):
(comint-indent-input-region):
(comint-indent-input-region-default): New functions that implement a
general mechanism for input indentation through an indirect buffer in
comint derived major modes.
* lisp/shell.el (shell-mode): Set up input indentation according to
sh-mode (bug#51940).
2022-09-09 Miha Rihtaršič <miha@kamnitnik.top>
Implement a general input fontification mechanism for comint modes
* lisp/comint.el
(comint-indent-input-line):
(comint-indent-input-line-default):
(comint-indent-input-region):
(comint-indent-input-region-default): New functions that implement a
general mechanism for input indentation through an indirect buffer in
comint derived major modes.
* lisp/shell.el (shell-mode): Set up input indentation according to
sh-mode (bug#51940).
2022-09-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix "warn-lambda-malformed-interactive-spec.el" even more
* test/lisp/emacs-lisp/bytecomp-tests.el
("warn-lambda-malformed-interactive-spec.el"): Adjust test further.
2022-09-09 Lars Ingebrigtsen <larsi@gnus.org>
Don't bind `s' in the normal backtrace map
* lisp/emacs-lisp/backtrace.el (backtrace-mode-map): Don't bind
the "s" command, because it's meaningless outside modes that have
set the backtrace-goto-source-functions variable (and only edebug
does that) (bug#57674).
* lisp/emacs-lisp/edebug.el (edebug-pop-to-backtrace): Use it.
(edebug-backtrace-mode-map, edebug-backtrace-mode): New mode.
2022-09-09 Lars Ingebrigtsen <larsi@gnus.org>
Update a bytecomp test
* test/lisp/emacs-lisp/bytecomp-tests.el
("warn-lambda-malformed-interactive-spec.el"): Update test to code
change.
2022-09-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in byte-compile-lambda warning
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Fix typo in
message (bug#57690).
2022-09-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix --without-x compilation warnings
* lisp/image/image-dired.el (clear-image-cache):
* lisp/image/image-dired-external.el (clear-image-cache): Fix
compilation warning (bug#57695).
2022-09-09 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix tramp-loaddefs compilation"
This reverts commit 43e9c8e9d28dcb659a43e58778e2745d1279051f.
The cookie seemed to go to lisp/loaddefs.el for a reason, but a bootstrap is needed.
2022-09-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix tramp-loaddefs compilation
* lisp/net/tramp-compat.el: Fix build by putting tramp-compat-rx
in the right loaddefs file.
2022-09-09 Michael Albinus <michael.albinus@gmx.de>
Make use of rx in Tramp backward compatoble
* lisp/net/tramp-compat.el (tramp-compat-rx--runtime-params): New defvar.
(tramp-compat-rx--transform-items)
(tramp-compat-rx--transform-item, tramp-compat-rx--transform):
New defuns. Suggested by Mattias Engdegård <mattiase@acm.org>.
(tramp-compat-rx): New defalias or defmacro.
(tramp-compat-string-replace, tramp-compat-string-search):
Use regexp-quote.
* lisp/net/tramp.el:
* lisp/net/tramp-adb.el:
* lisp/net/tramp-archive.el:
* lisp/net/tramp-cmds.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-fuse.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-sudoedit.el: Use `tramp-compat-rx' where indicated.
* test/lisp/net/tramp-archive-tests.el:
* test/lisp/net/tramp-tests.el: Use `tramp-compat-rx' where indicated.
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
Fix SVG loading test for old librsvg 2.40.1
* test/manual/image-tests.el (image-tests-load-image/svg-invalid): Fix
test for old librsvg 2.40.1. (Bug#57691)
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
Don't warn about some deleted variables in rst.el
* lisp/textmodes/rst.el (rst-level-face-max)
(rst-level-face-base-color, rst-level-face-base-light)
(rst-level-face-format-light, rst-level-face-step-light)
(rst-level-1-face, rst-level-2-face, rst-level-3-face)
(rst-level-4-face, rst-level-5-face, rst-level-6-face): Don't issue
obsoletion warnings for variables deleted in 24.3.
2022-09-09 Stefan Kangas <stefan@marxist.se>
Delete variable window-system-version obsolete since 24.3
* lisp/frame.el (window-system-version): Delete variable.
* src/dispnew.c (syms_of_display) <Vwindow_system_version>:
Delete DEFVAR, obsolete since 24.3.
(init_display_interactive, syms_of_display_for_pdumper):
* src/msdos.c (internal_terminal_init):
* src/nsterm.m (ns_term_init):
* src/pgtkfns.c (pgtk_display_info_for_name):
* src/w32fns.c (w32_display_info_for_name, Fx_open_connection):
* src/xfns.c (x_display_info_for_name, Fx_open_connection): Don't
set above deleted variable.
* admin/admin.el (set-version): Don't update above deleted
variable in msdos.c.
* lisp/textmodes/artist.el (artist-submit-bug-report): Don't use
above deleted variable.
2022-09-09 Stefan Kangas <stefan@marxist.se>
Delete many items obsolete since 24.3
* lisp/allout.el (allout-exposure-change-hook)
(allout-structure-added-hook, allout-structure-deleted-hook)
(allout-structure-shifted-hook):
* lisp/arc-mode.el (archive-extract-hooks):
* lisp/buff-menu.el (Buffer-menu-buffer+size-width):
* lisp/calendar/timeclock.el (timeclock-modeline-display)
(timeclock-modeline-display, timeclock-update-modeline):
* lisp/cedet/semantic/db-el.el
(semanticdb-elisp-sym-function-arglist):
* lisp/cedet/semantic/db-file.el (semanticdb-save-database-hooks):
* lisp/cedet/semantic/edit.el (semantic-change-hooks)
(semantic-edits-new-change-hooks)
(semantic-edits-delete-change-hooks)
(semantic-edits-reparse-change-hooks):
* lisp/cedet/semantic/lex.el (semantic-lex-reset-hooks):
* lisp/comint.el (comint--unquote&expand-filename)
(comint-unquote-filename):
* lisp/custom.el (user-variable-p):
* lisp/dired.el (dired-shrink-to-fit, dired-pop-to-buffer)
(dired-sort-set-modeline):
* lisp/ebuff-menu.el (Electric-buffer-menu-mode):
* lisp/emacs-lisp/byte-run.el (macro-declaration-function):
* lisp/emacs-lisp/checkdoc.el (custom-print-functions)
(checkdoc-comment-style-hooks):
* lisp/emacs-lisp/cl-lib.el (custom-print-functions):
* lisp/emacs-lisp/edebug.el (gud-inhibit-global-bindings):
* lisp/erc/erc-dcc.el (erc-dcc-chat-filter-hook):
* lisp/eshell/esh-mode.el (eshell-status-in-modeline):
* lisp/eshell/eshell.el (eshell-add-to-window-buffer-names)
(eshell-remove-from-window-buffer-names):
* lisp/faces.el (set-face-underline-p, font-list-limit):
* lisp/files.el (automount-dir-prefix, toggle-read-only):
* lisp/filesets.el (filesets-cache-fill-content-hooks):
* lisp/frame.el (automatic-hscrolling):
* lisp/generic-x.el (javascript-generic-mode)
(javascript-generic-mode-hook):
* lisp/gnus/gnus-start.el (gnus-subscribe-newsgroup-hooks):
* lisp/gnus/nndiary.el (nndiary-request-create-group-hooks)
(nndiary-request-update-info-hooks)
(nndiary-request-accept-article-hooks):
* lisp/htmlfontify.el (hfy-post-html-hooks):
* lisp/international/mule-cmds.el
(inactivate-current-input-method-function)
(inactivate-input-method, input-method-inactivate-hook)
(ucs-insert):
* lisp/international/quail.el (quail-inactivate)
(quail-inactivate-hook):
* lisp/international/robin.el (robin-inactivate)
(robin-inactivate-hook):
* lisp/leim/quail/hangul.el (hangul-input-method-inactivate):
* lisp/leim/quail/uni-input.el (ucs-input-inactivate):
* lisp/mail/emacsbug.el (report-emacs-bug-info):
* lisp/mh-e/mh-e.el (mh-kill-folder-suppress-prompt-hooks):
* lisp/mpc.el (mpc-string-prefix-p):
* lisp/net/rcirc.el (rcirc-print-hooks, rcirc-sentinel-hooks)
(rcirc-receive-message-hooks, rcirc-activity-hooks):
* lisp/obsolete/crisp.el (crisp-mode-modeline-string):
* lisp/pcomplete.el (pcomplete-arg-quote-list)
(pcomplete-quote-argument):
* lisp/progmodes/cc-mode.el (c-prepare-bug-report-hooks):
* lisp/progmodes/python.el (python-info-ppss-context)
(python-info-ppss-context-type)
(python-info-ppss-comment-or-string-p, python-indent)
(python-guess-indent, python-buffer, python-preoutput-result)
(python-proc, python-send-receive, python-send-string)
(python-use-skeletons):
* lisp/progmodes/sh-script.el (sh-maybe-here-document):
* lisp/replace.el (query-replace-interactive):
* lisp/strokes.el (strokes-modeline-string):
* lisp/subr.el (redraw-modeline):
* lisp/term.el (term-default-fg-color, term-default-bg-color):
* lisp/textmodes/tex-mode.el (latex-string-prefix-p)
(tex-string-prefix-p):
* lisp/url/url-parse.el (url-recreate-url-attributes):
* lisp/vc/add-log.el (change-log-acknowledgement):
* lisp/vc/ediff-wind.el
(ediff-choose-window-setup-function-automatically):
* lisp/vc/pcvs-util.el (cvs-string-prefix-p):
* lisp/vc/vc.el (vc-string-prefix-p):
* lisp/window.el (display-buffer-function):
* lisp/winner.el (winner-mode-leave-hook): Remove many functions and
variables obsolete since 24.3.
* lisp/buff-menu.el (list-buffers--refresh):
* lisp/dired.el (dired-mode-map):
* lisp/files.el (abbreviate-file-name):
* lisp/generic-x.el (generic-default-modes):
* lisp/mh-e/mh-funcs.el (mh-kill-folder):
* lisp/progmodes/hideif.el (hide-ifdef-mode-submap):
* lisp/replace.el (query-replace-read-from):
* lisp/term.el (term):
* lisp/window.el (display-buffer): Don't use above deleted
functions and variables.
* src/marker.c (Fbuffer_has_markers_at): Delete DEFUN obsolete
since 24.3.
(syms_of_marker) <Sbuffer_has_markers_at>: Delete defsubr.
* lisp/subr.el (buffer-has-markers-at): Remove obsoletion
of above deleted DEFUN.
* etc/TODO: Doc fix; don't mention above deleted function.
* admin/cus-test.el (cus-test-get-options):
* lisp/pcomplete.el: Doc fixes; don't mention removed items.
2022-09-09 Stefan Kangas <stefankangas@gmail.com>
Display error in emacsclient if setsockopt failed
* lib-src/emacsclient.c (set_tcp_socket, set_socket_timeout): Display
an error message if setsockopt failed.
2022-09-09 Po Lu <luangruo@yahoo.com>
Remove some redundant calls to x_ignore_errors_for_next_request
* src/xterm.c (x_dnd_do_unsupported_drop, x_set_frame_alpha):
Wrap some requests in x_ignore_errors_for_next_request instead
of calling it each time.
2022-09-09 Codruț Constantin Gușoi <mail+git@codrut.pro>
Fix emacs native compilation warning
```
■ Warning (comp): use-package-core.el:907:2: Warning: docstring has
wrong usage of unescaped single quotes (use \= or different quoting)
■ Warning (comp): use-package-core.el:930:2: Warning: docstring has
wrong usage of unescaped single quotes (use \= or different quoting)
```
To reproduce, have emacs build with native compilation and notice the
compilation logs. You can then open this file and run `M-x
emacs-lisp-native-compile-and-load` before and after the changes to see the
warning is removed.
2022-09-08 Po Lu <luangruo@yahoo.com>
Remove long-broken TESTRM interface
* src/xrdb.c: [TESTRM]:
(fatal, main): Delete functions and code block. They don't work
and rely on XLIB_ILLEGAL_ACCESS.
2022-09-08 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in proced.el
* lisp/proced.el (proced-mode-map): Prefer defvar-keymap.
2022-09-08 Stefan Kangas <stefankangas@gmail.com>
Set indent-tabs-mode for lisp-data-mode in .dir-locals.el
* .dir-locals.el (lisp-data-mode): Enforce existing indent-tabs-mode
policy.
2022-09-08 Stefan Kangas <stefankangas@gmail.com>
Display librsvg error when loading bad SVG
* src/image.c (svg_load_image): Display the error message from librsvg
when parsing a bad SVG image file.
* test/manual/image-tests.el
(image-tests-load-image/svg-invalid): New test.
2022-09-08 João Távora <joaotavora@gmail.com>
Don't return poorly supported "special elements" in eglot-imenu
Fix https://github.com/joaotavora/eglot/issues/758, https://github.com/joaotavora/eglot/issues/536, https://github.com/joaotavora/eglot/issues/535.
Eglot's eglot-imenu returned a structure compliant with the rules
outlined in imenu--index-alist. In particular, it returned some
elements of the form
(INDEX-NAME POSITION GOTO-FN ARGUMENTS...)
The original intention (mine) must have been to allow fancy
highlighting of the position navigated to with a custom GOTO-FN.
Not only was access to that fanciness never implemented, but many
other imenu frontends do not support such elements.
See for example https://github.com/joaotavora/eglot/issues/758, https://github.com/joaotavora/eglot/issues/536, https://github.com/joaotavora/eglot/issues/535. And also related issues in other
packages:
https://github.com/IvanMalison/flimenu/issues/6
https://github.com/bmag/imenu-list/issues/58
So it's best to remove this problematic feature for now. It can be
added back later.
* eglot.el (eglot-imenu): Simplify.
* NEWS.md: Mention change
2022-09-08 Richard Stallman <rms@gnu.org>
Decode base64 attachments revealed by decryption.
* lisp/mail/rmail.el (rmail-epa-decode): New function.
(rmail-epa-decrypt): Call rmail-epa-decode.
2022-09-08 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
395760dcd3 Update ChangeLog and AUTHORS for Emacs 28.2
ddabb03a01 * doc/misc/idlwave.texi (Troubleshooting): Don't say "Emac...
724444f3d5 ; * doc/emacs/misc.texi (emacsclient Options): Fix typo.
b96257162d Don't mention very old Emacs versions in docs
# Conflicts:
# doc/emacs/misc.texi
# etc/NEWS
2022-09-08 Stefan Monnier <monnier@iro.umontreal.ca>
* src/keyboard.c (safe_run_hook_funcall): Fix thinko
2022-09-08 Stefan Monnier <monnier@iro.umontreal.ca>
* src/keyboard.c (safe_run_hook_funcall): Fix recent regression
The mutation of `args` was unsafe because that array was
later reused (and assumed unchanged) by the caller.
https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00329.html
2022-09-08 Stefan Monnier <monnier@iro.umontreal.ca>
test: Remove redundant "" arg to `mapconcat`
* test/src/process-tests.el (process-test-stderr-filter):
* test/src/print-tests.el (print-tests-continuous-numbering):
* test/src/fns-tests.el (fns-tests-mapconcat):
* test/src/data-tests.el (test-bool-vector-to-hex-string):
* test/src/casefiddle-tests.el (casefiddle-tests-char-properties)
(casefiddle-tests-case-table, casefiddle-tests-casing-character):
* test/lisp/tabify-tests.el (tabify-tests--test-changes):
* test/lisp/subr-tests.el (subr-tests-bug22027):
* test/lisp/sort-tests.el (sort-tests-random-word):
* test/lisp/net/hmac-md5-tests.el (hmac-md5-test-encode-string):
* test/lisp/md4-tests.el (md4-tests-digest->hex):
* test/lisp/emacs-lisp/cl-extra-tests.el (cl-extra-test-map):
* test/lisp/dired-tests.el (dired-test-directory-files):
* test/lisp/char-fold-tests.el (char-fold--random-word):
* test/lisp/ansi-color-tests.el (ansi-color-incomplete-sequences-test):
Remove redundant "" arg to `mapconcat`.
2022-09-08 Yuan Fu <casouri@gmail.com>
Add node-only parameter to treesit-query-capture
* doc/lispref/parsing.texi (Pattern Matching): Mention the new
parameter.
* lisp/treesit.el (treesit-query-in): Add node-only.
* src/treesit.c (Ftreesit_query_capture): Add node-only.
2022-09-08 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-can-enable-p): Minor fix.
2022-09-08 Phil Sainty <psainty@orcon.net.nz>
Add new user option ecomplete-auto-select
* lisp/ecomplete.el (ecomplete-auto-select): New user option
(bug#53935).
(ecomplete-display-matches): Use it.
2022-09-08 Augusto Stoffel <arstoffel@gmail.com>
Add prefix argument to outline-cycle-buffer
* lisp/outline.el (outline-cycle-buffer): Add prefix argument to show
headings up to a given level. Handle the case where the top
heading level is not 1.
2022-09-08 Lars Ingebrigtsen <larsi@gnus.org>
Fix diff-add-log-use-relative-names prompting
* lisp/vc/diff-mode.el (diff-add-log-use-relative-names): Autoload
to avoid prompting when set via dir-locals.
2022-09-08 Stefan Kangas <stefankangas@gmail.com>
* src/xrdb.c (main) [TESTRM]: Replace gets with fgets.
2022-09-08 Manuel Uberti <manuel.uberti@inventati.org>
Fix jdtls support
PR https://github.com/joaotavora/eglot/issues/1026
* eglot.el (eglot-server-programs): Add -data setup for java-mode.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/1008
2022-09-08 Artem Pyanykh <arr@fb.com> (tiny change)
Add marksman server for markdown
* eglot.el (eglot-server-programs): Update.
* README (Connecting to a server): Add marksman.
* NEWS.md: Mention change.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/1013
2022-09-08 Sam James <sam@gentoo.org> (tiny change)
Recognize zstandard (.zst) compressed Info files
* lisp/info.el (Info-suffix-list): Recognize .zst file extension
from the zstd compression tool. This allows reading Info pages
compressed with 'zstd'. (Bug#57636)
2022-09-08 Michael Albinus <michael.albinus@gmx.de>
Make call of remote `id' more performant in Tramp
* lisp/net/tramp-adb.el (tramp-adb-handle-file-exists-p): New defun.
(tramp-adb-file-name-handler-alist): Use it.
(tramp-adb-handle-file-executable-p)
(tramp-adb-handle-file-readable-p)
(tramp-adb-handle-file-writable-p)
(tramp-adb-handle-get-remote-uid)
(tramp-adb-handle-get-remote-gid)
(tramp-adb-handle-get-remote-groups): Use caches consequently.
* lisp/net/tramp-sh.el (tramp-perl-id, tramp-python-id): New defconsts.
(tramp-sh-handle-get-remote-uid, tramp-sh-handle-get-remote-gid)
(tramp-sh-handle-get-remote-groups): Use caches consequently.
(tramp-sh-handle-file-writable-p): Use `file-writable-p'.
(tramp-expand-script): Handle also "python" expansion.
(tramp-get-remote-id): Do not set connection property anymore,
this is done differently now.
(tramp-get-remote-uid-with-id, tramp-get-remote-uid-with-perl)
(tramp-get-remote-uid-with-python, tramp-get-remote-gid-with-id)
(tramp-get-remote-gid-with-perl)
(tramp-get-remote-gid-with-python): Remove.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-executable-p)
(tramp-sudoedit-handle-file-exists-p)
(tramp-sudoedit-handle-file-readable-p)
(tramp-sudoedit-handle-file-writable-p):
(tramp-sudoedit-handle-get-remote-uid)
(tramp-sudoedit-handle-get-remote-gid)
(tramp-sudoedit-handle-get-remote-groups): Use caches consequently.
* lisp/net/tramp.el (tramp-check-cached-permissions):
Call `tramp-get-remote-groups' only if needed.
(tramp-get-remote-groups): Do not return default value.
(tramp-read-id-output): New defun.
* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-perl):
Suppress also remote `id'.
2022-09-08 Philip Kaludercic <philipk@posteo.net>
Add new user option 'diff-add-log-use-relative-names'
* .dir-locals.el: Set new option to t
* etc/NEWS: Mention new option.
* lisp/vc/diff-mode.el (diff-add-log-use-relative-names): Add new option.
(diff-add-log-current-defuns): Use new option.
* doc/emacs/maintaining.texi (Log Buffer): Mention new option.
2022-09-08 Po Lu <luangruo@yahoo.com>
Avoid selecting for excessive output configuration events
* src/xterm.c (x_term_init): Only select for
RROutputPropertyNotify if GTK is in use. Emacs doesn't need it
itself, and output property changes will otherwise lead to 2
second freezes over connections with high network latency.
2022-09-07 Stefan Kangas <stefankangas@gmail.com>
Bump Emacs version to 28.2
* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 28.2.
2022-09-07 Stefan Kangas <stefankangas@gmail.com>
dired-guess: Support zstandard archives
* lisp/dired-aux.el (dired-guess-shell-alist-default): Support
zstandard archives.
2022-09-07 Stefan Kangas <stefankangas@gmail.com>
Move some tests to test/manual/image-tests.el
* test/src/image-tests.el: Move several tests from here...
* test/manual/image-tests.el: ...to here.
Suggested by Eli Zaretskii <eliz@gnu.org>.
2022-09-07 Morgan Smith <Morgan.J.Smith@outlook.com>
image-dired: Fix moving forward when marking files
* lisp/image/image-dired.el (image-dired--do-mark-command): Make
movement consistent regardless of the value of
image-dired-marking-shows-next. (Bug#57651)
2022-09-07 Morgan Smith <Morgan.J.Smith@outlook.com>
Make image-dired-rotate-original-{left,right} respect marks
* lisp/image/image-dired.el (image-dired-rotate-original-left)
(image-dired-rotate-original-right): Rotate all marked
files. (Bug#57651)
2022-09-07 Yuan Fu <casouri@gmail.com>
Fix tree-sitter manual entry for treesit-should-enable-p
* doc/lispref/parsing.texi: Move two entries in the front to "Using
Parser" section, replacing the old entry.
2022-09-07 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in icomplete.el
* lisp/icomplete.el (icomplete-minibuffer-map)
(icomplete-fido-mode-map)
(icomplete-vertical-mode-minibuffer-map): Prefer defvar-keymap.
2022-09-07 Yuan Fu <casouri@gmail.com>
Remove treesit-disabled-modes and change treesit-should-enable-p
Per emacs-devel discussion, remove treesit-disabled-modes and let
major modes to provide tree-sitter switches. I also decided to add
treesit-max-buffer-size to elisp manual despite it being a user
option. Though we should still add it to the user manual.
* doc/lispref/parsing.texi (Parsing Program Source): Update manual to
remove entries for treesit-diabled-modes and add
treesit-max-buffer-size. Also update treesit-should-enable-p.
* lisp/treesit.el (treesit-disabled-modes): Remove user option.
(treesit-maximum-size): Change to treesit-max-buffer-size.
(treesit-should-enable-p): Change to treesit-can-enable-p and remove
checks of treesit-disabled-modes.
2022-09-07 Yuan Fu <casouri@gmail.com>
Add manual entry for tree-sitter search functions
* doc/lispref/parsing.texi (Retrieving Node): New subsection
"Searching for node".
* doc/lispref/positions.texi (List Motion): Add entries for
treesit-defun-query, treesit-beginning-of-defun, treesit-end-of-defun.
* lisp/treesit.el (treesit-search-forward, treesit-search-beginning)
(treesit-search-end): Minor docstring fix-up.
2022-09-07 Yuan Fu <casouri@gmail.com>
Add tree-sitter font-lock settings helper function/macro
1. Add treesit-font-lock-rules that helps with settings
treesit-font-lock-settings.
2. Remove treesit-font-lock-defaults and with it, decoration levels.
Now major modes should set treesit-font-lock-settings with the output
of treesit-font-lock-rules rather than setting
treesit-font-lock-defaults.
* lisp/treesit.el (treesit-font-lock-settings): Update docstring.
(treesit-font-lock-rules): New function.
(treesit-font-lock-defaults): Remove variable.
(treesit-font-lock-enable): Remove code that interacts
treesit-font-lock-defaults.
* doc/lispref/modes.texi: Update manual for
treesit-font-lock-settings, treesit-font-lock-rules,
treesit-font-lock-defaults.
2022-09-07 Mattias Engdegård <mattiase@acm.org>
Improve save-match-data hygiene
* lisp/subr.el (save-match-data): Use uninterned variable symbol.
Remove outdated comments.
2022-09-07 Eli Zaretskii <eliz@gnu.org>
Add instructions to 'standard-display-by-replacement-char'
* lisp/disp-table.el (standard-display-by-replacement-char): Add a
preamble to the generated code with instructions. Suggested by
Richard Stallman <rms@gnu.org>.
2022-09-07 Eli Zaretskii <eliz@gnu.org>
Don't follow symlinks in w32notify file watches
* src/w32notify.c (add_watch): On filesystems that support
symlinks, don't follow symlinks. (Bug#57536)
* src/w32.c (symlinks_supported): New function.
* src/w32.h (symlinks_supported): Add prototype.
2022-09-07 Mattias Engdegård <mattiase@acm.org>
Simplify dolist and dotimes
We no longer care enough about non-lexbind code generation for it
to merit special attention; better to keep the code simple.
Suggested by Philip Kaludercic in
https://lists.gnu.org/archive/html/emacs-devel/2022-09/msg00354.html .
* lisp/subr.el (dolist, dotimes): Use uninterned symbols for variable
bindings generated by the macros, and discard the alternative code
versions for non-lexbind code. Use sensible variable names.
2022-09-07 Philip Kaludercic <philipk@posteo.net>
Untabify rcirc.el
2022-09-06 Po Lu <luangruo@yahoo.com>
Fix nsfont breakage since 6b1ed2f2c99a1c2da56c5f434570c438cad6576d
* nsfont.m (ns_spec_to_descriptor): Fix coding style, also
handle `monospace' special family.
(ns_descriptor_to_entity): Fix reporting of spacing on fonts.
(ns_findfonts): Fix coding style.
2022-09-06 Po Lu <luangruo@yahoo.com>
Reenable reporting of frame movement on NS
* src/nsterm.m ([EmacsView windowDidMove:]): Restore code to
generate MOVE_FRAME_EVENTS, and use kbd_buffer_store_event
instead.
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
Improve image-tests.el Commentary
* test/src/image-tests.el: Doc fix; explain how to run from
command line.
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
Update ChangeLog and AUTHORS for Emacs 28.2
* ChangeLog.3:
* etc/AUTHORS:
* etc/NEWS: Update for Emacs 28.2.
2022-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/jit-lock.el (jit-lock-function): Update comment
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/idlwave.texi (Troubleshooting): Don't say "Emacsen".
2022-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/jit-lock.el (jit-lock-function): Don't fontify invisible text
See bug#57447. This can speed up fontification significantly when using
things like outline-mode.
2022-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
* etc/NEWS.28: Mention `make-closure`
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/mh-e.texi (Getting MH-E): Update.
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
Don't mention ancient Gnus versions in MH-E manual
* doc/misc/mh-e.texi (Preface, Reading PGP, Procmail): Don't mention
pre-2000 versions of Gnus.
2022-09-06 Eli Zaretskii <eliz@gnu.org>
Fix the MS-Windows build
* lib-src/emacsclient.c (DEFAULT_TIMEOUT): Move out of the
!WINDOWSNT condition, to fix the MS-Windows compilation.
(set_socket_timeout) [WINDOWSNT]: Protect against too-large values
of timeout.
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
Don't mention very old Emacs versions in docs
* doc/misc/mh-e.texi (Conventions):
* doc/misc/reftex.texi (Problems and Work-Arounds):
* doc/misc/viper.texi (Loading Viper): Delete references to
very old versions of Emacs.
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/semantic.texi: Delete unused macro.
2022-09-06 Po Lu <luangruo@yahoo.com>
Correctly handle frame synchronization on fullscreen KWin
* src/xfns.c (x_set_use_frame_synchronization): Announce that we
do not want the compositor to unredirect the frame while
fullscreen.
* src/xterm.c (x_atom_refs): New atom
`_NET_WM_BYPASS_COMPOSITOR'.
* src/xterm.h (struct x_display_info): Likewise.
2022-09-06 Kai Tetzlaff <emacs@tetzco.de>
Fix (mostly multibyte) issues in sieve-manage.el (Bug#54154)
The managesieve protocol (s. RFC5804) requires support for (a sightly
restricted variant of) UTF-8 in script content and script names. This
commit fixes/improves the handling of multibyte characters.
In addition, `sieve-manage-getscript' now properly handles NO
responses from the server instead of inflooping.
There are also some logging improvements.
* lisp/net/sieve-manage.el
(sieve-manage--append-to-log):
(sieve-manage--message):
(sieve-manage--error):
(sieve-manage-encode):
(sieve-manage-decode):
(sieve-manage-no-p): New functions.
(sieve-manage-make-process-buffer): Switch process buffer to unibyte.
(sieve-manage-open-server): Add `:coding 'raw-text-unix` to
`open-network-stream' call. Use unix EOLs in order to keep matching
CRLF (aka "\r\n") intact.
(sieve-manage-send): Make sure that UTF-8 multibyte characters are
properly encoded before sending data to the server.
(sieve-manage-getscript):
(sieve-manage-putscript): Use the changes above to fix down/uploading
scripts containing UTF-8 multibyte characters.
(sieve-manage-listscripts):
(sieve-manage-havespace)
(sieve-manage-getscript)
(sieve-manage-putscript):
(sieve-manage-deletescript):
(sieve-manage-setactive): Use the changes above to fix handling of
script names which contain UTF-8 multibyte characters.
(sieve-manage-parse-string):
(sieve-manage-getscript): Add handling of server responses with type
NO. Abort `sieve-manage-getscript' and show error message in message
area.
(sieve-manage-erase):
(sieve-manage-drop-next-answer):
(sieve-manage-parse-crlf): Return erased/dropped data (instead of nil).
(sieve-sasl-auth):
(sieve-manage-getscript):
(sieve-manage-erase):
(sieve-manage-open-server):
(sieve-manage-open):
(sieve-manage-send): Improve logging.
2022-09-06 Kai Tetzlaff <emacs@tetzco.de>
Improve robustnes of `sieve-manage-quit' in case of errors
* lisp/net/sieve.el (sieve-manage-quit): Avoid killing buffers it's
not supposed to touch (bug#54154).
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
Add tests for opening different image formats
* test/src/image-tests.el
(image-tests-make-load-image-test): New macro.
(image-tests-load-image/gif)
(image-tests-load-image/jpeg)
(image-tests-load-image/pbm)
(image-tests-load-image/png)
(image-tests-load-image/svg)
(image-tests-load-image/tiff)
(image-tests-load-image/webp)
(image-tests-load-image/xbm)
(image-tests-load-image/xpm): New tests.
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
Fix interactive image.c tests
* test/src/image-tests.el (image-tests-image-metadata/gif)
(image-tests-image-metadata/webp): Fix tests.
2022-09-06 Drew Adams <drew.adams@oracle.com>
Add some new find-lisp commands
* lisp/find-lisp.el (find-lisp-find-dired-other-window): New command.
(find-lisp-find-dired): Improve the doc string.
(find-lisp-find-dired-subdirectories): Clarify doc string.
(find-lisp-find-dired-subdirs-other-window): New command.
(find-lisp-find-dired-internal): Adjust to allow being called by
the new command.
(find-lisp-format): Make symlink output more regular.
2022-09-06 Laurence Warne <laurencewarne@gmail.com>
Apply syntax highlighting for all python f-strings
* lisp/progmodes/python.el (python--f-string-p)
(python--font-lock-f-strings): Edit functions to use a regular
expression matching all f-strings (bug#56757).
2022-09-06 Michael Albinus <michael.albinus@gmx.de>
Use secondary groups when checking permissions in Tramp (Bug#57044)
* lisp/net/tramp.el (tramp-check-cached-permissions): Check also for
secondary groups. (Bug#57044)
(tramp-get-remote-groups):
* lisp/net/tramp-adb.el (tramp-adb-handle-get-remote-groups):
* lisp/net/tramp-sh.el (tramp-sh-handle-get-remote-groups):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-get-remote-groups):
New defuns.
* lisp/net/tramp.el (tramp-file-name-for-operation):
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add `tramp-get-remote-groups'.
* lisp/net/tramp.el:
* lisp/net/tramp-adb.el:
* lisp/net/tramp-cache.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-fuse.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-rclone.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-sudoedit.el: Use `blank' in `rx' forms.
* test/lisp/net/tramp-archive-tests.el:
* test/lisp/net/tramp-tests.el: Use `blank' in `rx' forms.
2022-09-06 Lars Ingebrigtsen <larsi@gnus.org>
Make ffap-file-finder work again
* lisp/ffap.el (find-file-at-point): Allow people to set
ffap-file-finder again (bug#50279).
* lisp/ido.el (ido-everywhere): Add an interstitial to fulfil
ffap-file-handler semantics.
2022-09-06 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
ecbdb3b0ad * lisp/server.el: Improve Commentary.
ee5c591249 Explain how the font appearance can be fine-tuned in fbterm.
2022-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
cl-symbol-macrolet: Fix recent regression
The recent fix for bug#57397 introduced a regression, breaking
the `cl-lib-symbol-macrolet-hide` test. It turned out that the
origin of the problem was that `gv.el` uses `macroexpand-1` which
does not (can't) use `macroexpand` but `cl-symbol-macrolet` failed
to advise `macroexpand-1` the way it advised `macroexpand`.
To fix this, we change `cl-symbol-macrolet` so it advises both, and we
do that with a new `macroexpand` advice which delegates the bulk of
the work to `macroexpand-1`.
Along the way, I bumped into another bug in the interaction between
`cl-letf` and `cl-symbol-macrolet`, which I tried to fix in `cl-letf`.
I hear the war on `cl-symbol-macrolet` was a failure.
Maybe ... just say no?
* lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand-1): New function,
extracted from `cl--sm-macroexpand`.
(cl--sm-macroexpand): Rewrite completely.
(cl-symbol-macrolet): Advise both `macroexpand` and `macroexpand-1`.
(cl--letf): Don't use the "simple variable" code for symbol macros.
* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet-hide):
Revert last change because the test was right.
* test/lisp/emacs-lisp/cl-macs-tests.el
(cl-macs-test--symbol-macrolet): Add a test case.
2022-09-05 Stefan Kangas <stefankangas@gmail.com>
Add new --timeout flag to emacsclient
* lib-src/emacsclient.c (DEFAULT_TIMEOUT): New constant.
(timeout): New static variable.
(longopts, shortopts, decode_options, print_help_and_exit): Add new
flag --timeout.
(set_socket_timeout, check_socket_timeout): New helper functions.
(main): Display a status message or exit after Emacs has not responded
for a while, depending on above new --timeout flag. (Bug#50849)
* doc/emacs/misc.texi (emacsclient Options):
* doc/man/emacsclient.1: Document the above new option.
* etc/NEWS: Announce it.
2022-09-05 Lars Ingebrigtsen <larsi@gnus.org>
Disable failing cl-lib-symbol-macrolet-hide test for now
* test/lisp/emacs-lisp/cl-lib-tests.el
(cl-lib-symbol-macrolet-hide): Disable until code is fixed.
2022-09-05 Gregory Heytings <gregory@heytings.org>
Simplify describe-function.
* lisp/help-fns.el (describe-function-1): Do not pass
'describe-function-orig-buffer' as argument to...
(help-fns--key-bindings): but use it directly there instead.
This simplifies 1d1158397b.
2022-09-05 Juri Linkov <juri@linkov.net>
Fit the re-builder window to the buffer
* lisp/emacs-lisp/re-builder.el (re-builder): Fit the height to
the buffer (bug#56772).
2022-09-05 Hugo Heagren <hugo@heagren.com>
Add new functions for splitting the root window
* lisp/window.el (split-window-right): Add optional argument to
control which window is split (previously, would only split selected
window). Update docstring.
* doc/lispref/windows.texi (Splitting Windows): Update docs for
`split-window-right'.
* lisp/window.el (split-window-below): Add optional argument to
control which window is split (previously, would only split selected
window). Update docstring.
* doc/lispref/windows.texi (Splitting Windows): Update docs for
`split-window-below'.
* lisp/window.el (ctl-x-map): Bind `split-root-window-right' to 9 in
ctl-x-map. This is consistent with binding other window-splitting
operations to numbers in this map.
* lisp/window.el (ctl-x-map): Bind `split-root-window-below' to 7 in
ctl-x-map. This is consistent with binding other window-splitting
operations to numbers in this map.
* lisp/window.el (split-root-window-right): New function to split
whole frame.
* doc/lispref/windows.texi (Splitting Windows): Add documentation for
`split-root-window-right'.
* lisp/window.el (split-root-window-below): New function to split
whole frame.
* doc/lispref/windows.texi (Splitting Windows): Add documentation for
`split-root-window-below' (bug#56791).
2022-09-05 Sean Whitton <spwhitton@spwhitton.name>
Font lock long Git commit summary lines
* lisp/vc/vc-git.el (vc-git-log-edit-summary-target-len)
(vc-git-log-edit-summary-max-len): New defcustoms.
(vc-git-log-edit-summary-target-warning)
(vc-git-log-edit-summary-max-warning): New faces.
(vc-git--log-edit-summary-check): New function.
(vc-git-log-edit-mode): Add vc-git--log-edit-summary-check to
log-edit-font-lock-keywords to font lock long Git commit summary
lines.
* etc/NEWS (VC): Document the change.
* .dir-locals.el: Set vc-git-log-edit-summary-target-len.
2022-09-05 Stefan Kangas <stefankangas@gmail.com>
* lisp/server.el: Improve Commentary.
2022-09-05 Gregory Heytings <gregory@heytings.org>
Explain how the font appearance can be fine-tuned in fbterm.
* doc/misc/efaq.texi (Emacs in a Linux console): Briefly document
Xft font specifications with which the font appearance can be
fine-tuned.
2022-09-05 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
5713c730f2 Update to Org 9.5.5
aad38d6010 * lisp/emacs-lisp/comp.el (comp-run-async-workers): Fail m...
2022-09-04 Po Lu <luangruo@yahoo.com>
Fix crash while converting empty vector to X data
* src/xselect.c (lisp_data_to_selection_data): Assume an empty
vector represents INTEGER data, instead of blindly trying to
aref it's first element.
2022-09-04 Jim Porter <jporterbugs@gmail.com>
Let external Eshell processes send stdout and stderr to different places
* lisp/eshell/esh-proc.el (eshell-put-process-properties): Pass INDEX.
(eshell-gather-process-output): Create a pipe process for stderr when
stderr goes somewhere different than stdout.
(eshell-insertion-filter, eshell-sentinel): Consult
':eshell-handle-index' property.
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/output/stdout-to-buffer)
(esh-proc-test/output/stderr-to-buffer)
(esh-proc-test/exit-status/with-stderr-pipe): New tests (bug#21605).
2022-09-04 Jim Porter <jporterbugs@gmail.com>
Put Eshell's bookkeeping data for external processes on the process object
This allows tracking this information for process objects not recorded
in 'eshell-process-list', which will be useful for pipe processes for
stderr output.
* lisp/eshell/esh-proc.el (eshell-process-list): Add docstring.
(eshell-record-process-object): Only record the process object and
whether it's a subjob.
(eshell-remove-process-entry): Adapt to changes in
'eshell-record-process-object'.
(eshell-record-process-properties): New function...
(eshell-gather-process-output): ... call it.
(eshell-insertion-filter, eshell-sentinel): Use new process
properties, don't require process to be in 'eshell-process-list'.
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test--output-cmd): New
variable.
(esh-proc-test--detect-pty-cmd): Add docstring.
(esh-proc-test/output/to-screen)
(esh-proc-test/output/stdout-and-stderr-to-buffer)
(esh-proc-test/exit-status/success, esh-proc-test/exit-status/failure)
(esh-proc-test/kill-process/foreground-only): New tests.
(esh-proc-test/kill-background-process): Rename to...
(esh-proc-test/kill-process/background-prompt): ... this, and use
'eshell-wait-for-subprocess' instead of 'sit-for'.
2022-09-04 Jim Porter <jporterbugs@gmail.com>
Add support for more kinds of redirect operators in Eshell
* lisp/eshell/esh-arg.el: Require cl-lib.
(eshell-finish-arg): Allow passing multiple ARGUMENTS.
(eshell-quote-argument): Handle the case when 'eshell-finish-arg' was
passed multiple arguments.
* lisp/eshell/esh-cmd.el (eshell-do-pipelines)
(eshell-do-pipelines-synchronously): Only set stdout output handle.
* lisp/eshell/esh-io.el (eshell-redirection-operators-alist): New
constant.
(eshell-io-initialize): Prefer sharp quotes for functions.
(eshell-parse-redirection, eshell-strip-redirections): Add support for
more redirection forms.
(eshell-copy-output-handle, eshell-set-all-output-handles): New
functions.
* test/lisp/eshell/esh-io-tests.el
(esh-io-test/redirect-all/overwrite, esh-io-test/redirect-all/append)
(esh-io-test/redirect-all/insert, esh-io-test/redirect-copy)
(esh-io-test/redirect-copy-first, esh-io-test/redirect-pipe): New
tests.
* doc/misc/eshell.texi (Redirection): Document new redirection syntax.
(Pipelines): Document '|&' syntax.
(Bugs and ideas): Update item about redirection syntax.
* etc/NEWS: Announce this change.
2022-09-04 Jim Porter <jporterbugs@gmail.com>
Allow checking specific Eshell handles for interactive output
This changes the default behavior of the function to check only stdout
for interactivity, but for most cases this should be what we want.
* lisp/eshell/esh-io.el (eshell-interactive-output-p): Pass HANDLES
and handle INDEX.
* lisp/eshell/em-term.el (eshell-visual-command-p): Check for
interactivity of both stdout and stderr.
2022-09-04 Jim Porter <jporterbugs@gmail.com>
Simplify Eshell handle functions and add tests/documentation
* lisp/eshell/esh-arg.el (eshell-parse-argument-hook): Explain how to
use 'eshell-finish-arg'.
* lisp/eshell/esh-io.el (eshell-create-handles): Only call
'eshell-get-target' for stderr if necessary.
(eshell-protect-handles): Use 'dotimes'.
(eshell-set-output-handle): Pass HANDLES and fix an edge case with
setting a duplicate TARGET.
* test/lisp/eshell/eshell-tests-helpers.el (eshell-with-temp-buffer):
New macro.
* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/quoted-lisp-form)
(esh-cmd-test/backquoted-lisp-form)
(esh-cmd-test/backquoted-lisp-form/splice): New tests.
* test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer)
(eshell-test/redirect-buffer-escaped): Move to...
* test/lisp/eshell/esh-io-tests.el: ... here, and add other I/O tests.
* doc/misc/eshell.texi (Arguments): Add documentation for special
argument types.
(Input/Output): Expand documentation for redirection and pipelines.
2022-09-04 Matt Armstrong <matt@rfc20.org>
Add basic test coverage for overlay modification hooks
* test/src/buffer-tests.el: (overlay-modification-hooks) new
ert-deftest.
(overlay-tests-start-recording-modification-hooks): New function.
(overlay-tests-get-recorded-modification-hooks): New function
(bug#57150).
2022-09-04 Lars Ingebrigtsen <larsi@gnus.org>
Clarify that the region is in the Emacs manual
* doc/emacs/mark.texi (Mark): Try to clarify what's so special
about Emacs' regions (bug#50950).
2022-09-04 Lars Ingebrigtsen <larsi@gnus.org>
Mark some filenotify tests unstable on EMBA
* test/lisp/filenotify-tests.el (file-notify-test03-events)
(file-notify-test09-watched-file-in-watched-dir): Mark as unstable
on EMBA, because they seem to fail regularly.
2022-09-04 Michael Albinus <michael.albinus@gmx.de>
Fix comment in tramp.el
2022-09-04 Juri Linkov <juri@linkov.net>
Don't replace the first character with an arrow in outline-minor-mode
* lisp/outline.el (outline--make-button-overlay): Add the first character
to the displayed outline button (bug#56820).
2022-09-04 Juri Linkov <juri@linkov.net>
Use use-region-beginning/end in replacement commands (bug#45607)
* lisp/isearch.el (isearch-query-replace): Use use-region-beginning
and use-region-end.
* lisp/textmodes/paragraphs.el (repunctuate-sentences):
* lisp/replace.el (query-replace, query-replace-regexp)
(map-query-replace-regexp, replace-string, replace-regexp):
Add 'interactive-args' to 'declare' and use use-region-beginning,
use-region-end, use-region-noncontiguous-p.
* lisp/simple.el (use-region-noncontiguous-p): New function.
(region-noncontiguous-p): Return more meaningful value.
2022-09-04 Lars Ingebrigtsen <larsi@gnus.org>
Add a basic widget type for buffer predicates
* lisp/paren.el (show-paren-predicate):
* lisp/outline.el (outline-minor-mode-use-buttons): Use it.
* lisp/wid-edit.el (buffer-predicate): New widget type.
2022-09-04 Po Lu <luangruo@yahoo.com>
Fix earlier change to xterm.c
* src/xterm.c (x_detect_focus_change): Finally figure out what
the call to x_new_focus_frame does with the core focus, and do
the equivalent with the XInput 2 focus.
2022-09-04 Michael Albinus <michael.albinus@gmx.de>
Fix rx forms in Tramp
* lisp/net/tramp.el (tramp-restricted-shell-hosts-alist)
(tramp-local-host-regexp, tramp-echoed-echo-mark-regexp)
(tramp-login-prompt-regexp, tramp-terminal-prompt-regexp)
(tramp-antispoof-regexp)
(tramp-build-completion-file-name-regexp)
(tramp-debug-outline-regexp)
(tramp-use-absolute-autoload-file-names)
(tramp-lock-file-info-regexp, tramp-shell-quote-argument):
* lisp/net/tramp-adb.el (tramp-do-parse-file-attributes-with-ls)
* lisp/net/tramp-cache.el (tramp-flush-file-function):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name):
* lisp/net/tramp-integration.el (tramp-rfn-eshadow-update-overlay-regexp)
(info-lookup-maybe-add-help):
* lisp/net/tramp-sh.el (tramp-default-user-alist, tramp-sunos-unames)
(tramp-scp-direct-remote-copying, tramp-get-remote-locale):
* lisp/net/tramp-smb.el (tramp-smb-prompt, tramp-smb-wrong-passwd-regexp)
(tramp-smb-errors, tramp-smb-get-localname)
(tramp-smb-read-file-entry): Simplify rx forms.
* lisp/net/tramp.el (tramp-handle-find-backup-file-name)
(tramp-handle-lock-file, tramp-handle-make-auto-save-file-name):
* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times)
(tramp-adb-maybe-open-connection):
* lisp/net/tramp-gvfs.el
(tramp-gvfs-file-attributes-with-gvfs-ls-regexp):
* lisp/net/tramp-sh.el (tramp-open-shell, tramp-find-shell): Do not use
`eval-when-compile'.
* lisp/net/tramp-cmds.el (tramp-rename-files, tramp-rename-these-files):
Use rx.
* lisp/net/tramp-gvfs.el (tramp-gvfs-password-tcrypt): New defonst.
(tramp-gvfs-handle-file-attributes): Use `number-to-string'.
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test17-insert-directory):
* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory)
(tramp--test-share-p): Simplify rx forms.
2022-09-04 Damien Cassou <damien@cassou.me>
Add new function `seq-positions'
* doc/lispref/sequences.texi (Sequence Functions): Document it.
* lisp/emacs-lisp/seq.el (seq-positions): New function.
* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.
* test/lisp/emacs-lisp/seq-tests.el (test-seq-positions): Test it
(bug#57548).
2022-09-04 Augusto Stoffel <arstoffel@gmail.com>
Add Python import management commands
* lisp/progmodes/python.el (python-interpreter): New variable
(python-mode-map): Keybindings and menu entries for new commands
(python--list-imports, python-import-history, python--query-import)
(python--do-isort): New variables and helper functions.
(python-add-import, python-import-symbol-at-point)
(python-remove-import, python-sort-imports, python-fix-imports): New
interactive commands (bug#57574).
2022-09-04 Augusto Stoffel <arstoffel@gmail.com>
Python shells dedicated to a project
* lisp/progmodes/python.el: Require 'seq' and (optionally) 'compat'
and 'project' libraries.
(python-shell-dedicated): New user option
(python-shell-get-process-name): Adapt to project-dedicated shells.
(run-python): Offer possibility to create a project-dedicated shell,
or use 'python-shell-dedicated' as the default behavior.
(python-shell-get-buffer): Adapt to project-dedicated shells
(bug#56997).
2022-09-04 Damien Cassou <damien@cassou.me>
Add new function `seq-remove-at-position'
* doc/lispref/sequences.texi (Sequence Functions): Document it.
* lisp/emacs-lisp/seq.el (seq-remove-at-position): New function.
* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.
* test/lisp/emacs-lisp/seq-tests.el (test-seq-remove-at-position):
Test it.
2022-09-04 Damien Cassou <damien@cassou.me>
Improve documentation of several functions in seq.el
* doc/lispref/sequences.texi (Sequence Functions):
* lisp/emacs-lisp/seq.el (seq-contains):
(seq-contains-p):
(seq-set-equal-p):
(seq-position):
(seq-union):
(seq-intersection):
(seq-difference): Use more standard wording in the docstrings
(bug#57561).
2022-09-04 Lars Ingebrigtsen <larsi@gnus.org>
Rename the Mice node in the Emacs manual
* doc/emacs/commands.texi (User Input, Keys): Rename "Mice" to
Mouse Input.
2022-09-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix some help-fns test failures
* lisp/help-fns.el (help-fns--key-bindings): Fix test failures
from recent change.
2022-09-04 Eli Zaretskii <eliz@gnu.org>
New command to facilitate text-mode display of unsupported chars
* lisp/disp-table.el (standard-display-by-replacement-char): New
command.
* etc/NEWS: Announce it.
2022-09-04 Eli Zaretskii <eliz@gnu.org>
Fix update of Dired display when it was called on a cons cell
* lisp/dired.el (dired-internal-do-deletions): Make sure that FN's
directory entry is updated on display. (Bug#57565)
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/term/linux.el (gpm-mouse-enable): Remove left-over declaration
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
gv.el and cl-macs.el: Fix bug#57397
* lisp/emacs-lisp/gv.el (gv-get): Obey symbol macros.
* lisp/emacs-lisp/cl-macs.el (cl--letf): Remove workaround placed to
try and handle symbol macros.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-test--symbol-macrolet):
Add new testcase.
2022-09-03 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.5
2022-09-03 Gregory Heytings <gregory@heytings.org>
Look up keybindings in correct buffer in describe-function.
* lisp/help-fns.el (help-fns--key-bindings): New parameter.
Use it when looking up keybindings.
(describe-function-1): Add the buffer in which the command
was invoked as argument to 'help-fns--key-bindings'.
Fixes bug#57568.
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Fail more gracefully
Otherwise Emacs may fail to start if it can't find a writable
`~/.emacs.d/eln-cache` directory.
Fixes bug#57562. See also Debian's bug #1017739.
2022-09-03 Jeff Walsh <fejfighter@gmail.com>
Update error message to reflect variable rename
* src/comp.c (Fcomp_el_to_eln_filename): Update error message. (Bug#55861)
[ According to the Git metadata, this commit 8436e0bee9cf7a was already
merged from `emacs-28`, yet the code says it was not. :-( ]
2022-09-03 Eli Zaretskii <eliz@gnu.org>
Fix indexing of mouse-wheel events
* doc/emacs/frames.texi (Mouse Commands): Add index entries for
wheel events.
2022-09-03 Eli Zaretskii <eliz@gnu.org>
Revert "* doc/emacs/commands.texi (Mice): Improve indexing."
This reverts commit 1cea0ae4133bb22fd70d483df105e5a4653bc56c.
The index entries it added don't belong to the place where they were
added.
2022-09-03 Mattias Engdegård <mattiase@acm.org>
lisp/emacs-lisp/seq.el: remove unnecessary compatibility code
* lisp/emacs-lisp/seq.el (seq-take, seq--activate-font-lock-keywords):
Simplify unnecessarily guarded code, as this file will only ever be
used with the same version of Emacs.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
* doc/emacs/commands.texi (Mice): Improve indexing.
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/macroexp.el (macroexp--compiler-macro): Soften message
Clarify that the error is "harmless".
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-macs.el: Use `define-symbol-prop` (bug#50869)
(cl-define-compiler-macro, cl-defstruct, cl-deftype): Prefer
`define-symbol-prop` over `put` so `unload-feature` can undo
those definitions.
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/loadhist.el (loadhist-unload-element): Remove auxiliary function info
See bug#50869.
2022-09-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/help-fns.el (find-lisp-object-file-name): Revert last change
2022-09-03 Po Lu <luangruo@yahoo.com>
Improve documentation of scroll wheel event types in new Mice node
* doc/emacs/commands.texi (Mice): Improve documentation of
scroll wheel event types; fix doc for Emacs 29 and describe
horizontal wheel movement.
2022-09-03 Po Lu <luangruo@yahoo.com>
Work around another X server bug in crossing event dispatch
* src/xterm.c (xi_focus_handle_for_device): Clear implicit focus
along with FocusOut. (bug#57468)
(x_mouse_leave): Avoid invalid reads of
dpyinfo->x_focus_event_frame on input extension builds.
2022-09-03 Lars Ingebrigtsen <larsi@gnus.org>
Add a Mice node in the Emacs manual
* doc/emacs/commands.texi (User Input): Don't claim to not
document mouse buttons.
(Mice): New node (bug#50948).
2022-09-03 Philip Kaludercic <philipk@posteo.net>
* subr.el (buffer-match-p): Use 'pcase' (bug#57502)
2022-09-03 Lars Ingebrigtsen <larsi@gnus.org>
Mention M-x list-packages in the Help node in the Emacs manual
* doc/emacs/help.texi (Help): Mention listing packages
(bug#50936).
2022-09-03 Lars Ingebrigtsen <larsi@gnus.org>
Inhibit nativecomp of loaddefs files
* lisp/emacs-lisp/generate-lisp-file.el
(generate-lisp-file-trailer): Allow inhibiting nativecomp.
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
Inhibit native-comp, because it's not very useful for loaddefs files.
2022-09-03 Po Lu <luangruo@yahoo.com>
Work around potential X server bug
* src/xterm.c (handle_one_xevent): Ignore core crossing events
on input extension builds. The X server is not actually
supposed to deliver them to us, and it messes up MPX focus
tracking. (bug#57468)
2022-09-03 Eli Zaretskii <eliz@gnu.org>
Teach 'max-char' about the Unicode code range
* src/character.c (Fmax_char): Accept an optional argument
UNICODE, and, if non-nil, return the maximum codepoint defined by
Unicode.
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Update the
signature of 'max-char'.
* etc/NEWS:
* doc/lispref/nonascii.texi (Character Codes): Update the
documentation of 'max-char'.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
Increase image-dired-show-all-from-dir-max-files to 1000
* lisp/image/image-dired.el
(image-dired-show-all-from-dir-max-files): Increase to 1000.
2022-09-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix image-dired-util.el compile warning
* lisp/image/image-dired-util.el (require): Require for cl-case.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
Add new defgroup image-dired-dired
* lisp/image/image-dired-dired.el
(image-dired-dired-append-when-browsing): Rename from
'image-dired-append-when-browsing'. Update all uses.
(image-dired-dired): New defgroup.
(image-dired-dired-append-when-browsing)
(image-dired-dired-disp-props): Use above new defgroup.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
image-dired: Minor cleanups
* lisp/image/image-dired-dired.el
(image-dired-dired-after-readin-hook, image-dired-minor-mode):
Minor doc fixes.
(image-dired-dired-display-image): Don't accept ineffectual prefix
argument.
* lisp/image/image-dired-util.el
(image-dired-file-name-at-point): Use when-let.
(image-dired-display-thumb-properties): Redefine as obsolete function
alias for 'image-dired-update-header-line'.
* lisp/image/image-dired-util.el
(image-dired-window-width-pixels): Make obsolete in favor of
window-body-width.
* lisp/image/image-dired.el (image-dired-line-up-dynamic)
(image-dired-display-window-width): Don't use above obsolete function.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
image-dired: Prefer defvar-keymap
* lisp/image/image-dired-dired.el (image-dired-minor-mode-map):
* lisp/image/image-dired.el
(image-dired-thumbnail-mode-line-up-map)
(image-dired-thumbnail-mode-tag-map)
(image-dired-thumbnail-mode-map)
(image-dired-display-image-mode-map): Prefer defvar-keymap.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
Add new defgroup image-dired-external
* lisp/image/image-dired-external.el (image-dired-external): New
defgroup.
(image-dired-cmd-create-thumbnail-program)
(image-dired-cmd-create-thumbnail-options)
(image-dired-cmd-pngnq-program, image-dired-cmd-pngnq-options)
(image-dired-cmd-pngcrush-program)
(image-dired-cmd-pngcrush-options)
(image-dired-cmd-optipng-program)
(image-dired-cmd-optipng-options)
(image-dired-cmd-create-standard-thumbnail-options)
(image-dired-cmd-rotate-original-program)
(image-dired-cmd-rotate-original-options)
(image-dired-temp-rotate-image-file)
(image-dired-rotate-original-ask-before-overwrite)
(image-dired-cmd-write-exif-data-program)
(image-dired-cmd-write-exif-data-options): Use above new defgroup.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
image-dired: Make HTML gallery generation obsolete
* lisp/image/image-dired.el (image-dired-gallery): Delete
defgroup again.
(image-dired-gallery-dir, image-dired-gallery-image-root-url)
(image-dired-gallery-thumb-image-root-url)
(image-dired-gallery-hidden-tags, image-dired-tag-file-list)
(image-dired-file-tag-list, image-dired--add-to-tag-file-lists)
(image-dired--add-to-file-comment-list)
(image-dired--create-gallery-lists, image-dired--hidden-p)
(image-dired-gallery-generate): Make obsolete.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
image-dired: Do more interactive mode tagging
* lisp/image/image-dired-dired.el
(image-dired-dired-toggle-marked-thumbs)
(image-dired-next-line-and-display)
(image-dired-previous-line-and-display)
(image-dired-toggle-append-browsing)
(image-dired-mark-and-display-next)
(image-dired-toggle-dired-display-properties)
(image-dired-dired-next-line, image-dired-dired-previous-line)
(image-dired-create-thumbs, image-dired-display-thumbs-append)
(image-dired-display-thumb, image-dired-dired-display-external)
(image-dired-dired-display-image)
(image-dired-copy-with-exif-file-name, image-dired-mark-tagged-files)
(image-dired-dired-display-properties):
* lisp/image/image-dired-external.el
(image-dired-thumbnail-set-image-description):
* lisp/image/image-dired-tags.el (image-dired-tag-files)
(image-dired-tag-thumbnail, image-dired-delete-tag)
(image-dired-tag-thumbnail-remove)
(image-dired-dired-comment-files)
(image-dired-dired-edit-comment-and-tags):
* lisp/image/image-dired.el (image-dired-display-thumbs)
(image-dired-track-original-file)
(image-dired-toggle-movement-tracking)
(image-dired-forward-image, image-dired-backward-image)
(image-dired-line-up, image-dired-line-up-dynamic)
(image-dired-line-up-interactive)
(image-dired-thumbnail-display-external)
(image-dired-display-thumbnail-original-image)
(image-dired-rotate-original-left)
(image-dired-rotate-original-right)
(image-dired-comment-thumbnail, image-dired-delete-marked)
(image-dired-rotate-thumbnail-left)
(image-dired-rotate-thumbnail-right): Do interactive mode tagging.
* lisp/image/image-dired.el (image-dired-delete-marked): Signal error
if not in image-dired-thumbnail-mode.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
Split image-dired.el into several files (part 2/2)
Use a git trick to split a file while preserving line history (for
"git blame", "git log --follow", etc.):
1) Make exact copies of the original file, in the same commit as
moving it.
2) Next, trim down the extra copies to contain only the relevant
parts. [this commit]
* lisp/image-dired.el:
* lisp/image/image-dired-dired.el:
* lisp/image/image-dired-external.el:
* lisp/image/image-dired-tags.el:
* lisp/image/image-dired-util.el:
* lisp/image/image-dired.el: Trim files down to keep only one copy of
each definition.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
Split image-dired.el into several files (part 1/2)
Use a git trick to split a file while preserving line history (for
"git blame", "git log --follow", etc.):
1) Make exact copies of the original file, in the same commit as
moving it. [this commit]
2) Next, trim down the extra copies to contain only the relevant
parts.
* lisp/image-dired.el: Move from here...
* lisp/image/image-dired-dired.el:
* lisp/image/image-dired-external.el:
* lisp/image/image-dired-tags.el:
* lisp/image/image-dired-util.el:
* lisp/image/image-dired.el: ...to here.
* test/lisp/image-dired-tests.el: Move from here...
* test/lisp/image/image-dired-tests.el: ...to here.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
Make "rlogin" method obsolete in url*.el
* lisp/url/url-about.el (url-probe-protocols): Remove "rlogin".
* lisp/url/url-gw.el (url-gateway-rlogin-host)
(url-gateway-rlogin-user-name, url-gateway-rlogin-parameters)
(url-open-rlogin): Make obsolete. (Bug#56891)
(url-open-stream):
* lisp/url/url-misc.el (url-do-terminal-emulator): Warn when using
"rlogin".
(url-rlogin): Make obsolete.
* lisp/url/url-vars.el (url-gateway-method): Remove "rlogin"
choice.
* lisp/url/url-gw.el (url-gw-rlogin-obsolete-warned-once)
* lisp/url/url-misc.el (url-misc-rlogin-obsolete-warned-once): New
variables, immediately marked obsolete.
* doc/misc/url.texi (telnet/tn3270): Rename section from
"rlogin/telnet/tn3270".
(Gateways in general, Customization): Don't mention "rlogin"
method.
2022-09-03 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
d89e65c638 Update acknowledgments
2022-09-02 Stefan Kangas <stefankangas@gmail.com>
Update acknowledgments
* doc/emacs/ack.texi (Acknowledgments): Update.
* doc/emacs/emacs.texi (Acknowledgments): Add several names from
Author: headers.
2022-09-02 Stefan Kangas <stefankangas@gmail.com>
Make some versions in docs match package version
* doc/emacs/misc.texi (Interactive Shell): Bump Emacs version.
* doc/misc/ediff.texi:
* doc/misc/flymake.texi:
* doc/misc/viper.texi: Fix version to match package.
* lisp/emulation/viper.el: Make version match variable.
2022-09-02 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
917da2641e Minor doc fix; improve sorting of VC backends
89695bce3e Clarify the doc string of 'set-face-attribute'
2022-09-02 Gregory Heytings <gregory@heytings.org>
Display a warning for some uses of nil in face attributes.
* src/xfaces.c (HANDLE_INVALID_NIL_VALUE): New macro, which displays
a warning for invalid uses of nil as a face attribute value.
(Finternal_set_lisp_face_attribute): Use the macro for the attributes
:foreground, :distant-foreground and :background.
2022-09-02 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/help-fns.el: Minor fixes
(describe-mode--minor-modes): Don't burp on minor modes that lack a docstring.
(describe-mode--minor-modes): Simplify eta-redex.
(find-lisp-object-file-name): Use `autoload-file`.
(help-fns--describe-function-or-command-prompt): Allow the user to
insist on choosing a function even if it appears not to exist.
2022-09-02 Robert Pluim <rpluim@gmail.com>
Use `format-prompt' in `describe-char-fold-equivalences'
* lisp/char-fold.el (describe-char-fold-equivalences): Use `format-prompt'.
2022-09-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix define-minor-mode :keymap obsoletion warning
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Fix some
warning.
2022-09-02 Stefan Kangas <stefan@marxist.se>
Make minibuffer-eldef-shorten-default obsolete
* lisp/minibuf-eldef.el (minibuffer-eldef-shorten-default): Make
variable obsolete in favor of 'minibuffer-default-prompt-format'.
* doc/emacs/mini.texi (Basic Minibuffer): Delete above obsolete
variable (bug#50935).
2022-09-02 Lars Ingebrigtsen <larsi@gnus.org>
Default show-paren-mode to off in special-mode buffers
* doc/emacs/programs.texi (Matching): Mention the new user option.
* doc/misc/efaq.texi (Matching parentheses): Adjust text to the
current state of affairs.
* lisp/paren.el (show-paren-function): New user option (bug#50894).
(show-paren-mode): Mention it.
(show-paren-function): Use it.
2022-09-02 Lars Ingebrigtsen <larsi@gnus.org>
Clean up ispell "look"-related variables
* lisp/textmodes/ispell.el (ispell-look-p): Make obsolete.
(ispell-lookup-words): Look up the look command at run time
instead (bug#50852).
(ispell-have-new-look): Make obsolete.
(ispell-look-options): Adjust. Apparently the version of "look"
that had a "-r" (regexp interface) never took off -- it's not
present in GNU/Linux or Macos, at least, as far as we can tell.
2022-09-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix quotes in mailcap-add-mailcap-entry doc string
* lisp/net/mailcap.el (mailcap-add-mailcap-entry): Fix usage of
quotes.
2022-09-02 Felix Dietrich <felix.dietrich@sperrhaken.name>
Restructure mailcap-add-mailcap-entry
* lisp/net/mailcap.el (mailcap-add-mailcap-entry):
Restructure mailcap-add-mailcap-entry to improve readability.
2022-09-02 Felix Dietrich <felix.dietrich@sperrhaken.name>
Add tests for mailcap-add-mailcap-entry
* test/lisp/net/mailcap-tests.el:
Add tests for mailcap-add-mailcap-entry
2022-09-02 Robert Pluim <rpluim@gmail.com>
Use frame-monitor-attributes in gamegrid
* lisp/play/gamegrid.el (gamegrid-calculate-glyph-size): Use
`frame-monitor-attributes' to get the frame attributes directly
instead of iterating over `display-monitor-attributes-list'.
2022-09-02 Po Lu <luangruo@yahoo.com>
Prevent crashes when embedding Emacs in a nonexistent parent
* src/xfns.c (x_window, Fx_create_frame): Handle X errors while
trying to reparent the frame onto an explicitly specified
parent.
* src/xterm.c (handle_one_xevent): Handle unparenting embedded
windows correctly. This only works if the embedder is aware of
the fixes extension and has put the window into the right save
set.
(x_embed_frame): New function.
* src/xterm.h (FRAME_X_EMBEDDED_P): Fix coding style.
2022-09-02 Robert Pluim <rpluim@gmail.com>
Make single char entry easier for `describe-char-fold-equivalences'
* lisp/char-fold.el (describe-char-fold-equivalences): Improve
docstring. Pass t for 'allow-single' arg in call to
`read-char-by-name' so that single characters can be entered directly.
2022-09-02 Robert Pluim <rpluim@gmail.com>
Allow easy entry of single chars in `read-char-by-name'
* lisp/international/mule-cmds.el (read-char-by-name): Add optional
'allow-single' argument, meaning to accept single chars as themselves.
2022-09-02 Fabrice Bauzac-Stehly <noon@mykolab.com>
ldap-host-parameters-alist: Add auth-source option
* lisp/net/ldap.el (ldap-host-parameters-alist): Add auth-source
to checklist.
2022-09-01 Jim Porter <jporterbugs@gmail.com>
Under no-X builds, allow any value for 'fringe-bitmap' options
* lisp/cus-edit.el (fringe-bitmap): Always match under no-X.
2022-09-01 Po Lu <luangruo@yahoo.com>
Fix bug#57476 for Xt builds
* src/xterm.c (handle_one_xevent): Add similar event mode check
to code under USE_X_TOOLKIT conditional. (bug#57476)
2022-09-01 Lars Ingebrigtsen <larsi@gnus.org>
Make easy-mmode-define-keymap obsolete
* lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-keymap): Make
obsolete.
(define-minor-mode): Add comment.
2022-09-01 Lars Ingebrigtsen <larsi@gnus.org>
Make easy-mmode-defmap obsolete and adjust only caller
* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap): Make obsolete.
* lisp/progmodes/gud.el (gud-menu-map): Use easy-menu-define.
2022-09-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix outline-minor-mode-map
* lisp/outline.el (outline-minor-mode): Avoid using
easy-mmode-define-keymap, since it doesn't handle :inherit
correctly (bug#57512).
2022-09-01 Daanturo <daanturo@gmail.com>
Make file-parent-directory more efficient
* lisp/files.el (file-parent-directory): Use equal instead of
file-equal-p to compare the found parent and the child
(bug#56355). This is much faster.
2022-09-01 Stefan Kangas <stefankangas@gmail.com>
Minor doc fix; improve sorting of VC backends
* doc/emacs/maintaining.texi (Version Control Systems): Minor doc fix;
rearrange list to put git, cvs and subversion at the top.
2022-09-01 Eli Zaretskii <eliz@gnu.org>
Clarify the doc string of 'set-face-attribute'
* lisp/faces.el (set-face-attribute): Clarify the issue with
resetting attribute values to 'unspecified' for future frames.
(Bug#57499)
2022-09-01 Mattias Engdegård <mattiase@acm.org>
Better `take` and `ntake` bignum argument handling
* src/fns.c (Ftake, Fntake): Treat positive bignum arguments
as most-positive-fixnum which results in better error checking
of improper lists.
2022-09-01 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
8807a4f532 Enable 256 colors in fbterm.
bbc23ca8ab One more fix for find-file.el
0cbcaf5119 ; Yet another doc fix for 'ff-other-file-alist' (bug#57325)
2d9a391727 Recommend using fbterm in the Linux console.
a5a92e577c ; * src/window.c (syms_of_window) <window-point-insertion-...
4d52fe6b96 * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#...
d111b5b651 * lisp/info.el (Info-mode): Support the Linux console better.
cc945ec0ed ; Fix doc strings in latin1-disp.el
195fcc932e Improve the documentation of glyphless-character display
72ae02377e ; * lisp/jit-lock.el (jit-lock-chunk-size): Doc fix.
3fb69fad49 Fix documentation of 'glyphless-char-display'
# Conflicts:
# lisp/international/characters.el
# src/xdisp.c
2022-09-01 Stefan Kangas <stefankangas@gmail.com>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-08-25 13:54:14 UTC.
2022-08-31 Jim Porter <jporterbugs@gmail.com>
Don't fail Eshell ERT tests when an internal signal gets raised
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/pipeline-connection-type/middle)
(esh-proc-test/pipeline-connection-type/last): Set 'debug-on-error' to
nil.
Ref: https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg01452.html
2022-08-31 Alan Mackenzie <acm@muc.de>
C++ Mode: Fontify functions correctly with commas in template expressions
This fixes bug #57318.
Also apply an optimization which marks generic expressions as already
analyzed, thus avoiding repeating this analysis when not needed. This
optimization prevents the fix slowing down scrolling when the C++ source has
lots of template structures.
* lisp/progmodes/cc-engine.el (top-level) Near the beginning of the file, add
a comment describing the new text property c-<>-c-types-set.
(c-update-brace-stack): Bind c-restricted-<>-arglists to nil rather than t
around the call to c-forward-<>-arglist.
(c-forward-<>-arglist-recur): Allow the abbreviated analysis of a generic
expression also when the opening < is marked with a c-<>-c-types-set text
property. Set this property at the same time as the c-type properties are set
on the commas inside the template structure.
* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Clear the
c-<>-c-types-set text property, along with c-type, from the region being
fontified.
2022-08-31 Robert Pluim <rpluim@gmail.com>
Fix describe-char-fold-equivalences for composed characters
* lisp/char-fold.el (describe-char-fold-equivalences): Map
`get-char-code-property' across all the component codepoints of the
equivalent character rather than just the first one.
2022-08-31 ookami <mail@ookami.one> (tiny change)
Fix semantic-find-file-noselect binding of recentf-exclude
* lisp/cedet/semantic/fw.el (semantic-find-file-noselect):
recentf-exclude should be a list (bug#57489).
2022-08-30 Po Lu <luangruo@yahoo.com>
Gently nudge Xt into always setting size hints
* src/widget.c (update_wm_hints): Force a resource to change
every time this function is called. (bug#57475)
(EmacsFrameInitialize): Initialize new field.
* src/widgetprv.h (EmacsFramePart): New field `size_switch'.
* src/xterm.c (x_wm_set_size_hint): Don't change flags if flags
is 0.
2022-08-30 Po Lu <luangruo@yahoo.com>
Fix bug#57476
* src/xterm.c (handle_one_xevent): Don't reset valuators on certain
crossing events, for the benefit of xfwm4. (bug#57476)
2022-08-30 Stefan Monnier <monnier@iro.umontreal.ca>
t-mouse.el: Make sure we apply the setting to new terminals
* lisp/t-mouse.el (gpm-mouse-tty-setup): New function.
(gpm-mouse-mode): Use it as well as `tty-setup-hook`.
* lisp/term/linux.el (terminal-init-linux): Remove gpm-specific code,
not neded any more.
2022-08-30 Gregory Heytings <gregory@heytings.org>
Enable 256 colors in fbterm.
* lisp/term/fbterm.el: New file.
* doc/misc/efaq.texi (Emacs in a Linux console): Document the TERM
environment variable with which the new file is used.
2022-08-30 Juri Linkov <juri@linkov.net>
Fix 744ed0ceeed7472a160fea7154939cf641205577 from bug#57082 (bug#57176)
* lisp/outline.el (outline-minor-mode-highlight-buffer): Handle 'append'.
(outline-minor-mode): Call outline--fix-up-all-buttons when font-lock is used.
* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Fix regexp.
2022-08-30 Eli Zaretskii <eliz@gnu.org>
One more fix for find-file.el
* lisp/find-file.el (ff-get-file-name): Use 'expand-file-name'
instead of 'concat', which doesn't DTRT with absolute file names.
(ff-other-file-alist): Yet another doc fix. (Bug#57325)
2022-08-30 Mattias Engdegård <mattiase@acm.org>
Accept bignum arguments in `take` and `ntake`
* src/fns.c (Ftake, Fntake): Accept any integer as first argument, for
completeness.
* test/src/fns-tests.el (fns--take-ntake): Add test cases.
2022-08-30 Po Lu <luangruo@yahoo.com>
Fix junk data being returned with incremental selection transfers
* src/xselect.c (receive_incremental_selection): New arg
REAL_BYTES_RET. Set it to the actual size instead of using the
size of the array after it was grown by xpalloc.
(x_get_window_property_as_lisp_data): Adjust call to
receive_incremental_selection.
2022-08-30 Philip Kaludercic <philipk@posteo.net>
* package-vc.el (package-vc-unpack): Fix 'vc-ignore' call
When generating the manual node (/dir), we need to ensure that the
default-directory is set to the package root, otherwise the file is
ignored in some other repository, that probably doesn't exist.
2022-08-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix char-fold compilation warning
* lisp/char-fold.el (require): Get string-join definition.
2022-08-30 Juri Linkov <juri@linkov.net>
* lisp/char-fold.el (describe-char-fold-equivalences): New command.
(char-fold--no-regexp): New internal variable.
(char-fold--make-table): Use it to skip translation to regexp.
Suggested by Robert Pluim <rpluim@gmail.com>.
https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00864.html
2022-08-29 Jim Porter <jporterbugs@gmail.com>
Handle 'eshell-pipe-broken' when evaluating Lisp forms in Eshell
* lisp/eshell/esh-cmd.el (eshell-exec-lisp): Handle
'eshell-pipe-broken'.
* lisp/eshell/esh-io.el (eshell-output-object-to-target): Only signal
'eshell-pipe-broken' if the process being written to has finished.
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/pipeline-connection-type/middle)
(esh-proc-test/pipeline-connection-type/last): Remove ':unstable'.
Ref: https://lists.gnu.org/archive/html/emacs-devel/2022-08/msg00524.html
2022-08-29 Gregory Heytings <gregory@heytings.org>
Recommend using fbterm in the Linux console.
* doc/misc/efaq.texi (Emacs in a Linux console): New node.
(Common requests): Entry for the new node.
* etc/PROBLEMS (Linux console problems...): Mention the new FAQ node.
2022-08-29 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Merge remote-tracking branch 'origin/master' into feature/tree-sitter
2022-08-29 Stefan Kangas <stefankangas@gmail.com>
Improve point-at-{bol,eol} obsoletion message
* lisp/subr.el (point-at-eol, point-at-bol): Mention 'pos-eol' and
'pos-bol' in obsoletion message.
2022-08-29 Mattias Engdegård <mattiase@acm.org>
Fix reader memory leak upon error (bug#56623)
Reported by Tom Gillespie; error found by Greg Hendershott.
* src/lread.c (read_stack_reset): New.
(read0): Reset read stack when unwinding from an error.
2022-08-29 Jake Moss <jake.moss@uq.net.au> (tiny change)
Show gdb-mi disassembly over tramp
* lisp/progmodes/gdb-mi.el (gdb-invalidate-disassembly): Show
gdb-mi disassembly over tramp (bug#57464).
2022-08-29 Lars Ingebrigtsen <larsi@gnus.org>
Work around `&' dired command when using the fish shell
* lisp/dired-aux.el (dired-shell-stuff-it): Add a space before
&wait; this apparently makes the `&' command work with the fish
shell (bug#57472).
2022-08-29 Eli Zaretskii <eliz@gnu.org>
* lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#57325)
2022-08-29 Eli Zaretskii <eliz@gnu.org>
Fix point adjustment in recreated *Messages* buffers
* lisp/startup.el (normal-top-level): Move setting of
'window-point-insertion-type' from here...
* lisp/simple.el (messages-buffer-mode): ...to here. This is so
any *Messages* buffers we create instead of the original one, if
it's killed, will have the same type of the window-point marker.
(Bug#57466)
2022-08-29 Stefan Monnier <monnier@iro.umontreal.ca>
* src/keyboard.c (safe_run_hooks*): Simplify and generalize
(safe_run_hooks_1, safe_run_hook_funcall): Simplify and generalize to
arbitrary `nargs`.
(safe_run_hooks_error): Remove unneeded assertion.
2022-08-29 Michael Albinus <michael.albinus@gmx.de>
Do not connect unreachable remote hosts in recentf
* lisp/recentf.el (recentf-expand-file-name): Protect against
stalled remote hosts. (Bug#57336)
2022-08-29 Po Lu <luangruo@yahoo.com>
Unify floating point handling when reading XI motion events
* src/xterm.c (handle_one_xevent): Always round values as
recommended, instead of just truncating them. Also fixes
weird "jitter" during drag-and-drop on some clients.
2022-08-28 Juri Linkov <juri@linkov.net>
'C-c C-d' on vc-log buffer shows the diff from 'vc-log-fileset' (bug#52349)
* lisp/vc/log-edit.el (log-edit-diff-fileset): New function.
* lisp/vc/vc-dispatcher.el (vc-log-edit): Set log-edit-diff-function to
log-edit-diff-fileset instead of vc-diff.
* lisp/vc/vc.el (vc-diff): New optional arg fileset.
If non-nil, use instead of vc-deduce-fileset.
2022-08-28 Juri Linkov <juri@linkov.net>
'C-x v v' on a diff buffer commits it as a patch (bug#52349)
* lisp/vc/diff-mode.el (diff-vc-deduce-fileset): New function.
* lisp/vc/log-edit.el (log-edit-diff-patch): New function.
* lisp/vc/vc-dispatcher.el (vc-log-edit): Set log-edit-diff-function
to log-edit-diff-patch when vc-patch-string is non-nil.
(vc-start-logentry): New optional arg 'patch-string'.
Set buffer-local 'vc-patch-string' to 'patch-string'.
(vc-dispatcher-browsing): Add (derived-mode-p 'diff-mode).
* lisp/vc/vc-git.el (vc-git-checkin-patch): New function.
(vc-git-checkin): When vc-git-patch-string is non-nil,
use `git apply --cached` to add the patch to the index,
then commit the staged changes.
* lisp/vc/vc.el: New backend function 'checkin-patch'.
(vc-deduce-fileset-1): Call diff-vc-deduce-fileset in diff-mode.
(vc-next-action): For model 'patch' call vc-checkin with the
diff buffer string.
(vc-checkin): New optional arg 'patch-string'.
Call backend function 'checkin-patch' when 'patch-string' is non-nil.
Call vc-start-logentry with 'patch-string'.
(vc-diff-patch-string): New function.
2022-08-28 Juri Linkov <juri@linkov.net>
Revert parts of 3f076a8e44 that caused test failures
* lisp/simple.el (line-move-finish):
* lisp/window.el (scroll-command--goto-goal-column):
Revert back to using truncate-partial-width-windows instead of
truncated-partial-width-window-p. This change caused test failures
in lisp/ls-lisp-tests.log and lisp/emacs-lisp/edebug-tests.log.
2022-08-28 Ken Brown <kbrown@cornell.edu>
Fix data for files-tests-bug-21454 on Cygwin
* test/lisp/files-tests.el (files-tests-bug-21454): Fix test data
to reflect the fact that Cygwin supports UNC paths.
2022-08-28 Eli Zaretskii <eliz@gnu.org>
* lisp/info.el (Info-mode): Support the Linux console better.
2022-08-28 Eli Zaretskii <eliz@gnu.org>
Improve the documentation of glyphless-character display
* lisp/international/characters.el (glyphless-char-display-control):
* src/xdisp.c (syms_of_xdisp) <glyphless-char-display>: Mention
the 'glyphless-char' face in the doc string.
* doc/lispref/display.texi (Glyphless Chars): Index
'glyphless-char' face.
2022-08-28 Po Lu <luangruo@yahoo.com>
Fix two issues in xterm.c
* src/xterm.c (x_atom_refs): Make EMACS_SERVER_TIME_PROP atom
have a vendor-specific prefix.
(x_query_pointer_1): Fix leak of button mask.
2022-08-27 Juri Linkov <juri@linkov.net>
Use truncated-partial-width-window-p in more places (bug#56815)
* lisp/simple.el (line-move, line-move-finish):
Use truncated-partial-width-window-p.
* lisp/window.el (count-screen-lines, scroll-command--goto-goal-column):
Use truncated-partial-width-window-p.
(truncated-partial-width-window-p): Replace window-width with
window-total-width.
* src/indent.c (scan_for_column): Bring the logic of using
truncated-partial-width-window-p closer to what the display engine does.
2022-08-27 Juri Linkov <juri@linkov.net>
Use a list of text properties to search in symlink filenames in Wdired
* lisp/dired-aux.el (dired-isearch-search-filenames):
Use text properties 'dired-filename' and 'dired-symlink-filename'.
* lisp/dired.el (dired-font-lock-keywords): Add text property
'dired-symlink-filename' on symlinks.
* lisp/isearch.el (isearch-search-fun-in-text-property):
Support a list of text properties (bug#57293).
2022-08-27 Lars Ingebrigtsen <larsi@gnus.org>
Make dynamic info-lookup more backwards-compatible
* lisp/info-look.el (info-lookup--expand-info): Don't try to
expand elements that aren't functions (bug#57446).
2022-08-27 Daniel Martín <mardani29@yahoo.es>
Fix webp detection on some Macos systems
* configure.ac (HAVE_RSVG): Make webp detection work with Macos
10.3/Homebrew (bug#57420).
2022-08-27 Eli Zaretskii <eliz@gnu.org>
Fix regression with cursor motion in Magit buffers
* lisp/simple.el (line-move): Condition movement optimizations on
presence of very long lines. (Bug#57433)
2022-08-27 Eli Zaretskii <eliz@gnu.org>
Fix antialias face attribute when text is scaled
This restores the code we had in realize_gui_face before commit bf0d3f7.
The problem described in bug#17973, which led to that commit, only
happens if one uses a specific (misc-fixed) font family, not for
the usual default fonts used by Emacs, and I'm not sure what's
described there is a bug at all. At least for the purposes of
text-scale-adjust, it makes no sense to ignore the
foundry/family/adstyle of the original font, because we _want_ the
same (or very similar) font, just of a different size.
And likely in other use cases: if the :font attribute of a face
specifies some font properties, we want to keep them all, not
arbitrarily to ignore some of them. And definitely catering to an
obscure use case such as the one cited in bug#17973 is NOT a good
reason to make such radical changes in face-realization behavior.
So I think backing out that part of commit bf0d3f7 is TRT, and if
we decide that this causes bug#17973 in too many situations we care
about, I'd rather find a kludge for that specific case than do that
for every face realization.
* src/xfaces.c (realize_gui_face): Preserve face attributes when
text is scaled. This reverts part of the changes installed in
commit bf0d3f7. (Bug#37473)
2022-08-27 Alan Mackenzie <acm@muc.de>
CC Mode: Remove double evaluation of self-quoting function in cc-langs.el
This is a followup to Stefan Monnier's fix for bug #57065 from 2022-08-25.
* lisp/progmodes/cc-langs.el (c-init-language-vars): Add a #' after the
funcall.
2022-08-27 Eli Zaretskii <eliz@gnu.org>
Support "replacement characters" on TTY frames
* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground):
* src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground):
* src/haikuterm.c (haiku_draw_glyphless_glyph_string_foreground):
* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
* src/w32term.c (w32_draw_glyphless_glyph_string_foreground):
* src/xdisp.c (lookup_glyphless_char_display): Handle extra-slot
of 'glyphless-char-display' that is a cons cell.
(syms_of_xdisp) <glyphless-char-display>: Update doc string.
* etc/NEWS:
* doc/lispref/display.texi (Glyphless Chars): Document the new
feature.
* lisp/faces.el (glyphless-char): Make the face stand out on TTY
frames that don't support the underline attribute.
2022-08-27 Eli Zaretskii <eliz@gnu.org>
Fix documentation of 'glyphless-char-display'
* src/xdisp.c (syms_of_xdisp)<glyphless-char-display>: Doc fix.
(gui_produce_glyphs, lookup_glyphless_char_display): Fix
indentation.
2022-08-26 Po Lu <luangruo@yahoo.com>
Fix crash when handling "swallowed" generic events
* src/xmenu.c (x_menu_translate_generic_event, x_menu_show):
Pass through more events, correctly.
* src/xterm.c (handle_one_xevent): Don't abort if must_free_data
and xi_event is NULL; this is an Xlib bug.
2022-08-26 Dmitry Gutov <dgutov@yandex.ru>
xref-matches-in-files: Use with-connection-local-variables
* lisp/progmodes/xref.el (xref-matches-in-files):
Use with-connection-local-variables (bug#57385).
2022-08-26 Stefan Kangas <stefankangas@gmail.com>
Use shr as default for mm-text-html-renderer
* lisp/gnus/mm-decode.el (mm-text-html-renderer): Use 'shr' as
default to avoid a nil value.
Problem reported by Mattias Engdegård <mattiase@acm.org>.
2022-08-26 Lars Ingebrigtsen <larsi@gnus.org>
Clarify the :box attributes in Face Attributes lispref node
* doc/lispref/display.texi (Face Attributes): Mention that the
elements are optional (bug#50699).
2022-08-26 Alan Mackenzie <acm@muc.de>
CC Mode: Fontify correctly a brace list element followed only
by syntactic WS
This fixes a regression introduced in the fix for bug #56841
on 2022-08-24.
* lisp/progmodes/cc-engine.el (c-forward-declarator): Allow
point to be at EOB after the call to c-forward-name, rather
than rejecting it as an invalid declarator. Also reindent
a section of this function.
2022-08-26 Michael Albinus <michael.albinus@gmx.de>
Use `rx' in Tramp where possible
* lisp/net/tramp.el:
* lisp/net/tramp-adb.el:
* lisp/net/tramp-archive.el:
* lisp/net/tramp-cache.el:
* lisp/net/tramp-cmds.el:
* lisp/net/tramp-compat.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-ftp.el:
* lisp/net/tramp-fuse.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-rclone.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-sudoedit.el: Use `rx' where possible.
* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-times):
Use `eval-when-compile'.
(tramp-adb-maybe-open-connection): Use file-property for "/". Use
`eval-when-compile'.
* lisp/net/tramp-cmds.el (mm-7bit-chars): Declare.
(tramp-reporter-dump-variable): Simplify point movement.
* lisp/net/tramp-gvfs.el (tramp-dbus-function): Fix typo.
(tramp-zeroconf-parse-device-names): Use `tramp-prefix-port-format'.
* lisp/net/tramp-sh.el (tramp-open-shell, tramp-find-shell):
Use `eval-when-compile'. Improve sanity check.
* lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp)
(tramp-method-regexp, tramp-postfix-method-format)
(tramp-postfix-method-regexp, tramp-prefix-ipv6-format)
(tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format)
(tramp-postfix-ipv6-regexp, tramp-postfix-host-format)
(tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp)
(tramp-file-name-structure, tramp-file-name-regexp)
(tramp-completion-method-regexp)
(tramp-completion-file-name-regexp): Declare.
(tramp-set-syntax): Set also `tramp-completion-method-regexp'.
(tramp-volume-letter-regexp, tramp-completion-method-regexp-alist):
New defconsts.
(tramp-build-completion-method-regexp): New defun.
(tramp-completion-method-regexp): New defvar.
(tramp-completion-file-name-regexp-default)
(tramp-completion-file-name-regexp-simplified)
(tramp-completion-file-name-regexp-separate)
(tramp-completion-file-name-regexp-alist): Remove.
(tramp-build-completion-file-name-regexp): Rwrite.
(tramp-make-tramp-file-name): Use `tramp-archive-method'.
(tramp-handle-file-directory-p): Ignore errors.
(tramp-handle-find-backup-file-name, tramp-handle-lock-file)
(tramp-handle-make-auto-save-file-name): Use `eval-when-compile'.
* test/lisp/net/tramp-archive-tests.el:
* test/lisp/net/tramp-tests.el: Use `rx' where possible.
(tramp-test01-file-name-syntax): Adapt test.
2022-08-26 Lars Ingebrigtsen <larsi@gnus.org>
Make the *Ido COmpletions* buffer fit the window to the buffer
* lisp/ido.el (ido-completion-help): Display the ido completions
buffer pretty much the same way that the default *Completions*
buffer is displayed (bug#50671). This means that we're defaulting
to fit-window-to-buffer.
2022-08-26 Augusto Stoffel <arstoffel@gmail.com>
New option 'thrifty' for Man-notify-method
* lisp/man.el (Man-notify-when-ready): Accept new 'thrifty' notify
method.
(Man-notify-method): Explain what 'thrifty' does (bug#57408).
2022-08-26 Lars Ingebrigtsen <larsi@gnus.org>
Delete blank lines at the start of the cited text in message-indent-citation
* lisp/gnus/message.el (message-indent-citation): Fix thinko in
the fix for the previous thinko.
2022-08-26 Basil L. Contovounesios <contovob@tcd.ie>
Fix recent gamegrid.el change for nox build
* lisp/play/gamegrid.el (gamegrid-make-glyph): Declare
image-scaling-factor as special before dynamically binding it, for
the sake of --without-x builds which do not preload lisp/image.el.
2022-08-26 Basil L. Contovounesios <contovob@tcd.ie>
Pacify obsolete gv warnings in xt-mouse-tests.el
* test/lisp/xt-mouse-tests.el (with-xterm-mouse-mode): Replace
deprecated generalized variables frame-width and frame-height with
direct calls to set-frame-width and set-frame-height, respectively.
2022-08-26 Jim Porter <jporterbugs@gmail.com>
Kill the buffer for the temp file after using '$<command>' in Eshell
* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Kill the temp
file's buffer when we're done.
Ref: https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-08/msg01444.html
2022-08-26 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
e3b8577525 ; * etc/DEBUG: Fix wording of "X protocol errors" section.
2022-08-26 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
9e03e29c4e * lisp/wdired.el: Improve "Commentary" section.
92e90297f9 * lisp/wdired.el: Doc fix; don't mention obsolete variable.
2ccefef4c7 * lisp/progmodes/etags.el (next-file): Minor doc fix.
2022-08-25 Po Lu <luangruo@yahoo.com>
Restore old code in x_sync_trigger_fence
* src/xterm.c (x_sync_trigger_fence): Restore old code, since that
makes it easier to adapt to more than 2 sync fences (which might be
necessary in the future, if we ever decide to do frame handling
asynchronously), and is much more recognizable for people coming from
other programs.
2022-08-25 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
2022-08-25 Paul Eggert <eggert@cs.ucla.edu>
Fix overflows in HAVE_XSYNC timestamp handling
Also, port to platforms lacking CLOCK_MONOTONIC and int64_t, and
use 0 more consistently to represent missing timestamps.
* src/xterm.h (struct x_display_info):
Omit server_time_monotonic_p and server_time_offset if
!HAVE_CLOCK_GETTIME since they are unused in that case.
* src/xterm.h (struct x_display_info, struct x_output):
* src/xterm.c (x_sync_get_monotonic_time)
(x_sync_current_monotonic_time, x_sync_note_frame_times):
Use int_fast64_t instead of int64_t as POSIX doesn't
guarantee the latter. Similarly for uint_fast64_t.
(x_sync_get_monotonic_time, x_sync_current_monotonic_time)
(x_sync_note_frame_times, x_display_set_last_user_time):
Check for integer overflow in time arithmetic.
(CLOCK_MONOTONIC): Define to CLOCK_REALTIME if absent.
(x_sync_current_monotonic_time): Check for clock_gettime failure
and fall back on CLOCK_REALTIME if CLOCK_MONOTONIC does not work,
which POSIX allows.
(x_sync_current_monotonic_time, x_sync_note_frame_times)
(x_display_set_last_user_time):
Use 0 more consistently to represent missing timestamps.
2022-08-25 Paul Eggert <eggert@cs.ucla.edu>
Fix unlikely core dump with Xaw
* lwlib/lwlib-Xaw.c (make_dialog): Dont dump core if calloc fails.
Caught with --enable-gcc-warnings.
2022-08-25 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/progmodes/cc-langs.el (c-make-no-parens-syntax-table): Fix bug#57065
(c-lang-const c-make-mode-syntax-table) already returns a function,
so quote it to avoid double evaluation since it could fail if the
function is not self-evaluating, such as when it's a symbol or
a value of the form (closure ...).
2022-08-25 Stefan Kangas <stefankangas@gmail.com>
Improve explanation of init file in FAQ
* doc/misc/efaq.texi (Setting up a customization file): Improve
and update section to reflect current behavior. Add
cross-references back to this section.
* doc/emacs/custom.texi (Init File): Add comment to remind about
also updating the FAQ.
Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg01056.html
2022-08-25 Stefan Kangas <stefankangas@gmail.com>
Don't refer to Emacs 24.3 or older in FAQ
* doc/misc/efaq.texi: Don't say that the FAQ has been edited.
(Displaying the current line or column, Automatic indentation)
(Problems with very large files, Emacs for other operating systems)
(Right-to-left alphabets, Expanding aliases when sending mail): Remove
references to Emacs 24.3 or older.
(Learning how to do something): Don't include the reference card
price; it is currently incorrect and is likely to be incorrect again
in the future.
2022-08-25 Robert Pluim <rpluim@gmail.com>
Treat smtp-auth method from auth-info as a symbol
The lookup of the SMTP auth method is done based on symbols, but
sometimes the requested value comes from `auth-info', in which case it
is a string, so call `intern-soft' to convert it to a symbol (which
does nothing if it's already a symbol).
* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Call
`intern-soft' on the smtp-auth key's value. (Bug#57373)
Do not merge to master
2022-08-25 Stefan Kangas <stefankangas@gmail.com>
* lisp/wdired.el: Improve "Commentary" section.
* lisp/wdired.el: Doc fix; don't mention obsolete variable.
* lisp/progmodes/etags.el (next-file): Minor doc fix.
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Add a new user option grep-command-position
* lisp/progmodes/grep.el (grep-command): Mention it.
(grep-command-position): New user option.
(grep): Use it (bug#50502).
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Document how :map and :scale interacts in image maps
* doc/lispref/display.texi (Image Descriptors): Mention problems
with scaling (bug#50487).
2022-08-25 Stefan Kangas <stefankangas@gmail.com>
Fix generalized variable documentation for recent change
* doc/lispref/variables.texi (Setting Generalized Variables): Delete
obsolete generalized variable 'frame-width'.
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Make a prefix go to the previous error
* lisp/textmodes/flyspell.el (flyspell-goto-next-error): Make a
prefix find the previous error (bug#50443).
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Mention C-x C-q + revert change in NEWS
2022-08-25 Robert Pluim <rpluim@gmail.com>
Treat smtp-auth method from auth-info as a symbol
The lookup of the SMTP auth method is done based on symbols, but
sometimes the requested value comes from `auth-info', in which case it
is a string, so call `intern-soft' to convert it to a symbol (which
does nothing if it's already a symbol).
* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Call
`intern-soft' on the smtp-auth key's value. (Bug#57373)
2022-08-25 Kien Nguyen <kien.n.quang@gmail.com>
Allow symlink creation on MS-Windows without Administrator privileges
* src/w32.c (symlink): Use the
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE flag when available.
(Bug#57386)
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Fix warning about obsoleted generalized variables
* lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete):
Autoload so that the call here from gv.el (about obsolete
generalized variables) doesn't bug out (bug#57394).
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Make frame-width obsolete as a generalized variable
* lisp/emacs-lisp/gv.el (frame-width): Make obsolete as
generalized variable.
2022-08-25 Daniel Martín <mardani29@yahoo.es>
Fix instrumented eval-defun not printing "Edebug:" to the echo area
* lisp/progmodes/elisp-mode.el (elisp--eval-defun): Determine if we're
instrumenting a function and call eval-region with PRINTFLAG set to
nil if so (Bug#50245).
* test/lisp/progmodes/elisp-mode-tests.el
(eval-defun-prints-edebug-when-instrumented): Add a new test.
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Add hideshow-test.el file (bug#56635)
2022-08-25 kobarity <kobarity@gmail.com>
Add Python blocks support for hideshow
* lisp/progmodes/python.el (python-nav-beginning-of-block-regexp):
New variable.
(python-hideshow-forward-sexp-function): Change to call
`python-nav-end-of-block'.
(python-hideshow-find-next-block): New function to be used as
FIND-NEXT-BLOCK-FUNC in `hs-special-modes-alist'.
(python-info-looking-at-beginning-of-block): New function to be
used as LOOKING-AT-BLOCK-START-P-FUNC in `hs-special-modes-alist'.
(python-mode): Change settings of `hs-special-modes-alist'.
* test/lisp/progmodes/python-tests.el
(python-hideshow-hide-levels-1): Fix to keep empty lines.
(python-info-looking-at-beginning-of-block-1)
(python-hideshow-hide-levels-3, python-hideshow-hide-levels-4)
(python-hideshow-hide-all-1, python-hideshow-hide-all-2)
(python-hideshow-hide-all-3, python-hideshow-hide-block-1): New
tests (bug#56635).
2022-08-25 kobarity <kobarity@gmail.com>
Extend `hs-special-modes-alist' for languages such as Python
* lisp/progmodes/hideshow.el (hs-special-modes-alist): Add
elements FIND-BLOCK-BEGINNING-FUNC, FIND-NEXT-BLOCK-FUNC, and
LOOKING-AT-BLOCK-START-P-FUNC.
(hs-find-block-beginning-func): New variable to hold
FIND-BLOCK-BEGINNING-FUNC.
(hs-find-next-block-func): New variable to hold
FIND-NEXT-BLOCK-FUNC.
(hs-looking-at-block-start-p-func): New variable to hold
LOOKING-AT-BLOCK-START-P-FUNC.
(hs-grok-mode-type): Set new variables from
`hs-special-modes-alist'.
(hs-find-next-block): New function.
(Misc.): Update callers of the above functions.
* test/lisp/progmodes/hideshow-tests.el: New test file (bug#56635).
2022-08-25 Lars Ingebrigtsen <larsi@gnus.org>
Allow not deleting the config.cache file with "make FAST=true bootstrap"
* Makefile.in: Add some commentary about make bootstrap,
./configure -C and FASTo
(top_bootclean): Don't delete config.cache here.
(top_distclean): Delete it here instead.
(bootstrap-clean): Allow not deleting the cache file.
* admin/emake (cores): Adjust.
2022-08-25 Michael Albinus <michael.albinus@gmx.de>
Minor fixes in tramp-tests.el
* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
(tramp--test-deftest-with-perl)
(tramp--test-deftest-with-ls): Skip if underlying test didn't run
or lasted too long.
(tramp--test-shell-file-name): Do not depend on `tramp--test-adb-p'.
2022-08-25 Andreas Schwab <schwab@suse.de>
* configure.ac: Move AC_LANG_PUSH/POP out of AC_CACHE_CHECK. (Bug#57380)
2022-08-25 Po Lu <luangruo@yahoo.com>
Fix various problems with mouse highlight on XI2 builds
* src/dispextern.h (reset_mouse_highlight): Fix coding style.
* src/xterm.c (xi_position_changed): New functions.
(xi_report_motion_window_clear, handle_one_xevent): Don't report
motion events if the pixel position did not actually change.
* src/xterm.h (struct xi_device_t): New fields
`last_motion_window', `last_motion_x' and `last_motion_y'.
2022-08-24 Dmitry Gutov <dgutov@yandex.ru>
vc-merge: Look for 'merge-file' instead of 'merge'
* lisp/vc/vc.el (vc-merge):
Look for 'merge-file' in second clause (bug#50258).
2022-08-24 Alan Mackenzie <acm@muc.de>
C++ Mode - Fontify "class Foo {\n ~Foo() noexcept;" correctly
This fixes bug #49787.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): (In `if' form just
before CASE 8) Remove the (not ...) around the (looking-at
c-after-suffixed-type-maybe-decl-key).
* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Add
`c-not-decl' to the values of c-type which are erased at the start of a
fontification.
2022-08-24 Eli Zaretskii <eliz@gnu.org>
Fix handling of UNCs in 'parse-colon-path
* lisp/files.el (parse-colon-path): Don't remove the second
leading slash on systems that support UNCs. (Bug#57353)
* test/lisp/files-tests.el (files-tests-bug-21454): Update
expected results.
(files-colon-path): Add a new test pattern.
2022-08-24 Alan Mackenzie <acm@muc.de>
CC Mode: Fontify args correctly when arglist closing ) is not on the same line
This fixes bug #56841.
* lisp/progmodes/cc-engine.el (c-forward-declarator): Fix an off-by-one
comparing the position after a c-forward-name with a limit.
* lisp/progmodes/cc-mode.el (c-fl-decl-end): Handle correctly point starting
inside a literal. Insert a missing c-backward-syntactic-ws in the handling of
C++ attributes. Correctly handle an unmatched (. Better handle point
starting inside a [ or (. Tidy up the handling of syntactic whitespace at the
end of the buffer.
2022-08-24 Santiago Calandrino <san@disroot.org> (tiny change)
Fix string padding in gdb-mi
* lisp/progmodes/gdb-mi.el (gdb-table): Fix string padding in
gdb-mi (bug#57362).
(gdb-pad-string): Unobsolete.
(gdb-table-string): Re-fix string padding.
2022-08-24 Lars Ingebrigtsen <larsi@gnus.org>
Don't lose read-only marking when reverting a view-mode buffer
* lisp/view.el (view--enable): Don't lose read-only-ness when
reverting (bug#35166).
2022-08-24 Lars Ingebrigtsen <larsi@gnus.org>
When reverting, preserve the readedness state set by `C-x C-q'
* lisp/files.el (revert-buffer): Save the user's intention in a
variable (bug#50431).
* lisp/simple.el (read-only-mode): Use it.
2022-08-24 Po Lu <luangruo@yahoo.com>
Fix input extension focus tracking with some window managers
* src/xterm.c (handle_one_xevent): If a window manager sends us
FocusIn and FocusOut with XSendEvent (they do that), don't
detect focus changes when XInput 2 is enabled. The X server
will tell us the actual truth if the focus really did change.
2022-08-24 Stefan Kangas <stefankangas@gmail.com>
Make mh-colors-available-p obsolete
* lisp/mh-e/mh-utils.el (mh-colors-available-p): Redefine as
obsolete function alias for 'display-color-p'.
2022-08-24 Stefan Kangas <stefankangas@gmail.com>
Prefer saying "init file" to ".emacs" in FAQ
* doc/misc/efaq.texi: Prefer saying "init file" to
".emacs". (Bug#49424)
2022-08-23 Stefan Kangas <stefan@marxist.se>
Use substitute-command-keys in a few more places
* lisp/indent.el (edit-tab-stops):
* lisp/printing.el (pr-help-message, pr-show-setup):
* lisp/progmodes/cperl-mode.el (cperl-narrow-to-here-doc): Use
substitute-command-keys.
2022-08-23 Stefan Kangas <stefankangas@gmail.com>
Move generalized variable `substring' doc to elisp manual
* doc/misc/cl.texi (Setf Extensions): Move documentation on
'substring' generalized variable from here...
* doc/lispref/variables.texi (Setting Generalized Variables):
...to here.
2022-08-23 Stefan Kangas <stefankangas@gmail.com>
Move generalized variable docs to elisp manual
* doc/misc/cl.texi (Setf Extensions): Delete documentation on obsolete
generalized variable 'buffer-substring'. Move documentation on
generalized variables from here...
* doc/lispref/variables.texi (Setting Generalized Variables):
...to here. These variables have already been moved to gv.el.
2022-08-23 Stefan Kangas <stefankangas@gmail.com>
Update documentation for obsolete generalized variables
* doc/misc/cl.texi (Setf Extensions): Delete obsolete generalized
variables from list.
* etc/NEWS: Fix sorting of obsolete generalized variables.
2022-08-23 Gregory Heytings <gregory@heytings.org>
Merge master into feature/improved-locked-narrowing.
2022-08-23 Gregory Heytings <gregory@heytings.org>
Improve detection of long lines.
* src/buffer.h (struct buffer_text): New field.
(BUF_CHARS_UNCHANGED_MODIFIED, CHARS_UNCHANGED_MODIFIED): New macros.
* src/buffer.c (Fget_buffer_create): Initialize the new field.
* src/xdisp.c (mark_window_display_accurate_1): Set the new field.
(redisplay_window): Use it, together with CHARS_MODIFF, instead of
MODIFF and UNCHANGED_MODIFIED to decide whether to check for long
lines.
* src/pdumper.c (dump_buffer): Dump the new field.
2022-08-23 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS entry about obsoleted generalized variables
2022-08-23 Stefan Kangas <stefankangas@gmail.com>
Make XEmacs compat alias face-background-pixmap obsolete
* lisp/faces.el (face-background-pixmap)
(set-face-background-pixmap): Make XEmacs compat aliases obsolete in
favor of 'face-stipple' and 'set-face-stipple'. Update callers.
* lisp/emacs-lisp/gv.el (face-background-pixmap): Make XEmacs
alias obsolete as a generalized variable.
(face-stipple): New generalized variable.
* doc/misc/cl.texi (Setf Extensions): Refer to above new generalized
variable instead of the obsolete one.
2022-08-23 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/progmodes/elisp-mode.el (elisp--local-variables-1): Fix bug#50034
Don't burp if the arg list of a function is not actually a list.
2022-08-23 Stefan Kangas <stefankangas@gmail.com>
Make Emacs 20 compat alias obsolete in eudcb-ldap.el
* lisp/net/eudcb-ldap.el (eudc-ldap-get-host-parameter): Make
Emacs 20 compat alias obsolete.
2022-08-23 Gerd Möllmann <gerd@gnu.org>
Fix pixel-scroll-precision in a corner case
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page): Handle
case that point cannot be found.
(pixel-scroll-precision-scroll-up): Handle case that window is one line high
(bug#57349)
2022-08-23 Po Lu <luangruo@yahoo.com>
Make frame synchronization conditional on clock_gettime
* src/xfns.c (x_set_parent_frame)
(x_set_use_frame_synchronization):
* src/xterm.c (x_update_begin, show_back_buffer, x_update_end)
(x_display_set_last_user_time, handle_one_xevent):
* src/xterm.h (struct x_output): Define out vsync code when
!HAVE_CLOCK_GETTIME. (bug#57346)
2022-08-23 Po Lu <luangruo@yahoo.com>
Make frame synchronization conditional on clock_gettime
* src/xfns.c (x_set_parent_frame)
(x_set_use_frame_synchronization):
* src/xterm.c (x_update_begin, show_back_buffer, x_update_end)
(x_display_set_last_user_time, handle_one_xevent):
* src/xterm.h (struct x_output): Define out vsync code when
!HAVE_CLOCK_GETTIME.
2022-08-23 Lars Ingebrigtsen <larsi@gnus.org>
Disable a lisp-mode test that now fails
* test/lisp/emacs-lisp/lisp-mode-tests.el
(test-lisp-current-defun-name): Comment-out now-failing tests.
2022-08-23 Lars Ingebrigtsen <larsi@gnus.org>
Revert the changes to lisp-current-defun-name
* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Revert
back to the old version before bug#49592. The new approach just
doesn't work well enough -- we don't really have the data to know
that, say, `make-obsolete-variable' is about the second symbol and
not the first.
2022-08-23 Lars Ingebrigtsen <larsi@gnus.org>
Don't mention obsolete generalized variables in *Help*
* lisp/help-fns.el (help-fns--generalized-variable): Don't mention
obsolete ones.
2022-08-23 Lars Ingebrigtsen <larsi@gnus.org>
Make buffer-local-value obsolete as a generalized variable
* lisp/electric.el (electric-indent-local-mode)
(electric-layout-local-mode, electric-quote-local-mode):
* lisp/elec-pair.el (electric-pair-local-mode): Adjust usage.
* lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move
since we're using it earlier in the file.
(buffer-local-value): Make obsolete as a generalized variable
since the semantics are unclear (bug#26624).
2022-08-23 Thierry Volpiatto <thievol@posteo.net>
Fix wdired with (dired '(dir f1 f2 ...))
* lisp/wdired.el (wdired-finish-edit): Fix wdired with (dired
'(dir f1 f2 ...)) (bug#57334).
2022-08-23 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
1dd0a5c5db ; * doc/misc/htmlfontify.texi: Fix version.
2022-08-22 Augusto Stoffel <arstoffel@gmail.com>
Fix completion-predicate of Python shell commands
* lisp/progmodes/python.el: Change some completion predicates.
(python-shell--completion-predicate): New completion predicate
function. (Bug#57184)
2022-08-22 Stefan Kangas <stefankangas@gmail.com>
Make point-at-eol and point-at-bol obsolete
* lisp/subr.el (point-at-eol, point-at-bol): Make XEmacs compat
aliases obsolete in favor of `pos-bol'/'line-beginning-position' or
'pos-eol'/'line-end-position'. Update callers.
Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg00853.html
2022-08-22 Po Lu <luangruo@yahoo.com>
Allow disabling the input extension at runtime on GTK 3
* src/xterm.c (xi_check_toolkit): New function.
(x_term_init): Do not enable the input extension should that
fail.
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix some no-X build warnings
* lisp/cus-edit.el (fringe-bitmap-p): Autoload.
* lisp/image.el (clear-image-cache): Declare.
* lisp/mouse.el (dnd-begin-file-dram): Autoload.
* lisp/thumbs.el (image-supported-file-p): Declare (bug#57342).
* lisp/mail/rmailmm.el (rmail-mime-set-bulk-data):
* lisp/emacs-lisp/icons.el (icons--create): Avoid warnings on no-X
builds.
2022-08-22 Michael Albinus <michael.albinus@gmx.de>
auth-source: Fix wrong-type-argument when searching secret services
`auth-source-search' can be called with an integer port number,
while the backend implementation doesn't allow non-string attributes.
* doc/misc/auth.texi (Secret Service API): Attribute values are
stringified.
* lisp/auth-source.el (auth-source-secrets-search):
Ensure attributes are string. (Bug#55199)
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Link the "f" interactive spec to `read-file-name' in the manual
* doc/lispref/commands.texi (Interactive Codes): Link to the
Reading File Names node.
2022-08-22 Robert Pluim <rpluim@gmail.com>
Use the attributes of frame's monitor for gamegrid
* lisp/play/gamegrid.el (gamegrid-calculate-glyph-size): Use the
monitor where the current frame is displayed rather than the primary
monitor.
2022-08-22 Stefan Kangas <stefankangas@gmail.com>
Prefer pos-bol and pos-eol in tabulated-list.el
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print)
(tabulated-list-print-entry, tabulated-list-delete-entry)
(tabulated-list-set-col, tabulated-list-previous-column): Prefer
pos-bol and pos-eol.
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Make ispell-find-hunspell-dictionaries more resilient
* lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries):
Try harder to find the dictionary (bug#49982).
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix indent-tabs-mode globality
* lisp/simple.el (indent-tabs-mode): This is not a global mode, so
don't claim it is (bug#49971).
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Make the size of elements the same in pgtk and X in tetris
* lisp/play/gamegrid.el (gamegrid-glyph-height-mm): Decrease
height a bit (since it wasn't really that height).
(gamegrid-calculate-glyph-size): Change calculation to work on
both X and pgtk (bug#49937).
(gamegrid-make-glyph): Inhibit image scaling.
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Remove probably debugging code in reb-fontify-string-re
* lisp/emacs-lisp/re-builder.el (reb-fontify-string-re): Remove
code that looks like left-over debugging code. This fixes a
compilation warning.
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Make start/end in libxml-parse-html-region optional
* doc/lispref/text.texi (Parsing HTML/XML): Adjust.
* src/xml.c (parse_region): Default start/end to point-min/point-max.
(Flibxml_parse_html_region, Flibxml_parse_xml_region): Make
start/end optional.
2022-08-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix defcustom type of auto-save-file-name-transforms
* lisp/files.el (auto-save-file-name-transforms): Fix the
defcustom type (bug#57321).
2022-08-22 Gerd Möllmann <gerd@gnu.org>
LLDB support: handle unsorted enum member lists
* etc/emacs_lldb.py (enumerator_name): Handle the case that enum
member list is not sorted by value.
2022-08-22 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some type spec
2022-08-22 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
582ea6a1e9 Update to Org 9.5.4-19-g4dff42
7a3ae3cb62 ; * lisp/find-file.el (ff-other-file-alist): Fix typo.
c3087b59f0 ; * lisp/find-file.el (ff-other-file-alist): Another doc f...
1e1263b00b * lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#...
2022-08-21 Po Lu <luangruo@yahoo.com>
Fix child frame focus for MPX environments
* src/xterm.c (handle_one_xevent): Set child frame click-to
focus on the pointer device's attachment.
2022-08-21 Gonzalo Larumbe <gonzalomlarumbe@gmail.com>
Fix more lexical-binding fallout in vhdl-speedbar-insert-hierarchy
* lisp/progmodes/vhdl-mode.el (vhdl-speedbar-insert-hierarchy):
Check the input arguments, not the dynamically bound `end-arglist'
(bug#57327).
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Make *Help* display info about generalized variables
* lisp/help-fns.el (help-fns--generalized-variable): New function
to document generalized variables.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Make the generalized buffer-local-variable obsolete"
This reverts commit bfe222288e02472bff0e1ab5ba7ef26af6a2769a.
This led to the local modes not working.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Make the generalized buffer-local-variable obsolete
* lisp/paren.el (show-paren-local-mode):
* lisp/electric.el (electric-indent-local-mode)
(electric-layout-local-mode, electric-quote-local-mode):
* lisp/elec-pair.el (electric-pair-local-mode): Don't use it.
* lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Autoload.
* lisp/emacs-lisp/gv.el (buffer-local-variable): Make obsolete
(bug#26624).
* lisp/emacs-lisp/gv.el (make-obsolete-generalized-variable): Move
to allow usage.
2022-08-21 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.4-19-g4dff42
2022-08-21 Gregory Heytings <gregory@heytings.org>
Minor improvements to locked narrowing.
* lisp/subr.el (with-locked-narrowing): Add 'save-restriction' around
the macro body. Update docstring.
* src/editfns.c (Fwiden, Fnarrowing_lock): Docstring improvements.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Adjust autorevert tests to recent change
* test/lisp/autorevert-tests.el (auto-revert--wait-for-revert):
Adjust test to code change.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Make many seldom-used generalized variables obsolete
The vast majority of these are unused in-tree, and many of them
perform actions that aren't obvious when reading the code.
* lisp/server.el (server-ensure-safe-dir): Prefer with-file-modes
over letf-ing default-file-modes.
(server-start): Ditto.
* lisp/winner.el (winner-set-conf): Don't use generalized variable
window-height.
* lisp/emacs-lisp/gv.el: Make most little-used generalized
variables obsolete.
* lisp/org/oc-basic.el (org-cite-basic--set-keymap): Adjust
buffer-substring generalized variable usage.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Make it possible to mark generalized variables as obsolete
* doc/lispref/variables.texi (Adding Generalized Variables):
Document it.
* lisp/emacs-lisp/bytecomp.el (byte-compile-warn-obsolete): Alter
the interface so that it can also be used by generalized variable
warnings.
(byte-compile-function-warn): Adjust caller.
(byte-compile-check-variable): Adjust caller.
* lisp/emacs-lisp/gv.el (gv-get): Warn about obsolete generalized
variables (bug#49730).
(make-obsolete-generalized-variable): New function.
2022-08-21 Gregory Heytings <gregory@heytings.org>
Better way to protect redisplay routines from locked narrowings.
* src/xdisp.c (reset_outermost_narrowing,
unwind_reset_outermost_narrowing): New functions.
(redisplay_internal): Use the new functions.
* src/editfns.c (Fnarrow_to_region): Use the limits of the
locked restriction instead of the position arguments if necessary.
Update docstring.
(Fnarrowing_lock): Update docstring.
2022-08-21 Gregory Heytings <gregory@heytings.org>
Revert 4f19e1a5d1
2022-08-21 Eli Zaretskii <eliz@gnu.org>
* lisp/find-file.el (ff-other-file-alist): Doc fix. (Bug#57325)
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Mention delete-line in shortdoc
* lisp/emacs-lisp/shortdoc.el (buffer): Mention delete-line.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Simplify `delete-line'
* lisp/subr.el (delete-line): Simplify.
2022-08-21 Stefan Kangas <stefankangas@gmail.com>
Prefer pos-bol and pos-eol in bookmark.el
* lisp/bookmark.el (bookmark--set-fringe-mark)
(bookmark--remove-fringe-mark, bookmark-kill-line)
(bookmark--jump-via): Prefer pos-bol and pos-eol.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Remove a newline from the end of an error message
* src/pdumper.c (dump_native_comp_unit): Remove newline from end
of error message.
2022-08-21 Mattias Engdegård <mattiase@acm.org>
Fix eshell-pipe-broken signalling
* lisp/eshell/esh-io.el (eshell-output-object-to-target):
Second argument to `signal` should be a list.
2022-08-21 Stefan Kangas <stefankangas@gmail.com>
Mark another esh-proc test as unstable
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/pipeline-connection-type/middle): Mark test as unstable
as it fails quite a lot.
2022-08-21 Stefan Kangas <stefankangas@gmail.com>
Prefer pos-bol and pos-eol in tests
* test/lisp/calendar/todo-mode-tests.el
(todo-test-toggle-item-header02, todo-test-edit-item-date-month)
(todo-test-multiline-item-indentation-1)
(todo-test-multiline-item-indentation-2)
(todo-test-multiline-item-indentation-3):
* test/lisp/cedet/semantic-utest-ia.el (semantic-ia-utest-buffer)
(semantic-sr-utest-buffer-refs):
* test/lisp/cedet/semantic-utest.el (semantic-utest-kill-indicator)
(semantic-utest-unkill-indicator):
* test/lisp/dired-tests.el (dired-test-bug27968):
* test/lisp/emacs-lisp/backtrace-tests.el
(backtrace-tests--verify-single-and-multi-line):
* test/lisp/emacs-lisp/find-func-tests.el
(find-func-tests--find-library-verbose):
* test/lisp/erc/erc-tests.el (erc-ring-previous-command)
(erc-log-irc-protocol):
* test/lisp/gnus/message-tests.el (message-mode-propertize):
* test/lisp/info-xref-tests.el (info-xref-test-emacs-manuals):
* test/lisp/mail/footnote-tests.el (footnote-tests-same-place):
* test/lisp/progmodes/elisp-mode-tests.el
(elisp-shorthand-completion-at-point):
* test/lisp/progmodes/f90-tests.el (f90-test-bug38415):
* test/lisp/progmodes/python-tests.el
(python-indent-electric-comma-inside-multiline-string)
(python-indent-electric-comma-after-multiline-string)
(python-indent-electric-colon-1, python-indent-electric-colon-2)
(python-indent-electric-colon-3, python-indent-electric-colon-4)
(python-mark-defun-2, python-mark-defun-3, python-mark-defun-4)
(python-mark-defun-5, python-nav-end-of-defun-2)
(python-nav-end-of-statement-1, python-nav-end-of-block-1)
(python-indent-dedent-line-backspace-2)
(python-indent-dedent-line-backspace-3)
(python-eldoc--get-symbol-at-point-1)
(python-info-beginning-of-statement-p-1)
(python-info-beginning-of-statement-p-2):
* test/lisp/replace-tests.el (replace-occur-revert-bug32543)
(replace-occur-revert-bug32987):
* test/lisp/simple-tests.el (simple-delete-indentation-boundaries)
(simple-delete-indentation-region)
(line-number-at-pos-in-narrow-buffer)
(line-number-at-pos-keeps-restriction):
* test/lisp/textmodes/css-mode-tests.el (css-mode-test-selectors)
(scss-mode-test-selectors):
* test/lisp/textmodes/fill-tests.el (fill-test-unbreakable-paragraph)
(fill-test-breakable-paragraph):
* test/lisp/time-stamp-tests.el (time-stamp-custom-pattern):
* test/src/lread-tests.el (lread-tests--last-message):
* test/src/process-tests.el (set-process-filter-t):
* test/src/undo-tests.el (undo-test-skip-invalidated-markers): Prefer
pos-bol and pos-eol.
2022-08-21 Stefan Kangas <stefankangas@gmail.com>
Don't end autorevert message with a period
* lisp/autorevert.el (auto-revert-handler): Don't end message with
a period.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Tweak emacs-bug--system-description
* lisp/mail/emacsbug.el (emacs-bug--system-description): Fill the
commonly-overlong Emacs version bit.
2022-08-21 Mattias Engdegård <mattiase@acm.org>
Update function properties and optimisations
* lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form):
Recognise boolean identity in aset, put, function-put and puthash.
* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp):
Mark more functins as non-nil-returning, including the new
pos-bol and pos-eol.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
Mark pos-bol and pos-eol as side-effect-free.
2022-08-21 Mattias Engdegård <mattiase@acm.org>
* lisp/emacs-lisp/shortdoc.el (buffer): Add missing functions
Add preceding-char and char-before because following-char and
char-after were already there.
2022-08-21 Gerd Möllmann <gerd@gnu.org>
Fix src-depending-on-lisp target
* Makefile.in (src-depending-on-lisp): Pass BIN_DESTDIR and
ELN_DESTDIR to make -C src (bug#57309).
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Mark esh-proc test as unstable
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/pipeline-connection-type/last): Mark test as
unstable as it fails quite a lot.
2022-08-21 Lars Ingebrigtsen <larsi@gnus.org>
Rename newly-added eol/bol functions to pos-eol/pos-bol
* lisp/emacs-lisp/shortdoc.el (buffer):
* doc/lispref/positions.texi (Text Lines): Adjust.
* src/editfns.c (Fpos_bol): Rename from Fpos.
(Fpos_eol): Rename from Feol.
2022-08-21 Gregory Heytings <gregory@heytings.org>
Fix mode line redisplay bug when locked narrowing is in effect.
* src/xdisp.c (decode_mode_spec): Use the actual narrowing bounds when
redisplay is called while a locked narrowing is in effect.
2022-08-21 Po Lu <luangruo@yahoo.com>
Minor optimization to x_query_pointer_1
* src/xterm.c (x_query_pointer_1): Clear client pointer if it
disappeared.
2022-08-20 Gregory Heytings <gregory@heytings.org>
Fix user narrowing handling.
* src/editfns.c (syms_of_editfns): New 'outermost-narrowing' internal
variable.
(Fwiden, Fnarrow_to_region): Set and reset the variable.
(Fnarrowing_lock): Use it.
2022-08-20 Gregory Heytings <gregory@heytings.org>
Improved locked narrowing.
* src/editfns.c (Fnarrowing_lock, Fnarrowing_unlock,
narrow_to_region_locked, unwind_narrow_to_region_locked):
New functions.
(Fnarrow_to_region, Fwiden): Adapt, and make it possible to use
these functions within the bounds of the locked narrowing.
(syms_of_editfns): Change the name of the variable, make it
buffer-local, and add the two Snarrowing_lock and Snarrowing_unlock
subroutines.
* src/lisp.h: Prototype of 'narrow_to_region_locked'.
* src/xdisp.c (handle_fontified_prop):
* src/keyboard.c (safe_run_hooks_maybe_narrowed): Use
'narrow_to_region_locked'.
* lisp/subr.el (with-locked-narrowing): New macro.
2022-08-20 Philip Kaludercic <philipk@posteo.net>
* package-vc.el (package-vc-unpack): Ignore dir files
2022-08-20 Lars Ingebrigtsen <larsi@gnus.org>
Don't use the system-file-manager icon in the toolbar
* lisp/term/x-win.el (x-gtk-stock-map):
* lisp/term/pgtk-win.el (x-gtk-stock-map): Don't use
n:system-file-manager, because it's larger than the other Gtk
icons in some themes (bug#56627).
2022-08-20 Lars Ingebrigtsen <larsi@gnus.org>
Make conf-javaprop-mode only claim that # lines are comments
* lisp/textmodes/conf-mode.el (conf-javaprop-mode-syntax-table):
Make obsolete and remove syntax entries for // and /* (bug#49077),
because only # are comments in javaprop files.
(conf-javaprop-mode): Adjust doc string to just mention #
comments.
2022-08-20 Lars Ingebrigtsen <larsi@gnus.org>
Tweak admin/emacs output
2022-08-20 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp's manual
* doc/misc/tramp.texi (Frequently Asked Questions):
Improve recommendations for speeding up.
2022-08-20 Protesilaos Stavrou <info@protesilaos.com>
Fix typos in modus-themes.org
* modus-themes.org (Option for inhibiting theme reload)
(Option for completion framework aesthetics, Advanced customization)
(Remap face with local value, Cycle through arbitrary colors)
(Custom Org emphasis faces, Note on git-gutter in Doom Emacs): Fix
typographic errors.
2022-08-19 Po Lu <luangruo@yahoo.com>
Fix crash when the keymap changes
* src/xterm.c (handle_one_xevent): Call
XkbRefreshKeyboardMapping first before trying to update the map.
2022-08-19 Mattias Engdegård <mattiase@acm.org>
Move `while` syntax check from optimiser to macroexpand
* lisp/emacs-lisp/byte-opt.el (byte-optimize-while): Move check...
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): ...here.
2022-08-19 Philip Kaludercic <philipk@posteo.net>
* package-vc.el (package-vc-unpack): Mark packages as selected
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Fix return value of help--key-description-fontified
This fixes a bug with warning about obsolete commands in
`command-execute', where we incorrectly showed empty parenthesis
instead of the empty string when there was no keybinding for the new
command.
* lisp/help.el (help--key-description-fontified): Return nil instead
of the empty string if KEYS argument is nil.
* test/lisp/help-tests.el (help--key-description-fontified): New test.
(with-substitute-command-keys-test): Fix indentation.
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Display new keybinding in obsolete command warning
* lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
* lisp/simple.el (command-execute): When warning about an obsolete
command, display the keybinding for the new command.
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
* lisp/bookmark.el (bookmark-menu-heading): Delete face.
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Ignore variable Info-fontify, deleted in 22.1
* lisp/info.el (Info-mode-hook): Don't obey variable Info-fontify,
deleted in Emacs 22.1.
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Make two compat aliases obsolete in cc-defs.el
* lisp/progmodes/cc-defs.el (c-regexp-opt, c-regexp-opt-depth):
Make compat alias obsolete.
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Delete two functions obsolete since Emacs 23
These were announced as removed in Emacs 28.1 NEWS, but apparently
never actually deleted: only their obsoletion warning was removed.
So the warnings were reintroduced in Emacs 28.2, and we now actually
delete them here instead.
* src/process.c (Fset_process_filter_multibyte)
(Fprocess_filter_multibyte_p): Delete functions obsolete since
Emacs 23.
(syms_of_process): Delete corresponding defsubrs.
* lisp/subr.el (process-filter-multibyte-p)
(set-process-filter-multibyte): Delete obsoletion.
* lisp/erc/erc-dcc.el (erc-dcc-server): Don't use obsolete functions.
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
f2c0fb2615 Resurrect obsoletion warning for two functions
9c0eec4ed8 * src/window.c (select_window): Fix assert for buffer = no...
16dfe04be2 Find libgccjit on macOS with Homebrew differently
# Conflicts:
# etc/NEWS
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Resurrect obsoletion warning for two functions
These were supposed to have been deleted, but never were. Resurrect
their obsoletion warning and let's delete them in Emacs 29 instead.
* lisp/subr.el (process-filter-multibyte-p)
(set-process-filter-multibyte): Resurrect obsoletion warning.
* etc/NEWS: Don't announce their deletion.
2022-08-19 Alan Mackenzie <acm@muc.de>
* src/window.c (select_window): Fix assert for buffer = non-active minibuffer
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in doc-view.el
* lisp/doc-view.el (doc-view-mode-map, doc-view-minor-mode-map)
(doc-view-presentation-mode-map): Prefer defvar-keymap.
2022-08-19 Robert Pluim <rpluim@gmail.com>
Improve 'ns-read-file-name' docstring
* src/nsfns.m (Fns_read_file_name): Use '-' instead of '_' when naming
args.
2022-08-19 Robert Pluim <rpluim@gmail.com>
Mark only VS-16 as emoji
* admin/unidata/blocks.awk: Only mark U+FE0F as belonging to the
'emoji' script. (Bug#57072)
2022-08-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix underscores in argument names in ns-win
* lisp/term/ns-win.el (x-file-dialog): Don't use underscores in
argument names.
2022-08-19 Augusto Stoffel <arstoffel@gmail.com>
python.el: Add completion-predicate symbol property to commands
* lisp/progmodes/python.el: Add a completion-predicate property to
most commands defined in this file; some are only useful in
python-mode, others in inferior-python mode as well. (Bug#53913)
(python-skeleton-define, python-define-auxiliary-skeleton): Add
appropriate completion-predicate properties.
(python--completion-predicate): New function.
2022-08-19 Lars Ingebrigtsen <larsi@gnus.org>
Add new functions eol and bol
* doc/lispref/positions.texi (Text Lines): Document them
* lisp/emacs-lisp/shortdoc.el: Mention them, and also the
buffer/line predicates.
* src/editfns.c (bol): New function.
(Fbol): New defun.
(Fline_beginning_position): Use `bol'.
(eol): New function.
(Feol): New defun.
(Fline_end_position): Use `eol'.
2022-08-19 Augusto Stoffel <arstoffel@gmail.com>
python-mode: Remove special outline-heading-end-regexp
It doesn't work well with the new type annotation syntax introduced in
Python 3.5.
* lisp/progmodes/python.el (python-mode): Remove buffer-local setting
of outline-heading-end-regexp. (Bug#53913)
2022-08-19 Augusto Stoffel <arstoffel@gmail.com>
python.el: Adjustments to Flymake backend
* lisp/progmodes/python.el (python-flymake-command): Advertise
possiblity to use pylint.
(python-flymake-command-output-pattern): Make compatible with recent
versions of pyflakes. (Bug#53913)
2022-08-19 Augusto Stoffel <arstoffel@gmail.com>
python-check-command: Don't use absolute file names
Absolute executable file names are incompatible with Tramp and
packages that switch between virtualenvs.
* lisp/progmodes/python.el (python-check-command): Don't use absolute
file names. (Bug#53913)
2022-08-19 Paul A. Patience <paul@apatience.com> (tiny change)
Fix mis-spelling of c-awk-old-ByLL and really make it buffer-local
* lisp/progmodes/cc-awk.el (c-awk-old-ByLL): Make the
correct variable buffer-local (bug#57294).
2022-08-19 Mattias Engdegård <mattiase@acm.org>
* lisp/edmacro.el (edmacro-sanitize-for-string): Fix condition.
This is of little consequence in practice since the input is always a
vector of keys representing a prefix, where bit 7 isn't likely to be
set when higher bits are set, but it silences a (justified) warning.
2022-08-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix region-extract-function compilation warning
* lisp/simple.el (region-extract-function): Clean up the logic
slightly to avoid a warning.
2022-08-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix ns-win.el (x-file-dialog) declaration
* lisp/term/ns-win.el (x-file-dialog): Give the function the same
signature here as other definitions.
2022-08-19 Protesilaos Stavrou <info@protesilaos.com>
Update the modus-themes to their 2.6.0 version
* doc/misc/modus-themes.org (Sample configuration with and without
use-package): Add missing parenthesis to the manual.
(Option for completion framework aesthetics)
(Custom Org emphasis faces): Minor rewording.
(Custom hl-todo colors): Add instructions on how to add user-level
support for the 'solaire' package, as the modus-themes no longer
support it.
(Full support for packages or face groups): Remove 'solaire' from the
list of supported packages.
(Note on git-gutter in Doom Emacs)
(Note on php-mode multiline comments)
(Note on highlight-parentheses.el): Clarify need to re-load the
theme for changes to take effect.
(Acknowledgements): Update acknowledgements.
* etc/themes/modus-themes.el (modus-themes-faces): Fix typo.
(modus-themes--version): Reword docstring and update to current value.
(modus-themes--weight): Stop using deprecated alias of symbol.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump version number.
Detailed release notes:
<https://protesilaos.com/codelog/2022-08-19-modus-themes-2-6-0/>.
2022-08-19 Gerd Möllmann <gerd@gnu.org>
Find libgccjit on macOS with Homebrew differently
* configure.ac (MAC_LIBS): Find libgccjit's directory slightly
differently for brew installations.
2022-08-19 Andrea Corallo <akrl@sdf.org>
* src/pdumper.c (dump_native_comp_unit): Error if CU is not fixed-up
* src/alloc.c (pure_alloc): Warn for pure space overflow
* src/pdumper.c (Fdump_emacs_portable): Check and warn for pure space overflow
2022-08-19 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Remove treesit manual entries for deleted functions
* doc/lispref/parsing.texi: Remove documentation for
treesit-get-parser-create and treesit-get-parser.
2022-08-19 John Wiegley <johnw@newartisans.com>
Revert "Remove use-package-font-lock-keywords"
This reverts commit 4938167bfffcf08279445827d2eaae78c9557675.
2022-08-19 Morgan Smith <Morgan.J.Smith@outlook.com>
Speed up image-dired-display-image
* lisp/image-dired.el (image-dired-display-image): Open file literally
so we don't run image-mode twice. (Bug#57281)
2022-08-19 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
e64d811b51 Improve image-mode-as-hex docstring
2022-08-18 Po Lu <luangruo@yahoo.com>
Fix more calls to XQueryPointer for MPX
* src/xterm.c (x_dnd_begin_drag_and_drop): Set DND devices to -1
if XI2 is not supported on the given display.
(x_query_pointer): Make wrapper around x_query_pointer_1.
(x_query_pointer_1): Split off most of x_query_pointer to this
function. Allow a specific client pointer to be specified.
(x_dnd_update_tooltip_now, x_dnd_update_state): Use
x_query_pointer_1 with the right device instead of
XQueryPointer.
2022-08-18 John Wiegley <johnw@newartisans.com>
Merge pull request from belak/remove-extra-font-lock-keywords
GitHub-reference: https://github.com/jwiegley/use-package/issues/859
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Improve obsoletion of image-transform-fit-to-{height,width}
* lisp/image-mode.el (image-transform-fit-to-height)
(image-transform-fit-to-width): Change obsoletion to refer to new
command 'image-transform-fit-to-window'.
2022-08-18 Andrea Corallo <akrl@sdf.org>
* Rename `comp--typeof-builtin-types'
* lisp/emacs-lisp/comp-cstr.el (comp--typeof-builtin-types): Rename.
(comp-normalize-valset, comp-common-supertype-2): Update.
2022-08-18 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp-cstr.el (comp--all-builtin-types): Remove
2022-08-18 Arash Esbati <arash@gnu.org>
Adjust the environment name for the minted package
* lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Fix
the name of the environment which can contain a \label macro.
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Improve image-mode-as-hex docstring
* lisp/image-mode.el: Fix typos.
(image-mode-as-hex): Doc fix; say that it uses 'hexl-mode' and reflow.
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Do interactive mode tagging in image-mode.el
* lisp/image-mode.el (image-forward-hscroll)
(image-backward-hscroll, image-next-line, image-previous-line)
(image-scroll-up, image-scroll-down, image-scroll-left)
(image-scroll-right, image-bol, image-eol, image-bob, image-eob)
(image-mode-fit-frame, image-kill-buffer, image-next-file)
(image-previous-file, image-mode-copy-file-name-as-kill)
(image-mode-mark-file, image-mode-unmark-file)
(image-transform-set-percent, image-transform-set-scale)
(image-transform-fit-to-height, image-transform-fit-to-width)
(image-transform-fit-both, image-transform-fit-to-window)
(image-transform-set-rotation, image-transform-set-smoothing)
(image-transform-original, image-transform-reset): Add interactive tag
for image-mode.
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Make toggling between image, hex and text more consistent
* lisp/image-mode.el (image-toggle-hex-display, image-toggle-display):
Ensure commands work correctly also in `hexl-mode'.
(image-mode-to-text):
(image-mode-as-hex, image-mode-as-text): Enable image-minor-mode also
in hexl-mode, which adds the "C-c C-x" keybinding for easier toggling.
2022-08-18 Stefan Kangas <stefan@marxist.se>
New command image-transform-set-percent
* lisp/image-mode.el (image-transform-set-percent): New command.
(image-mode-map): Bind above new command to "s p".
* doc/emacs/files.texi (Image Mode): Document it.
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Prefer defvar-keymap in image-mode.el
* lisp/image-mode.el (image-mode-map, image-minor-mode-map):
Prefer defvar-keymap.
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
ef1e68f11d * lisp/image-mode.el (image-mode-as-hex): Fix toggle instr...
dc0fce3a7d ; lisp/image-mode.el: Fix typo.
254ba1d3e5 * lisp/image-mode.el: Improve commentary.
ac43ac1af9 cl-reduce doc string improvement
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
* lisp/image-mode.el (image-mode-as-hex): Fix toggle instructions.
2022-08-18 Michael Albinus <michael.albinus@gmx.de>
Fix encoding problem in tramp-sh.el
* lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy):
Compute inline coding only if needed.
2022-08-18 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/misc/cl.texi (Macro Bindings): Fix bug#57263
Update `cl-symbol-macrolet` according to the change in response to bug#26073.
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
* lisp/image-mode.el: Improve commentary.
2022-08-18 Mattias Engdegård <mattiase@acm.org>
Fix string-to-syntax signature in comp-known-type-specifiers
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers):
`string-to-syntax` can return nil.
2022-08-18 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix some type
2022-08-18 Mattias Engdegård <mattiase@acm.org>
More non-nil-returning functions in source optimisation
This change was partially generated and mechanically cross-validated
with function type information from comp-known-type-specifiers in
comp.el.
* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp):
Extend list of functions and fix a typo (logxor).
2022-08-18 Mattias Engdegård <mattiase@acm.org>
Copy-edit doc strings and comments wrt bignum and fixnum
Don't say that a value is a fixnum if small enough and a bignum
otherwise, because that is now how Lisp integers always work,
and we generally don't expose the fixnum/bignum difference to the user
unless really necessary.
* src/charset.c (Fencode_char):
* src/editfns.c (Fuser_uid, Fuser_real_uid, Fgroup_gid)
(Fgroup_real_gid, Femacs_pid):
* src/font.c (Ffont_variation_glyphs):
* src/process.c (Fprocess_id):
Edit doc strings.
* src/pgtkselect.c:
* src/xselect.c: Edit comments.
2022-08-18 kobarity <kobarity@gmail.com>
Fix Python indentation of block continuation
* lisp/progmodes/python.el (python-indent--calculate-indentation):
Fix indentation of :after-backslash-block-continuation.
* test/lisp/progmodes/python-tests.el
(python-indent-after-backslash-6): New test (bug#57262).
2022-08-18 Lars Ingebrigtsen <larsi@gnus.org>
Make GEN message from loaddefs-generate nicer
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Shorten the
informational GEN file relative to the stated directory
(bug#57265). This makes the message nicer for ELPA packages.
2022-08-18 Colin Woodbury <colin@fosskers.ca>
cl-reduce doc string improvement
* lisp/emacs-lisp/cl-seq.el (cl-reduce): Explain what happens when
using :from-end (bug#57273).
2022-08-18 Gerd Möllmann <gerd.moellmann@gmail.com>
Rebuild the Emacs executable if loaddefs.el has changed
* Makefile.in (src-depending-on-lisp): Ensure that we check
whether we need to rebuild the Emacs executable if loaddefs.el has
been updated.
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Improve update-directory-autoloads deprecation message
* lisp/obsolete/autoload.el (update-directory-autoloads): Improve
deprecation message. (Bug#57276)
2022-08-18 Stefan Kangas <stefankangas@gmail.com>
Improve cryptic syntax switch message in re-builder
* lisp/emacs-lisp/re-builder.el (reb-restart-font-lock): Move message
from here...
* lisp/emacs-lisp/re-builder.el (reb-change-syntax): ...to here.
Change it to be less cryptic.
2022-08-18 Andrea Corallo <akrl@sdf.org>
* lisp/loadup.el: Always fix-up all loaded compilation units
2022-08-18 Andrea Corallo <akrl@sdf.org>
* Expose `comp-loaded-comp-units-h'
* src/comp.c : remove 'all_loaded_comp_units_h'.
(syms_of_comp): Define `comp-loaded-comp-units-h'.
(register_native_comp_unit, Fnative_elisp_load): Use it.
2022-08-18 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Add treesit-parser-delete
* src/treesit.c (ts_record_change): Replace CHECK_TS_PARSER with
ts_check_parser.
(make_ts_parser): Initialize deleted field.
(Ftreesit_parser_delete): Replace CHECK_TS_PARSER with
ts_check_parser. Set deleted field.
(Ftreesit_parser_buffer, Ftreesit_parser_language): Replace
CHECK_TS_PARSER with ts_check_parser.
(ts_check_parser): New function.
(Ftreesit_parser_root_node, Ftreesit_parser_set_included_ranges)
(Ftreesit_parser_included_ranges): Replace CHECK_TS_PARSER with
ts_check_parser.
(Qtreesit_parser_deleted): New symbol.
(Qtreesit_parser_deleted): New error.
* src/treesit.h (Lisp_TS_Parser): New field 'deleted'.
2022-08-18 Philip Kaludercic <philipk@posteo.net>
Merge remote-tracking branch 'origin/master' into feature/package+vc
2022-08-18 Po Lu <luangruo@yahoo.com>
Fix the MS-DOS build
* config.bat: Generate stdckdint.in.h
* msdos/sedlibmk.inp (STDCKDINT_H)
(GL_GENERATE_STDCKDINT_H_CONDITION): Update these variables too.
2022-08-18 Paul Eggert <eggert@cs.ucla.edu>
Fix broken build on Solaris 10 emacs_spawn
* src/callproc.c (emacs_spawn) [SETUP_SLAVE_TTY]:
pty_flag no longer exists. Use pty_in && std_in >= 0,
which at least compiles.
2022-08-17 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
2022-08-17 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/bytecomp.el (byte-compile-log-1): Create buffer if necessary
2022-08-17 Alan Mackenzie <acm@muc.de>
* lisp/progmodes/cc-defs.el (c-safe-scan-lists): Evaluate LIMIT just once
2022-08-17 Basil L. Contovounesios <contovob@tcd.ie>
Fix Linux APM BIOS flag testing in battery.el
Original sin detected by recent byte-compiler improvements; see:
https://lists.gnu.org/r/emacs-devel/2022-08/msg00611.html
* lisp/battery.el (battery-linux-proc-apm): Treat result of logand
as a number, not boolean.
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
Shorten new manual section "Shell Command Guessing"
* doc/emacs/dired.texi (Shell Command Guessing): Don't document
unimportant details, and improve wording to be shorter.
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
Assume dired-guess is now always available
* lisp/dired-aux.el (dired-read-shell-command): Use
dired-guess-shell-command unconditionally, as it is now always
available.
(dired-do-shell-command): Doc fix; dired-guess is always available.
* lisp/dired.el (dired-do-man): Don't require dired-x.
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
Move dired-guess commands from dired-x to dired
* lisp/dired-x.el (dired-shell-command-history)
(dired-guess-shell-alist-default, dired-guess-default)
(dired-guess-shell-command): Move from here...
* lisp/dired-aux.el (dired-shell-command-history)
(dired-guess-shell-alist-default, dired-guess-default)
(dired-guess-shell-command): ...to here. (Bug#21981)
* lisp/dired-x.el (dired-guess-shell-gnutar)
(dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches)
(dired-guess-shell-case-fold-search, dired-guess-shell-alist-user):
Move from here...
* lisp/dired.el (dired-guess-shell-gnutar)
(dired-guess-shell-gzip-quiet, dired-guess-shell-znew-switches)
(dired-guess-shell-case-fold-search, dired-guess-shell-alist-user):
...to here. Change :group to dired-guess.
(dired-guess): New defgroup.
* test/lisp/dired-x-tests.el (dired-guess-default): Move from here...
* test/lisp/dired-aux-tests.el (dired-guess-default): ...to here.
* doc/misc/dired-x.texi (Features, Technical Details, Installation):
Delete any mention of shell command guessing.
(Shell Command Guessing): Move from here...
* doc/emacs/dired.texi (Shell Command Guessing): ...to here. Adapt to
better fit the Emacs Manual conventions.
* lisp/dired-aux.el (dired-do-shell-command): Doc fix to adjust for
above changes.
* etc/NEWS: Announce the above change.
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
Make compat function cperl-putback-char obsolete
* lisp/progmodes/cperl-mode.el (cperl-putback-char): Make
obsolete. Update callers.
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
* lisp/progmodes/cperl-mode.el: Improve commentary.
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
Don't check if autoloaded functions are fboundp
* lisp/progmodes/cperl-mode.el (cperl-menu, cperl-init-faces):
Assume some autoloaded ps-print.el functions are always there.
2022-08-17 Brendan O'Dea <bod@debian.org>
em-unix.el: only pass -H option to grep
* lisp/eshell/em-unix.el (eshell-grep): Don't add -H, because that
breaks agrep/glimpse etc (bug#57247).
(eshell/grep, eshell/egrep, eshell/fgrep): Instead add it here.
2022-08-17 kobarity <kobarity@gmail.com>
Enhance Python font-lock to support multilines
* test/lisp/progmodes/python-tests.el
(python-tests-assert-faces-after-change): New helper function.
(python-font-lock-keywords-level-1-3)
(python-font-lock-assignment-statement-multiline-*): New tests.
* lisp/progmodes/python.el (python-rx): Add `sp-nl' to represent
space or newline (with/without backslash).
(python-font-lock-keywords-level-1)
(python-font-lock-keywords-maximum-decoration): Allow newlines
where appropriate.
(python-font-lock-extend-region): New function.
(python-mode): Set `python-font-lock-extend-region' to
`font-lock-extend-after-change-region-function'.
2022-08-17 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Add Python blocks support for hideshow"
This reverts commit af4cfb519415ed3c1d6d036aac908e4f9ee383eb.
This led to test failures.
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
Fix some recently introduced byte-compiler warnings
* lisp/emulation/viper-util.el (viper-key-to-character):
* lisp/vc/vc-svn.el (vc-svn-dir-extra-headers): Fix warnings.
* lisp/net/eudc-export.el (eudc-batch-export-records-to-bbdb):
Fix buglet.
2022-08-17 kobarity <kobarity@gmail.com>
Add Python blocks support for hideshow
* lisp/progmodes/python.el (python-nav-beginning-of-block-regexp):
New variable.
(python-hideshow-forward-sexp-function): Change to call
`python-nav-end-of-block'.
(python-hideshow-find-next-block): New function to be used as
FIND-NEXT-BLOCK-FUNC in `hs-special-modes-alist'.
(python-info-looking-at-beginning-of-block): New function to be
used as LOOKING-AT-BLOCK-START-P-FUNC in `hs-special-modes-alist'.
(python-mode): Change settings of `hs-special-modes-alist'.
* test/lisp/progmodes/python-tests.el
(python-hideshow-hide-levels-1): Fix to keep empty lines.
(python-info-looking-at-beginning-of-block-1)
(python-hideshow-hide-levels-3, python-hideshow-hide-levels-4)
(python-hideshow-hide-all-1, python-hideshow-hide-all-2)
(python-hideshow-hide-all-3, python-hideshow-hide-block-1): New
tests (bug#56635).
2022-08-17 Stefan Kangas <stefankangas@gmail.com>
Merge from origin/emacs-28
a4078fa628 ; * lisp/vc/ediff.el: Improve wording in last change.
dd077ebded Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo."
362c9ab879 * doc/misc/gnus.texi (Article Washing): Fix Links URL.
2022-08-16 Po Lu <luangruo@yahoo.com>
Avoid disabling device multiple times while handling XI attachment events
* src/xterm.c (handle_one_xevent): Avoid disabling devices if we
notice it has been disabled while handling XISlaveDetached or
XISlaveAttached.
2022-08-16 Stefan Monnier <monnier@iro.umontreal.ca>
* src/buffer.c (Frename_buffer): Fix bug#56693
2022-08-16 Mattias Engdegård <mattiase@acm.org>
* lisp/dired.el (dired-mark-if): Evaluate MSG once to avoid warning.
2022-08-16 Mattias Engdegård <mattiase@acm.org>
Improved `null` (alias `not`) optimisation
Take static boolean information of the argument into account.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-not): New.
2022-08-16 Mattias Engdegård <mattiase@acm.org>
Improved `and` and `or` optimisation
* lisp/emacs-lisp/byte-opt.el (byte-optimize-and, byte-optimize-or):
Rewrite. Avoid branching on arguments statically known to be true or
false, and hoist code out to an unconditional prefix when possible.
2022-08-16 Mattias Engdegård <mattiase@acm.org>
Improved `if` and `while` optimisation
Recognise some more special cases:
(if X nil t) -> (not X)
(if X t) -> (not (not X))
(if X t nil) -> (not (not X))
(if VAR VAR X...) -> (or VAR (progn X...))
* lisp/emacs-lisp/byte-opt.el (byte-opt-negate): New.
(byte-optimize-if): Add transformations above and refactor.
(byte-optimize-while): Better static nil-detection.
2022-08-16 Mattias Engdegård <mattiase@acm.org>
Improved static detection of nil and non-nil expressions
* lisp/emacs-lisp/byte-opt.el (byte-opt--bool-value-form): New.
(byte-compile-trueconstp, byte-compile-nilconstp): Determine a static
nil or non-nil result in more cases. These functions have grown and
are no longer defsubst.
2022-08-16 Michael Albinus <michael.albinus@gmx.de>
Fix autoload in tramp.el
2022-08-16 Michael Albinus <michael.albinus@gmx.de>
Handle root permissions on remote files
* lisp/net/tramp.el (tramp-check-cached-permissions): Check also
for remote uid/gid being 0. (Bug#57238)
* lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls):
Convert numeric uid/gid strings into real strings.
(tramp-sh-get-signal-strings): Use `zerop'.
* lisp/net/tramp.el (tramp-root-id-string, tramp-root-id-integer):
New defconsts.
(tramp-handle-find-backup-file-name, tramp-handle-lock-file)
(tramp-local-host-p, tramp-handle-make-auto-save-file-name)
* lisp/net/tramp-sh.el (tramp-default-method-alist)
(ramp-default-user-alist, tramp-find-shell):
* lisp/net/tramp-sudoedit.el (tramp-default-user-alist): Use them.
2022-08-16 Lars Ingebrigtsen <larsi@gnus.org>
dired-do-shell-command doc string clarification
* lisp/dired-aux.el (dired-do-shell-command): Clarify doc string
(bug#57228).
2022-08-16 Stefan Kangas <stefankangas@gmail.com>
Advertise obsolete library pgg.el less
* doc/misc/gnus-faq.texi (FAQ 8-2):
* doc/misc/gnus.texi (Security):
* doc/misc/message.texi (Using OpenPGP, PGP Compatibility):
* doc/misc/mh-e.texi (Reading PGP, Sending PGP):
* lisp/gnus/mml2015.el (mml2015-use):
* lisp/info-look.el (mapc):
* lisp/mh-e/mh-e.el (mh-mml-method-default): Advertise obsolete
library pgg.el less.
* lisp/mh-e/mh-identity.el (mh-identity-pgg-default-user-id): Rename
from 'mh-identity-gpg-default-user-id', and make the old name into
obsolete variable alias. Update all uses.
2022-08-16 Po Lu <luangruo@yahoo.com>
Fix XInput hierarchy events not being delivered in daemon mode
* src/xfns.c (setup_xi_event_mask): Stop selecting for device
hierarchy events.
* src/xterm.c (xi_select_hierarchy_events, x_term_init): Select
those here instead, on the default root window.
2022-08-16 Lars Ingebrigtsen <larsi@gnus.org>
Make message-delete-line obsolete
* lisp/gnus/message.el (message-delete-line): Make obsolete.
(message-change-subject, message-cross-post-insert-note)
(message-reduce-to-to-cc, message-indent-citation)
(message-send-mail-with-mh, message-generate-headers)
(message-fill-field-general): Adjust callers.
2022-08-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix buffer-start cleanup in message-indent-citation
* lisp/gnus/message.el (message-indent-citation): Fix thinko in loop.
2022-08-16 Eli Zaretskii <eliz@gnu.org>
Don't look for long lines beyond the narrowed region
* src/xdisp.c (redisplay_window): Don't scan for newlines outside
the current buffer's restriction.
2022-08-16 Stefan Kangas <stefankangas@gmail.com>
Revert "; * doc/lispintro/emacs-lisp-intro.texi: Fix typo."
This reverts commit 9d0dba44da7ac83d018fff3c26d33dac12ebd806.
This was not a typo, but incorrectly matching parens in Info-mode.
2022-08-16 Stefan Kangas <stefankangas@gmail.com>
Modernize spam section in Gnus manual slightly
* doc/misc/gnus.texi (The problem of spam): Don't explain what
spam is; there is no need for that in 2022. Don't explain
limitations of obsolete software TMDA; it's website has stopped
working but seems to have been updated last in 2007.
(Thwarting Email Spam, Anti-Spam Basics)
(Spam Package Configuration Examples): Prefer "spam" to "UCE".
(The problem of spam): Use example.org in example.
(SpamAssassin, Hashcash): Improve wording.
2022-08-16 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/gnus.texi (Article Washing): Fix Links URL.
2022-08-16 Stefan Kangas <stefankangas@gmail.com>
Delete implicit XEmacs references from Gnus manual
* doc/misc/gnus.texi (Group Buffer Format, Summary Buffer, RSS):
Delete some implicit references to XEmacs.
(RSS): Fix default value.
2022-08-16 Jim Porter <jporterbugs@gmail.com>
Make the bookmark fringe icon look like a bookmark
* src/fringe.c (large_circle_bits): New variable.
(standard_bitmaps): Add large_circle_bits.
* lisp/fringe.el (fringe-bitmaps): Add 'large-circle'.
(fringe-custom-set-bitmap): New function.
* lisp/cus-edit.el (widget-fringe-bitmap-prompt-value-history): New
variable.
(fringe-bitmap): New widget.
* lisp/bookmark.el (bookmark-set-fringe-mark): Obsolete in favor of...
(bookmark-fringe-mark): ... this.
(bookmark-fringe-mark): Rename this fringe bitmap to...
(bookmark-mark): ... and change it to look like a bookmark.
(bookmark-face): Don't set the ':background' of the face. Instead,
set ':distant-foreground'.
(bookmark--set-fringe-mark, bookmark--remove-fringe-mark)
(bookmark-store, bookmark--jump-via): Consult the
'bookmark-fringe-mark' option.
* doc/lispref/customize.texi (Simple Types): Document 'fringe-bitmap'
type.
* doc/lispref/display.texi (Fringe Bitmaps): Mention 'large-circle'.
* etc/NEWS: Announce this change (bug#56896).
2022-08-15 Jim Porter <jporterbugs@gmail.com>
Fix non-interactive use of conditionals in Eshell
* lisp/eshell/esh-cmd.el (eshell-rewrite-if-command): Fix misplaced
't' symbol; it should be passed to 'eshell-invokify-arg'.
(eshell-do-eval): Pass 'synchronous-p' to recursive calls in some
missing cases.
* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/if-statement,
(esh-cmd-test/if-else-statement)
(esh-cmd-test/if-else-statement-lisp-form)
(esh-cmd-test/if-else-statement-lisp-form-2)
(esh-cmd-test/if-else-statement-ext-cmd)
(esh-cmd-test/unless-statement)
(esh-cmd-test/unless-else-statement)
(esh-cmd-test/unless-else-statement-lisp-form)
(esh-cmd-test/unless-else-statement-ext-cmd): Use
'eshell-command-result-equal'.
2022-08-15 Jim Porter <jporterbugs@gmail.com>
Add 'eshell-command-result-equal' with an ERT explainer
* test/lisp/eshell/eshell-tests-helpers.el
(eshell-command-result--equal, eshell-command-result--equal-explainer)
(eshell-command-result-equal): New functions.
* test/lisp/eshell/em-basic-tests.el
* test/lisp/eshell/em-dirs-tests.el
* test/lisp/eshell/esh-cmd-tests.el
* test/lisp/eshell/esh-proc-tests.el
* test/lisp/eshell/esh-var-tests.el
* test/lisp/eshell/eshell-tests.el: Use 'eshell-command-result-equal'.
2022-08-15 Jim Porter <jporterbugs@gmail.com>
Provide ERT explainer for 'eshell-match-command-output'
This was formerly named 'eshell-command-result-p', but "result" isn't
quite the right terminology, since this function specifically tested
the output of a command, not its Lisp result (as
'eshell-command-result' would return).
* test/lisp/eshell/eshell-tests-helpers.el (eshell-insert-command):
Provide a more-complete docstring.
(eshell-match-result): Rename to...
(eshell-match-output): ... this.
(eshell-match-output--explainer): New function.
(eshell-command-result-p): Rename to...
(eshell-match-command-output): ... this.
* test/lisp/eshell/em-alias-tests.el
* test/lisp/eshell/em-dirs-tests.el
* test/lisp/eshell/em-extpipe-tests.el
* test/lisp/eshell/em-script-tests.el
* test/lisp/eshell/esh-cmd-tests.el
* test/lisp/eshell/esh-proc-tests.el
* test/lisp/eshell/esh-var-tests.el
* test/lisp/eshell/eshell-tests-helpers.el
* test/lisp/eshell/eshell-tests.el: Use 'eshell-match-command-output'.
2022-08-15 Po Lu <luangruo@yahoo.com>
Avoid lowering child frames below scroll bars on X
* src/xterm.c (x_lower_frame_1): New function.
(x_lower_frame): Avoid calling XLowerFrame when there is a
parent with scroll bars.
2022-08-15 Stefan Kangas <stefankangas@gmail.com>
* doc/misc/gnus.texi (Troubleshooting): Update section.
2022-08-15 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/lispref/functions.texi (What Is a Function): Improve further
2022-08-15 John Wiegley <johnw@newartisans.com>
Merge pull request from realcomplex/override-global-mode-fix
GitHub-reference: https://github.com/jwiegley/use-package/issues/993
2022-08-15 Eli Zaretskii <eliz@gnu.org>
Produce TAGS in 'lib' as well and include them in src/TAGS
* src/Makefile.in (TAGS): Include ../lib/TAGS.
($(lib)/TAGS): New target.
(tags): Depend on $(lib)/TAGS.
2022-08-15 Michael Albinus <michael.albinus@gmx.de>
Fix tmpdir handling in Tramp for Android sshd
* doc/misc/tramp.texi (Android shell setup): Rework.
* lisp/net/tramp.el (tramp-get-remote-tmpdir): Cache result in
temporary connection property.
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Clean up message-sort-headers code slightly
* lisp/gnus/message.el (message-sort-headers): Simplify code by
removing always-true `if' statement.
2022-08-15 kobarity <kobarity@gmail.com>
Fix `python-nav-forward-block' moving backward under certain conditions
* lisp/progmodes/python.el (python-nav-forward-block): Add check
for not moving backward (bug#57223).
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix fix_command for non-symbol functions
* src/callint.c (fix_command): Don't bug out on commands that
aren't symbols (like lambdas, for instance).
2022-08-15 Alan Mackenzie <acm@muc.de>
Enhance safe_run_hooks_1 and safe_run_hook_funcall to handle more arguments
This fixes bug #57179.
* src/keyboard.c (safe_run_hooks_1, safe_run_hook_funcall): Enhance these
functions so that nargs == 3 or 4 is handled as well as nargs == 2. This
allows them to be used to call hooks with 1 or 2 arguments.
2022-08-15 Yury Kholodkov <yurykholodkov@gmail.com> (tiny change)
Fix variable types in warnings-suppress
* lisp/emacs-lisp/warnings.el (warnings-suppress): The type of
these user options is a list of lists of symbols, not a list of
symbols (bug#57183).
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Make eshell-mode more resilient towards `mode-line-format'
* lisp/eshell/esh-mode.el (eshell-mode): `mode-line-format' can be
a string (bug#57185). In that case, don't alter anything.
2022-08-15 Matt Armstrong <matt@rfc20.org>
Pacify warnings from gcc 12 in encode_coding_object
* src/coding.c (encode_coding_object): Mark saved_pt_byte with UNINIT
to silence a false alarm from -Wmaybe-uninitialized. This was already
done in decode_coding_object. The fix is correct because saved_pt is
used as a sentinel before saved_pt_byte is used (bug#57219).
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix up the exclusion logic in loaddefs-generate
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow
excluding files completely (bug#57144).
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Tweak autoloads of defsubsts containing spaces/control chars
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
Escape control chars in bodies so that we don't end up with
trailing spaces if we're autoloading a defsubst containing
"\\`[ \t\n\r]*\\'".
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Remove Gnus Compatibility manual section
* doc/misc/gnus.texi (Compatibility): Remove outdated section
(bug#57178).
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Further lisp-current-defun-name tweaks
* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further
tweaks to make (autoload 'foo) work again. Perhaps this should
all be reverted to the original version and then given a new rething.
2022-08-15 Lars Ingebrigtsen <larsi@gnus.org>
Make update-directory-autoloads available by default again
* lisp/subr.el (make-directory-autoloads)
(update-directory-autoloads): Make available by default again
(bug#57200).
* lisp/obsolete/autoload.el (make-directory-autoloads): Add
obsoletion form.
(batch-update-autoloads): Fix warning.
2022-08-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9d0dba44da ; * doc/lispintro/emacs-lisp-intro.texi: Fix typo.
0e336fa51f ; Improve documentation of minibuffer history wrt completion
2022-08-14 Po Lu <luangruo@yahoo.com>
Fix uninitialized variable false-positives
* src/xterm.c (xm_setup_dnd_targets):
(x_dnd_free_toplevels): Mark dpy and recs UNINIT, since GCC
thinks they can be used uninitialized. (bug#57208)
2022-08-14 Stefan Kangas <stefan@marxist.se>
Make message-mark-active-p obsolete in favor of mark-active
* lisp/gnus/message.el (message-mark-active-p): Make obsolete in
favor of 'mark-active'. Update callers.
2022-08-14 Stefan Kangas <stefan@marxist.se>
Make gnus-uu-view-with-metamail obsolete
The metamail package was last released in 1994, and has been removed
from most GNU/Linux distributions due to being buggy and unmaintained.
* lisp/gnus/gnus-uu.el (gnus-uu-view-with-metamail): Make obsolete.
* doc/misc/gnus.texi (Other Decode Variables): Don't document
above obsolete variable.
2022-08-14 Stefan Kangas <stefan@marxist.se>
Don't use obsolete library as example in Elisp Intro
* doc/lispintro/emacs-lisp-intro.texi (Several files recursively)
(Sorting, Files List): Don't use obsolete library makesum.el as
example.
2022-08-14 Stefan Kangas <stefan@marxist.se>
Make gnus-iswitchb-completing-read obsolete
* lisp/gnus/gnus-util.el (gnus-iswitchb-completing-read): Make
obsolete. It depends on the obsolete library iswitchb.el.
(gnus-completing-read-function): Don't advertise above obsolete
function.
2022-08-14 Stefan Kangas <stefan@marxist.se>
Don't advertise obsolete library html2text.el
* doc/misc/emacs-mime.texi (Display Customization):
* doc/misc/gnus-faq.texi (FAQ 4-7):
* doc/misc/gnus.texi (Article Washing):
* doc/misc/mh-e.texi (HTML):
* lisp/gnus/mm-decode.el (mm-text-html-renderer): Don't advertise
obsolete library html2text.el.
2022-08-14 Paul Eggert <eggert@cs.ucla.edu>
Improve timefns speed on integers
* src/timefns.c (decode_lisp_time) [FASTER_TIMEFNS]:
Speed up when SPECIFIED_TIME is an integer.
(time_cmp) [FASTER_TIMEFNS]: Speed up when comparing integers.
2022-08-14 Paul Eggert <eggert@cs.ucla.edu>
Decode time conses before floats
* src/timefns.c (decode_lisp_time): Test for conses before floats,
as conses are more common.
2022-08-14 Paul Eggert <eggert@cs.ucla.edu>
Work around Bug#57211
* src/buffer.c (Fgenerate_new_buffer_name): Allocate a bigger buffer.
2022-08-14 Paul Eggert <eggert@cs.ucla.edu>
* doc/lispref/functions.texi: Fix capitalization.
2022-08-14 Paul Eggert <eggert@cs.ucla.edu>
Fix selection preservation bug when USE_XCB
* src/xterm.c (x_preserve_selections) [USE_XCB]: Fix bug: use of
wrong tem value. Found by GCC -Wanalyzer-use-of-uninitialized-value.
Move decl of local to make the (former) bug more obvious.
2022-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/ring.el (ring): Define as a type
2022-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
(compiled-function-p): New function (bug#56648)
* lisp/subr.el (compiled-function-p): New function.
* test/lisp/international/ucs-normalize-tests.el (ucs-normalize-part1):
* lisp/gnus/gnus.el (gnus):
* lisp/mh-e/mh-e.el (mh-version):
* lisp/emacs-lisp/macroexp.el (emacs-startup-hook):
* lisp/emacs-lisp/cl-macs.el (compiled-function):
* lisp/emacs-lisp/bytecomp.el (byte-compile-fdefinition)
(byte-compile, display-call-tree):
* lisp/emacs-lisp/byte-opt.el (<toplevel-end>):
* lisp/emacs-lisp/advice.el (ad-compiled-p):
* lisp/cedet/semantic/bovine.el (semantic-bovinate-stream):
* lisp/loadup.el (macroexpand-all):
* admin/unidata/unidata-gen.el (unidata--ensure-compiled): Use it.
* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
Add entries for it.
(pcase--split-pred): Use it.
* lisp/help-fns.el (help-fns-function-description-header): Use `functionp`.
(help-fns--var-safe-local): Use `compiled-function-p`.
2022-08-14 Michael Albinus <michael.albinus@gmx.de>
Tramp code cleanup
* lisp/net/tramp-adb.el
(tramp-adb-handle-directory-files-and-attributes): Use it.
* lisp/net/tramp-compat.el (tramp-compat-replace-regexp-in-region):
New defalias.
* lisp/net/tramp-crypt.el (tramp-crypt-do-encrypt-or-decrypt-file-name):
Fix root filename for cache.
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
Adapt check for proper remote command.
* lisp/net/tramp-sh.el (tramp-open-shell): Add sanity check for
shell prompt.
(tramp-get-ls-command): Check, that argument "--color=never" has
the intended effect.
2022-08-14 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/cedet/ede/emacs.el (ede-emacs-load): Delete obsolete name arg
* lisp/calendar/time-date.el (seconds-to-time): Use the original arg list
2022-08-14 Stefan Kangas <stefan@marxist.se>
* src/Makefile.in (elnlisp): Delete autoload.eln from list.
2022-08-14 Stefan Kangas <stefan@marxist.se>
Make Gnus FAQ more contemporary
* doc/misc/gnus-faq.texi (FAQ - Introduction): Fix timeline.
(FAQ - Changes): Delete outdated section.
(FAQ 5-5): Update to reflect that ispell.el and flyspell.el is
distributed with Emacs.
(FAQ 4-1, FAQ 4-7, FAQ 4-8, FAQ 4-14, FAQ 5-8, FAQ 5-10, FAQ 6-3)
(FAQ 7-2): Delete references to ancient versions of Gnus.
(FAQ 6-3): Delete reference to obsolete library nnir.el.
(FAQ - Glossary): Remove "Emacs" entry. This is self-explanatory, and
risks causing confusion; our docs never mean anything but "GNU Emacs"
when we say "Emacs".
2022-08-14 Mattias Engdegård <mattiase@acm.org>
Strength-reduce apply with (list ...) as tail argument
* lisp/emacs-lisp/byte-opt.el (byte-optimize-apply):
Transform (apply F ... (list X ...)) -> (funcall F ... X ...)
2022-08-14 Mattias Engdegård <mattiase@acm.org>
Simplify code using take, ntake and butlast
* lisp/calc/calc-vec.el (calcFunc-rhead):
* lisp/calc/calc.el (calc-top-list, calc-pop):
* lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
Simplify.
2022-08-14 Eli Zaretskii <eliz@gnu.org>
Further speedups of redisplay of long and truncated lines
* src/xdisp.c (mode_line_update_needed, redisplay_window)
(decode_mode_spec): Don't avoid calling current_column, as it is
now fast enough.
(redisplay_window) <optional_new_start>: Don't call 'move_it_to'
if its result will not be used.
(Flong_line_optimizations_p): New primitive.
* src/indent.c (Fcurrent_column): Doc fix.
(current_column, scan_for_column): When in a buffer with long
and/or truncated lines, quickly return an approximate value.
* src/window.c (Frecenter): Use the old text-mode code when the
buffer has very long lines.
* lisp/simple.el (line-move): Avoid costly calls to
'line-move-partial' and 'line-move-visual' when lines are
truncated and/or very long.
(move-beginning-of-line): Call 'line-beginning-position' instead
of the slower 'skip-chars-backward'.
* etc/NEWS: Announce 'long-line-optimizations-p'.
2022-08-13 Po Lu <luangruo@yahoo.com>
More fixes to MPX drag-and-drop interaction
* src/xterm.c (x_dnd_begin_drag_and_drop): Also initialize the
keyboard device used for drag-and-drop.
(handle_one_xevent): Verify deviceid in more places; also test
keyboard device before swallowing F1.
2022-08-13 Basil L. Contovounesios <contovob@tcd.ie>
Document time-convert FORM argument as mandatory
This is a followup to commit b70369c557 of 2022-08-05
"time-convert): Deprecate calls without an explicit FORM arg".
* doc/lispref/os.texi (Time Conversion):
* src/timefns.c (Ftime_convert): Describe FORM argument as required
as per the advertised calling convention.
2022-08-13 Stefan Kangas <stefan@marxist.se>
Improve time-convert docstring formatting for readability
* src/timefns.c (Ftime_convert): Doc fix; improve formatting for
readability.
2022-08-13 Stefan Monnier <monnier@iro.umontreal.ca>
nadvice.el: Avoid exponential blow up in interactive-form recursion
* lisp/emacs-lisp/nadvice.el (advice--interactive-form): Sink the call
to `commandp` into the autoloaded function case since it's redundant in
the other branch.
(advice--make-interactive-form): Take just the interactive forms rather
than the actual functions as arguments.
(oclosure-interactive-form): Use `advice--interactive-form` rather than
`commandp` since we'd call `advice--interactive-form` afterwards anyway.
2022-08-13 Stefan Kangas <stefan@marxist.se>
Update Gnus Installation FAQ
* doc/misc/gnus-faq.texi (FAQ 1-1, FAQ 1-2, FAQ 1-3, FAQ 1-4)
(FAQ 1-5): Update to reflect that Gnus is no longer released
separately from Emacs. Delete FAQ on Gnus 5.10, released in May 2003.
2022-08-13 Stefan Kangas <stefan@marxist.se>
Make many gnus version variables obsolete
Many haven't been bumped since 1997, others not since 2004.
* lisp/gnus/deuglify.el (gnus-outlook-deuglify-version):
* lisp/gnus/gnus-diary.el (gnus-diary-version):
* lisp/gnus/nnagent.el (nnagent-version):
* lisp/gnus/nnbabyl.el (nnbabyl-version):
* lisp/gnus/nndiary.el (nndiary-version):
* lisp/gnus/nndir.el (nndir-version):
* lisp/gnus/nndoc.el (nndoc-version):
* lisp/gnus/nndraft.el (nndraft-version):
* lisp/gnus/nneething.el (nneething-version):
* lisp/gnus/nnfolder.el (nnfolder-version):
* lisp/gnus/nnmaildir.el (nnmaildir-version):
* lisp/gnus/nnmbox.el (nnmbox-version):
* lisp/gnus/nnmh.el (nnmh-version):
* lisp/gnus/nnml.el (nnml-version):
* lisp/gnus/nnrss.el (nnrss-version):
* lisp/gnus/nnspool.el (nnspool-version):
* lisp/gnus/nntp.el (nntp-version):
* lisp/gnus/nnvirtual.el (nnvirtual-version): Make obsolete in
favor of emacs-version.
2022-08-13 Stefan Monnier <monnier@iro.umontreal.ca>
js.el: Tweak last change
* lisp/progmodes/js.el (js-json-mode): Use a function as value of
`syntax-propertize-function`.
2022-08-13 Eli Zaretskii <eliz@gnu.org>
Speed up display of long lines under 'truncate-lines'
* src/xdisp.c (partial_line_height): Return zero for long and
truncated lines.
(fast_move_it_horizontally): New function.
(hscroll_window_tree, display_line): Use
'fast_move_it_horizontally' in preference to
'move_it_in_display_line_to', when dealing with long and truncated
lines.
(redisplay_internal): Optimize "optimization 3" for long and
truncated lines.
* src/buffer.c (syms_of_buffer) <large-hscroll-threshold>: New
variable.
* etc/NEWS: Announce 'large-hscroll-threshold'.
2022-08-13 Po Lu <luangruo@yahoo.com>
Add new value `dont-save' to `deactivate-mark'
* etc/NEWS: Announce new value of `deactivate-mark'.
* lisp/simple.el (deactivate-mark): Handle new value.
(bug#57147)
* src/keyboard.c (syms_of_keyboard): Update doc string of
`deactivate-mark'.
2022-08-13 Lars Ingebrigtsen <larsi@gnus.org>
Tweak outline symbol icons
* lisp/outline.el (outline-close, outline-open): Use icons of the
same size in Symbola.
2022-08-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow EXCLUDED-FILES in loaddefs-generate to be relative
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Allow the
excluded files to be relative (bug#57144).
2022-08-13 Lars Ingebrigtsen <larsi@gnus.org>
Don't hide final dump in admin/emake
2022-08-13 Stefan Kangas <stefan@marxist.se>
Make ps-mode-version variable obsolete
* lisp/progmodes/ps-mode.el (ps-mode-version): Make obsolete.
(ps-mode-show-version, ps-mode-submit-bug-report): Don't use above
obsolete variable.
2022-08-13 Stefan Kangas <stefan@marxist.se>
Make htmlfontify-version variable obsolete
* lisp/htmlfontify.el (htmlfontify-version): Make obolete.
(hfy-meta-tags): Don't use above obsolete variable.
2022-08-13 Stefan Kangas <stefan@marxist.se>
Delete many references to Emacs 23 or older from docs
* doc/emacs/glossary.texi (Glossary):
* doc/emacs/msdos.texi (Windows Fonts):
* doc/lispref/loading.texi (Library Search):
* doc/lispref/processes.texi (Accepting Output):
* doc/misc/auth.texi (GnuPG and EasyPG Assistant Configuration):
* doc/misc/efaq-w32.texi (Font names):
* doc/misc/efaq.texi (Turning on syntax highlighting)
(Escape sequences in shell output):
* doc/misc/eshell.texi (Bugs and ideas):
* doc/misc/gnus.texi (nnmairix requirements):
* doc/misc/gnus-faq.texi (FAQ 1-5):
* doc/misc/idlwave.texi (Troubleshooting):
* doc/misc/message.texi (Using S/MIME):
* doc/misc/mh-e.texi (Preface, Incorporating Mail):
* doc/misc/viper.texi (Viper Specials): Delete references to Emacs 23
or older.
2022-08-13 Po Lu <luangruo@yahoo.com>
Prevent selection converter from signalling if buffer is narrowed
* lisp/select.el (xselect-convert-to-string): If positions are
outside the accessible portion of the buffer, don't return
anything.
2022-08-13 Eli Zaretskii <eliz@gnu.org>
Fix a recently-added Eshell test on MS-Windows
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/last-result-var-ext-cmd): Fix the test on
MS-Windows by making sure the internal 'format' command
is invoked. (Bug#57129)
2022-08-13 Jim Porter <jporterbugs@gmail.com>
Make '$?' and '$$' variables more consistent in Eshell
Previously, '$?' (last exit code) was only useful for external
commands, and '$$' (last result) was only useful for Lisp commands.
* lisp/eshell/esh-cmd.el (eshell-lisp-form-nil-is-failure): New
option.
(eshell-lisp-command): Set last exit code to 1 when the command
signals an error, and 2 if it returns nil (for Lisp forms only).
* lisp/eshell/esh-proc.el (eshell-sentinel): Set last result to t if
the command succeeded.
* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/while-loop-lisp-form, esh-cmd-test/until-loop-lisp-form)
(esh-cmd-test/if-else-statement-lisp-form)
(esh-cmd-test/if-else-statement-lisp-form-2)
(esh-cmd-test/unless-else-statement-lisp-form): New tests.
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/last-status-var-lisp-command)
(esh-var-test/last-status-var-lisp-form)
(esh-var-test/last-status-var-lisp-form-2)
(esh-var-test/last-status-var-ext-cmd)
(esh-var-test/last-status-var-ext-cmd): New tests.
(esh-var-test/last-result-var2): Rename from this...
( esh-var-test/last-result-var-twice): ... to this.
* doc/misc/eshell.texi (Variables): Update documentation about '$?'
and '$$'.
(Control Flow): Mention that '(lisp forms)' can be used as
conditionals.
* etc/NEWS: Announce this change (bug#57129).
2022-08-13 Jim Porter <jporterbugs@gmail.com>
Allow using dollar expansions in Eshell conditionals
* lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Forms
beginning with 'eshell-escape-arg' are "data-wise".
* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/while-loop)
(esh-cmd-test/until-loop, esh-cmd-test/if-statement)
(esh-cmd-test/if-else-statement, esh-cmd-test/unless-statement)
(esh-cmd-test/unless-else-statement): Use variable interpolation.
(esh-cmd-test/while-loop-ext-cmd, esh-cmd-test/until-loop-ext-cmd)
(esh-cmd-test/if-else-statement-ext-cmd)
(esh-cmd-test/unless-else-statement-ext-cmd): New tests, adapted from
the existing ones.
* doc/misc/eshell.texi (Control Flow): Update documentation for
conditionals (bug#57129).
2022-08-13 Jim Porter <jporterbugs@gmail.com>
Only set Eshell execution result metavariables when non-nil
This simplifies usage of 'eshell-close-handles' in several places and
makes it work more like the docstring indicated it would.
* lisp/eshell/esh-io.el (eshell-close-handles): Only store EXIT-CODE
and RESULT if they're non-nil. Also, use 'dotimes' and 'dolist' to
simplify the implementation.
* lisp/eshell/em-alias.el (eshell-write-aliases-list):
* lisp/eshell/esh-cmd.el (eshell-rewrite-for-command)
(eshell-structure-basic-command): Adapt calls to
'eshell-close-handles'.
* test/lisp/eshell/eshell-tests.el (eshell-test/simple-command-result)
(eshell-test/lisp-command, eshell-test/lisp-command-with-quote)
(eshell-test/for-loop, eshell-test/for-name-loop)
(eshell-test/for-name-shadow-loop, eshell-test/lisp-command-args)
(eshell-test/subcommand, eshell-test/subcommand-args)
(eshell-test/subcommand-lisp): Move from here...
* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/simple-command-result, esh-cmd-test/lisp-command)
(esh-cmd-test/lisp-command-with-quote, esh-cmd-test/for-loop)
(esh-cmd-test/for-name-loop, esh-cmd-test/for-name-shadow-loop)
(esh-cmd-test/lisp-command-args, esh-cmd-test/subcommand)
(esh-cmd-test/subcommand-args, esh-cmd-test/subcommand-lisp): ... to
here.
(esh-cmd-test/and-operator, esh-cmd-test/or-operator)
(esh-cmd-test/for-loop-list, esh-cmd-test/for-loop-multiple-args)
(esh-cmd-test/while-loop, esh-cmd-test/until-loop)
(esh-cmd-test/if-statement, esh-cmd-test/if-else-statement)
(esh-cmd-test/unless-statement, esh-cmd-test/unless-else-statement):
New tests.
* doc/misc/eshell.texi (Invocation): Explain '&&' and '||'.
(for loop): Move from here...
(Control Flow): ... to here, and add documentation for other control
flow forms.
2022-08-13 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
72fc7258bf Delete references to deleted library hilit19.el
e746fc2e7b Delete stale comments from Lisp Intro manual
77613b9217 ; Delete redundant installation instructions from ebnf2ps.el
2022-08-12 Po Lu <luangruo@yahoo.com>
Improve MPX interaction with drag-and-drop
* src/xfns.c (Fx_set_mouse_absolute_pixel_position): Use
internal client pointer record.
* src/xterm.c (x_dnd_cancel_dnd_early): New function. Only used
on XI2 builds so far.
(x_dnd_begin_drag_and_drop): Set the pointer device used for DND
events.
(xi_disable_devices): Cancel the drag-and-drop operation if that
device is disabled.
(x_send_scroll_bar_event): Update outdated comment.
(handle_one_xevent): Only accept DND events from that device.
(frame_set_mouse_pixel_position): Use internal client pointer
record.
2022-08-12 Stefan Kangas <stefan@marxist.se>
Hide local variable section in emacs-news-modes
* lisp/textmodes/emacs-authors-mode.el
(emacs-authors-mode--hide-local-variables): Move from here...
* lisp/emacs-lisp/subr-x.el (emacs-etc--hide-local-variables):
...to here.
* lisp/textmodes/emacs-authors-mode.el (subr-x): Require.
(emacs-authors-mode): Use above renamed function.
* lisp/textmodes/emacs-news-mode.el (subr-x): Require.
(emacs-news--mode-common): Call 'emacs-etc--hide-local-variables'
to hide local variables section.
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Don't update loaddefs.el timestamps uselessly in loaddefs-generate
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't
re-write the loaddefs.el file when there's no reason to.
2022-08-12 Stefan Kangas <stefan@marxist.se>
Support imenu in emacs-authors-mode
* lisp/textmodes/emacs-authors-mode.el
(emacs-authors-imenu-generic-expression): New variable.
(emacs-authors-mode): Add imenu support.
2022-08-12 Stefan Kangas <stefan@marxist.se>
Rename etc-authors-mode to emacs-authors-mode
* emacs-authors-mode.el: Rename all symbols from 'etc-authors-*' to
'emacs-authors-*'. Make most old names into obsolete compat aliases.
* admin/authors.el: (Bug#57105)
* etc/AUTHORS: Use 'emacs-authors' instead of 'etc-authors'.
2022-08-12 Stefan Kangas <stefan@marxist.se>
Rename etc-authors-mode.el to emacs-authors-mode.el
* lisp/textmodes/etc-authors-mode.el: Move from here...
* lisp/textmodes/emacs-authors-mode.el: ...to here. (Bug#57105)
2022-08-12 Stefan Kangas <stefan@marxist.se>
Delete references to deleted library hilit19.el
* doc/misc/gnus.texi (Compatibility):
* lisp/progmodes/f90.el:
* lisp/ps-print.el:
* lisp/vc/ediff.el: Delete references to hilit19.el.
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix emacs-news-view-mode-map inheritance
* lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode-map):
Fix inheritance from `special-mode-map' (bug#57100).
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Clarify bookmark-set prompt
* lisp/bookmark.el (bookmark-set): Clarify prompt further
(bug#57128).
2022-08-12 Harald Jörg <haj@posteo.de>
gud.el: invoke 'perldb' with '-E' instead of '-e'
* lisp/progmodes/gud.el (gud-perldb-massage-args): Allow '-E' switch
and use it as a default in favor of '-e'
* etc/NEWS ('perldb' now recognizes '-E') New entry in section 'Gud'
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Remove some more outdated Gnus manual stuff
* doc/misc/gnus.texi (Mail Source Customization): Remove more
outdated text (bug#57156).
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Remove (gnus) Gnus Development manual section
* doc/misc/gnus.texi (Gnus Development): Remove outdated section
(bug#57156).
2022-08-12 Philip Kaludercic <philipk@posteo.net>
* package-vc.el (package-vc-fetch): Autoload it
2022-08-12 Stefan Kangas <stefan@marxist.se>
* doc/misc/gnus.texi (Emacsen): Delete section.
2022-08-12 Stefan Kangas <stefan@marxist.se>
Make some more cedet version variables obsolete
* lisp/cedet/ede.el (ede-version):
* lisp/cedet/semantic.el (semantic-version):
* lisp/cedet/srecode.el (srecode-version): Make obsolete.
* lisp/cedet/semantic/db-file.el (semanticdb-file-version): Don't
use above obsolete variable semantic-version.
2022-08-12 Philip Kaludercic <philipk@posteo.net>
Merge remote-tracking branch 'origin/master' into feature/package+vc
2022-08-12 Stefan Kangas <stefan@marxist.se>
Delete stale comments from Lisp Intro manual
* doc/lispintro/emacs-lisp-intro.texi (Args as Variable or List)
(print-elements-of-list, Miscellaneous): Delete some references to
Emacs 22.
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Clarify face-at-point doc string and add (thing-at-point 'face)
* lisp/faces.el (face-at-point): Say what this function does.
* lisp/thingatpt.el (thing-at-point-face-at-point): Add `face'
type (bug#57087).
(thing-at-point-provider-alist, thing-at-point): Mention it in the
doc strings.
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Further seq-uniq speed-ups for lists
* lisp/emacs-lisp/seq.el (seq-uniq): Speed up more for long lists
(bug#57079).
2022-08-12 Stefan Kangas <stefan@marxist.se>
Make finder-mode inherit special-mode
* lisp/finder.el (finder-mode): Inherit special-mode.
(finder-mode-map): Inherit special-mode-map.
2022-08-12 Stefan Kangas <stefan@marxist.se>
* lisp/finder.el (finder-summary): Improve formatting.
2022-08-12 Stefan Kangas <stefan@marxist.se>
Use help-key-binding face in package list help
* lisp/emacs-lisp/package.el (package--prettify-quick-help-key):
Use help-key-binding face.
2022-08-12 Stefan Kangas <stefan@marxist.se>
Make cedet version variables obsolete
* lisp/cedet/cedet.el (cedet-version, cedet-packages): Make
obsolete.
2022-08-12 Lars Ingebrigtsen <larsi@gnus.org>
Default outline-minor-mode-use-buttons to only happen in *Help*
* lisp/outline.el (outline-minor-mode-use-buttons): Change the
default to only use buttons in the *Help* buffer (for now),
because it's too disruptive in other modes. This will probably be
changed again to have some other mechanism to opt in in certain
modes, but it's not clear what that mechanism should look like.
2022-08-12 Stephen Berman <stephen.berman@gmx.net>
Reverse the outline arrows
* lisp/outline.el (outline-open): Reverse the arrows to match
arrows in Customize (bug#57082).
2022-08-12 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9419bc904d ; * lisp/printing.el: Delete outdated download instructions.
31af0f4eb7 Don't list Emacs as requirement for built-in package
ae348b719e Fix wrong metrics for bitmap-only fonts with HarfBuzz 5
2022-08-11 Po Lu <luangruo@yahoo.com>
Prevent SelectionNotify etc from reaching GTK 3
* src/xterm.c (handle_one_xevent): Prevent selection events from
reaching GTK if they are destined for an Emacs window.
2022-08-11 Alan Mackenzie <acm@muc.de>
New debugging facility: backtraces from errors in Lisp called from redisplay
Setting backtrace-on-redisplay-error to non-nil enables the generation of a
Lisp backtrace in buffer *Redisplay-trace* following an error in Lisp called
from redisplay.
* doc/lispref/debugging.texi (Debugging Redisplay): New subsection.
(Error Debugging): Reference to the new subsection.
* etc/NEWS: New entry for the new facility.
* src/eval.c (redisplay_deep_handler): New variable.
(init_eval): Initialize redisplay_deep_handler.
(call_debugger): Don't throw to top-level after calling debug-early
(internal_condition_case_n): "Bind" redisplay_deep_handler to the current
handler.
(backtrace_yet): New boolean variable.
(signal_or_quit): New code section to handle Lisp errors occurring in
redisplay.
(syms_of_eval): New DEFVAR_BOOL backtrace-on-redisplay-error.
* src/keyboard.c (command_loop_1): Set backtrace_yet to false each time around
the loop.
(safe_run_hooks_error): Allow args to be up to four Lisp_Objects long.
(safe_run_hooks_2): New function.
* src/lisp.h (top level): declare as externs backtrace_yet and
safe_run_hooks_2.
* src/xdisp.c (run_window_scroll_functions): Replace a call to
run_hook_with_args_2 with one to safe_run_hooks_2.
2022-08-11 Axel Svensson <mail@axelsvensson.com> (tiny change)
Support the full range of variation selectors
* lisp/international/characters.el: Provide acronyms for variation
selectors.
(update-glyphless-char-display): Update display of the full range
of variation selectors.
(glyphless-char-display-control): Update doc string. (Bug#57072)
* doc/lispref/display.texi (Glyphless Chars): Document more
variation selectors.
2022-08-11 Stefan Kangas <stefan@marxist.se>
Make ad-version variable obsolete
* lisp/emacs-lisp/advice.el (ad-version): Make obsolete in favor
of emacs-version. It has not been bumped since 1994.
2022-08-11 Stefan Kangas <stefan@marxist.se>
Make ebnf-version variable obsolete
* lisp/progmodes/ebnf2ps.el (ebnf-version): Make obsolete.
(ebnf-setup, ebnf-begin-file, ebnf-eps-finish-and-write): Don't
use above obsolete variable.
2022-08-11 Stefan Kangas <stefan@marxist.se>
Make ps-print-version variable obsolete
* lisp/ps-print.el (ps-print-version): Make obsolete.
(ps-setup, ps-begin-file):
* lisp/progmodes/ebnf2ps.el:
* lisp/printing.el:
(pr-help-message, pr-interface-help-message)
(pr-create-interface): Don't use above obsolete variable.
2022-08-11 Stefan Kangas <stefan@marxist.se>
Make pr-version variable obsolete
* lisp/printing.el (pr-version): Make obsolete.
(pr-help-message, pr-interface-help-message, pr-setup)
(pr-create-interface): Don't use above obsolete variable.
2022-08-11 Stefan Kangas <stefan@marxist.se>
Don't list Emacs as requirement for built-in package
* doc/misc/htmlfontify.texi (Requirements): Don't list Emacs as
requirement for built-in package.
2022-08-11 Stefan Kangas <stefan@marxist.se>
Don't show status message in Helper-describe-bindings
* lisp/emacs-lisp/helper.el (Helper-describe-bindings): Don't show
status message.
2022-08-11 Philip Kaludercic <philipk@posteo.net>
Add "send patches" note to package-vc TODO section
* package.el (describe-package-1): Add news if avaliable
* package.el (package--get-activatable-pkg): Prefer source packages
2022-08-11 Ulf Jasper <ulf.jasper@web.de>
newsticker: fix bug#57045
* lisp/net/newst-treeview.el
(newsticker--treeview-list-items-with-age) (newsticker-treeview-update):
Fix issues with changing sort order in virtual feed 'all' (Bug#57045).
2022-08-11 Philip Kaludercic <philipk@posteo.net>
Allow updating source packages
* lisp/emacs-lisp/package-vc.el (package-vc-update): Add new function.
* lisp/emacs-lisp/package.el (package-update): Use 'package-vc-update'.
2022-08-11 Stefan Kangas <stefan@marxist.se>
* lisp/vc/emerge.el (emerge-show-file-name): Make obsolete.
2022-08-11 Stefan Kangas <stefan@marxist.se>
Make emerge-define-key-if-possible obsolete
* lisp/vc/emerge.el (emerge-define-key-if-possible): Make unused
function obsolete.
2022-08-11 Philip Kaludercic <philipk@posteo.net>
Ignore files in .elpaignore during byte compilation
* package.el (package--parse-elpaignore): Add new function.
(package--compile): Bind 'byte-compile-ignore-files' to the result of
'package--parse-elpaignore'.
2022-08-11 Philip Kaludercic <philipk@posteo.net>
* package-vc.el (package-vc-unpack): Detect TeXinfo manuals
2022-08-11 Michael Albinus <michael.albinus@gmx.de>
* test/lisp/net/tramp-tests.el (tramp--test-utf8): Adapt test.
2022-08-11 Philip Kaludercic <philipk@posteo.net>
Allow ignoring files during byte compilation
* bytecomp.el (byte-compile-ignore-files): Add new variable.
(byte-recompile-directory): Respect 'byte-compile-ignore-files'.
2022-08-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fix wrong metrics for bitmap-only fonts with HarfBuzz 5
* src/ftcrfont.c (ftcrhbfont_begin_hb_font): Always use the standard
position unit value on HarfBuzz 5 and later regardless of whether the
font is bitmap-only or not. (Bug#57066)
2022-08-11 Philip Kaludercic <philipk@posteo.net>
Guess Git repositories from the URL header
* package-vc.el (package-vc-probable-repository-regexp): Add new user option.
(package-vc-sourced-packages-list): Add new function using
'package-vc-probable-repository-regexp'.
(package-vc-fetch): Use 'package-vc-sourced-packages-list'.
2022-08-11 realcomplex <koenvg@posteo.net> (tiny change)
Go back to making `override-global-mode` non-global
2022-08-11 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
648acc8848 ; Fix @setfilename in calc.texi
2022-08-10 Po Lu <luangruo@yahoo.com>
Adjust client pointer upon help event
* src/xterm.c (handle_one_xevent): Keep track of the device that
set do_help and make it the client pointer so that tooltips show
up under the right pointer.
2022-08-10 Eli Zaretskii <eliz@gnu.org>
Fix 'describe-char' in "C" locale
* lisp/descr-text.el (describe-char): Avoid assertions if
'buffer-file-coding-system' is nil. (Bug#57066)
2022-08-10 Visuwesh <visuweshm@gmail.com>
Improve the bengali-probhat input method
* lisp/leim/quail/indian.el ("bengali-probhat"): Set KBD-TRANSLATE
and SHOW-LAYOUT flags non-nil. This makes the IM usable with Dvorak
keyboard and also shows more useful help. Reported by Akib Azmain
Turja <akib@disroot.org>.
2022-08-10 Po Lu <luangruo@yahoo.com>
Fix some undesirable frame focus changes
* src/xterm.c (handle_one_xevent): Only detach upon actual
device tree change.
2022-08-10 Stefan Kangas <stefan@marxist.se>
Make gdb-pad-string obsolete in favor of string-pad
* lisp/progmodes/gdb-mi.el (subr-x): Require.
(gdb-pad-string): Make obsolete in favor of 'string-pad'. Update
callers.
2022-08-10 Mattias Engdegård <mattiase@acm.org>
Extend LAP optimisations to more operations
Extend the set of eligible opcodes for certain peephole
transformations, which then provide further optimisation
opportunities.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Optimise empty save-current-buffer in the same way as we already
do for save-excursion and save-restriction. This is safe
because (save-current-buffer) is a no-op.
(byte-compile-side-effect-and-error-free-ops): Add list3, list4 and
listN. These were all apparent oversights as list1 and list2 were
already included.
(byte-after-unbind-ops): Add stack-ref, stack-set, discard, list3,
list4 and listN. Stack manipulation is safe because unbind cannot
read or modify stack entries.
2022-08-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warning in wisent/comp.el
* lisp/cedet/semantic/wisent/comp.el (require): string-pad is used
run-time.
2022-08-10 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in vc/*.el
* lisp/vc/add-log.el (change-log-mode-map):
* lisp/vc/ediff-mult.el (ediff-dir-diffs-buffer-map):
* lisp/vc/vc-annotate.el (vc-annotate-mode-map):
* lisp/vc/vc-bzr.el (vc-bzr-shelve-map):
* lisp/vc/vc-dir.el (vc-dir-status-mouse-map)
(vc-dir-filename-mouse-map):
* lisp/vc/vc-git.el (vc-git-stash-shared-map, vc-git-stash-map)
(vc-git-stash-button-map, vc-git-log-edit-mode-map):
* lisp/vc/vc-hg.el (vc-hg-log-edit-mode-map)
(vc-hg-extra-menu-map):
* lisp/vc/vc-hooks.el (vc-prefix-map): Prefer defvar-keymap.
2022-08-10 Koen van Greevenbroek <koen@localhost.com> (tiny change)
Make sure that bind-key's `override-global-mode` is initially on
In 4004dde the arguments to `define-minor-mode` were changed
erroneously. Whereas the `override-global-mode` was initially defined
as `(define-minor-mode override-global-mode "..." t "")`, the two
latter arguments where changed to `:global t :lighter ""`. However,
the two original arguments corresponded to the keywords `:init-value`
and `:lighter`, respectively.
With `:init-value t` now missing, the minor mode isn't enabled by
default, and `bind-key*` appears not to work.
2022-08-10 Stefan Kangas <stefan@marxist.se>
Delete dead code in checkdoc.el
* lisp/emacs-lisp/checkdoc.el: Delete code commented out since
1997.
2022-08-10 Stefan Kangas <stefan@marxist.se>
Fix namespacing issues in array.el
* lisp/array.el (array--limit-index, array-current-line)
(array-move-to-column-untabify, array--untabify-backward): Rename
from 'limit-index', 'current-line', 'move-to-column-untabify', and
'untabify-backward'. Update callers.
2022-08-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
14833cd9df Improve wording when documenting other TRAMP syntaxes
628df15da5 ; * doc/misc/viper.texi (Rudimentary Changes): Avoid alias.
85de996bbb * lisp/vc/diff-mode.el: Don't mention XEmacs.
2022-08-09 Po Lu <luangruo@yahoo.com>
Improve MPX interaction with xwidgets and drag-and-drop
* src/xterm.c (handle_one_xevent): Handle focus interaction in
more places.
2022-08-09 Dmitry Gutov <dgutov@yandex.ru>
js--font-lock-keywords-2: Remove the 'for each' matcher
* lisp/progmodes/js.el (js--font-lock-keywords-2):
Remove the 'for each' matcher. First, because it was slow
(bug#56682), and second: the 'for each' syntax was only present in
Mozilla's dialect of JavaScript (added in version 1.5), and has
been deprecated for a decade now.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make wisent-pad-string obsolete in favor of string-pad
* lisp/cedet/semantic/wisent/comp.el (wisent-pad-string): Make
obsolete in favor of 'string-pad'. Update callers.
(subr-x): Require when compiling.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make unused function filesets-ormap obsolete
* lisp/filesets.el (filesets-ormap): Simplify and make obsolete in
favor of 'seq-drop-while'.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make filesets-filter-list obsolete in favor of seq-filter
* lisp/filesets.el (filesets-filter-list): Make obsolete in favor
of 'seq-filter'. Update callers.
2022-08-09 Lars Ingebrigtsen <larsi@gnus.org>
Avoid having language environments interpreted as sections
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make rng-collapse-space obsolete
* lisp/nxml/rng-util.el (rng-collapse-space): Make obsolete in favor
of 'string-clean-whitespace'. Update callers.
Suggested by Lars Ingebrigtsen <larsi@gnus.org>.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Improve wording when documenting other TRAMP syntaxes
* doc/misc/tramp.texi (Change file name syntax): Improve wording.
(Bug#57061)
2022-08-09 Stefan Kangas <stefan@marxist.se>
Avoid using aliases for color functions
* lisp/emulation/viper-init.el (viper-has-face-support-p):
* lisp/emulation/viper-util.el (viper-save-cursor-color)
(viper-change-cursor-color):
* lisp/faces.el (read-color):
* lisp/net/dictionary.el (dictionary-color-support):
* lisp/obsolete/gs.el (gs-set-ghostview-colors-window-prop):
* lisp/progmodes/cperl-mode.el (cperl-choose-color):
* lisp/woman.el (woman-fontify): Avoid using aliases for
color-defined-p, display-color-p, and color-values.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Remove some compat code from ps-print.el
* lisp/ps-print.el (ps-print-color-p): Assume color-values is
fboundp; it always is.
2022-08-09 Stefan Kangas <stefan@marxist.se>
* lisp/vc/pcvs-util.el (cvs-partition): Simplify.
* lisp/nxml/rng-util.el (rng-collapse-space): Simplify.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make rng-blank-p obsolete in favor of string-blank-p
* lisp/nxml/rng-util.el (rng-blank-p): Make obsolete in favor of
string-blank-p. Update callers.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Autoload string-blank-p
* lisp/eshell/em-hist.el (subr-x):
* lisp/net/eudc.el (subr-x): Don't require.
* lisp/emacs-lisp/subr-x.el (string-blank-p): Autoload.
2022-08-09 Stefan Kangas <stefan@marxist.se>
* lisp/ibuf-ext.el (ibuffer-remove-alist): Simplify.
2022-08-09 Lars Ingebrigtsen <larsi@gnus.org>
Use new convenience functions in replace-string
* lisp/replace.el (replace-string): Use new convenience functions.
2022-08-09 Lars Ingebrigtsen <larsi@gnus.org>
Add use-region-beginning and use-region-end
* lisp/simple.el (use-region-beginning, use-region-end): New functions.
(use-region-p): Mention them in the doc strings (bug#45607).
2022-08-09 Juri Linkov <juri@linkov.net>
* lisp/replace.el (replace-highlight): Optimize for large buffers (bug#56815)
Let-bind isearch-lazy-count and lazy-highlight-buffer to nil to avoid
revisiting all matches in the whole buffer after every replacement.
2022-08-09 Andrea Greselin <greselin.andrea@gmail.com>
Add new user option electric-quote-replace-consecutive
* lisp/electric.el (electric-quote-replace-consecutive): New user
option (bug#57057).
(electric-quote-post-self-insert-function): Use it.
2022-08-09 Stephen Berman <stephen.berman@gmx.net>
Make outline buttons work in NEWS
* lisp/outline.el (outline-minor-mode-highlight-buffer): Fix
button insertion.
(outline-minor-mode): Ditto.
(outline--insert-open-button): Don't mark buffer as modified when
inserting buttons.
(outline--insert-close-button): Ditto.
* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common):
Adjust outline regexp.
2022-08-09 Eli Zaretskii <eliz@gnu.org>
Revert "Make compat alias check-ispell-version obsolete"
This reverts commit 24795e45e5fab6e2f699582662f9be7c5c6e25f8.
That alias is in no way obsolete, and was added for a different
reason.
2022-08-09 Lars Ingebrigtsen <larsi@gnus.org>
Further lisp-current-defun-name tweaks
* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Tweak so
that cl-defmethod and friends work again.
2022-08-09 Lars Ingebrigtsen <larsi@gnus.org>
Add a faster seq-uniq for lists
* lisp/emacs-lisp/seq.el (seq-uniq): Add a faster method for lists
(bug#57079).
2022-08-09 Laurence Warne <laurencewarne@gmail.com>
Fix python escape code fontification for multi-line literals
* lisp/progmodes/python.el (python--string-bytes-literal-matcher): Go
backward one char after a match so that consecutive escape codes are
highlighted
(python--not-raw-string-literal-start-regexp): Make regular expression
more comprehensive, so multi-line bytes literals are not caught
(python-rx): Accept one to three octal digits in octal escape codes
instead of always three
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make ibuffer-aif obsolete in favor of if-let
* lisp/ibuf-macs.el (ibuffer-aif): Make obsolete in favor of 'if-let'.
* lisp/ibuffer.el (ibuffer-mouse-toggle-mark)
(ibuffer-mark-interactive, ibuffer-compile-format, process):
Prefer 'if-let' to above obsolete macro.
(ibuffer-toggle-marks, ibuffer-map-lines): Prefer 'when-let'
to above obsolete macro.
2022-08-09 Michael Albinus <michael.albinus@gmx.de>
Further Tramp fixes for Android 12
* lisp/net/tramp-adb.el (tramp-adb-handle-file-attributes)
(tramp-adb-handle-directory-files-and-attributes)
(tramp-adb-handle-file-name-all-completions): Pipe "ls" output
through "cat", in order to avoid quoting special characters.
(tramp-adb-sh-fix-ls-output): Remove fix for file names with spaces.
* test/lisp/net/tramp-tests.el (tramp-test22-file-times): Adapt test.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Improve message regarding missing LEIM
* lisp/international/ja-dic-utl.el (skkdic-lookup-key):
* lisp/international/mule-diag.el (list-input-methods-1):
* lisp/international/quail.el (quail-use-package): Explain that LEIM
is installed together with Emacs.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Improve readability of list-input-methods
* lisp/international/mule-diag.el: Make screen more readable by
improving the formatting.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Replace utility functions with seq-uniq
* lisp/gnus/gnus-util.el (gnus-delete-duplicates):
* lisp/ibuf-ext.el (ibuffer-remove-duplicates): Redefine as
obsolete function alias for 'seq-uniq'. Update callers.
2022-08-09 Lars Ingebrigtsen <larsi@gnus.org>
Make the loaddefs.el file slightly shorter
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--shorten-autoload): New function.
(loaddefs-generate--make-autoload): Use it to drop optional nil
values from the `autoloads' forms. This makes the loaddefs.el
file about 12K shorter.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make ibuffer-awhen obsolete in favor of when-let
* lisp/ibuf-macs.el (ibuffer-awhen): Make obsolete in favor of
'when-let'. Update callers.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make ibuffer-split-list obsolete in favor of seq-group-by
* lisp/ibuf-ext.el (ibuffer-split-list): Make obsolete in favor of
'seq-group-by'.
(ibuffer-generate-filter-groups): Don't use above obsolete
function.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make compat alias check-ispell-version obsolete
* lisp/textmodes/ispell.el (check-ispell-version): Make compat
alias obsolete.
2022-08-09 Stefan Kangas <stefan@marxist.se>
* lisp/ibuffer.el (ibuffer): Use substitute-command-keys for help.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make compat alias image-refresh obsolete
* lisp/image.el (image-refresh): Make compat alias obsolete.
Update callers.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Make compat aliases obsolete in fortran.el
* lisp/progmodes/fortran.el (fortran-indent-new-line)
(fortran-auto-fill-mode): Make compat aliases obsolete; update
callers.
2022-08-09 Stefan Kangas <stefan@marxist.se>
* lisp/isearch.el (isearch-mode-help): Make compat alias obsolete.
2022-08-09 Alan Mackenzie <acm@muc.de>
CC Mode: Allow the insertion of long strings of letters in reasonable time
This fix allows M-: (insert (make-string 1000000 ?y)) to work fast when
inserted between C++ raw string delimiters after (setq long-line-threshold
nil).
* lisp/progmodes/cc-langs.el (c-symbol-key): Replace a "*" by "\\{,1000\\}" in
a regexp.
2022-08-09 Po Lu <luangruo@yahoo.com>
Factor out some duplicate code from handle_one_xevent
* src/xterm.c (xi_disable_devices): New function.
(handle_one_xevent): Use that to disable an array of device IDs
instead of copypasting the same block of code over and over
again.
2022-08-09 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d91ffdbec2 Don't mention XEmacs toolbar in ediff manual
2022-08-08 Po Lu <luangruo@yahoo.com>
Fix handling of XI_DeviceChanged events
* src/xterm.c (xi_get_scroll_valuator): New function.
(xi_handle_device_changed): New function.
(handle_one_xevent): Factor out most of the device changed code
to that function, and make it specifically query for the device
information. (bug#57020)
2022-08-08 Michael Heerdegen <michael_heerdegen@web.de>
Another lisp-current-defun-name tweak
* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Avoid error
when edebug spec is the symbol t.
2022-08-08 Dmitry Gutov <dgutov@yandex.ru>
Add separate tiny major mode for JSON
* lisp/progmodes/js.el (js-json-mode): New major mode.
* lisp/files.el (auto-mode-alist): Use it for JSON (bug#56682).
* lisp/progmodes/js.el (js--class-decl-matcher):
Skip work if there are no frameworks enabled.
2022-08-08 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsiiformes/quote-quote
GitHub-reference: https://github.com/jwiegley/use-package/issues/990
2022-08-08 Jonas Bernoulli <jonas@bernoul.li>
Quote single quotes in docstrings or use different quoting
The byte-compiler started pointing this out:
Warning: docstring has wrong usage of unescaped single
quotes (use \= or different quoting)
2022-08-08 Stefan Kangas <stefan@marxist.se>
* lisp/vc/diff-mode.el: Don't mention XEmacs.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Don't mention XEmacs toolbar in ediff manual
* doc/misc/ediff.texi (Other Session Commands): Don't mention XEmacs
specific toolbar support for now. This can be changed back once the
toolbar is ported to Emacs.
2022-08-08 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsiiformes/cleanup-manual
GitHub-reference: https://github.com/jwiegley/use-package/issues/968
2022-08-08 Stefan Kangas <stefan@marxist.se>
* lisp/progmodes/antlr-mode.el: Remove remnants of XEmacs support.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Remove XEmacs specific symbol from gnus-user-agent
* lisp/gnus/gnus.el (gnus-user-agent): Remove XEmacs specific
'codename' symbol.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from mh-alias.el
* lisp/mh-e/mh-alias.el (crm): Don't require for autoloaded
function.
(multi-prompt): Don't require XEmacs specific library.
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Clean up fix_command code slightly
* src/callint.c (fix_command): Remove superfluous check.
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
select-active-regions doc string improvement
* src/keyboard.c (syms_of_keyboard): Mention
post-select-region-hook.
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Do some NEWS tagging
2022-08-08 Stefan Kangas <stefan@marxist.se>
* lisp/obsolete/makesum.el: Add "Obsolete-since" header.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Make makesum.el obsolete
* lisp/makesum.el: Move from here...
* lisp/obsolete/makesum.el: ...to here. (Bug#56979)
* test/lisp/makesum-tests.el: Move from here...
* test/lisp/obsolete/makesum-tests.el: ...to here.
2022-08-08 Mattias Engdegård <mattiase@acm.org>
* src/print.c (struct print_buffer): Revert gratuitous format change.
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS note about interactive-args
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Update TODO about fix_command
* etc/TODO: Remove bit about fix_command, which has now been fixed.
2022-08-08 Arash Esbati <arash@gnu.org>
Improve collecting of citation keys
* lisp/textmodes/reftex-cite.el (reftex-all-used-citation-keys):
Improve regexp for matching various cite commands incl. optional
arguments.
Recognize comments more robustly and don't interpret the control
symbol \% as a comment starter. (bug#56655)
* test/lisp/textmodes/reftex-tests.el
(reftex-all-used-citation-keys): New test.
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Clean up fix_command slightly
* src/callint.c (fix_command): Remove now-unused parameter.
(Fcall_interactively): Ditto.
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Further lisp-current-defun-name tweaks
* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Further
tweaks to finding the symbol being defined (defalias).
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Allow specifying how args are to be stored in `command-history'
* doc/lispref/functions.texi (Declare Form): Document
`interactive-args'
* lisp/replace.el (replace-string): Store the correct interactive
arguments (bug#45607).
* lisp/emacs-lisp/byte-run.el (byte-run--set-interactive-args):
New function.
(defun-declarations-alist): Use it.
* src/callint.c (fix_command): Remove the old hack (which now
longer works since interactive specs are byte-compiled) and
instead rely on `interactive-args'.
2022-08-08 Lars Ingebrigtsen <larsi@gnus.org>
Make which-func-mode output less junk
* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): Use
edebug specs to find the name (if they exist), and default to
returning the top-level symbol if there isn't a define-like form
(bug#49592).
2022-08-08 Stefan Kangas <stefan@marxist.se>
* test/lisp/emacs-lisp/nadvice-tests.el: Re-add no-byte-compile.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Remove redundant local variables in tests
* test/lisp/calc/calc-tests.el:
* test/lisp/progmodes/python-tests.el: Remove redundant local
variables.
* test/src/coding-tests.el: Pacify byte-compiler without using local
variable.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Revert "Don't autoload obsolete library tpu-extras.el"
This reverts commit 77bf50cb330807039cc84138fb84870bd6d532e2.
2022-08-08 Jonas Bernoulli <jonas@bernoul.li>
manual: Regenerate texi file
2022-08-08 Mattias Engdegård <mattiase@acm.org>
Group print buffer state in a struct
* src/print.c (print_buffer, print_buffer_size, print_buffer_pos)
(print_buffer_pos_byte): Replace with...
(struct print_buffer, print_buffer): ...this.
* src/print.c: (print_free_buffer, print_unwind)
(print_prepare, print_finish, printchar, strout): Adapt users.
2022-08-08 Mattias Engdegård <mattiase@acm.org>
Turn large macros in print.c to functions
This is easier to read and maintain, and makes the state explicit.
It is a pure refactoring; the compiled code should be equivalent.
* src/print.c (PRINTPREPARE, PRINTFINISH): Replace with...
(struct print_context, print_prepare, print_finish): ...these new
functions and explicit state in a struct.
(Fwrite_char, write_string, Fterpri, Fprin1, Fprin1_to_string)
(Fprinc, Fprint): Adapt callers.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Remove no-byte-compile cookie from some libraries
This gives us back byte-compiler warnings for these files.
* lisp/mh-e/mh-acros.el:
* test/lisp/comint-tests.el:
* test/lisp/emacs-lisp/nadvice-tests.el:
* test/lisp/emacs-lisp/syntax-tests.el:
* test/lisp/xml-tests.el:
* test/src/font-tests.el: Remove no-byte-compile cookie.
* test/src/font-tests.el (font-parse-explain): Fix warning.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Don't autoload obsolete library tpu-extras.el
* lisp/obsolete/tpu-edt.el: Remove autoloads of obsolete library
tpu-extras.el.
* lisp/obsolete/tpu-extras.el: Don't set generated-autoload-file
to tpu-edt.el.
2022-08-08 Stefan Kangas <stefan@marxist.se>
Clean up some local variable sections
* lisp/filesets.el:
* lisp/mh-e/mh-*.el:
* lisp/progmodes/python.el (python): Don't set options that are
already set in .dir-locals.el.
* lisp/textmodes/ispell.el: Remove redundant local variables.
* lisp/gnus/nnmaildir.el: Remove local variables that conflicts with
Emacs defaults.
2022-08-07 Po Lu <luangruo@yahoo.com>
Fix warnings outside XI2 builds
* src/xterm.c (x_query_pointer): Juggle some definitions around.
2022-08-07 Po Lu <luangruo@yahoo.com>
Improve handling of pointer focus under the input extension
* src/xfns.c (x_relative_mouse_position)
(Fx_mouse_absolute_pixel_position, compute_tip_xy): Use
x_query_pointer instead of XQueryPointer.
* src/xterm.c (xi_populate_device_from_info): Set new attachment
field.
(xi_handle_focus_change): Set client pointer.
(xi_focus_handle_for_device, xi_handle_interaction): Use
attached keyboard device to handle focus.
(x_query_pointer): New function.
(XTmouse_position, x_scroll_bar_report_motion)
(x_horizontal_scroll_bar_report_motion, handle_one_xevent): Use
x_query_pointer instead of XQueryPointer.
(x_term_init): Initialize client pointer device.
* src/xterm.h (struct xi_device_t): New field `attachment'.
(struct x_display_info): New field `client_pointer_device'.
2022-08-07 Stefan Kangas <stefan@marxist.se>
Minor cleanups in ediff-*.el
* lisp/vc/ediff-init.el (ediff-window-visible-p):
(ediff-nonempty-string-p): Simplify.
(stipple-pixmap): Don't try XEmacs specific(?) variable.
(ediff-frame-unsplittable-p): Make obsolete. Update callers.
(ediff-has-gutter-support-p): Redefine as obsolete function alias for
'ignore'.
(ediff-mouse-event-p): Redefine as obsolete function alias for
'mouse-event-p'. Update callers.
* lisp/vc/ediff-util.el (ediff-submit-report): Simplify.
(ediff-filename-magic-p): Make obsolete. Update callers.
(ediff-activate-mark): Make obsolete. Update callers.
* lisp/vc/ediff-help.el:
* lisp/vc/ediff-hook.el:
* lisp/vc/ediff-util.el:
* lisp/vc/ediff-wind.el: Remove superfluous defvars.
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from conao3/fix-declare-style
GitHub-reference: https://github.com/jwiegley/use-package/issues/760
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from waymondo/ensure-system-packages-use-package-as-one
GitHub-reference: https://github.com/jwiegley/use-package/issues/774
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from waymondo/use-package-hook-handler-flatten-mode-symbols
GitHub-reference: https://github.com/jwiegley/use-package/issues/775
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from waymondo/use-package-chords-autoloading-and-mapping-improvements
GitHub-reference: https://github.com/jwiegley/use-package/issues/778
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from matzebond/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/787
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from wcy123/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/822
2022-08-07 Stefan Kangas <stefan@marxist.se>
Make ediff-window-display-p obsolete
* lisp/vc/ediff-init.el (ediff-window-display-p): Redefine as
obsolete function alias for 'display-graphic-p'.
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from phst/lex
GitHub-reference: https://github.com/jwiegley/use-package/issues/848
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from phst/flet
GitHub-reference: https://github.com/jwiegley/use-package/issues/849
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from conao3/add-custom-face-description
GitHub-reference: https://github.com/jwiegley/use-package/issues/863
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from iaeerfung/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/912
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from wyuenho/set-default-use-package-enable-imenu-support
GitHub-reference: https://github.com/jwiegley/use-package/issues/920
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from wyuenho/statistics-sorting
GitHub-reference: https://github.com/jwiegley/use-package/issues/921
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from Hugo-Heagren/bind-keys-repeat-map
GitHub-reference: https://github.com/jwiegley/use-package/issues/974
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from danielpza/add-update-custom-package
GitHub-reference: https://github.com/jwiegley/use-package/issues/930
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsiiformes/silencio
GitHub-reference: https://github.com/jwiegley/use-package/issues/936
2022-08-07 Lars Ingebrigtsen <larsi@gnus.org>
Pacify a gcc warning in xi_handle_focus_change
* src/xterm.c (xi_handle_focus_change): Pacify a wrong warning on
gcc (Debian 10.2.1-6).
xterm.c: In function xi_handle_focus_change:
xterm.c:12564:25: warning: source may be used uninitialized in
this function [-Wmaybe-uninitialized]
12564 | ie.device = source->name;
| ~~~~~~^~~~~~
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from DamienCassou/update-texi
GitHub-reference: https://github.com/jwiegley/use-package/issues/979
2022-08-07 John Wiegley <johnw@newartisans.com>
Merge pull request from skangas/fix-typo
GitHub-reference: https://github.com/jwiegley/use-package/issues/987
2022-08-07 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp error message
* lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy):
Simplify for empty files. Better error message. (Bug#56879)
2022-08-07 kobarity <kobarity@gmail.com>
Fix blank/comment line handling in python-nav-beginning-of-block
* lisp/progmodes/python.el (python-nav-beginning-of-block): Fix
handling of blank/comment line right after block start (bug#57038).
2022-08-07 Eli Zaretskii <eliz@gnu.org>
Fix 'vertical-motion' in bidi-reordered text
* src/xdisp.c (move_it_vertically_backward): Fix the case of long
bidi-reordered lines when starting from its last (top-most) screen
line.
(move_it_by_lines): Fix logic of detection when going by lines
overshoots.
2022-08-07 Stefan Kangas <stefan@marxist.se>
Make ediff-file-remote-p obsolete in favor of file-remote-p
* lisp/vc/ediff-init.el (ediff-file-remote-p): Make into obsolete
function alias for file-remote-p. Update callers.
2022-08-07 Stefan Kangas <stefan@marxist.se>
Declare unused function ediff-user-grabbed-mouse obsolete
* lisp/vc/ediff-init.el (ediff-user-grabbed-mouse): Declare unused
function obsolete. As far as I can tell, this has been unused
since 1996.
* lisp/vc/ediff-wind.el (ediff-mouse-pixel-position): Make
variable obsolete. It is only used in the above obsolete funct
* lisp/vc/ediff-mult.el (ediff-filegroup-action)
(ediff-registry-action):
* lisp/vc/ediff-util.el (ediff-setup): Don't set above unused
variable.
* lisp/vc/ediff-init.el (ediff-spy-after-mouse): Make obsolete.
* lisp/vc/ediff-util.el (ediff-setup): Don't add above obsolete
function to pre-command-hook.
2022-08-07 Stefan Kangas <stefan@marxist.se>
Make compat function custom-reset-variables obsolete
* lisp/custom.el (custom-reset-variables): Make unused XEmacs compat
function obsolete.
2022-08-07 Stefan Kangas <stefan@marxist.se>
Remove workaround for XEmacs bug in ediff-util.el
* lisp/vc/ediff-util.el (ediff-make-empty-tmp-file): Remove
workaround for XEmacs bug.
2022-08-07 Stefan Kangas <stefan@marxist.se>
* lib-src/etags.c: Remove XEmacs support.
2022-08-07 Lars Ingebrigtsen <larsi@gnus.org>
Clarify lisp/Makefile.in comment
* lisp/Makefile.in: Clarify comment.
2022-08-07 Alan Mackenzie <acm@muc.de>
CC Mode: Fix looping in patch from yesterday
* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
(c-after-change-mark-abnormal-strings): Check (eobp) in loops advancing over
escaped newlines.
2022-08-07 Lars Ingebrigtsen <larsi@gnus.org>
Tweak autoloads lisp/Makefile.in dependencies
* lisp/Makefile.in (autoloads): Adjust the dependencies to what
they were before, and update the comments.
2022-08-07 Stefan Kangas <stefan@marxist.se>
Improve how url-http displays status messages
* lisp/url/url-util.el (url-display-message): New function.
(url-display-percentage): Make obsolete in favor of
url-display-message.
* lisp/url/url-http.el
(url-http-content-length-after-change-function):
Prefer 'url-display-message' to 'url-display-percentage'.
(url-http-content-length-after-change-function)
(url-http-chunked-encoding-after-change-function):
Remove ineffectual calls to 'url-display-percentage'.
2022-08-07 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
7ffcba4213 * etc/PROBLEMS: Problems with Alacritty and Emoji. (Bug#5...
df95118e83 Link from (emacs)Init Syntax to (elisp)Introduction
7793cf0c3d Don't mention removed XEmacs support in reftex manual
3d1cf1b47a Don't mention removed XEmacs support in idlwave manual
7ff60c62a9 ; * admin/make-tarball.txt: Fix last change.
2fd5590d0c ; * lisp/play/fortune.el (fortune-ask-file): Doc fix.
2022-08-07 Mattias Engdegård <mattiase@acm.org>
Cease emitting negative file offsets for user variables
'User variables' were made obsolete in Emacs 24 along with
user-variable-p; the sign of the position in (#$ . POS) hasn't
mattered since.
* lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform):
Don't emit negative position when doc string starts with `*`.
* src/lread.c (get_lazy_string): Explain.
2022-08-07 Mattias Engdegård <mattiase@acm.org>
Use struct for saved strings in the reader
* src/lread.c (saved_doc_string, saved_doc_string_size)
(saved_doc_string_length, saved_doc_string_position)
(prev_saved_doc_string, prev_saved_doc_string_size)
(prev_saved_doc_string_length, prev_saved_doc_string_position):
Replace with...
(struct saved_string, saved_strings): ...this.
* src/lread.c (Fload, skip_lazy_string, get_lazy_string):
Adapt code.
2022-08-07 Mattias Engdegård <mattiase@acm.org>
Make force-load-doc-strings work again
When load-force-doc-strings is true, read (#$ . POS) as the (unibyte)
string referred to. This feature was lost by mistake in the recent
nonrecursive reader rewrite.
Noticed by Stefan Monnier.
* src/lread.c (get_lazy_string): New function (code mostly recycled
from an old version).
(read0): Detect (#$ . FIXNUM) and retrieve the string if appropriate.
* test/src/lread-resources/lazydoc.el:
* test/src/lread-tests.el (lread-force-load-doc-strings):
New test.
2022-08-06 Po Lu <luangruo@yahoo.com>
Revert "Improve X event timestamp tracking"
This reverts commit 4b98a79a508ebdc719abfcf51ee6de32e46d0e1c.
This change was installed without answering several important
questions.
2022-08-06 Daniel Colascione <dancol@dancol.org>
Improve X event timestamp tracking
Fix two problems with our handling of X timestamps
1) We're not properly updating the X interaction timestamp after
receiving certain input events, and
2) X events sent in response to emacsclient commands get stale
timestamps because the timestamp tracking doesn't take into account
that interactions with the user can occur outside the X input
event channel.
* src/xterm.c:
(x_display_set_last_user_time_1): New function.
(x_display_set_last_user_time): Call it.
(x_ewmh_activate_frame): Refactor.
(x_focus_frame): Don't call XSetInputFocus if we can use EWMH activation.
(server_timestamp_predicate): New function.
(x_get_server_time): New function.
(x_note_oob_interaction): New function.
(x_create_terminal): Register new function as terminal hook.
* src/termhooks.h: New hook: note_oob_interaction_hook.
* src/gtkutil.h:
(xg_set_user_timestamp): Declare.
* src/gtkutil.c:
(xg_set_user_timestamp): New function.
* src/frame.c:
(Fframe_note_oob_interaction): New function.
(syms_of_frame): Register it.
* lisp/server.el:
(server-switch-buffer): Call frame-note-oob-interaction when user
requests frame be raised.
2022-08-06 Po Lu <luangruo@yahoo.com>
Correctly set user time on GTK+ for key press events
* src/xterm.c (x_set_gtk_user_time): New function.
(handle_one_xevent): Call that after key press event on GTK+.
2022-08-06 Jonas Bernoulli <jonas@bernoul.li>
* lisp/transient.el: Update to package version v0.3.7-158-gc09b34e
2022-08-06 Alan Mackenzie <acm@muc.de>
CC Mode: Optimize font-locking stanzas for long raw strings.
Also replace some regexp searches which had caused regexp engine stack
overflows with simple end-of-line calls.
* lisp/progmodes/cc-fonts.el (c-make-syntactic-matcher)
(c-make-font-lock-search-form): Start the generated functions with a skipping
of comments and strings.
(c-make-font-lock-BO-decl-search-function): Start the generated function with
a (fast) movement to the start of any literal.
* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
(c-after-change-mark-abnormal-strings): Replace complicated regexp searches
for end of logical line with basic Lisp functions.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Finish up obsoletion of mh-compat.el
* lisp/obsolete/mh-compat.el: Add "Obsolete-since" header.
* lisp/mh-e/mh-e.el (mh-compat): Don't require.
* lisp/mh-e/mh-utils.el (mailabbrev): Require.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make mh-compat.el obsolete
This used to be for XEmacs and old version compatibility, but nowadays
everything in this file is obsolete.
* lisp/mh-e/mh-compat.el: Move from here...
* lisp/obsolete/mh-compat.el: ...to here.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Move mh-flet macro to mh-acros.el
* lisp/mh-e/mh-compat.el (mh-flet): Move from here...
* lisp/mh-e/mh-acros.el (mh-flet): ...to here.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make compat macro mh-display-completion-list obsolete
* lisp/mh-e/mh-compat.el (mh-display-completion-list): Make compat
macro obsolete. Update callers.
2022-08-06 Eli Zaretskii <eliz@gnu.org>
* etc/PROBLEMS: Problems with Alacritty and Emoji. (Bug#56952)
2022-08-06 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp for Android 12
* lisp/net/tramp-adb.el (tramp-methods): Use "%d".
(tramp-adb-handle-directory-files-and-attributes): Fix "." and
".." in listing.
(tramp-adb-sh-fix-ls-output): Fix file names with spaces.
(tramp-adb-maybe-open-connection): Compute args from `tramp-login-args'.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-handle-make-process): Check for adb device if indicated.
* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory)
(tramp-test22-file-times): Adapt tests.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Fix namespacing problem in allout.el
* lisp/allout.el (allout-outlinify-sticky): Rename from
'outlineify-sticky'. Make old name into obsolete alias.
(outlinify-sticky): Make into obsolete function alias for
'allout-outlinify-sticky'.
(allout-mode): Doc fix.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Fix defvar-keymap example in elisp manual
* lisp/textmodes/text-mode.el (text-mode-map): Convert to
defvar-keymap.
* doc/lispref/modes.texi (Example Major Modes): Fix example to
match code.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make indented-text-mode alias obsolete
* lisp/textmodes/text-mode.el (indented-text-mode): Make compat
alias obsolete.
* lisp/allout.el (allout-use-hanging-indents):
* lisp/emulation/viper.el (viper-vi-state-mode-list):
* lisp/textmodes/remember.el (remember-mode):
* lisp/textmodes/text-mode.el (text-mode-map):
* lisp/vc/ediff-util.el (ediff-choose-syntax-table): Don't mention or
use above obsolete alias.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make {close,replace}-rectangle compat aliases obsolete
* lisp/rect.el (close-rectangle, replace-rectangle): Make compat
aliases obsolete.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Don't mention test failures on Ubuntu 16.04 in PROBLEMS
Ubuntu 16.04 LTS reached end of life on April 30th, 2021.
Furthermore, test failures don't seem significant enough to warrant an
entry. It's rather cosmetic.
* etc/PROBLEMS: Delete entry on test failures on Ubuntu 16.04.
2022-08-06 Eli Zaretskii <eliz@gnu.org>
New function 'composition-sort-rules'
* src/composite.c (Fcomposition_sort_rules)
(compare_composition_rules): New functions.
2022-08-06 Jonas Bernoulli <jonas@bernoul.li>
* doc/misc/transient.texi: Update to transient v0.3.7-156-ga5562cb
Eventually we want to be able to generate "transient.texi" from
"transient.org", without having to either give up on idiomatic texinfo
or making it much more painful to maintain the org file.
We are much closer to that now, but there are still a few areas where
additional work is needed. This was mostly accomplished by using Org
macros.
The most significant outstanding issue is that the generated
references don't yet look like an experienced texinfo author like Eli
would like them to look. Additionally it is not yet possible to use a
macro that produces @dots{} in the places Eli added them, and in Org
code blocks it is not possible to use macros, so we cannot have
@var{...} appear in "@lisp ... @end lisp". The last issue probably
cannot be changed on Org's side, but since there are only two such
code blocks, this might be a situation where the compromise has to
come from the texinfo side. There are also three other very minor
and inconsequential differences.
For now I have regenerated the texinfo file from the org file and then
discarded the differences mentioned in the previous paragraph.
The process of merging (1) Eli's changes to the texinfo file
(including, but certainly not limited to markup), (2) changes to the
org source (updated content, formatting changes backported earlier,
fixes for formatting changes Eli did not fix, etc.) and (3) changes to
the code that converts the org source to texinfo, was very laborious
and painful. In essence, this amounted to a (at least) three-way
merge across three different languages and three repositories.
I tried very hard to not waste any of the effort Eli had put into
fixing up the generated texinfo file. I.e., I went back and forth
making improvements to the org source, implementing org macros,
regenerating the texinfo and comparing the remaining difference, and
creating commits on both sides. This resulted in a dozen commits on
both sides and took me well over a day. I could have put in even more
effort to absolutely ensure nothing at all is lost in the process, but
I think that would have amounted to a colossal waste of my time.
Going forward, if you find unidiomatic texinfo, then please don't fix
each instance. Instead write me an email, explaining what the problem
is. You are welcome to make limited fixes to the content or fix
one-of markup issue in the texinfo file; those are relatively simple
to backport in comparison.
2022-08-06 Eli Zaretskii <eliz@gnu.org>
Speed up display of Arabic
* lisp/language/misc-lang.el (composition-function-table): Move
some of the Arabic composition rules to ZWJ and ZWNJ cells. This
speeds up display of Arabic by a factor of 2. (Bug#56682)
2022-08-06 Eli Zaretskii <eliz@gnu.org>
Fix C-n/C-p inside bidirectional text
* src/xdisp.c (move_it_by_lines, try_cursor_movement): Handle
glyph rows whose direction of increasing buffer positions is
reverse of the normal: going down in the window makes buffer
positions higher.
* src/indent.c (Fvertical_motion): When looking for the last glyph
row occupied by point, take into account the bidi iteration
direction.
2022-08-06 YugaEgo <yet@ego.team>
Link from (emacs)Init Syntax to (elisp)Introduction
* doc/emacs/custom.texi (Init Syntax): Link to the ELisp manual (Bug#56870)
2022-08-06 lWarne <laurencewarne@gmail.com>
Fontify python escape sequences in literals
* lisp/progmodes/python.el (python-rx): Add regular expressions
matching escape codes in string and byte literals
(python--string-bytes-literal-matcher): new function
(python--not-raw-bytes-literal-start-regexp): new constant
(python--not-raw-string-literal-start-regexp): new constant
* test/lisp/progmodes/python-tests.el: Add tests for new
fontification (bug#57004).
2022-08-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix mh-e.texi syntax (from previous change)
* doc/misc/mh-e.texi (Viewing): Add closing brace to @footnote.
2022-08-06 Stefan Kangas <stefan@marxist.se>
* etc/PROBLEMS: Delete entry on 20+ years old version of X-Symbol.
* admin/check-doc-strings: Remove XEmacs support.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Don't mention removed XEmacs support in reftex manual
* doc/misc/reftex.texi (Installation, Imprint): Don't mention
removed XEmacs support.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Don't mention removed XEmacs support in mh-e manual
* doc/misc/mh-e.texi (Preface, Incorporating Mail, Viewing)
(Tool Bar, Tool Bar): Remove any reference to XEmacs.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make alias widget-visibility-value-create obsolete
* lisp/wid-edit.el (widget-visibility-value-create): Make compat
alias obsolete.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make an rmail compat alias obsolete
* lisp/mail/rmailsum.el (rmail-summary-output-to-rmail-file): Make
compat alias obsolete.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make compat alias ede-toplevel-project-or-nil obsolete
* lisp/cedet/ede/files.el (ede-toplevel-project-or-nil): Make
compat alias obsolete.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Drop support for XEmacs package func-menu from idlwave
* lisp/progmodes/idlwave.el (idlwave-function-menu): Make into
obsolete alias for imenu. Update callers.
* doc/misc/idlwave.texi (Introduction, Motion Commands): Remove
any mention of func-menu.
2022-08-06 Stefan Kangas <stefan@marxist.se>
Make face-doc-string aliases obsolete
* lisp/faces.el (face-doc-string, set-face-doc-string): Make
aliases obsolete.
2022-08-06 Stefan Kangas <stefan@marxist.se>
* admin/update_autogen: Fix generating ldefs-boot.el.
* admin/update_autogen: Fix refreshing grammar-wy.el.
2022-08-06 Lars Ingebrigtsen <larsi@gnus.org>
Put no-byte-compile cookie back in ldefs-boot.el
2022-08-06 Stefan Kangas <stefan@marxist.se>
Don't mention removed XEmacs support in idlwave manual
* doc/misc/idlwave.texi (Lesson I---Development Cycle)
(Syntax Highlighting, Windows and macOS, Troubleshooting): Delete
most references to XEmacs. Support for it was deleted in 28.1.
2022-08-06 Po Lu <luangruo@yahoo.com>
Correctly initialize values after a new device is enabled
* src/xterm.c (handle_one_xevent): Initialize new device to
zero. (bug#57011)
2022-08-06 Eli Zaretskii <eliz@gnu.org>
* src/puresize.h (BASE_PURESIZE): Bump the value. (Bug#57007)
2022-08-06 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f3b9bccb45 * lisp/play/fortune.el: Doc fixes.
2022-08-05 Po Lu <luangruo@yahoo.com>
Improve XI focus handling for entry and exit events
* src/xterm.c (handle_one_xevent): Skip useless
x_detect_focus_change calls in more cases.
2022-08-05 Po Lu <luangruo@yahoo.com>
* src/callproc.c (emacs_spawn): Fix Mac OS X build.
2022-08-05 Po Lu <luangruo@yahoo.com>
Fix signature of `seconds-to-time'
* lisp/calendar/time-date.el (seconds-to-time): Fix after change
to time-convert.
2022-08-05 Po Lu <luangruo@yahoo.com>
Improve XI focus handling
* src/xterm.c (handle_one_xevent): Skip useless
x_detect_focus_change calls in some cases.
2022-08-05 Jim Porter <jporterbugs@gmail.com>
Add STREAM argument to 'process-tty-name'
* src/process.c (process-tty-name): Add STREAM argument.
* lisp/eshell/esh-io.el (eshell-close-target): Only call
'process-send-eof' once if the process's stdin is a pipe.
* test/src/process-tests.el (make-process/test-connection-type): Check
behavior of 'process-tty-name'.
* doc/lispref/processes.texi (Process Information): Document the new
argument.
* etc/NEWS: Announce this change.
2022-08-05 Jim Porter <jporterbugs@gmail.com>
Allow creating processes where only one of stdin or stdout is a PTY
* src/lisp.h (emacs_spawn):
* src/callproc.c (emacs_spawn): Add PTY_IN and PTY_OUT arguments to
specify which streams should be set up as a PTY.
(call_process): Adjust call to 'emacs_spawn'.
* src/process.h (Lisp_Process): Replace 'pty_flag' with 'pty_in' and
'pty_out'.
* src/process.c (is_pty_from_symbol): New function.
(make-process): Allow :connection-type to be a cons cell, and allow
using a stderr process with a PTY for stdin/stdout.
(create_process): Handle creating a process where only one of stdin or
stdout is a PTY.
* lisp/eshell/esh-proc.el (eshell-needs-pipe, eshell-needs-pipe-p):
Remove.
(eshell-gather-process-output): Use 'make-process' and set
':connection-type' as needed by the value of 'eshell-in-pipeline-p'.
* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't signal an
error when ':connection-type' is a cons cell.
* test/src/process-tests.el
(process-test-sentinel-wait-function-working-p): Allow passing PROC
in, and rework into...
(process-test-wait-for-sentinel): ... this.
(process-test-sentinel-accept-process-output)
(process-test-sentinel-sit-for, process-test-quoted-batfile)
(process-test-stderr-filter): Use 'process-test-wait-for-sentinel'.
(make/process/test-connection-type): New function.
(make-process/connection-type/pty, make-process/connection-type/pty-2)
(make-process/connection-type/pipe)
(make-process/connection-type/pipe-2)
(make-process/connection-type/in-pty)
(make-process/connection-type/out-pty)
(make-process/connection-type/pty-with-stderr-buffer)
(make-process/connection-type/out-pty-with-stderr-buffer): New tests.
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test--detect-pty-cmd):
New variable.
(esh-proc-test/pipeline-connection-type/no-pipeline)
(esh-proc-test/pipeline-connection-type/first)
(esh-proc-test/pipeline-connection-type/middle)
(esh-proc-test/pipeline-connection-type/last): New tests.
* doc/lispref/processes.texi (Asynchronous Processes): Document new
':connection-type' behavior.
(Output from Processes): Remove caveat about ':stderr' forcing
'make-process' to use pipes.
* etc/NEWS: Announce this change (bug#56025).
2022-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
time-convert): Deprecate calls without an explicit FORM arg
* lisp/subr.el (time-convert): Deprecate calls without an explicit FORM arg.
* doc/lispref/os.texi (Time Conversion): Adjust doc accordingly.
* lisp/calendar/time-date.el (days-to-time):
* lisp/emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
* lisp/gnus/nnrss.el (nnrss-normalize-date):
* lisp/epa-ks.el (epa-ks--parse-buffer): Silence corresponding warnings.
2022-08-05 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that leim-list.el is built
* lisp/Makefile.in: Ensure that leim-list.el is built (bug#56998).
2022-08-05 Stefan Kangas <stefan@marxist.se>
Allow newline after def*-form for definition-prefix
* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
Add another semantic function.
(loaddefs-generate--compute-prefixes): Allow newline after the "(def*"
form. (Bug#57000)
2022-08-05 Filipp Gunbin <fgunbin@fastmail.fm>
Add variable end-of-defun-moves-to-eol
* lisp/emacs-lisp/lisp.el (end-of-defun-moves-to-eol): New variable.
(end-of-defun): Use it.
2022-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
* src/keyboard.c (timer_check_2): Replace redundant test with assertion
2022-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
timer.el: Avoid repeated timers
https://mail.gnu.org/archive/html/emacs-devel/2022-07/msg01127.html
points out that end-users can get bitten by this, accidentally
calling `timer-activate` on an already activated timer.
* lisp/emacs-lisp/timer.el (timer--activate): Signal an error if we try
to re-add a timer that's already on the timer-list.
2022-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
bytecomp.el: Update comments referring to `make-docfile`
2022-08-05 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in 'back_to_previous_visible_line_start'
* src/xdisp.c (init_iterator): Always initialize narrowed_begv to
zero, since SET_WITH_NARROWED_BEGV depends on it being non-zero as
an indication that long-line optimizations are in use.
(back_to_previous_visible_line_start): When long-line
optimizations are in effect, we may end up not on a newline.
2022-08-05 Stefan Monnier <monnier@iro.umontreal.ca>
bytecomp.el: Further simplifications enabled by commit 59732a83c8875c
* lisp/emacs-lisp/bytecomp.el (byte-compile-output-docform): Don't
insert a \n before the #@ docstrings since make-docfile doesn't scan
.elc files any more.
2022-08-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix lisp/Makefile.in autoloads dependency
* lisp/Makefile.in (autoloads): Ensure that loaddefs-gen.elc
exists before making autoloads.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Make ange-ftp-re-read-dir compat alias obsolete
* lisp/net/ange-ftp.el (ange-ftp-re-read-dir): Make alias obsolete.
Update callers.
2022-08-05 Lars Ingebrigtsen <larsi@gnus.org>
Make loaddefs.el dependencies more explicit in src/Makefile.in
* src/Makefile.in (LC_ALL): Add loaddefs.el as a dependency, too,
since that file may be deleted, but the loaddefs.elc file still
exists. This causes problems in nativecomp builds.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Rename object-sort-list to srecode-object-sort-list
* lisp/cedet/srecode/table.el (srecode-object-sort-list): Rename
from 'object-sort-list'. Retain old name as an obsolete alias.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Fix namespace problems in viper.el
* lisp/emulation/viper.el
(viper-this-major-mode-requires-vi-state): Rename from
'this-major-mode-requires-vi-state'. Retain old name as an
obsolete alias.
(viper-set-state-in-major-mode): Rename from
'set-viper-state-in-major-mode'. Retain old name as an obsolete
alias.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Fix namespace problems in xscheme.el
* lisp/progmodes/xscheme.el (xscheme-default-runlight): Rename
from 'default-xscheme-runlight'. Retain old name as an obsolete
alias.
(xscheme-verify-buffer): Rename from 'verify-xscheme-buffer'.
Retain old name as an obsolete alias.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Fix namespace problem in saveplace.el
* lisp/saveplace.el (save-place-load-alist-from-file): Rename from
'load-save-place-alist-from-file'. Retain old name as an obsolete
alias. Update callers.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Make two perl-mode aliases obsolete
* lisp/progmodes/perl-mode.el (indent-perl-exp)
(mark-perl-function): Make obsolete.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Fix namespace problem in ede/custom.el
* lisp/cedet/ede/custom.el (ede-eieio-old-variables): Rename from
'ede-eieio-old-variables'. Retain old name as an obsolete alias.
2022-08-05 Stefan Kangas <stefan@marxist.se>
* test/lisp/env-tests.el: New file.
* lisp/play/fortune.el: Doc fixes.
2022-08-05 Po Lu <luangruo@yahoo.com>
Fix oldXMenu grab handling
* src/xmenu.c (x_menu_translate_generic_event, pop_down_menu):
Clear grab correctly on individual XI2 devices.
2022-08-05 Po Lu <luangruo@yahoo.com>
Improve C-x C-q in emacs-news-mode
* lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map)
(emacs-news-view-mode-map): Make C-x C-q switch to the
appropriate mode for editing, and vice versa.
(emacs-news-mode): Disable button-mode and make buffer
read-write.
2022-08-05 Po Lu <luangruo@yahoo.com>
Improve multi-pointer X support
* etc/TODO: Document that MPX support still needs work.
* src/xterm.c (xi_handle_interaction): New function.
(handle_one_xevent): Call it in the appropriate places.
2022-08-05 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f484da5fcb * doc/lispref/loading.texi (Autoload by Prefix): Fix typo.
2022-08-04 Po Lu <luangruo@yahoo.com>
Improve input extension focus handling with multiple master devices
* src/xterm.c (x_cache_xi_devices): Initialize device fields to
0.
(xi_handle_focus_change, xi_focus_handle_for_device)
(xi_handle_delete_frame): New functions; store focus information
per-device instead.
(x_detect_focus_change): Handle GenericEvents that way instead.
(handle_one_xevent): Don't cache XI devices on DeviceChanged.
(x_free_frame_resources): Clear any frame focus information.
* src/xterm.h (struct xi_device_t): New fields for focus
tracking. Add comments describing fields.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in mail/*.el
* lisp/mail/mspools.el (mspools-mode-map):
* lisp/mail/rmailedit.el (rmail-edit-map):
* lisp/mail/rmailsum.el (rmail-summary-edit-map):
* lisp/mail/supercite.el (sc-T-keymap, sc-mode-map)
(sc-electric-mode-map, sc-minibuffer-local-completion-map)
(sc-minibuffer-local-map): Prefer defvar-keymap.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Whitespace fix in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-memory-next-page)
(gdb-memory-prev-page): Change tab after "defvar" to space, to avoid
potential bugs in tooling.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Be more lax when picking up prefixes for loaddefs
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--compute-prefixes): Allow tabs and spaces before
symbol name, so that "(defvar\tfoo-bar nil)" is properly picked up.
Before this change, such a definition would be wrongly picked up as
the symbol "nil".
2022-08-04 Andreas Schwab <schwab@linux-m68k.org>
* lisp/Makefile.in (distclean): Also remove loaddefs.elc.
2022-08-04 Gregory Heytings <gregory@heytings.org>
Merge branch 'feature/long-lines-improvements'
2022-08-04 Peder O. Klingenberg <peder@klingenberg.no>
* lisp/org/org.el: Fix load of compiled or compressed org-loaddefs
* lisp/org/org.el (eq): Fix load of compiled or compressed
org-loaddefs (bug#56982).
2022-08-04 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp for backward compatibility
* lisp/net/tramp-compat.el (tramp-compat-auth-source-netrc-parse-all):
New defalias.
* lisp/net/tramp.el (tramp-parse-netrc): Use it. (Bug#56976)
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that updated loaddefs files are byte-compiled
* lisp/Makefile.in: Add autoloads as an ordering-only dependency
to compile-main so that newly updated loaddefs files are byte-compiled.
2022-08-04 Michael Albinus <michael.albinus@gmx.de>
Fix last Tramp change, especially for bug#56963
* lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
Add missing space.
* lisp/net/tramp-sh.el (tramp-sh-handle-write-region): Use "cat",
"echo -n" isn't portable. (Bug#56963)
* lisp/net/tramp.el (tramp-file-name-unify): Unquote file name in time.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Suppress compilation warnings in netrc.el
* lisp/obsolete/netrc.el (netrc-machine-user-or-password)
(netrc-credentials): Suppress some warnings.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Document obsoletion of netrc-parse better
* lisp/obsolete/netrc.el (netrc-parse): Add 'obsolete' declaration
pointing to 'auth-source-netrc-parse-all' for documentation purposes.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Clean up output of make-command-summary slightly
* lisp/makesum.el (make-command-summary): Don't print today's date
or status messages.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Move netrc tests to auth-source-tests.el
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Add obsolete-since header to netrc.el
* lisp/obsolete/netrc.el: Add obsolete-since header (bug#56976).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Move netrc.el to lisp/obsolete/
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Use auth-source in tramp-parse-netrc
* lisp/auth-source.el (auth-source-netrc-parse-all): Autoload.
* lisp/net/tramp.el (tramp-parse-netrc): Don't use netrc-parse,
because it's going to be made obsolete (bug#56976).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Add obsolete-since line to autoload.el and adjust comments
* lisp/obsolete/autoload.el: Add obsolete-since line.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Move autoload.el to lisp/obsolete/
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Adjust autoload require in cus-dep.el
* lisp/cus-dep.el (loaddefs-gen): Don't require autoload, because
none of the functions are used.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Don't require netrc in nnimap.el
* lisp/gnus/nnimap.el (netrc): Don't require, since it's not used.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Add new function auth-source-netrc-parse-all
* lisp/auth-source.el (auth-source-netrc-parse-all): New function
(bug#56976).
(auth-source-netrc-parse): Partially revert behaviour in previous
change -- require :allow-null to match.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Minor cleanups in autoload.el/loaddefs-gen.el
* lisp/subr.el (package--builtin-versions): Adjust comments.
* lisp/emacs-lisp/loaddefs-gen.el (no-update-autoloads): Moved
here from autoload.el.
* lisp/emacs-lisp/loaddefs-gen.el: Removed now that it's no longer
used.
* lisp/emacs-lisp/package.el
(package-autoload-ensure-default-file): Don't warn about
soon-to-be obsolete functon.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Minor checkdoc.el clean up
* lisp/emacs-lisp/checkdoc.el (generate-autoload-cookie): This is
no longer used, so remove reference.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Adjust admin/emacs for new autoloads
* admin/emake: Adjust for new autoloads.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Allow auth-source-netrc-parse to return all lines
* lisp/auth-source.el (auth-source-netrc-parse): If host/user/port
is nil, don't require those to match.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Clean up nntp-send-authinfo after removing obsolete variable
* lisp/gnus/nntp.el (netrc-parse, netrc-machine, netrc-get):
Remove declarations.
(nntp-send-authinfo): Now that `nntp-authinfo-file' is removed,
don't parse the .authinfo file twice, but just rely on the
auth-source functions (bug#56972).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Add define-keymap to autoload-ignored-definitions
* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
Ignore `define-keymap', too (bug#56973).
2022-08-04 Stefan Kangas <stefan@marxist.se>
Add define-key-after to autoload-ignored-definitions
* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
Add define-key-after and define-ibuffer-sorter.
2022-08-04 Stefan Kangas <stefan@marxist.se>
* doc/lispref/loading.texi (Autoload by Prefix): Fix typo.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Fix namespace problem in meta-mode.el
* lisp/progmodes/meta-mode.el
(meta-font-lock-match-declaration-item-and-skip-to-next): Rename
from 'font-lock-match-meta-declaration-item-and-skip-to-next'.
Retain old name as an obsolete alias.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Add more autoload-ignored-definitions
* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
Add define-ibuffer-column.
2022-08-04 Philip Kaludercic <philipk@posteo.net>
* eww.el (eww-browse): Raise error if there are no arguments
2022-08-04 Stefan Kangas <stefan@marxist.se>
* lisp/find-dired.el (lookfor-dired): Make obsolete.
2022-08-04 Gregory Heytings <gregory@heytings.org>
Merge branch 'master' into feature/long-lines-improvements
2022-08-04 Stefan Kangas <stefan@marxist.se>
Rename recently added macro to follow conventions
* lisp/eshell/em-extpipe.el (eshell-extpipe--or-with-catch):
Rename from 'em-extpipe--or-with-catch'.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Fix namespace problem in dired-aux.el
* lisp/dired-aux.el (dired-minibuffer-default-add-shell-commands):
Rename from 'minibuffer-default-add-dired-shell-commands'. Retain
old name as an obsolete alias.
2022-08-04 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp test
* test/lisp/net/tramp-tests.el (tramp-test48-unload):
Ignore autoload functions in `tramp-file-name' structure tests,
since `tramp-file-name-handler' is also autoloaded.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Rename timep to type-break-timep
* lisp/type-break.el (type-break-timep): Rename from 'timep'.
Retain old name as an obsolete alias.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Fix namespace problem in mpc.el
* lisp/mpc.el (mpc-tag-browser-tagtypes): Rename from
'tag-browser-tagtypes'. Retain old name as an obsolete alias.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Rename set-woman-file-regexp to woman-set-file-regexp
* lisp/woman.el (woman-set-file-regexp): Rename from
'set-woman-file-regexp'. Retain old name as an obsolete alias.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Rename alphabetp to hangul-alphabetp
* lisp/leim/quail/hangul.el (hangul-alphabetp): Rename from
'alphabetp'. Retain old name as an obsolete alias.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Make trivial convenience defsubst notzerop obsolete
* lisp/leim/quail/hangul.el (notzerop): Make obsolete. Adjust
callers.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Add more autoload-ignored-definitions defs
* lisp/emacs-lisp/loaddefs-gen.el (autoload-ignored-definitions):
Add more definition forms that shouldn't trigger prefix
registration (bug#56970).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
url-about.el: Add obsolete-since
* lisp/obsolete/url-about.el: Add obsolete-since.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Make url-about.el obsolete (bug#56885)
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix about:protocols in EWW"
This reverts commit b49c1740105dd3715315aa433674c95f44aaeac4.
We're making this obsolete instead.
2022-08-04 Gregory Heytings <gregory@heytings.org>
Improve Bidi with long lines.
* src/composite.c (composition_compute_stop_pos): Use an 'endpos' that
is not too far away.
(find_automatic_composition): Use a 'head' that is not too far away.
Also make sure that this code path is not taken when long line
optimizations are disabled.
* src/dispextern.h (struct composition_it): Add a field that points
to the parent iterator.
* src/xdisp.c (init_iterator): Set it.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix eww--download-directory naming
* lisp/net/eww.el (eww--download-directory):
(eww-download-directory): Rename function that was mistakenly
named "erc--" (bug#56969).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix up some prefix registration problems in doc strings
* lisp/uniquify.el (uniquify-buffer-name-style):
* lisp/org/ob-core.el (org-src-sha):
* lisp/emacs-lisp/cl-macs.el (cl--optimize):
* lisp/battery.el (battery-update-functions): Avoid triggering the
`register-definition-prefixes' in doc strings (bug#56968).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix double-encoding attachment headers in single-part rfc2047
* lisp/mail/rfc2047.el (rfc2047-header-encoding-alist): Don't
double-encode Content-Disposition in mails with no other body
(bug#56906).
2022-08-04 Stefan Kangas <stefan@marxist.se>
Rename make-doctor-variables to doctor-make-variables
* lisp/play/doctor.el (doctor-make-variables): Rename from
'make-doctor-variables'. Retain old name as an obsolete function
alias.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Rename nil-blank-string to eshell-nil-blank-string
* lisp/eshell/em-unix.el (eshell-nil-blank-string): Rename from
'nil-blank-string'. Retain old name as an obsolete function alias.
2022-08-04 Stefan Kangas <stefan@marxist.se>
Rename pod2man-program to cperl-pod2man-program
* lisp/progmodes/cperl-mode.el (cperl-pod2man-program): Rename
from 'pod2man-program'. Retain old name as an obsolete
variable alias.
2022-08-04 Po Lu <luangruo@yahoo.com>
Fix about:protocols in EWW
* lisp/net/eww.el (eww--dwim-expand-url): Handle `about: ' URLs.
(bug#56885)
* lisp/url/url-about.el (url-about): Return correct content type
for HTML data.
* lisp/url/url-http.el (url-http--get-referer): Refrain from
looking for a referrer if the lastloc had no host.
2022-08-04 Po Lu <luangruo@yahoo.com>
Correctly implement refresh synchronization fences
* configure.ac (HAVE_XSYNC): Also check for XSyncTriggerFence.
* src/xfns.c (Fx_create_frame): Create fences.
* src/xterm.c (x_atom_refs): New atom.
(x_sync_trigger_fence, x_sync_init_fences, x_sync_free_fences):
New functions.
(x_sync_update_finish): Trigger the appropriate fence.
(x_free_frame_resources): Free fences.
* src/xterm.h (struct x_display_info): New atom
`_NET_WM_SYNC_FENCES'.
(struct x_output): New field `sync_fences'.
2022-08-04 Kira Bruneau <kira.bruneau@gmail.com>
Fix ignored-local-variable-values for non-primitive values
* lisp/files.el (hack-local-variables-filter): Fix
`ignored-local-variable-values' for non-primitive values (bug#56957).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Make flyspell-check-word-p work better with delete-selection-mode
* lisp/textmodes/flyspell.el (flyspell-check-word-p): Deactivate
the region immediately (bug#53773).
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Adjust documentation for make-docfile
* doc/lispref/loading.texi (Autoload): We're no longer using
make-docfile for loaddefs.el, but we're retaining the format.
Adjust the documentation.
* lisp/loadup.el: Adjust commentary.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Remove outdated TODO item about make-docfile and .el files
* etc/TODO: Remove outdated item about make-docfile and .el files.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Adjust src/Makefile.in comments about make-docfile
* src/Makefile.in ($(etc)/DOC): Remove comment aboout make-docfile
being run twice (because it no longer is).
2022-08-04 Po Lu <luangruo@yahoo.com>
Reduce code duplication in XI scroll bar code
* src/xterm.c (xi_select_scroll_bar_events): New function.
(x_create_toolkit_scroll_bar)
(x_create_horizontal_toolkit_scroll_bar, x_scroll_bar_create):
Factor out input extension code there.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Adjust loaddefs-generate--print-form comments
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
Adjust doc string and comments now that make-docfile doesn't scan
this.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Remove read_string_literal purify doc string hack
* src/lread.c (read_string_literal): Since we're now
byte-compiling the loaddefs files (so doc strings come from the
.elc files), remove the hack that make this return 0 when the
string starts with "\\n".
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Remove VCSWITNESS dependency, since we're always rescanning now
* Makefile.in (VCSWITNESS): Remove, since we're always rescanning
for loaddefs.
* src/Makefile.in ($(lispsource)/loaddefs.el): Remove VCSWITNESS
dependency.
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-08-04 Lars Ingebrigtsen <larsi@gnus.org>
Still mark ldefs-boot.el as non-byte-compilable
* lisp/Makefile.in (ldefs-boot.el): Mark ldefs-boot.el as
non-byte-compiled.
2022-08-03 Po Lu <luangruo@yahoo.com>
Avoid redundant calls to XFlush in x_make_frame_visible
* src/xterm.c (x_make_frame_visible): Keep track of whether or
not the output buffer was implictly flushed before issuing
XFlush.
2022-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
Revert "Revert part of 59732a83c8 to fix bug#52969"
This reverts commit 460f35e96df1c39ce2ba0f424b36365a2f9e9825.
Re-remove the code that scans .el files for docstrings, now
that even `lisp/loaddefs.el` is compiled.
* lib-src/make-docfile.c (scan_file): Don't call `scan_lisp_file`.
(scan_lisp_file, skip_white, read_lisp_symbol, search_lisp_doc_at_eol):
Delete functions.
2022-08-03 Philip Kaludercic <philipk@posteo.net>
Only suggest packages with VC metadata
* package-vc.el (package-vc-fetch): Filter out packages without :vc
information in the interactive specification.
2022-08-03 Stefan Kangas <stefan@marxist.se>
* lisp/help.el (describe-map-tree, describe-map): Simplify.
2022-08-03 Michael Albinus <michael.albinus@gmx.de>
Reorganize Tramp
* lisp/net/tramp-adb.el (tramp-adb-handle-write-region): Handle special
case that START is "".
(tramp-adb-handle-set-file-modes)
(tramp-adb-handle-set-file-times):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
(tramp-adb-handle-make-process):
Use `with-tramp-saved-connection-properties'.
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
Use `tramp-archive-handle-file-exists-p'.
(tramp-archive-handle-file-exists-p): New defun.
(tramp-archive-file-name-handler): Add ;;;###tramp-autoload cookie.
* lisp/net/tramp-cache.el (tramp-compat, tramp-loaddefs)
(time-stamp): Require.
(tramp-get-file-property, tramp-set-file-property)
(tramp-flush-file-property, tramp-flush-file-upper-properties)
(tramp-flush-file-properties): Use `tramp-file-name-unify'. Adapt
message.
(tramp-flush-directory-properties): Simplify.
(tramp-flush-file-function): Add ;;;###tramp-autoload cookie.
Don't use `with-parsed-tramp-file-name', it isn't exposed.
(with-tramp-file-property, with-tramp-connection-property)
(with-tramp-saved-connection-property): Macros moved from tramp.el.
(with-tramp-saved-file-property)
(with-tramp-saved-file-properties)
(with-tramp-saved-connection-properties): New defmacros.
* lisp/net/tramp-cmds.el (tramp-cleanup-connection): Flush "/".
* lisp/net/tramp-crypt.el (tramp-crypt-handle-set-file-modes)
(tramp-crypt-handle-set-file-times)
(tramp-crypt-handle-set-file-uid-gid):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
* lisp/net/tramp-ftp.el (tramp-archive-file-name-handler):
Don't declare.
* lisp/net/tramp-gvfs.el (tramp-gvfs-info): New defun.
(tramp-gvfs-do-copy-or-rename-file)
(tramp-gvfs-handle-delete-directory)
(tramp-gvfs-handle-delete-file, tramp-gvfs-get-root-attributes)
(tramp-gvfs-handle-make-directory): Use it.
(tramp-gvfs-handle-set-file-modes)
(tramp-gvfs-handle-set-file-times)
(tramp-gvfs-handle-set-file-uid-gid):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
Expand TARGET when flushing file properties.
(tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times)
(tramp-sh-handle-set-file-uid-gid):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
(tramp-sh-handle-file-name-all-completions): Protect, when
connection is not established yet.
(tramp-do-copy-or-rename-file-directly): Flush file properties of
NEWNAME when constructing a new remote file name.
(tramp-do-copy-or-rename-file-out-of-band, tramp-sh-handle-make-process):
Use `with-tramp-saved-connection-properties'.
(tramp-sh-handle-delete-file): Flush file properties only after
deleting, otherwise we get a false alarm.
(tramp-sh-handle-process-file): Flush "/".
(tramp-sh-handle-write-region): Handle special case that START is "".
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
(tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
(tramp-smb-handle-set-file-acl)
(tramp-smb-handle-start-file-process):
Use `with-tramp-saved-connection-properties'.
(tramp-smb-remote-acl-p): New defun.
(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl): Use it.
(tramp-smb-handle-set-file-modes):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
(tramp-smb-handle-process-file, tramp-smb-maybe-open-connection):
Flush "/".
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): Flush "/".
(tramp-sshfs-handle-set-file-modes)
(tramp-sshfs-handle-set-file-times):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-modes)
(tramp-sudoedit-handle-set-file-times)
(tramp-sudoedit-handle-set-file-uid-gid):
Use `tramp-skeleton-set-file-modes-times-uid-gid'.
* lisp/net/tramp.el (tramp-archive-file-name-handler): Don't declare.
(tramp-verbose, tramp-file-name-unify, tramp-tramp-file-p)
(tramp-file-local-name, tramp-dissect-file-name)
(tramp-make-tramp-file-name, tramp-get-connection-buffer)
(tramp-get-buffer-string, tramp-debug-message)
(tramp-inhibit-progress-reporter, tramp-message):
Add ;;;###tramp-autoload cookie.
(tramp-file-name): Expose defstruct to tramp-loaddefs.el
(tramp-file-name-unify): New optional arg FILE.
(tramp-get-default-directory, tramp-get-buffer-string)
(tramp-message, tramp-backtrace, tramp-error-with-buffer)
(tramp-with-demoted-errors, tramp-barf-if-file-missing)
(tramp-skeleton-copy-directory, tramp-skeleton-delete-directory)
(tramp-skeleton-directory-files)
(tramp-skeleton-directory-files-and-attributes)
(tramp-skeleton-file-local-copy, tramp-skeleton-write-region):
Remove `tramp-suppress-trace' property, it isn't needed for
defmacros and defsubsts.
(with-tramp-file-property, with-tramp-connection-property)
(with-tramp-saved-connection-property): Move macros to tramp-cache.el.
(tramp-skeleton-directory-files-and-attributes): Fix implementation.
(tramp-skeleton-file-local-copy): Fix docstring.
(tramp-skeleton-set-file-modes-times-uid-gid): New defmacro.
(tramp-skeleton-write-region): Set "file-exists-p" cache property.
(tramp-handle-file-exists-p): Use cached value.
(tramp-process-sentinel): Flush "/".
(tramp-make-tramp-temp-file): Suppress also `tramp-smb-remote-acl-p'.
(tramp-get-connection-buffer):
* test/lisp/net/tramp-tests.el (tramp-test10-write-region)
(tramp-test20-file-modes, tramp-test22-file-times): Extend tests.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Mark keys in apropos.el for substitute-command-keys
* lisp/apropos.el (apropos-symbol, apropos-function)
(apropos-macro, apropos-command, apropos-variable)
(apropos-user-option, apropos-face, apropos-group)
(apropos-widget, apropos-plist, apropos-library): Mark keys for
'substitute-command-keys'.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Add face to mouse buttons in command substitutions
* lisp/help.el (substitute-command-keys): Add help-key-binding face to
mouse buttons in literal key substitutions.
* test/lisp/help-tests.el
(help-tests-substitute-command-keys/literal-key-sequence): Expand
test for above change.
2022-08-03 Eli Zaretskii <eliz@gnu.org>
Teach 'symbol-file' about .eln natively-compiled files
* lisp/subr.el (locate-eln-file): New function.
(symbol-file): Accept an optional 3rd argument NATIVE-P, and, if
non-nil, try to locate and report the .eln file where SYMBOL was
defined.
* etc/NEWS:
* doc/lispref/loading.texi (Where Defined): Document the new
optional argument of 'symbol-file'.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Do interactive mode tagging in apropos.el
* lisp/apropos.el (apropos-follow, apropos-next-symbol)
(apropos-previous-symbol): Tag for 'apropos-mode'.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Remove superfluous autoloads from url-util.el
* lisp/url/url-util.el (timezone-parse-date)
(timezone-make-date-arpa-standard): Remove superfluous autoloads.
2022-08-03 Philip Kaludercic <philipk@posteo.net>
* package-vc.el (package-vc-unpack): Delete using package--delete-directory
2022-08-03 Lars Ingebrigtsen <larsi@gnus.org>
Byte-compile the in-tree loaddefs.el files
* lisp/Makefile.in (all): Add "autoloads", which now otherwise
won't be done.
($(lisp)/loaddefs.el): Remove this target, since it's always done,
and would then trigger a re-compilation of loaddefs.elc.
* lisp/loadup.el: Load loaddefs.elc (if it exists).
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Don't
include no-byte-compile cookies in the Emacs build.
* src/Makefile.in ($(pdmp)): Depend on loaddefs.elc to ensure that
it's built by this point.
($(etc)/DOC): Don't scan loaddefs.el for doc strings, since they
are now picked up from the .elc file (bug#53024).
2022-08-03 Po Lu <luangruo@yahoo.com>
Fix crash on setting frame background color
* src/xfns.c (x_set_background_color): Stop setting scroll bar
window background, since this is now taken care of
automatically.
2022-08-03 Philip Kaludercic <philipk@posteo.net>
Add TODO section for package-vc
2022-08-03 Protesilaos Stavrou <info@protesilaos.com>
Update modus-themes to their version 2.5.0
* doc/misc/modus-themes.org (Debian 11 Bullseye): Clarify that the
Debian package as it is long outdated.
(Option for inhibiting theme reload): Fix typo
(Option for completion framework aesthetics): Remove reference to
obsolete package.
(Option for line highlighting): Mention 'lin' package from GNU ELPA.
(Option for the headings' overall style): Document support for
headings level 0.
(Advanced customization): Fix typo.
(Override colors): Remove obsolete entries. Add link to new section.
(Override colors through blending): Add section with a complete
technology demonstration of overriding the color values.
(Font configurations for Org and others): Mention the 'fontaine'
package from GNU ELPA.
(Custom Org emphasis faces): Fix typo.
(Full support for packages or face groups, Indirectly covered
packages): Update list of supported packages.
(Note on vc-annotate-background-mode): Remove note.:(Are these color
schemes?): Fix typo.
(Acknowledgements): Update acknowledgements.
* etc/themes/modus-operandi-theme.el
* etc/themes/modus-vivendi-theme.el: Update version header.
* etc/themes/modus-themes.el (modus-themes--version): Update version.
(modus-themes-special-cold, modus-themes-special-mild)
(modus-themes-special-warm, modus-themes-special-calm)
(modus-themes-diff-added, modus-themes-diff-changed)
(modus-themes-diff-removed, modus-themes-diff-refine-added)
(modus-themes-diff-refine-changed, modus-themes-diff-refine-removed)
(modus-themes-diff-focus-added, modus-themes-diff-focus-changed)
(modus-themes-diff-focus-removed, modus-themes-mark-symbol)
(modus-themes-inhibit-reload, modus-themes-mode-line)
(modus-themes--paren): Fix doc string warning about quotes.
(modus-themes-operandi-color-overrides)
(modus-themes-vivendi-color-overrides): Fix ":link" to the Info
manual's relevant node.
(modus-themes-headings): Add support for headings level 0.
(modus-themes-org-agenda): Tweak spacing in the doc string.
(modus-themes--syntax-comment): Tweak combination of properties.
(modus-themes--list-colors-render, modus-themes-list-colors): Refine
how the command works to preview colors in the buffer.
(modus-themes-faces): Edit supported faces.
(modus-themes-custom-variables): Edit supported variables.
Release notes: <https://protesilaos.com/codelog/2022-08-03-modus-themes-2-5-0/>.
2022-08-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix #' quoting in uniquify-buffer-name-style doc string
* lisp/uniquify.el (uniquify-buffer-name-style): Fix wrong quoting.
2022-08-03 Lars Ingebrigtsen <larsi@gnus.org>
Check for mis-quoted #' in doc strings during byte-compile
* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn):
Check for mis-quoted #' in doc strings, too.
2022-08-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix quoting of #' in some doc strings
* lisp/org/ox.el (org-export-to-file):
* lisp/eshell/esh-arg.el (eshell-concat):
* lisp/emacs-lisp/edebug.el (edebug-read-special):
* lisp/dired-aux.el (dired-split): Fix quoting of #' in doc strings.
2022-08-03 Jonas Bernoulli <jonas@bernoul.li>
* lisp/transient.el: Update to package version v0.3.7-143-g1b0a8a7
2022-08-03 Stefan Kangas <stefan@marxist.se>
Improve obsoletion of trimming functions in url-util.el
* lisp/url/url-util.el (url-eat-trailing-space): Redefine as
obsolete function alias for 'string-trim-right'.
(url-strip-leading-spaces): Redefine as obsolete function alias
for 'string-trim-left'.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Use string-trim in newsticker--remove-whitespace
* lisp/net/newst-backend.el (newsticker--remove-whitespace): Use
string-trim.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Remove some spurious references to XEmacs
* lisp/desktop.el (desktop--emacs-pid-running-p):
* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-lisp-words): Don't
mention XEmacs.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Remove XEmacs compat code from reftex-ref.el
* lisp/textmodes/reftex-ref.el (reftex-latin1-to-ascii): Remove
XEmacs compat code.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Remove more XEmacs compat code from viper-util.el
* lisp/emulation/viper-util.el (viper-check-version): Remove
XEmacs compat code.
(viper-get-visible-buffer-window): Make obsolete. Update caller.
(viper-key-press-events-to-chars): Make obsolete.
2022-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
CEDET: Try and (re)fix bug#56902, in a better way
* lisp/cedet/semantic/complete.el (semantic-displayer-abstract):
Move definition before first use (in `semantic-displayer-focus-abstract`).
2022-08-03 Stefan Monnier <monnier@iro.umontreal.ca>
Revert "; Fix last change (bug#56902)"
This reverts commit 99bbc1fa23c3a54f1cbd2c56c57773dd471b3ef3.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from url-util.el
These functions only exist in the XEmacs GTK support.
* lisp/url/url-util.el (url-display-percentage): Remove XEmacs
compat code.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Make url-util space trimming functions obsolete
* lisp/url/url-util.el (url-eat-trailing-space)
(url-strip-leading-spaces): Make obsolete in favor of
'string-trim'. Update caller.
2022-08-03 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f23d456039 * lisp/term.el: Doc fix; don't mention rlogin.
f522d2d90b ; * admin/make-tarball.txt: Minor tweaks.
2022-08-03 Po Lu <luangruo@yahoo.com>
Improve X server time computation
* src/xterm.c (x_sync_get_monotonic_time): Use that if
available.
(x_display_set_last_user_time): Compute an offset between the
monotonic time and the X server time if they are not identical.
* src/xterm.h (struct x_display_info): New field
`server_time_offset'.
2022-08-02 Po Lu <luangruo@yahoo.com>
Prevent GC threshold from exceeding fixnum limit during precision scrolling
* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Prevent GC
threshold from exceeding most-positive-fixnum.
2022-08-02 Po Lu <luangruo@yahoo.com>
Add preparations for animation frame timing support
* src/xterm.c (x_sync_get_monotonic_time)
(x_sync_current_monotonic_time, x_sync_note_frame_times): New
functions.
(x_sync_wait_for_frame_drawn_event, x_sync_update_begin)
(x_sync_handle_frame_drawn): Note frame times.
(x_display_set_last_user_time): Check if the X server time is
probably the same as CLOCK_MONOTONIC.
* src/xterm.h (struct x_display_info, struct x_output): New
fields and flags for clock handling and frame times.
2022-08-02 Po Lu <luangruo@yahoo.com>
Fix window iconification, raising and lowering frames, etc
* src/xterm.c (XFlush): Remove define to 0.
(x_clear_frame, x_scroll_run, x_draw_window_cursor)
(x_free_frame_resources): Remove calls to XFlush where it is not
really necessary. Leave the calls that actually are intact.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Avoid cl-cXXXr compat aliases
* lisp/emacs-lisp/cl-lib.el (cl-third, cl-fourth):
* lisp/emacs-lisp/cl-macs.el (cl--do-&aux, cl--do-arglist)
(cl--parse-loop-clause, cl--loop-let, cl--loop-build-ands)
(cl--do-proclaim, cl-defstruct): Prefer using cXXXr functions
directly, instead of cl-cXXXr prefixed compat aliases.
2022-08-02 Stefan Kangas <stefan@marxist.se>
* doc/misc/vtable.texi (Commands): Fix typo. (Bug#56899)
2022-08-02 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in footnote.el
* lisp/mail/footnote.el (footnote-mode-map)
(footnote-minor-mode-map): Prefer defvar-keymap.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Obsolete unused variable footnote-use-message-mode
* lisp/mail/footnote.el (footnote-use-message-mode): Make
obsolete.
2022-08-02 Lars Ingebrigtsen <larsi@gnus.org>
Improve sendmail-program doc string
* lisp/mail/sendmail.el (sendmail-program): Document that the
program shouldn't output text (bug#56855).
2022-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
* src/xdisp.c (redisplay_window): Use BEG rather than hard coding 1
2022-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
CEDET: Remove left-over uses of obsolete <class>-child-p predicates
Those predicates were still sometimes used in a few places, notably via
`:type ... <class>-child` which was never technically correct.
* lisp/cedet/ede/config.el (ede-extra-config, ede-project-with-config):
* lisp/cedet/ede/base.el (ede-project-placeholder): Avoid pseudo-type
`<class>-child`.
* lisp/cedet/semantic/complete.el (semantic-displayer-focus-abstract):
Move before use of `cl-typep` on it.
(semantic-complete-current-match):
* lisp/cedet/ede/speedbar.el (ede-speedbar-menu): Use `cl-typep`
instead of `<class>-child-p`.
* lisp/cedet/semantic/db.el (semanticdb-get-buffer):
Use `cl-defgeneric` for the main/default definition.
(semantic-tag-parent-buffer): Add method.
* lisp/cedet/semantic/tag-file.el (semantic-tag-parent-buffer):
New generic function extracted from `semantic-go-to-tag`.
This allows us to keep the semanticdb-table part in semantic/db and
thus break a cyclic dependency.
(semantic-go-to-tag): Use it.
Demote to a plain `defun` since it's not overloaded anywhere.
* lisp/cedet/semantic/util.el (semanticdb-abstract-table-child-p):
Remove unused declaration.
* lisp/cedet/srecode/compile.el (srecode-template-inserter-newline-child-p):
Remove unused declaration.
(srecord-compile-inserter-newline-p): New generic function, so we can
move the `srecode-template-inserter-newline` case to `srecode/insert.el`,
to avoid a cyclic dependency.
* lisp/cedet/srecode/insert.el (srecord-compile-inserter-newline-p):
New method.
2022-08-02 Philip Kaludercic <philipk@posteo.net>
Have VC ignore auto generated files
* package-vc.el (package-vc-unpack): Generate autoloads and ignore
have the VCS ignore them (along with package description file).
2022-08-02 Stefan Kangas <stefan@marxist.se>
Delete obsolete variable nntp-authinfo-file
* lisp/gnus/nntp.el (nntp-authinfo-file): Delete variable obsolete
since 24.1.
2022-08-02 Stefan Kangas <stefan@marxist.se>
* lisp/textmodes/sgml-mode.el (html-tag-alist): Add https.
* lisp/term.el: Doc fix; don't mention rlogin.
2022-08-02 Philip Kaludercic <philipk@posteo.net>
Assume VC data is directly usable in 'package-archive-contents'
* package-vc.el (package-vc-fetch): Remove string parsing and
translation code.
2022-08-02 Philip Kaludercic <philipk@posteo.net>
* package-vc.el (vc-clone): Remove superfluous declaration
2022-08-02 Robert Pluim <rpluim@gmail.com>
Signal error on duplicate key definitions
* lisp/keymap.el (define-keymap, defvar-keymap): Signal error if the
same key is specified twice. (Bug#56873)
* doc/lispref/keymaps.texi (Creating Keymaps): Document error
signaling behaviour.
* test/src/keymap-tests.el (keymap-test-duplicate-definitions): Test
duplicate definition detection.
2022-08-02 Robert Pluim <rpluim@gmail.com>
Remove duplicate key definitions from keymaps
* lisp/gnus/gnus-srvr.el (gnus-browse-mode-map): Remove binding for
'gnus-browse-prev-map'.
* lisp/gnus/gnus-sum.el (gnus-summary-mode-map): Remove
'gnus-summary-down-thread' binding, and by symmetry
'gnus-summary-up-thread' (it's still available on "T-u").
* lisp/ibuffer.el (ibuffer-mode-map): Remove binding for
'ibuffer-mark-for-delete'.
* lisp/wdired.el (wdired-perm-mode-map): Remove duplicate binding of
"s" to 'wdired-set-bit'.
* etc/NEWS: Announce 'gnus-summary-up-thread' change.
2022-08-02 Stefan Kangas <stefan@marxist.se>
url-about: Ignore missing directories in load-path
* lisp/url/url-about.el (url-probe-protocols): Ignore missing
directories in load-path.
2022-08-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix find-dired over tramp
* lisp/find-dired.el (find-dired-with-command): Set the
filter/sentinel immediately -- scheduling may make process output
(and exit) happen before these are set otherwise (bug#56865).
(find-dired-sort-by-filename): Don't bug out on error messages
from find.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Delete function alias x-selection obsolete since 23.3
* lisp/select.el (x-selection): Delete function alias obsolete since
23.3.
2022-08-02 Stefan Kangas <stefan@marxist.se>
* lisp/mail/binhex.el: Improve commentary.
2022-08-02 Matt Armstrong <matt@rfc20.org>
Consider built-in packages to be installed
* lisp/emacs-lisp/package.el (package-installed-p): Check for built-in
packages before initialization. (bug#56877).
2022-08-02 Lars Ingebrigtsen <larsi@gnus.org>
Don't disable eldoc when doing edebug
* lisp/emacs-lisp/eldoc.el
(eldoc-display-message-no-interference-p): Don't disable eldoc
when edebugging (bug#56459). There should be no interference in
that case, because edebug messaging is done after stepping, and
eldoc messaging is done after other movements.
2022-08-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix url-dired obsoletion warning
* lisp/url/url-file.el (url-file): Don't use obsolete url-dired
function.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Make url-dired.el obsolete (part 2/2)
* lisp/obsolete/url-dired.el: Add "Obsolete-since" header.
(url-dired-minor-mode-map): Minor fix.
* lisp/url/url-file.el (url-dired): Don't require.
* etc/NEWS: Announce its obsoletion.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Make url-dired.el obsolete (part 1/2)
It doesn't have any real effect since 2007.
Ref: https://lists.gnu.org/r/emacs-devel/2022-07/msg01156.html
* lisp/url/url-dired.el: Move from here...
* lisp/obsolete/url-dired.el: ...to here.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Make gnus-url-unhex into alias for url-unhex
* lisp/gnus/gnus-util.el (gnus-url-unhex): Make into obsolete function
alias for url-unhex; they are identical. Update callers.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Add tests for url-{hexify,unhex}-string
* test/lisp/url/url-util-tests.el (url-unhex-string-tests)
(url-hexify-string-tests): New tests.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Remove extraneous defvars from edmacro.el
* lisp/edmacro.el (edmacro-fix-menu-commands): Remove extraneous
defvars; they are already declared above.
2022-08-02 Po Lu <luangruo@yahoo.com>
Further reduce monitor change event duplication
* src/xterm.c (handle_one_xevent): Also don't store duplicate
events for ConfigureNotify events bound for the root window.
2022-08-02 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e6af4968f9 ; Update ChangeLog and AUTHORS
2022-08-01 Po Lu <luangruo@yahoo.com>
Avoid extra consing on monitor configuration change
* src/xterm.c (x_find_monitors_changed_event): New function.
(x_monitors_changed_cb, handle_one_xevent): Look through the
entire event queue to skip delivering monitor change events.
2022-08-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warning in spam.el
* lisp/gnus/spam.el (spam-check-blackholes): Adjust now that
query-dig is obsolete.
2022-08-01 Juri Linkov <juri@linkov.net>
Wrap around the search on typing a letter (bug#56535)
* doc/emacs/search.texi (Repeat Isearch): Improve values no/no-ding.
* lisp/isearch.el (isearch-search-and-update): Try to repeat the search
on an error when isearch-wrap-pause is no/no-ding.
2022-08-01 Gregory Heytings <gregory@heytings.org>
Fix the bytecode incompatibility due to the change to 'narrow-to-region'.
* src/editfns.c (narrow_to_region_internal): New function, which
contains the body previously in 'Fnarrow_to_region' but accepts
a third argument.
(Fnarrow_to_region): Use the new function. Update the docstring.
(Fwiden): Update the docstring.
* src/lisp.h: Prototype of the new function.
* src/xdisp.c (handle_fontified_prop): Use the new function instead
of 'Fnarrow_to_region'.
* src/process.c (Finternal_default_process_filter):
* src/lread.c (readevalloop): Remove the third argument to
'Fnarrow_to_region'.
* src/bytecode.c (exec_byte_code):
* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst):
* lisp/emacs-lisp/bytecomp.el: Restore the statu quo ante.
* etc/NEWS: Remove the entry about the new optional argument.
* doc/lispref/positions.texi (Narrowing): Update the documentation.
2022-08-01 Stefan Kangas <stefan@marxist.se>
Don't bind non-existent command in picture-mode-map
* lisp/textmodes/picture.el (picture-mode-map): Remove ineffectual
binding of non-existent command.
2022-08-01 Eli Zaretskii <eliz@gnu.org>
* src/eval.c (Fdefvaralias): Clarify error messages. (Bug#56863)
2022-08-01 Stefan Kangas <stefan@marxist.se>
Prefer command remapping to substitute-key-definition
* lisp/textmodes/reftex-index.el (reftex-index-mode-map):
* lisp/textmodes/reftex-sel.el (reftex-select-shared-map):
* lisp/textmodes/reftex-toc.el (reftex-toc-mode-map): Prefer command
remapping to 'substitute-key-definition'.
2022-08-01 Eli Zaretskii <eliz@gnu.org>
* src/xdisp.c (get_visually_first_element): Fix a typo.
2022-08-01 Gregory Heytings <gregory@heytings.org>
Various improvements to long lines handling.
* src/xdisp.c (get_visually_first_element,
(move_it_vertically_backward): Do not go back too far with bidi.
(get_narrowed_begv): Do not return 0 anymore instead of BEGV.
(handle_fontified_prop): Simplify accordingly.
* src/keyboard.c (safe_run_hooks_maybe_narrowed): Simplify accordingly.
* src/composite.c (find_automatic_composition): Ditto.
2022-08-01 Gregory Heytings <gregory@heytings.org>
Fix forgotten initialization for long line optimizations.
* src/xdisp.c (init_iterator): Initialize the 'narrowed_begv'
field.
* src/buffer.c (syms_of_buffer): Docstring clarification.
2022-08-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix loaddefs quirk w.r.t. pinyin-convert
* lisp/international/titdic-cnv.el (pinyin-convert): Use
`generate-lisp-file' for the file. This avoids having it scanned
by loaddefs-gen, which will trigger re-compilation of Emacs since
pinyin.el is generated after Emacs is built.
2022-08-01 Stefan Kangas <stefan@marxist.se>
* lisp/net/dig.el: Improve Commentary.
2022-08-01 Stefan Kangas <stefan@marxist.se>
Doc fix in eudc-hotlist.el
* lisp/net/eudc-hotlist.el (eudc-hotlist-mode): Doc fix; use command
substitution.
2022-08-01 Stefan Kangas <stefan@marxist.se>
Fix namespacing issue in dig.el
* lisp/net/dig.el (dig-query): Rename from 'query-dig'.
(query-dig): Make into obsolete function alias for 'dig-query'.
2022-08-01 Po Lu <luangruo@yahoo.com>
Improve handling of xsettings events
* src/xsettings.c (xft_settings_event):
* src/xsettings.h: Return if the event was handled.
* src/xterm.c (handle_one_xevent): If it was, don't handle the
event any further.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Improve GCC pacification in xterm.c
* src/xterm.c (x_dnd_free_toplevels, x_composite_image):
Use UNINIT for initialization needed only to pacify GCC.
(x_dnd_free_toplevels): Add an eassume to pacify GCC 12.1 x86-64
-Wanalyzer-null-dereference.
2022-07-31 Paul Eggert <eggert@cs.ucla.edu>
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Fix time comparison in primitive-undo
* lisp/simple.el (primitive-undo): Fix time comparison.
The old code was a circa-2013 mistranslation of what used to be in
src/undo.cs Fprimitive_undo.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Use list-form timestamps in .nnmh-articles
* lisp/gnus/nnmh.el (nnmh-update-gnus-unreads): Store list form
timestamps into .nnmh-articles, even if current-time-list is nil.
That way, older Emacs versions can read them.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Prefer time-equal-p to equal on timestamps
This is more robust since timestamps can have multiple forms.
* lisp/auth-source.el (auth-source-netrc-parse):
* lisp/bookmark.el (bookmark--watch-file-already-queried-p)
(bookmark-maybe-load-default-file):
* lisp/cedet/semantic/db.el (semanticdb-needs-refresh-p):
* lisp/dired.el (dired-directory-changed-p):
* lisp/files.el (dir-locals-find-file):
* lisp/gnus/gnus-util.el (gnus-cache-file-contents):
* lisp/gnus/nneething.el (nneething-create-mapping):
* lisp/gnus/nnfolder.el (nnfolder-read-folder):
* lisp/gnus/nnmaildir.el (nnmaildir--update-nov)
(nnmaildir--scan, nnmaildir-request-scan)
(nnmaildir-request-update-info):
* lisp/gnus/nnmh.el (nnmh-update-gnus-unreads):
* lisp/gnus/spam-stat.el (spam-stat-load):
* lisp/mail/mailabbrev.el (mail-abbrevs-sync-aliases):
* lisp/mail/sendmail.el (sendmail-sync-aliases):
* lisp/net/netrc.el (netrc-parse):
* lisp/nxml/rng-loc.el (rng-get-parsed-schema-locating-file):
* lisp/play/cookie1.el (cookie-snarf):
* lisp/vc/vc-cvs.el (vc-cvs-state-heuristic):
* lisp/vc/vc-hg.el (vc-hg--ignore-patterns-valid-p)
(vc-hg--cached-dirstate-search):
* lisp/vc/vc-hooks.el (vc-after-save):
Prefer time-equal-p to equal when comparing
timestamps for equality.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Simplify a few timestamps
* lisp/calendar/time-date.el (safe-date-to-time):
* lisp/calendar/timeclock.el (timeclock-generate-report):
* lisp/epg.el (epg--start):
* lisp/gnus/gnus-demon.el (gnus-demon-nntp-close-connection):
* lisp/gnus/gnus-util.el (gnus-date-get-time):
* lisp/gnus/nnheader.el (nnheader-last-message-time):
* lisp/gnus/nnrss.el (nnrss-request-expire-articles):
* lisp/vc/ediff-util.el (ediff-command-begin-time)
(ediff-calc-command-time, ediff-profile):
Prefer an integer like 0 to a timestamp list like (0 0)
where either will do.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Omit some (current-time) calls
* lisp/emacs-lisp/ert.el (ert-write-junit-test-summary-report):
* lisp/emacs-lisp/shortdoc.el (file):
* lisp/find-lisp.el (find-lisp-find-dired-insert-file):
* lisp/progmodes/hideif.el (hide-ifdefs):
* lisp/tar-mode.el (tar-subfile-save-buffer):
Prefer nil or omitted arg to (current-time) where this is better
or more-efficient.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
* lisp/vc/vc.el: Remove stray comment hyphen.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Fix "cons up a storm" issue in type-break
* lisp/type-break.el (type-break-time-last-command)
(type-break-mode, type-break, type-break-check)
(type-break-time-sum, type-break-keystroke-reset):
Use integer timestamps; thats good enough for this module.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Fix year-285428751 bug in hanoi-unix-64
* lisp/play/hanoi.el (hanoi-move-period, hanoi, hanoi-unix)
(hanoi-unix-64): Use integers, not floating point, to avoid
rounding errors for timestamps greater than 2**53.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
* src/timefns.c (Ffloat_time): Fix doc string.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Improve time-equal-p etc. performance
* src/timefns.c (time_cmp): Return EMACS_INT, not int; no need to
change callers. Compare (X . Z) to (Y . Z) quickly if X and Y are
fixnums.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Improve float-time etc. performance
* src/timefns.c (decode_float_time): Assume T is finite.
All callers changed.
(decode_time_components): Assume FORM is not TIMEFORM_FLOAT.
All callers changed.
(decode_lisp_time): If the specified time is a float,
signal an error if it is not finite.
(Ffloat_time): If the specified time is a float,
simply return it.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Make time arithmetic more like comparison
Since time comparison says X == X, have time arithmetic behave
similarly for X - X. This should also be a bit faster due to not
having to test for floats and NaNs.
* src/timefns.c (time_arith, time_cmp):
Simplify by not worrying about NaNs, which are not time values.
(time_arith): Simplify by not worrying about subtracting nil from
nil; the caller now handles this.
(Ftime_subtract): Handle subtracting X from X specially.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Fix get-internal-runtime precision
* src/sysdep.c (make_lisp_s_us): Also define if HAVE_GETRUSAGE.
(Fget_internal_run_time): Dont generate more precision than the
underlying primitives.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
(time-equal-p nil X) returns nil
* src/timefns.c (Ftime_equal_p): nil compares unequal to non-nil.
2022-08-01 Paul Eggert <eggert@cs.ucla.edu>
Tune blv_found
* src/lisp.h (blv_found): Prefer BASE_EQ to EQ where either will do.
2022-08-01 Po Lu <luangruo@yahoo.com>
Improve frame synchronization support on Haiku
* src/ftcrfont.c (ftcrfont_draw):
* src/haikufns.c (haiku_set_background_color):
* src/haikuterm.c (haiku_clip_to_string):
(haiku_clip_to_string_exactly):
(haiku_clear_frame_area):
(haiku_clear_frame):
(haiku_draw_box_rect):
(haiku_draw_relief_rect):
(haiku_draw_underwave):
(haiku_draw_text_decoration):
(haiku_draw_plain_background):
(haiku_draw_stipple_background):
(haiku_draw_glyph_string_foreground):
(haiku_draw_glyphless_glyph_string_foreground):
(haiku_draw_stretch_glyph_string):
(haiku_start_clip):
(haiku_end_clip):
(haiku_clip_to_row):
(haiku_draw_composite_glyph_string_foreground):
(haiku_draw_image_glyph_string):
(haiku_draw_glyph_string):
(haiku_after_update_window_line):
(haiku_draw_hollow_cursor):
(haiku_draw_bar_cursor):
(haiku_draw_vertical_window_border):
(haiku_draw_window_divider):
(haiku_scroll_bar_create):
(haiku_set_horizontal_scroll_bar):
(haiku_set_vertical_scroll_bar):
(haiku_draw_fringe_bitmap):
(haiku_scroll_run):
(haiku_read_socket):
(haiku_flash):
(haiku_clear_under_internal_border):
(haiku_scroll_bar_remove):
* src/haikuterm.h (MAKE_FRAME_DIRTY):
(FRAME_CR_CONTEXT): Don't dirty frames if not necessary.
2022-08-01 Po Lu <luangruo@yahoo.com>
Implement primitive frame synchronization on Haiku
Instead of relying on a compositor to do the work, we simply
wait for VBLANK and hope that the update finishes soon enough.
* doc/lispref/frames.texi (Management Parameters): Document that
frame synchronization is now supported on Haiku.
* src/haiku_support.cc (class EmacsView): New field
`use_frame_synchronization'.
(FlipBuffers): Wait for vertical blanking period.
(be_set_use_frame_synchronization): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_create_frame): Set
`use-frame-synchronization'.
(haiku_set_use_frame_synchronization)
(haiku_frame_parm_handlers): New param handler.
2022-08-01 Po Lu <luangruo@yahoo.com>
* lisp/cedet/ede/base.el (ede-project): Fix warning when loading EDE.
2022-08-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-07-28 15:23:34 UTC.
2022-07-31 Po Lu <luangruo@yahoo.com>
Make frame synchronization a frame parameter
* doc/lispref/frames.texi (Management Parameters): Document
`use-frame-synchronization'.
* etc/NEWS: Update entry.
* src/frame.c (frame_parms): New frame parameter
`use-frame-synchronization'.
(syms_of_frame): New defsym.
* src/haikufns.c (haiku_frame_parm_handlers):
* src/nsfns.m (ns_frame_parm_handlers):
* src/pgtkfns.c (pgtk_frame_parm_handlers):
* src/w32fns.c (w32_frame_parm_handlers): Update frame param
handlers correctly.
* src/xfns.c (x_set_use_frame_synchronization): New function.
(Fx_create_frame): Set default value of said parameter.
(x_frame_parm_handlers): Add handler.
* src/xterm.c (x_sync_wait_for_frame_drawn_event): Clear
parameter if sync fails.
2022-07-31 Gregory Heytings <gregory@heytings.org>
Move the computation of narrowing bounds for long line optimizations.
* src/xdisp.c (init_iterator): Move the computation from here...
(reseat): ... to here. Also recompute the position in certain cases.
2022-07-31 Gregory Heytings <gregory@heytings.org>
Add locked narrowing around pre- and post-command-hook
* src/keyboard.c (safe_run_hooks_maybe_narrowed): New function.
(command_loop_1): Use it for 'pre-command-hook' and 'post-command-hook'.
(syms_of_keyboard): Update docstrings of 'pre-command-hook' and
'post-command-hook'.
* src/lisp.h: Prototype of the new function.
2022-07-31 Philip Kaludercic <philipk@posteo.net>
Extract package-fetch and related functionality
Note that the "package kind" was renamed from "source" to "vc".
* package-vc.el: (package-vc-commit): Copy from package.el
(package-vc-version): Add new function
(package-vc-generate-description-file): Add new function.
(package-vc-unpack): Add new function.
(package-vc-fetch): Copy from package.el
(package-checkout): Add alias for package-vc-fetch
* package.el (package-devel-dir): Remove option. The checkouts are
stored in package-user-dir
(package-desc): Handle (vc . VERS) version strings
(package-desc-full-name): Return the plain name for vc packages
(package-devel-commit): Move function to package-vc
(package-load-descriptor): Refactor according to other changes
(package-load-all-descriptors): Remove package-devel-dir
(package-unpack): Remove vc package handling
(package-generate-description-file): Remove special handling for vc
packages
(package-install-from-archive): Remove special handling for vc
packages
(package-fetch): Move function to package-vc
(package-desc-status): Use "vc" instead of "source"
(package--remove-hidden): Use "vc" instead of "source"
(package-menu--print-info-simple): Refactor according to other changes
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Allow specifying that loaddefs files shouldn't not be compiled
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
Allow specifying that we shouldn't include a no-compile cookie
(bug#53024).
2022-07-31 Mattias Engdegård <mattiase@acm.org>
Declare `key-valid-p` and `readablep` as error-free
* lisp/keymap.el (key-valid-p):
* lisp/subr.el (readablep): These functions are effect-free; declare
them correspondingly. Note that readablep is not pure since its
return value depends on ambient state.
2022-07-31 Stefan Kangas <stefan@marxist.se>
Make ps-def.el obsolete (part 2/2)
* lisp/obsolete/ps-def.el: Add "Obsolete-since".
* lisp/ps-print.el (ps-def): Don't require.
2022-07-31 Stefan Kangas <stefan@marxist.se>
Make ps-def.el obsolete (part 1/2)
This file was created to maintain Emacs/XEmacs compat code more
easily, and no longer serves any purpose. It currently contains only
obsolete function and variable aliases.
* lisp/ps-def.el: Move from here...
* lisp/obsolete/ps-def.el: ...to here.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Don't make a custom-save-icons section if there's nothing to save
* lisp/cus-edit.el (custom-save-icons): Only make an entry when
there's something to save (bug#56860). Also autoload.
2022-07-31 Stefan Kangas <stefan@marxist.se>
Move some definitions from ps-def.el to ps-print.el
* lisp/ps-def.el (ps-face-bold-p, ps-face-italic-p)
(ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p)
(ps-color-format, ps-float-format)
(ps-generate-postscript-with-faces1): Move from here...
* lisp/ps-print.el (ps-face-bold-p, ps-face-italic-p)
(ps-face-strikeout-p, ps-face-overline-p, ps-face-box-p)
(ps-color-format, ps-float-format)
(ps-generate-postscript-with-faces1): ...to here.
2022-07-31 Stefan Kangas <stefan@marxist.se>
Remove some leftover compat code from ps-print
* lisp/ps-def.el (ps-mark-active-p): Make obsolete in favor of
'mark-active'. Update callers.
(ps-face-foreground-name): Make obsolete in favor of
'face-foreground'. Update callers.
(ps-face-background-name): Make obsolete in favor of
'face-background'. Update callers.
(ps-color-device): Make into obsolete function alias for
'display-color-p'. Update callers.
2022-07-31 Michael Albinus <michael.albinus@gmx.de>
Declare Tramp function for backward compatibility
* lisp/net/tramp.el (tramp-archive-file-name-handler):
* lisp/net/tramp-ftp.el (tramp-archive-file-name-handler): Declare.
2022-07-31 Philip Kaludercic <philipk@posteo.net>
Merge remote-tracking branch 'origin/master' into feature/package+vc
2022-07-31 Mattias Engdegård <mattiase@acm.org>
Reduce internal rx autoloads
* lisp/emacs-lisp/rx.el (rx--to-expr, rx--pcase-transform):
Don't autoload.
(rx--pcase-macroexpander): Extract body into...
(rx--pcase-expand): ...a separate function, which is autoloaded.
2022-07-31 Philip Kaludercic <philipk@posteo.net>
Fix electric paring in rcirc buffers
* rcirc.el (rcirc--electric-pair-inhibit): Add new predicate function.
(rcirc-mode): Use rcirc--electric-pair-inhibit.
2022-07-31 Stefan Kangas <stefan@marxist.se>
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-read): Simplify.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warnings in tramp-loaddefs.el
* lisp/files.el (file-name-quoted-p): Autoload because it's
referred to from tramp-loaddefs.
* lisp/net/tramp.el (defvar): Put the entire form into the
loaddefs file instead of eval-and-compile -- this fixes a
dependency problem when byte-compiling the loaddefs file.
(tramp-methods, tramp-default-method-alist)
(tramp-default-user-alist, tramp-default-host-alist)
(tramp-local-host-regexp, tramp-terminal-type)
(tramp-foreign-file-name-handler-alist): Autoload to avoid
compilation warnings. Also put (require 'cl-lib) into the
loaddefs file for the same reason.
(tramp-ensure-dissected-file-name)
(tramp-set-completion-function)
(tramp-register-foreign-file-name-handler): Autoload.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix org.el byte-compile warning in org-loaddefs.el
* lisp/org/org.el (org-dynamic-block-define): Autoload because
it's referred to in org-loaddefs.el.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix ede byte-compile warnings in loaddefs.el
* lisp/emacs-lisp/eieio.el (make-instance):
* lisp/cedet/ede/auto.el (ede-add-project-autoload): Autoload
functions referred to by ede/loaddefs.el.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Remove loaddefs debug code
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
Remove code inadvertantly checked in.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix cl byte-compile warning in cl-loaddefs.el
* lisp/emacs-lisp/cl-macs.el (cl--optimize)
(cl-struct-sequence-type, cl-struct-slot-offset): Autoload since
they are referred to by code in cl-loaddefs.el.
2022-07-31 Stefan Kangas <stefan@marxist.se>
Delete additional items obsolete since 20, 21 and 22
* lisp/font-lock.el (font-lock-reference-face): Delete variable
alias obsolete since 20.3.
* lisp/progmodes/cc-cmds.el (c-toggle-auto-state): Delete alias
obsolete since 22.1.
* lisp/replace.el (query-replace-regexp-eval): Delete function
obsolete since 22.1.
(replace-count, replace-re-search-function): Doc fixes; adjust for
above deleted function.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix remaining byte-compile warnings in loaddefs.el
* lisp/progmodes/compile.el (compilation--default-buffer-name):
* lisp/kmacro.el (kmacro-name-last-macro):
* lisp/emacs-lisp/package.el (package--activate-all): Autoload to
avoid byte-compilation warnings when byte-compiling loaddefs.el.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix rx.el byte-compile warning in loaddefs.el
* lisp/emacs-lisp/rx.el (rx--to-expr, rx--pcase-transform):
Autoload to avoid warning when byte-compiling loaddefs.el.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix sendmail.el byte-compile warning in loaddefs.el
* lisp/mail/sendmail.el (mail-send-and-exit): Autoload since it's
referred to by autoloaded code in loaddefs.el.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
tramp fixes for byte-compiling loaddefs.el
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
Move to the main loaddefs file since it's referred to by functions
there.
* lisp/net/tramp.el (tramp-file-name-handler): Autoload to avoid
warning when byte-compiling loaddefs.el.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix further package.el loaddefs byte-compile warnings
* lisp/emacs-lisp/package.el (package-directory-list)
(package-quickstart-file): Specify group to avoid warning when
byte-compiling loaddefs.el.
(package-activated-list): Autoload since we're assigning the
variable from a function completely autoloaded.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix loaddefs byte-compile warnings from grep.el
* lisp/progmodes/grep.el (grep-highlight-matches)
(grep-match-face): Autoload to avoid byte-compile warnings from
loaddefs.el.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix loaddefs byte-compile warning from package.el
* lisp/emacs-lisp/package.el (package-user-dir): :group has to be
explicit for autoloaded defcustoms.
2022-07-31 Lars Ingebrigtsen <larsi@gnus.org>
Reformulate compile-command condition
* lisp/progmodes/compile.el: Reformulate to avoid a byte-compile
warning when compiling loaddefs.el.
2022-07-31 Stefan Kangas <stefan@marxist.se>
Delete aliases obsolete since 21.1 and 22.1
* lisp/ls-lisp.el (ls-lisp-dired-ignore-case):
* lisp/files.el (find-file-not-found-hooks): Delete variable aliases,
obsolete since 21.1 and 22.1 respectively.
2022-07-31 Eli Zaretskii <eliz@gnu.org>
Support keyboard input and display of U+1E9E
* lisp/international/latin1-disp.el (latin1-display):
* lisp/international/iso-transl.el (iso-transl-char-map)
(iso-transl-language-alist): Add U+1E9E capital sharp S.
2022-07-31 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
eb11dae499 Improve documentation of column-related functions
c95a34c960 * src/macfont.m (macfont_open): Initialize font->space_wid...
31a6a37d45 Improve indexing of keymap variables
2022-07-30 Po Lu <luangruo@yahoo.com>
Fix NS unexec build
* nextstep/Makefile.in (all): Only build Emacs.pdmp on pdumper
builds.
* src/sheap.h: Make STATIC_HEAP_SIZE bigger, otherwise I get:
static heap exhausted: avail 67108864 used 67101824 failed
request 20480
2022-07-30 Po Lu <luangruo@yahoo.com>
Fix frame synchronization with scroll bar movement
* src/xfns.c (x_set_inhibit_double_buffering): Stop condeming
scroll bars.
* src/xterm.c (x_scroll_bar_create): Create an InputOnly window.
Update event masks accordingly and stop allocating back buffer.
(x_scroll_bar_remove): Stop deallocating back buffer.
(XTset_vertical_scroll_bar, x_scroll_bar_set_handle): Draw onto
the edit window so they can be synchronized with buffer flips.
(x_scroll_bar_clear): Redraw scroll bars instead of just
clearing them.
(x_scroll_bar_handle_expose, x_scroll_bar_redraw): New
functions.
(x_scroll_bar_expose, x_scroll_bar_end_update): Delete
functions.
(handle_one_xevent): Update exposure logic accordingly.
* src/xterm.h (struct scroll_bar): Remove `x_drawable' field.
2022-07-30 Stefan Kangas <stefan@marxist.se>
Delete redisplay-end-trigger-functions and related defuns
This variable and related functions have been obsolete since 23.1.
The last things to depend on this (fast-lock.el and lazy-lock.el) were
recently removed.
* src/dispextern.h (struct it): Delete field
'redisplay_end_trigger_charpos'.
* src/window.c (Fwindow_redisplay_end_trigger)
(Fset_window_redisplay_end_trigger): Delete defuns and corresponding
defsubrs for functions obsolete since 23.1.
* src/window.h (wset_redisplay_end_trigger): Delete function.
(GCALIGNED_STRUCT): Delete 'redisplay_end_trigger'.
* src/xdisp.c (run_redisplay_end_trigger_hook): Delete function.
(syms_of_xdisp) <redisplay_end_trigger_functions>: Delete
variable obsolete since 23.1.
(init_iterator, next_element_from_buffer): Don't run or set above
deleted hook variable.
* lisp/subr.el: Delete obsoletion definitions for above deleted
defuns and variable.
* doc/lispref/hooks.texi (Standard Hooks):
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
* lisp/loadhist.el (unload-feature-special-hooks): Don't mention
above deleted variable.
* admin/coccinelle/window.cocci: Adjust for above changes.
2022-07-30 Eli Zaretskii <eliz@gnu.org>
Improve documentation of column-related functions
* doc/lispref/text.texi (Primitive Indent, Columns):
* src/indent.c (Fcurrent_indentation, Fmove_to_column): Document
that column counting ignores invisible text. (Bug#56837)
2022-07-30 Gerd Möllmann <gerd@gnu.org>
Fix native compiler handling of narrow-to-region
* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Use auto for
byte-narrow-to-region.
2022-07-30 Lars Ingebrigtsen <larsi@gnus.org>
Tweak icons.el emoji detection
* lisp/emacs-lisp/icons.el (icons--create): Choose another
character that's unlikely to appear in non-Emoji fonts. (Comment
left in place since this should be fixed in a less breakable way.)
2022-07-30 Lars Ingebrigtsen <larsi@gnus.org>
Make the symbol icons in outline.el more logical
* lisp/outline.el (outline-open, outline-close): Use symbols from
the same series so that it's more likely that they match up (bug#56823).
2022-07-30 Eli Zaretskii <eliz@gnu.org>
Make sure to preserve point across locked narrowing
* src/editfns.c (Fnarrow_to_region): Save the position of point
when locking the restriction, since this function can move point.
2022-07-30 Gregory Heytings <gregory@heytings.org>
Handle the optional argument of 'narrow-to-region' in byte-compiled code.
* lisp/emacs-lisp/bytecomp.el: Adapt the specifications.
* src/bytecode.c (exec_byte_code): Get the optional argument.
2022-07-30 Lars Ingebrigtsen <larsi@gnus.org>
Clarify mail-header address parsing doc strings
* lisp/mail/mail-parse.el (mail-header-parse-address-lax):
* lisp/mail/ietf-drums.el (ietf-drums-parse-address): Clarify what
these functions do (bug#56824).
2022-07-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix outline-minor-mode-use-buttons defcustom type
* lisp/outline.el (outline-minor-mode-use-buttons): Fix wrong type.
2022-07-30 Lars Ingebrigtsen <larsi@gnus.org>
buffer-match-p doc string clarification
* lisp/subr.el (buffer-match-p): Actually say that nil is a valid
value.
2022-07-30 Lars Ingebrigtsen <larsi@gnus.org>
Adjust outline--use-buttons-p to buffer-match-p change
* lisp/outline.el (outline-minor-mode-use-buttons): Adjust doc string.
(outline--use-buttons-p): No longer any need to special-case t/nil.
2022-07-30 Lars Ingebrigtsen <larsi@gnus.org>
Move a test from subr-tests to print-tests
2022-07-30 Stefan Kangas <stefan@marxist.se>
* lisp/apropos.el (apropos-documentation): Simplify.
2022-07-30 Stefan Kangas <stefan@marxist.se>
Avoid leaving temp buffers in bib-mode and refbib
* lisp/textmodes/bib-mode.el (bib-capitalize-title):
* lisp/textmodes/refbib.el (r2b-capitalize-title): Use
with-temp-buffer.
2022-07-30 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in dns-mode-map
* lisp/textmodes/dns-mode.el (dns-mode-map): Prefer defvar-keymap.
2022-07-30 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in nroff-mode-map
* lisp/textmodes/nroff-mode.el (nroff-mode-map): Prefer defvar-keymap.
2022-07-30 Stefan Kangas <stefan@marxist.se>
Fix namespace use in bib-mode.el
* lisp/textmodes/bib-mode.el (bib-unread-file, bib-add)
(bib-return-key, bib-mark, bib-unread): Rename from
'unread-bib-file', 'addbib', 'return-key-bib', 'mark-bib', and
'unread-bib' respectively. Maintain old names as obsolete aliases and
update uses.
(bib-mode-map): Prefer defvar-keymap.
2022-07-30 Stefan Kangas <stefan@marxist.se>
Make ffap-newfile-prompt obsolete
* lisp/ffap.el (ffap-newfile-prompt): Obsolete in favor of
'find-file-not-found-functions'.
2022-07-30 Stefan Kangas <stefan@marxist.se>
* lisp/ffap.el (ffap-url-regexp): Add gemini.
2022-07-30 Stefan Kangas <stefan@marxist.se>
Make outline-view-change-hook obsolete
According to a comment, this hook "Seems only used by lazy-lock.
I.e. obsolete." But lazy-lock has been deleted.
* lisp/outline.el (outline-view-change-hook): Make obsolete.
2022-07-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* src/macfont.m (macfont_open): Initialize font->space_width. (Bug#56808)
2022-07-30 Eli Zaretskii <eliz@gnu.org>
Improve indexing of keymap variables
* doc/lispref/maps.texi (Standard Keymaps):
* doc/lispref/display.texi (Button Buffer Commands)
(Button Properties):
* doc/lispref/keymaps.texi (Translation Keymaps): Improve indexing
of keymaps. (Bug#56816)
2022-07-30 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e0f54c62ec CC Mode: fontify variables/functions after line comments e...
2c6a94c5b8 ; Correct the meaning of "cf." in tips.texi
2022-07-29 Po Lu <luangruo@yahoo.com>
Minor improvements to precision scroll interpolation
* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Bump GC
cons threshold temporarily. This leads to a very noticable
improvement to animation speed.
2022-07-29 Po Lu <luangruo@yahoo.com>
Fix failure caused by misreading the frame synchronization spec
* src/xterm.c (x_sync_update_begin): Ensure value % 4 is 1.
(x_sync_update_finish): Then, add 3.
2022-07-29 Po Lu <luangruo@yahoo.com>
Don't freeze if the compositing manager crashes
* src/xterm.c (x_if_event): New function, like XIfEvent but with
a timeout.
(x_sync_wait_for_frame_drawn_event): Disable frame
synchronization if x_if_event times out after 1 second.
2022-07-29 Alan Mackenzie <acm@muc.de>
CC Mode: fontify variables/functions after line comments ending in spaces
* lisp/progmodes/cc-engine.el (c-forward-comment-minus-1): Take account of
spaces preceding a linefeed when scanning a putative line comment end.
2022-07-29 Gregory Heytings <gregory@heytings.org>
Improve narrowing when iterator has moved outside of narrowing bounds.
* src/xdisp.c (get_narrowed_begv, get_narrowed_zv): Add 'pos'
parameter.
(init_iterator): Add arguments to 'get_narrowed_begv' and
'get_narrowed_zv'.
(handle_fontified_prop): Recompute the narrowing when iterator
has moved outside of narrowing bounds.
* src/dispextern.h (get_narrowed_begv, get_narrowed_zv): Adapt
prototypes.
* src/composite.c (find_automatic_composition): Add argument
to 'get_narrowed_begv'.
2022-07-29 Philip Kaludercic <philipk@posteo.net>
* subr.el (buffer-match-p): Add t as trivial a condition
2022-07-29 Gregory Heytings <gregory@heytings.org>
Improvement for long line optimizations.
* src/xdisp.c (handle_fontified_prop): Also apply the forced
narrowing at BOB.
2022-07-29 Gerd Möllmann <gerd@gnu.org>
Adapt native compiler to change in narrow-to-region
* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Add third
argument nil for narrow-to-region.
2022-07-29 Po Lu <luangruo@yahoo.com>
Fix handling of extended frame resize synchronization
* src/xterm.c (x_sync_wait_for_frame_drawn_event): Don't wait if
the frame is invisible. If it is mapped again the compositing
manager is obliged to send us another event, so we can wait in
that case.
(x_sync_update_begin, x_sync_update_finish): Handle extended
resize synchronization here.
(XTframe_up_to_date, handle_one_xevent): Save stuff here.
* src/xterm.h (struct x_output): New field
`resize_counter_value'.
2022-07-29 Lars Ingebrigtsen <larsi@gnus.org>
Fix outline byte compilation warning from previous change
* lisp/outline.el (outline--use-buttons-p): Move around to fix
byte compilation warning.
2022-07-29 Lars Ingebrigtsen <larsi@gnus.org>
Fix up the outline minor mode button logic
* lisp/outline.el (outline-minor-mode-highlight-buffer): Factor
out... (bug#56820).
(outline--use-buttons-p): ... to here.
(outline-hide-subtree, outline--fix-up-all-buttons)
(outline-show-subtree): Use it.
2022-07-29 Po Lu <luangruo@yahoo.com>
Minor additions to last change
* doc/emacs/xresources.texi (Table of Resources): Update
description of `extended'.
* etc/NEWS: Announce frame tearing reduction.
* src/xterm.c (x_sync_update_finish, x_sync_update_begin)
(x_update_begin, x_update_end, show_back_buffer, x_flip_and_flush)
(XTframe_up_to_date, handle_one_xevent): Minor redesign of frame
synchronization feature. Fix crash with overflow and checking.
2022-07-29 Po Lu <luangruo@yahoo.com>
Implement monitor refresh rate synchronization on X
* src/xfns.c (x_set_parent_frame, Fx_create_frame): Disable
vsync on child and embedded frames.
* src/xmenu.c (x_menu_show): Fix XMenu position calculation in
child frames.
* src/xterm.c (x_sync_is_frame_drawn_event)
(x_sync_wait_for_frame_drawn_event): New functions.
(x_sync_update_begin): Wait for frame to be drawn if not double
buffered.
(x_sync_update_finish): Set FRAME_X_WAITING_FOR_DRAW (f).
(show_back_buffer): Wait for frame to be drawn before flipping
buffers.
(XTframe_up_to_date): Set FRAME_X_WAITING_FOR_DRAW if bumped.
(handle_one_xevent): Handle frame drawn events.
* src/xterm.h (struct x_output): New fields for frame dirtyness
and vsync.
2022-07-29 Gregory Heytings <gregory@heytings.org>
Merge branch 'feature/long-lines-and-font-locking'
2022-07-29 Gregory Heytings <gregory@heytings.org>
Further minor improvements of documentation
* src/xdisp.c (syms_of_xdisp) <fontification-functions>:
* etc/NEWS: Further minor wording improvements.
2022-07-29 Eli Zaretskii <eliz@gnu.org>
Minor improvements of recent documentation changes
* src/editfns.c (Fwiden):
* doc/lispref/display.texi (Auto Faces):
* src/xdisp.c (syms_of_xdisp) <fontification-functions>:
* etc/NEWS: Clarify and improve wording of documentation changes.
2022-07-29 Po Lu <luangruo@yahoo.com>
Also update after buffer flip caused by flush_frame
* src/xterm.c (x_flip_and_flush): Mark the end of a sync frame.
2022-07-28 Po Lu <luangruo@yahoo.com>
Implement extended frame synchronization
* src/xterm.c (x_atom_refs): New atom _NET_WM_FRAME_TIMINGS.
(x_sync_update_finish, x_sync_update_begin): New frame.
(x_update_begin, x_update_end, XTframe_up_to_date): Begin and
end frames accordingly if extended frame synchronization is
enabled.
(handle_one_xevent): Ignore timing and frame drawn events.
* src/xterm.h (struct x_display_info): New atom.
(FRAME_X_COUNTER_VALUE): New macro.
2022-07-28 Po Lu <luangruo@yahoo.com>
Don't offer meaningless selection targets during drag-and-drop
* lisp/select.el (xselect-dnd-target-available-p): New function.
(selection-converter-alist): Register it as the availability
function for DND specific targets.
2022-07-28 Gregory Heytings <gregory@heytings.org>
Final documentation tweaks.
* etc/NEWS: Update the NEWS entry.
* src/xdisp.c (syms_of_xdisp): Mention the fact that restrictions
may be locked around 'fontification-functions'.
2022-07-28 Gregory Heytings <gregory@heytings.org>
Add an optional 'lock' parameter to 'narrow-to-region'
* src/editfns.c (Fnarrow_to_region): Add the parameter to the
function, and handle it. Update docstring.
(unwind_locked_begv, unwind_locked_zv): New functions.
(Fwiden): Do nothing when restrictions are locked. Update
docstring.
(syms_of_editfns): Replace the 'inhibit-widen' symbol and variable
with a 'restrictions-locked' symbol and variable. Update docstring.
* src/xdisp.c (handle_fontified_prop): Use Fnarrow_to_region with
the new parameter.
(unwind_narrowed_zv): Remove function.
* src/process.c (Finternal_default_process_filter): Add a third
argument to Fnarrow_to_region.
* src/lread.c (readevalloop): Add a third argument to
Fnarrow_to_region.
* src/bytecode.c (exec_byte_code): Add a third argument to
Fnarrow_to_region.
* etc/NEWS (like): Mention the new parameter of 'narrow-to-region'.
* doc/lispref/positions.texi (Narrowing): Document it.
2022-07-28 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-prefix-map): Fix key broken by conversion.
2022-07-28 Sam Steingold <sds@gnu.org>
Cleanup `string-equal-ignore-case' declarations.
Also, a minor declaration cleanup for other `compare-strings' thin wrappers.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Remove
`string-equal-ignore-case', `string-prefix-p', `string-suffix-p'.
(side-effect-and-error-free-fns): Add `proper-list-p' (it already
was in `pure-fns').
(pure-fns): Remove `string-prefix-p', `string-suffix-p'
(`string-equal-ignore-case' was missing here).
* lisp/subr.el (proper-list-p): Remove partially duplicate `put's from here.
(string-equal-ignore-case, string-prefix-p, string-suffix-p): Add
`pure' and `side-effect-free' declarations.
(string-equal-ignore-case): Make inline.
2022-07-28 Sam Steingold <sds@gnu.org>
a couple more `string-equal-ignore-case' test cases
2022-07-28 Lars Ingebrigtsen <larsi@gnus.org>
Comment fixes for recent icon code
* lisp/cus-edit.el (custom-icon-state): Add comment.
* lisp/emacs-lisp/icons.el: Remove comment.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Delete fast-lock.el and lazy-lock.el
The 'font-lock-support-mode' is occasionally useful for debugging
purposes, so it remains as a defvar.
Ref: https://lists.gnu.org/r/emacs-devel/2020-08/msg00125.html
* lisp/obsolete/fast-lock.el:
* lisp/obsolete/lazy-lock.el: Delete libraries obsolete since
22.1. (Bug#56560)
* lisp/font-lock.el (font-lock-support-mode): Make into a defvar and
delete any mention of 'lazy-lock-mode' and 'fast-lock-mode'.
(font-lock-turn-on-thing-lock, font-lock-turn-off-thing-lock):
Drop support for obsolete modes lazy-lock and fast-lock.
(font-lock-after-fontify-buffer)
(font-lock-after-unfontify-buffer): Make into obsolete function
aliases for 'ignore'. Adjust callers.
(font-lock-keywords, font-lock-inhibit-thing-lock): Adjust
documentation to not mention lazy-lock and fast-lock.
* lisp/font-core.el (font-lock-defaults): Adjust documentation to
not mention 'font-lock-inhibit-thing-lock'.
* lisp/mail/rmail.el (rmail-variables): Don't inhibit obsolete
lazy-lock-mode and fast-lock-mode.
2022-07-28 Po Lu <luangruo@yahoo.com>
Fix grab view persisting on Haiku after popup menu closes
* src/haiku_support.cc (BasicMouseUp): Improve handling of
wait_for_release_message.
(be_clear_grab_view): New function.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (haiku_menu_show): Call it here.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Convert ffap comments to tests
* test/lisp/ffap-tests.el (ffap-file-remote-p, ffap-machine-p):
New tests.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
ba54f7e39c ; * doc/lispref/windows.texi (Window Sizes): Another typo....
7990d0c36a ; * doc/lispref/windows.texi (Window Sizes): Fix a typo. ...
2022-07-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
92e77873ad Update ChangeLog and AUTHORS for 28.1.91 pretest
093214402b ; * admin/authors.el (authors-aliases): Update.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
23112f89f9 ; Improve documentation of 'file-name-with-extension'
4be938169d Release the desktop lock in 'kill-emacs-hook'
4ea1f6c7f8 ; * doc/lispref/tips.texi (Documentation Tips): Fix typos....
# Conflicts:
# doc/lispref/tips.texi
2022-07-28 Lars Ingebrigtsen <larsi@gnus.org>
Use icons in warnings buffers
* lisp/emacs-lisp/warnings.el (warning-suppress-action)
(warning-suppress-log-action): Removed.
New icon.
(warnings-suppress): New helper function.
(display-warning): Use it (bug#46025).
2022-07-28 Lars Ingebrigtsen <larsi@gnus.org>
Use icons in outline
* lisp/help.el (describe-bindings): Don't force buttons on
(bug#56691).
* lisp/outline.el (outline-minor-mode-use-buttons): Default
buttons on in special-mode buffers.
* lisp/outline.el (outline-minor-mode-buttons): Remove.
(outline-open, outline-close): New icons.
(outline-minor-mode-highlight-buffer): Use the new predicate to
switch on/off.
(outline--make-button): Remove.
(outline--make-button-overlay): Use icons.el instantiation.
(outline--valid-emoji-p): Remove.
(outline--valid-char-p): Remove.
(outline--insert-open-button, outline--insert-close-button): Make
point movement better in *Help* buffers.
2022-07-28 Lars Ingebrigtsen <larsi@gnus.org>
Add support for user-customizable icons
* doc/emacs/custom.texi (Specific Customization): Mention it.
* doc/emacs/display.texi (Icons): New node.
* doc/lispref/display.texi (Icons): New node.
* lisp/button.el (buttonize):
(button--properties, buttonize-region): Allow not overriding faces.
* lisp/cus-edit.el (custom-save-all): Save icons.
(custom-icon): New widget.
(custom-icon-value-create, custom-toggle-hide-icon)
(custom--icons-widget-value, custom-icon-set): Helper functions
for the widget.
(customize-icon): Main command.
(custom-icon-state-set, custom-icon-state): Helper functions.
(custom-theme-set-icons): Function to be used by theme writers.
(custom-set-icons): Function to be used in .emacs.
(custom-save-icons): New function.
* lisp/custom.el (custom-push-theme): Add icons.
* lisp/emacs-lisp/icons.el: New file.
* test/lisp/emacs-lisp/icons-tests.el: Add some tests.
2022-07-28 Po Lu <luangruo@yahoo.com>
Correctly set marker position after specpdl is unwound during printing
* src/print.c (PRINTFINISH): Don't call set_marker_both with the
wrong current_buffer. Reported by Lars Ingebrigtsen
<larsi@gnus.org>.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Make quickurl.el obsolete (part 2/2)
* lisp/obsolete/quickurl.el: Add "Obsolete-since" header.
* lisp/info.el (Info-file-list-for-emacs): Delete quickurl entry.
* doc/misc/autotype.texi (QuickURL): Delete section.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Make net/quickurl.el obsolete (part 1/2)
* lisp/net/quickurl.el: Move from here...
* lisp/obsolete/quickurl.el: ...to here.
2022-07-28 Lars Ingebrigtsen <larsi@gnus.org>
Don't export print--unreadable-callback-buffer to lisp
* src/print.c (syms_of_print): Don't export
`print--unreadable-callback-buffer' to lisp.
2022-07-28 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that we don't call print-unreadable-function from " prin1"
* src/print.c (PRINTPREPARE): Bind the current buffer so that we
can retrieve it later.
(print_vectorlike): Use it (bug#56773).
(syms_of_print): New internal `print--unreadable-callback-buffer'
variable.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Bump Emacs version to 28.1.91
* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 28.1.91.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Update ChangeLog and AUTHORS for 28.1.91 pretest
* ChangeLog.3:
* etc/AUTHORS: Update.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Doc fixes: don't mention EFS
* doc/misc/ede.texi (ede-project):
* doc/misc/gnus.texi (Directory Groups, Various Various):
* lisp/cedet/ede/base.el (ede-project):
* lisp/gnus/mml.el (mml-attach-external):
* lisp/org/org.el (org-file-apps):
* lisp/url/url-file.el (url-file-find-possibly-compressed-file):
Doc fixes; don't mention XEmacs specific library EFS.
2022-07-28 Eli Zaretskii <eliz@gnu.org>
Minor update of truncate-line optimization
* src/xdisp.c (forward_to_next_line_start): Look into display and
overlay strings only when lines are truncated on display.
2022-07-28 Stefan Kangas <stefan@marxist.se>
New test ffap-replace-file-component
* test/lisp/ffap-tests.el (ffap-replace-file-component): New test.
2022-07-28 Stefan Kangas <stefan@marxist.se>
Minor doc fixes in ffap.el
* lisp/ffap.el:
(ffap-url-fetcher): Minor doc fixes. Adapt to new default; don't
mention defunct/missing library ffap-url.el.
2022-07-28 Po Lu <luangruo@yahoo.com>
Fix minor problem with scroll bar grabs on Haiku
* haiku_support.cc (class EmacsScrollBar, EmacsScrollBar)
(MouseDown, MouseUp): Keep a counter of the mouse down events
received.
2022-07-28 Po Lu <luangruo@yahoo.com>
Fix race conditions in mouse button handling on Haiku
* src/haiku_support.cc (class EmacsView): New field
`grabbed_buttons'. Remove `previous_buttons'.
(BasicMouseDown, BasicMouseUp): Accept new parameter `message'.
Use data from that message instead.
(MouseDown, MouseUp): Pass the current message to BasicMouseUp
and BasicMouseDown.
2022-07-28 Paul Pogonyshev <pogonyshev@gmail.com>
Release the desktop lock in 'kill-emacs-hook'
* lisp/desktop.el: Run 'desktop--on-kill' in 'kill-emacs-hook'.
(desktop--on-kill): New function, refactored from 'desktop-kill'.
(desktop-kill): Call 'desktop--on-kill'. (Bug#56800)
2022-07-27 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_set_offset): Respect x-no-window-manager.
2022-07-27 Po Lu <luangruo@yahoo.com>
Remove excessive synchronization from x_sync_with_move
* src/xterm.c (x_sync_with_move): Remove redundant XSync. The X
server always handles requests in order.
2022-07-27 Stefan Kangas <stefankangas@gmail.com>
Drop support for obsolete "Lisp Code Directory" from ffap
Ref: https://flex.phys.tohoku.ac.jp/texi/faq/faq_146.html
Note also that the host "archive.cis.ohio-state.edu" is unknown.
* lisp/ffap.el (ffap-alist): Drop support for obsolete "Lisp Code
Directory".
(ffap-lcd): Make obsolete.
2022-07-27 Stefan Kangas <stefankangas@gmail.com>
Drop support for XEmacs package EFS
EFS is a long defunct XEmacs-specific fork of Ange FTP that is
superseded by TRAMP.
* lisp/ffap.el (ffap-ftp-default-user)
(ffap-replace-file-component, ffap-host-to-filename):
* lisp/gnus/mml.el (mml-parse-file-name):
* lisp/gnus/nnheader.el (nnheader-re-read-dir):
* lisp/net/browse-url.el (browse-url-filename-alist):
* lisp/speedbar.el (speedbar-check-vc): Drop support for XEmacs
package EFS.
2022-07-27 Stefan Kangas <stefankangas@gmail.com>
Make ffap-file-suffix obsolete
* lisp/ffap.el (ffap-file-suffix): Make obsolete in favor of
file-name-extension. Update callers.
2022-07-27 Michael Albinus <michael.albinus@gmx.de>
Remove Tramp instrumentation
* lisp/net/tramp.el (tramp-handle-shell-command): Modify sentinel handling.
2022-07-27 Eli Zaretskii <eliz@gnu.org>
Speed up Isearch in very long lines under line truncation
* src/xdisp.c (strings_with_newlines): New function.
(forward_to_next_line_start): Call 'strings_with_newlines' in
buffers with very long lines, to avoid falling back on slow
iteration. (Bug#56682)
2022-07-27 Michael Albinus <michael.albinus@gmx.de>
Further Tramp instrumentation
2022-07-27 F. Jason Park <jp@neverwas.me>
Add compat from GNU ELPA as a soft dependency in ERC
* lisp/erc/erc-backend.el (erc-parse-server-response,
erc--parse-isupport-value): Remove sub-28 compat code involving
`string-search'.
* lisp/erc/erc-compat.el: Require compat package, but don't error
when absent.
* lisp/erc/erc-dcc.el (erc-dcc-member): Remove `string-search' compat
code.
(erc-dcc-unquote-filename): Remove `string-replace' compat code.
* lisp/erc/erc-speedbar.el (erc-speedbar-expand-server,
erc-speedbar-expand-channel, erc-speedbar-expand-user): Remove
`string-search' compat code.
* lisp/erc/erc.el: Add compat version 28.1.2.0 to Package-Requires
header and require `erc-compat' after other libraries.
(erc--valid-local-channel-p): Remove `string-search' compat code.
(erc-update-mode-line-buffer): Remove `string-replace' compat code.
(erc-message-english-PART): Remove `string-replace' compat code.
2022-07-27 F. Jason Park <jp@neverwas.me>
Avoid mutating default value of erc-server-last-peers
* lisp/erc/erc-backend.el (erc-server-last-peers): Leave default as
nil instead of a quoted constant.
(erc-server-connect): Initialize `erc-server-last-peers' to a new
value local to a server buffer.
(erc-message): Operate on server's local `erc-server-last-peers' value
instead of the global default. Prefer replacing value instead of
mutating CDR to make for easier testing.
(erc-server-PRIVMSG): Create a new `erc-server-last-peers' for easier
testing. (Bug#56449)
2022-07-27 F. Jason Park <jp@neverwas.me>
Ensure erc-dcc-chat-setup runs in the right buffer
* lisp/erc/erc-dcc.el (erc-dcc-chat-setup): Ensure initialization runs
in the intended buffer regardless of the value of `erc-join-buffer'.
(erc-dcc--send-final-turbo-ack, erc-dcc-get-filter): Rename internal
variable formerly known as `erc-dcc--X-send-final-turbo-ack'.
2022-07-27 F. Jason Park <jp@neverwas.me>
Fix CTCP regression in erc-server-PRIVMSG
* lisp/erc/erc-backend.el (erc-server-PRIVMSG): Don't create a query
buffer for non-ACTION CTCP messages.
* test/lisp/erc/erc-scenarios-misc.el (erc-scenarios-dcc-chat-accept):
Add test for basic DCC CHAT accept dialog.
* test/lisp/erc/resources/dcc/chat/accept-dcc.eld: New file.
* test/lisp/erc/resources/dcc/chat/accept.eld: New file.
2022-07-27 F. Jason Park <jp@neverwas.me>
Allow non-IRC line delimiters with ERC test server
* test/lisp/erc/resources/erc-d/erc-d.el (erc-d-server-fqdn,
erc-d--initialize-client, erc-d--log, erc-d--send, erc-d--filter,
erc-d-run): Add new variable and use it. Also optionally accept
keyword arguments in `erc-d-run'.
* test/lisp/erc/resources/erc-d/erc-d-tests.el
(erc-d-run-direct-foreign-protocol): Add test demoing newline-only
line-wise protocol.
* test/lisp/erc/resources/erc-d/resources/foreign.eld: New file.
2022-07-27 Po Lu <luangruo@yahoo.com>
Fix thinko in last change
* src/print.c (PRINTPREPARE): Also remove `print_free_buffer'.
Record unwind protect instead.
(PRINTFINISH): Stop freeing the print buffer. (bug#56773)
2022-07-27 Michael Albinus <michael.albinus@gmx.de>
In Tramp, use `string-empty-p' and `string-equal-ignore-case' consequently
* lisp/net/tramp.el (tramp-find-method):
* lisp/net/tramp-cmds.el (tramp-change-syntax):
* lisp/net/tramp-sh.el (tramp-sh-get-signal-strings)
(tramp-open-connection-setup-interactive-shell): Use `string-empty-p'.
* lisp/net/tramp-compat.el (tramp-compat-string-equal-ignore-case):
New defalias.
* lisp/net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted): Use it.
2022-07-27 Lars Ingebrigtsen <larsi@gnus.org>
Update test-print-unreadable-function after fix
* test/lisp/subr-tests.el (test-print-unreadable-function): Update
test after fix.
2022-07-27 YugaEgo <yet@ego.team>
Improve 'diff-whitespace-style' user option declaration
* lisp/vc/diff-mode.el (diff-whitespace-style):
Use ':require'. Minor docstring fix.
(top level): Do not require 'whitespace.
(whitespace-style, whitespace-trailing-regexp):
Add defvars (rollback recent removal).
* etc/NEWS: Extend 'diff-whitespace-style' introduction.
(Bug#56679) (bug#56679).
2022-07-27 Po Lu <luangruo@yahoo.com>
Fix invalid current buffer after print-unreadable-function signals
* src/print.c (PRINTPREPARE): Remove `old' and
record_unwind_current_buffer instead.
(PRINTFINISH): Stop restoring `old'. (bug#56773)
2022-07-27 Lars Ingebrigtsen <larsi@gnus.org>
Add a test for python-mode comment/else problem
Based on a patch from kobarity <kobarity@gmail.com>
2022-07-27 Stephen Berman <stephen.berman@gmx.net>
Fix comment/else indentation problem in python-mode
* lisp/progmodes/python.el
(python-info-dedenter-opening-block-positions): Fix indentation of
"else" after a comment (bug#56742).
2022-07-27 Po Lu <luangruo@yahoo.com>
Fix frame determination for XI touch events
* src/xterm.c (handle_one_xevent): Find touchscreen event
windows using x_window_to_frame.
2022-07-27 Po Lu <luangruo@yahoo.com>
Remove workaround for some input method problems
* src/xterm.c (handle_one_xevent): Remove modifier key
workaround for some input method problems, since they cause more
problems than they fix. (bug#56782)
2022-07-26 Po Lu <luangruo@yahoo.com>
Fix NS stretch glyph display
* src/nsterm.m (ns_draw_window_cursor): Just draw hollow cursor.
There is no need to draw the phys cursor glyph.
(ns_dumpglyphs_stretch): Delete function.
(ns_draw_glyph_string): New function. Port code from X and use
it instead. (bug#56787)
2022-07-26 Alan Mackenzie <acm@muc.de>
CC Mode: correct the calculation and handling of c-use-category.
This fixes bug #56629. The use of c-use-category was inconsistent, with the
result that it would be nil at compilation time, but t at run time. This
resulted in wrongly writing syntax-table text properties to <s and >s, yet
testing for category properties on them.
* lisp/progmodes/cc-defs.el (c-use-category): Move to after the definition of
c-<-as-paren-syntax and c->-as-paren-syntax so as correctly to be able to use
their values. Put an eval-when-compile around the calculation of its value,
to reduce the chances of future failure.
(c-mark-<-as-paren, c-mark->-as-paren, c-unmark-<->-as-paren, c-sc-scan-lists)
(c-sc-parse-partial-sexp): Wrap c-use-category in (eval-when-compile ...) as
an optimization, preventing the XEmacs code also being generated.
2022-07-26 Lars Ingebrigtsen <larsi@gnus.org>
Add missing @end defun to strings.texi
* doc/lispref/strings.texi (Text Comparison): Add missing @end defun.
2022-07-26 Sam Steingold <sds@gnu.org>
restore and obsolete `gnus-string-equal' and `bibtex-string='
* lisp/gnus/gnus-util.el (gnus-string-equal): Restore and declare obsolete.
* lisp/textmodes/bibtex.el (bibtex-string=): Likewise.
2022-07-26 Sam Steingold <sds@gnu.org>
avoid error when message-fetch-field returns nil
* gnus-art.el (article-hide-boring-headers): Use "" when
`message-fetch-field' returns `nil'
2022-07-26 Sam Steingold <sds@gnu.org>
string-equal-ignore-case: new function
* lisp/cedet/semantic/complete.el (semantic-collector-calculate-completions):
Use `string-prefix-p' instead of explicit `compare-strings'.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns):
Add `string-equal-ignore-case'.
* lisp/emacs-lisp/cl-extra.el (cl-equalp): Use `string-equal-ignore-case'.
* lisp/emacs-lisp/shadow.el (load-path-shadows-find): Likewise.
* lisp/emacs-lisp/shortdoc.el (string): Add `string-equal-ignore-case'.
* lisp/files.el (file-truename): Use `string-equal-ignore-case'.
(file-relative-name): Likewise.
* lisp/gnus/gnus-art.el (article-hide-boring-headers):
Use `string-equal-ignore-case' instead of `gnus-string-equal'.
* lisp/gnus/gnus-util.el (gnus-string-equal):
Remove, use `string-equal-ignore-case' instead.
* lisp/international/mule-cmds.el (describe-language-environment):
Use `string-equal-ignore-case'.
(locale-charset-match-p): Likewise.
* lisp/man.el (Man-softhyphen-to-minus): Use `string-prefix-p'.
* lisp/minibuffer.el (completion--string-equal-p):
Remove, use `string-equal-ignore-case' instead.
(completion--twq-all): Use `string-equal-ignore-case'.
(completion--do-completion): Likewise.
* lisp/net/browse-url.el (browse-url-default-windows-browser):
Use `string-prefix-p' instead of explicit `compare-strings'.
* lisp/org/ob-core.el (org-babel-results-keyword):
Use `string-equal-ignore-case' instead of explicit `compare-strings'.
(org-babel-insert-result): Likewise.
* lisp/org/org-compat.el (string-equal-ignore-case):
Define unless defined already.
(org-mode-flyspell-verify): Use `string-equal-ignore-case'.
* lisp/org/org-lint.el (org-lint-duplicate-custom-id): Likewise.
* lisp/org/ox.el (org-export-resolve-radio-link): Use
`string-equal-ignore-case' and `string-clean-whitespace'.
* lisp/progmodes/flymake-proc.el
(flymake-proc--check-patch-master-file-buffer):
Use `string-prefix-p' instead of explicit `compare-strings'.
* lisp/progmodes/idlwave.el (idlwave-class-or-superclass-with-tag):
Use `string-equal-ignore-case' instead of explicit `compare-strings'.
* lisp/subr.el (member-ignore-case): Use `string-equal-ignore-case'.
(string-equal-ignore-case): Compare strings ignoring case.
* lisp/textmodes/bibtex.el (bibtex-string=): Remove.
(bibtex-format-entry, bibtex-font-lock-url, bibtex-autofill-entry)
(bibtex-print-help-message, bibtex-validate, bibtex-validate-globally)
(bibtex-clean-entry, bibtex-completion-at-point-function, (bibtex-url):
Use `string-equal-ignore-case' instead of `bibtex-string='.
* lisp/textmodes/sgml-mode.el (sgml-get-context):
Use `string-equal-ignore-case' instead of explicit `compare-strings'.
(sgml-calculate-indent): Likewise
* test/lisp/subr-tests.el (string-comparison-test):
Add tests for `string-equal-ignore-case'.
2022-07-26 Christian Garbs <mitch@cgarbs.de>
João Távora <joaotavora@gmail.com>
Add out-of-box support for perl lsp server
* eglot.el (eglot-server-programs): Support Perl lsp.
* README.md: Update.
* NEWS.md: Update.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/952
2022-07-26 Lars Ingebrigtsen <larsi@gnus.org>
Don't bind `M-X' when doing general completion
* lisp/minibuffer.el (minibuffer-local-must-match-map): Remove the
M-X binding here, because it's nonsensical outside
read-extended-command (bug#56741).
* lisp/simple.el (read-extended-command-mode-map)
(read-extended-command-mode): New minor mode to bind `M-X' in
read-extended-command.
(read-extended-command-1): Use it.
2022-07-26 Lars Ingebrigtsen <larsi@gnus.org>
Add a test for print-unreadable-function
* test/lisp/subr-tests.el (test-print-unreadable-function): Add
failing test (bug#56773).
2022-07-26 Mattias Engdegård <mattiase@acm.org>
Add duplicate-dwim (bug#56418)
Like duplicate-line but duplicates the region instead if active.
Rectangular regions are duplicated on the right-hand side.
The region remains active afterwards, to facilitate further
duplication or other operations on the same text.
* lisp/rect.el (rectangle--duplicate-right):
* lisp/misc.el (duplicate-dwim): New.
* test/lisp/misc-tests.el (misc--duplicate-dwim): New test.
* etc/NEWS: Announce.
2022-07-26 Robert Pluim <rpluim@gmail.com>
Teach 'network-lookup-address-info' to validate numeric addresses
* src/process.c (Fnetwork_lookup_address_info): Add optional 'hints'
argument, pass AI_NUMERICHOST to 'getaddrinfo' if it's 'numeric'.
(syms_of_process): Add 'numeric' symbol.
* doc/lispref/processes.texi (Misc Network): Expunge passive voice.
Update 'network-lookup-address-info' description.
* test/src/process-tests.el (lookup-hints-specification):
(lookup-hints-values): Test new functionality.
* etc/NEWS: Announce change.
2022-07-26 Michael Albinus <michael.albinus@gmx.de>
Fix regression in last Tramp change
* lisp/net/tramp-sh.el (tramp-readlink-file-truename): Remove.
(tramp-sh-handle-file-truename): Revert implementation. (Bug#56774)
2022-07-26 Po Lu <luangruo@yahoo.com>
Fix flicker when moving tooltips between frames during mouse drag-and-drop
* src/haikufns.c (Fx_show_tip):
* src/nsfns.m (Fx_show_tip): Allow sharing existing tooltip
frames between any two frames.
* src/xfns.c (Fx_show_tip): Allow that but only between frames
on the same X display.
2022-07-26 Po Lu <luangruo@yahoo.com>
Handle modifiers during Haiku DND wheel movement
* lisp/term/haiku-win.el (haiku-dnd-modifier-mask)
(haiku-dnd-wheel-modifier-type): New functions.
(haiku-handle-drag-wheel): Use them.
* lisp/x-dnd.el (x-dnd-modifier-mask): Remove outdated comment.
* src/haikuselect.c (haiku_note_drag_wheel): Pass modifiers to
wheel function.
(syms_of_haikuselect): Update doc strings.
2022-07-26 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
970190b844 Avoid infloop in 'recenter'
a866674b2a Fix inaccuracies in "lax search" documentation
2022-07-25 Po Lu <luangruo@yahoo.com>
Remove some redundant checks in the DND code
* src/xterm.c (handle_one_xevent): Don't check tab_bar_p or
tool_bar_p before clearing last items during drag-and-drop.
2022-07-25 Gregory Heytings <gregory@heytings.org>
Improvement for long lines in buffers with font locking.
* src/xdisp.c (get_narrowed_width): Factored out from 'get_narrowed_len'.
(get_narrowed_len): Updated to use 'get_narrowed_width'.
(get_closer_narrowed_begv): New function.
(SET_WITH_NARROWED_BEGV): Add parameter to the macro.
(back_to_previous_line_start): Use the new function.
(get_visually_first_element, move_it_vertically_backward): Update the
calls to the macro.
* src/dispextern.h: Prototype of 'get_closer_narrowed_begv'.
Fix the prototypes of 'get_narrowed_begv' and 'get_narrowed_zv'.
2022-07-25 Paul Eggert <eggert@cs.ucla.edu>
Note guideline for doc string expressions
* doc/lispref/tips.texi (Documentation Tips):
Mention \\=' and \\=` and say that expressions like
(NAME TYPE RANGE) should not be quoted.
2022-07-25 Eli Zaretskii <eliz@gnu.org>
Avoid infloop in 'recenter'
* src/window.c (Frecenter): Avoid infinite loop in the minibuffer
under 'fido-vertical-mode'. (Bug#56765)
2022-07-25 Michael Albinus <michael.albinus@gmx.de>
Fix regexp in tramp-tests.el
* test/lisp/net/tramp-tests.el (tramp--test-enabled): Fix regexp
for Tramp test files.
2022-07-25 Robert Pluim <rpluim@gmail.com>
Make package-archives URL treatment slighty laxer
'package-archives' URLs are expected to end in '/', but we can
cater for people typoing that by using 'url-expand-file-name'.
* lisp/emacs-lisp/package.el (package--with-response-buffer-1): Use
'url-expand-file-name' instead of 'concat'.
2022-07-25 João Távora <joaotavora@gmail.com>
Clean up more robustly in compile.el
* lisp/progmodes/compile.el (compilation-sentinel): Use
unwind-protect.
2022-07-25 Eli Zaretskii <eliz@gnu.org>
Fix inaccuracies in "lax search" documentation
* doc/emacs/search.texi (Lax Search): Update the examples of
character folding in search. (Bug#56747)
2022-07-25 Po Lu <luangruo@yahoo.com>
Fix mouse face handling during frame reentry on Haiku
* src/haikuterm.c (haiku_read_socket): Clear
last_mouse_glyph_frame like on X.
2022-07-25 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
ba70d0f77c Update to Org 9.5.4-17-g6e991f
2022-07-24 Po Lu <luangruo@yahoo.com>
Fix typo in x-dnd-tests.el
* test/lisp/x-dnd-tests.el (x-begin-drag): Avoid extra leading /
in file names. (bug#56712)
2022-07-24 Po Lu <luangruo@yahoo.com>
Fix mouse face handling with tooltips
* src/xterm.c (handle_one_xevent): Clear last_mouse_motion_frame
and last_mouse_glyph_frame on LeaveNotify. Otherwise, mouse
face will be restored by gui_redo_mouse_highlight and will not
be restored if an EnterNotify is later sent on top of the same
glyph.
2022-07-24 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.4-17-g6e991f
2022-07-24 João Távora <joaotavora@gmail.com>
Merge commit '7738854e09' to fix fallout of force-push in gnu elpa
2022-07-24 Mike Kupfer <mkupfer@alum.berkeley.edu>
Fix the prompt for mh-mime-save-parts (SF#500)
* mh-mime.el (mh-mime-save-parts): Use the default argument to
read-directory-name; don't use format-prompt.
2022-07-24 Mike Kupfer <mkupfer@alum.berkeley.edu>
* mh-mime.el (mh-mime-save-parts): Restore default-directory (SF#498)
2022-07-24 Michael Albinus <michael.albinus@gmx.de>
Refactor Tramp
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
Use `tramp-adb-handle-get-remote-gid' and
`tramp-adb-handle-get-remote-uid'.
(tramp-adb-handle-file-attributes): Use `tramp-convert-file-attributes'.
(tramp-do-parse-file-attributes-with-ls): Remove ID-FORMAT.
(tramp-adb-handle-directory-files-and-attributes):
Use `tramp-skeleton-directory-files-and-attributes'.
(tramp-adb-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.
(tramp-adb-handle-copy-file, tramp-adb-handle-rename-file):
Use `tramp-barf-if-file-missing'.
(tramp-adb-handle-get-remote-uid)
(tramp-adb-handle-get-remote-gid): New defuns.
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
Use `tramp-archive-handle-directory-files'.
(tramp-archive-handle-directory-files): New defun.
* lisp/net/tramp-cache.el (tramp-file-property-p): New defun.
* lisp/net/tramp-compat.el (tramp-compat-take): New defalias.
* lisp/net/tramp-crypt.el (tramp-crypt-do-copy-or-rename-file):
Use `tramp-barf-if-file-missing'.
(tramp-crypt-handle-directory-files):
Use `tramp-skeleton-directory-files'.
* lisp/net/tramp-fuse.el (tramp-fuse-handle-directory-files):
Use `tramp-skeleton-directory-files'.
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
Use `tramp-barf-if-file-missing'.
* lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file):
Use `tramp-barf-if-file-missing'.
* lisp/net/tramp-sh.el (tramp-readlink-file-truename)
(tramp-stat-file-attributes)
(tramp-stat-directory-files-and-attributes): New defconsts.
(tramp-perl-file-attributes)
(tramp-perl-directory-files-and-attributes): Adapt.
(tramp-sh-handle-make-symbolic-link): Flush TARGET file properties.
(tramp-sh-handle-file-truename): Use `tramp-readlink-file-truename'
(tramp-sh-handle-file-exists-p)
(tramp-sh-handle-file-executable-p)
(tramp-sh-handle-file-readable-p)
(tramp-sh-handle-file-directory-p)
(tramp-sh-handle-file-writable-p): Adapt check of file properties.
(tramp-sh-handle-file-attributes): Simplify.
(tramp-do-file-attributes-with-ls): Remove ID-FORMAT. Combine two
remote commands. Compute both versions of uid and gid together.
(tramp-do-file-attributes-with-perl)
(tramp-do-directory-files-and-attributes-with-perl):
Remove ID-FORMAT.
(tramp-do-file-attributes-with-stat): Remove ID-FORMAT. Use
`tramp-stat-file-attributes'.
(tramp-sh-handle-directory-files-and-attributes):
Use `tramp-skeleton-directory-files-and-attributes'.
(tramp-do-directory-files-and-attributes-with-stat):
Remove ID-FORMAT. Use `tramp-stat-directory-files-and-attributes'.
(tramp-sh-handle-copy-directory): Use `tramp-skeleton-copy-directory'.
(tramp-do-copy-or-rename-file): Use `tramp-barf-if-file-missing'.
(tramp-sh-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.
(tramp-sh-handle-write-region): Combine two remote commands.
(tramp-sh-gio-monitor-process-filter): Simplify `cond' call.
(tramp-expand-script): Extend for ls, readling and stat.
(tramp-open-connection-setup-interactive-shell): Do not set
`tramp-end-of-output'.
(tramp-open-connection-setup-interactive-shell): Do not send
prompt formatting command, it's superfluous.
(tramp-send-command-and-check): Rearrange in order to accept also
heredoc scripts.
(tramp-convert-file-attributes): Move function to tramp.el.
(tramp-get-remote-id): Set connection property.
(tramp-get-remote-uid-with-id): Use it.
(tramp-get-remote-python): Don't check for python2 anymore.
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Use `tramp-handle-directory-files'.
(tramp-smb-handle-copy-directory): Use `tramp-skeleton-copy-directory'.
(tramp-smb-handle-directory-files): Remove.
(tramp-smb-handle-file-attributes): Use `tramp-convert-file-attributes'.
(tramp-smb-do-file-attributes-with-stat): Remove ID-FORMAT.
(tramp-smb-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file):
Use `tramp-barf-if-file-missing'.
(tramp-sudoedit-file-attributes): New defconst.
(tramp-sudoedit-handle-file-attributes): Simplify code.
* lisp/net/tramp.el (tramp-setup-debug-buffer): Set debug buffer
as not modified.
(tramp-barf-if-file-missing, tramp-skeleton-copy-directory)
(tramp-skeleton-directory-files)
(tramp-skeleton-directory-files-and-attributes)
(tramp-skeleton-file-local-copy): New macros.
(tramp-handle-copy-directory): Use `tramp-skeleton-copy-directory'.
(tramp-handle-directory-files): Use `tramp-skeleton-directory-files'.
(tramp-handle-file-local-copy): Use `tramp-skeleton-file-local-copy'.
(tramp-handle-insert-file-contents): Use `tramp-barf-if-file-missing'.
(tramp-get-process-attributes, tramp-action-out-of-band):
Simplify `cond' call.
(tramp-check-cached-permissions): Simplify.
(tramp-make-tramp-temp-file): Reimplement.
* test/lisp/net/tramp-archive-tests.el (tramp-copy-size-limit):
Don't set.
* test/lisp/net/tramp-tests.el (tramp--test-enabled):
Remove superfluous test files.
(tramp-test21-file-links): Protect file name deletion.
2022-07-24 Po Lu <luangruo@yahoo.com>
Throw errors in XDS handler directly
* lisp/x-dnd.el (x-dnd-xds-testing): New defvar.
(x-dnd-handle-direct-save): Signal errors directly if it is
true.
* test/lisp/x-dnd-tests.el (x-dnd-xds-testing): New defvar.
(x-dnd-tests-do-direct-save-internal): Bind it to t around
x-begin-drag. (bug#56712)
2022-07-24 Paul Pogonyshev <pogonyshev@gmail.com>
Don't exclude current dir in `package--reload-previously-loaded'
* lisp/emacs-lisp/package.el (package--reload-previously-loaded):
Don't exclude the current directory (bug#56614).
2022-07-24 YugaEgo <yet@ego.team>
Add new user option 'diff-whitespace-style'
* lisp/vc/diff-mode.el (diff-whitespace-style): New user option.
(diff-setup-whitespace): Use it (Bug#56679).
(top level): require 'whitespace.
(whitespace-style, whitespace-trailing-regexp): Remove defvars.
2022-07-24 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
b4067394dc Set `default-directory' of Tramp archive connection buffer
2529e82002 ; * doc/lispref/functions.texi (Declare Form): Fix typo.
54c4ceb009 Update the documentation of 'declare' forms
7263631dca Fix bookmark support for Help functions in native-compilat...
# Conflicts:
# lisp/help.el
2022-07-23 Po Lu <luangruo@yahoo.com>
Prevent exposing tooltip frames to Lisp code during drag-and-drop
* src/xterm.c (x_dnd_compute_toplevels): Ignore tooltip frames.
(x_tooltip_window_to_frame): Allow unrelated_tooltip_p to be
NULL.
(handle_one_xevent): Ignore DND events to tooltip frames.
2022-07-23 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/xref.el: Bump the version.
2022-07-23 Michael Albinus <michael.albinus@gmx.de>
Set `default-directory' of Tramp archive connection buffer
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler):
Set `default-directory' of Tramp connection buffer. (Bug#56628)
2022-07-23 Mattias Engdegård <mattiase@acm.org>
Fix `lsh` warning shortcomings (bug#56641)
Reported by Basil Contovounesios.
* etc/NEWS: Mention how to suppress the warning.
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Amend doc string.
* lisp/subr.el: Use `macroexp-warn-and-return` to delay the warning
until codegen time (which makes it suppressible) and to prevent
repeated warnings.
* test/lisp/international/ccl-tests.el (shift):
* test/src/data-tests.el (data-tests-ash-lsh):
Suppress warning in tests of `lsh` itself.
2022-07-23 Eli Zaretskii <eliz@gnu.org>
Improve display of columns on mode-line
* src/xdisp.c (decode_mode_spec): A better representation for
"unknown column number".
2022-07-23 Eli Zaretskii <eliz@gnu.org>
Optimize 'set_vertical_scroll_bar' for long lines
* src/xdisp.c (set_vertical_scroll_bar): Don't bother
being accurate about window_end_pos if long-line shortcuts
are in effect in the current buffer.
2022-07-23 Eli Zaretskii <eliz@gnu.org>
Avoid calling 'current_column' in buffers with long lines.
* src/xdisp.c (decode_mode_spec, redisplay_window)
(mode_line_update_needed):
* src/indent.c (Fcurrent_column): In a buffer with long-line
optimizations enabled, avoid calling 'current_column', which is
very slow in that case.
2022-07-23 Basil L. Contovounesios <contovob@tcd.ie>
Update pdumper.c after recent long lines changes
For discussion, see:
https://lists.gnu.org/r/emacs-devel/2022-07/msg00761.html
* src/pdumper.c (dump_buffer): Dump new field
long_line_optimizations_p introduced in commit e7b5912b23 of
2022-07-16 "Improvements to long lines handling."
(dump_buffer) [CHECK_STRUCTS]: Update hash accordingly
for --enable-checking=structs.
2022-07-23 Eli Zaretskii <eliz@gnu.org>
Speed up redisplay of long truncated lines
* src/xdisp.c (forward_to_next_line_start): Fix logic of
interpreting the result of Fnext_single_property_change.
(reseat_at_next_visible_line_start): When ON_NEWLINE_P is zero,
pass NULL to 'forward_to_next_line_start', to avoid costly bidi
iteration when none is needed. This speeds up redisplay of very
long lines under 'truncate-lines'.
2022-07-23 Mattias Engdegård <mattiase@acm.org>
Correct symbol in error for failed CHECK_INTEGER (bug#56723)
Reported by Jeronimo Pellegrini.
* src/lisp.h (CHECK_INTEGER): Use integerp, not numberp.
2022-07-23 Dmitry Gutov <dgutov@yandex.ru>
Support new "binary file matches" format in Ripgrep 13
* lisp/progmodes/xref.el (xref-matches-in-files):
Support new "binary file matches" format in Ripgrep 13
(bug#56624).
2022-07-23 Po Lu <luangruo@yahoo.com>
Remove macOS region color code
* lisp/faces.el (region): Remove macOS specific definition.
Equivalent functionality is no longer available on free
operating systems.
2022-07-23 Mattias Engdegård <mattiase@acm.org>
Use `ash` instead of `lsh` in verilog-mode (bug#56641)
* lisp/progmodes/verilog-mode.el (verilog-simplify-range-expression):
Use `ash`; the result will be the same because the first argument is
nonnegative.
2022-07-23 Mattias Engdegård <mattiase@acm.org>
Warn about calls to `lsh` (bug#56641)
* lisp/subr.el (lsh): Warn when compiled; recommend `ash`.
* etc/NEWS: Add note.
2022-07-23 Eli Zaretskii <eliz@gnu.org>
Update the documentation of 'declare' forms
* doc/lispref/compile.texi (Native-Compilation Variables): Mention
the 'declare' alternative for 'native-comp-speed'.
* doc/lispref/functions.texi (Declare Form): Document 'declare'
forms that were previously undocumented.
2022-07-23 Po Lu <luangruo@yahoo.com>
Undo C parts of "Don't use the Gtk region face"
This reverts commit a24f710395f9777cb9f8b000300e5e9c892d7794, apart
from the change to faces.el and NEWS.
2022-07-23 Lars Ingebrigtsen <larsi@gnus.org>
Don't use the Gtk region face
* lisp/faces.el (region): Don't use the Gtk region face, because
it produces low contrast combinations (bug#46493).
* src/gtkutil.h:
* src/gtkutil.c (xg_check_special_colors): Remove.
* src/xfns.c (x_defined_color):
* src/pgtkterm.c (pgtk_defined_color): Don't call.
2022-07-23 kobarity <kobarity@gmail.com>
Fix Python navigation problem with a line continuation using backslash
* lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix
line continuation using backslash in nested defun (bug#56615).
2022-07-23 Eli Zaretskii <eliz@gnu.org>
Fix bookmark support for Help functions in native-compilation builds
* lisp/help.el (describe-key--helper, describe-function--helper):
New helper functions.
(describe-key): Call 'describe-key--helper' instead of a
lambda-function.
* lisp/help-fns.el (describe-function): Call
'describe-function--helper' instead of a lambda-function.
(Bug#56643)
2022-07-23 Lars Ingebrigtsen <larsi@gnus.org>
Fix wdired entry when there are hidden subdirs
* lisp/dired.el (dired--unhide): Allow `C-c C-q' to work when
there are hidden inserted subdirs (bug#56698).
2022-07-23 Visuwesh <visuweshm@gmail.com>
New user option to disable deleting current input in comint mouse-2
* etc/NEWS: Announce the user option (bug#56646).
* lisp/comint.el (comint-delete-old-input): New user option to disable
deleting current input when insert an old input using mouse-2.
(comint-insert-input): Use it.
2022-07-23 Lars Ingebrigtsen <larsi@gnus.org>
Use special-mode in eldoc--doc-buffer
* lisp/emacs-lisp/eldoc.el (eldoc--format-doc-buffer): Use
`special-mode' to allow normal customizations of the buffer
(bug#56659).
2022-07-23 Po Lu <luangruo@yahoo.com>
Fix PGTK DND after a source leaves without dropping anything
* lisp/pgtk-dnd.el (pgtk-dnd-clear-data-on-motion): New flag.
(pgtk-dnd-handle-gdk): Set flag upon drag-leave. Clear state
upon drag-motion if it is set.
2022-07-23 Lars Ingebrigtsen <larsi@gnus.org>
Fix off-by-one error in string-truncate-left
* lisp/emacs-lisp/subr-x.el (string-truncate-left): Fix off-by-one
error (bug#56685).
2022-07-23 Po Lu <luangruo@yahoo.com>
Handle text scale and global text scale during DND wheel movement
* lisp/x-dnd.el (x-dnd-mwheel-scroll): Handle `text-scale' and
`global-text-scale' mwheel actions.
2022-07-23 Miha Rihtaršič <miha@kamnitnik.top>
Fix mode line mouse-1 binding when showing only column numbers
* lisp/bindings.el (mode-line-position): Fix the mouse-1 binding
when showing only column numbers (bug#56694).
2022-07-23 Lars Ingebrigtsen <larsi@gnus.org>
Don't bug out in src when there's no srcset
* lisp/net/shr.el (shr--preferred-image): Don't bug out when
there's no srcset.
2022-07-23 Lars Ingebrigtsen <larsi@gnus.org>
Fix srcset parsing in shr
* lisp/net/shr.el (shr--preferred-image): Factor out srcset
parsing for easier testing.
(shr--parse-srcset): Don't misparse URLs with commas in them.
2022-07-22 Po Lu <luangruo@yahoo.com>
Improve efficiency of DND tooltip movement
* src/xterm.c (x_dnd_begin_drag_and_drop): Clear new flag.
(x_dnd_update_tooltip_position): Save last tooltip X and Y
somewhere, so we don't move it upon client lists being updated.
2022-07-22 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
ae1ace1cf4 Adjust help-fns.el tests for recent change
04bdcf4aaa * src/terminal.c (Fframe_terminal): Use active voice
7fa491a9e9 Improve 'terminal-live-p' docstring some more
b9ac8c29ae Improve terminal-live-p docstring
0b4c81a152 * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): F...
8f8373170f * lisp/progmodes/cperl-mode.el: Don't mention obsolete arc...
25bc330a6d Make 'describe-function' say "byte-compiled" when appropriate
2b31e667be ;Improve documentation of locale-specific string comparison
2022-07-22 Stefan Kangas <stefan@marxist.se>
Adjust help-fns.el tests for recent change
* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun)
(help-fns-test-lisp-defsubst): Adjust tests for recent change.
2022-07-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in error message in native-compile-prune-cache
* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Fix typo
(bug#56713).
2022-07-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix spacing in *Help* buttons
* lisp/help-mode.el (help-xref--navigation-buttons): Fix spacing
before single [forward] button.
2022-07-22 Lars Ingebrigtsen <larsi@gnus.org>
Give a better error message in native-compile-prune-cache
* lisp/emacs-lisp/comp.el (native-compile-prune-cache): Give a
better error message in non-nativecomp builds.
2022-07-22 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in 'handle_fontified_prop'
* src/xdisp.c (handle_fontified_prop): Avoid assertion violations
due to automatic narrowing. (Bug#56682)
2022-07-22 Eli Zaretskii <eliz@gnu.org>
Fix display of scroll-bar in mini-windows
* src/xdisp.c (set_vertical_scroll_bar): Ensure current_buffer is
set correctly when displaying scroll bar of a mini-window.
(Bug#56692)
2022-07-22 Robert Pluim <rpluim@gmail.com>
* src/terminal.c (Fframe_terminal): Use active voice
2022-07-22 Robert Pluim <rpluim@gmail.com>
Improve 'terminal-live-p' docstring some more
* terminal.c (Fterminal_live_p): Improve description of arguments and
return value.
2022-07-22 Po Lu <luangruo@yahoo.com>
Fix bug#56692 questionably
* src/xdisp.c (set_vertical_scroll_bar): Don't recompute window
end of a mini window. (bug#56692)
2022-07-22 Gregory Heytings <gregory@heytings.org>
Improve font locking in buffers with long lines (bug#56682).
* src/dispextern.h (struct it): New 'narrowed_zv' field.
* src/xdisp.c (init_iterator): Set the field.
(get_narrowed_zv): New function to set the field.
(handle_fontified_prop): Use the field, together with 'narrowed_begv',
to narrow the portion of the buffer that 'Vfontification_functions'
will see. Also bind 'inhibit-widen'.
(get_narrowed_len): New function, factored out of 'get_narrowed_begv'.
(unwind_narrowed_zv): New function.
* src/editfns.c (syms_of_editfns): New variable and symbol 'inhibit-widen'.
(Fwiden): Do nothing when 'inhibit-widen' is non-nil.
2022-07-22 Robert Pluim <rpluim@gmail.com>
Explain how to override Author with VC
* CONTRIBUTE: Describe how to use Author header line and
'log-edit-setup-add-author'.
2022-07-22 Robert Pluim <rpluim@gmail.com>
Improve terminal-live-p docstring
* src/terminal.c (Fterminal_live_p): Explain what happens when the
argument is nil.
2022-07-22 Robert Pluim <rpluim@gmail.com>
* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): Fix grammar
2022-07-22 Po Lu <luangruo@yahoo.com>
Fix handling hscroll during drag-and-drop
* lisp/x-dnd.el (x-dnd-hscroll-flags): Delete function.
(x-dnd-get-modifiers, x-dnd-wheel-modifier-type): New functions.
(x-dnd-mwheel-scroll): Use that to determine hscroll instead.
* src/window.c (set_window_hscroll): Mark window as needing
redisplay if the hscroll really changed.
2022-07-21 Po Lu <luangruo@yahoo.com>
Fix posn-timestamp of scroll bar events on GTK
* src/xterm.c (x_get_last_toolkit_time): New function.
(x_scroll_bar_to_input_event)
(x_horizontal_scroll_bar_to_input_event): Use it to retrieve
toolkit time.
(xg_scroll_callback, xg_end_scroll_callback): Set last user time
if possible.
2022-07-21 João Távora <joaotavora@gmail.com>
Always default eglot-strict-mode to nil
it's mostly useful for developers/debugger. It's better to have the
latter remember to set it than users being hindered by it.
See https://github.com/joaotavora/eglot/issues/131#issuecomment-1191997167
* eglot.el (eglot-strict-mode): default to nil.
2022-07-21 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/help-mode.el (help-news): Use `view-file`
* lisp/vc/vc-dispatcher.el (vc-log-edit): Un-quote the lambda
* lisp/progmodes/verilog-mode.el (verilog-surelint-off): Silence warning
2022-07-21 Stefan Monnier <monnier@iro.umontreal.ca>
(compilation-parse-errors-function): Remove obsolete var
* lisp/progmodes/compile.el (compilation-parse-errors-function): Remove.
(compilation--parse-region): Simplify accordingly.
(compilation--compat-parse-errors): Remove function, not used any more.
(compilation-error-list, compilation-parsing-end)
(compilation-old-error-list): Remove vars, not used any more.
(compilation-last-buffer): Mark as obsolete (sadly, forgot to do that
back in Emacs-22).
* lisp/textmodes/tex-mode.el: Remove old code that was needed for
Emacs<24.
* lisp/progmodes/prolog.el (prolog-consult-compile): Remove long-dead code.
(compilation-parse-errors-function): Remove declaration, not used any more.
(prolog-parse-sicstus-compilation-errors): Remove function, not used any more.
2022-07-21 Stefan Kangas <stefan@marxist.se>
image-dired: Don't end messages with "."
* lisp/image-dired.el (image-dired-toggle-dired-display-properties)
(image-dired--on-file-in-dired-buffer)
(image-dired-thumbnail-set-image-description)
(image-dired-mark-tagged-files)
(image-dired-dired-edit-comment-and-tags)
(image-dired-modify-mark-on-thumb-original-file): Don't end messages
with "." to better comply with '(elisp) Programming Tips'.
2022-07-21 Eli Zaretskii <eliz@gnu.org>
Fix reference to 'x-max-tooltip-size' in complete.el
* lisp/cedet/semantic/complete.el: Don't assume that
x-max-tooltip-size is a cons cell.
2022-07-21 Gregory Heytings <gregory@heytings.org>
Merge branch 'feature/fix-the-long-lines-display-bug'
2022-07-21 Eli Zaretskii <eliz@gnu.org>
Update buffer's chars-modified tick when inserting from gap
* src/insdel.c (insert_from_gap): Update buffer's chars-modified
tick. (Bug#56393)
* test/src/buffer-tests.el (test-buffer-chars-modified-ticks): New
test.
2022-07-21 Stefan Kangas <stefan@marxist.se>
* lisp/progmodes/cperl-mode.el: Don't mention obsolete archive.
2022-07-21 Po Lu <luangruo@yahoo.com>
Apply tooltip assertions to all instances of x-show-tip
* src/haikufns.c (Fx_show_tip):
(syms_of_haikufns):
* src/nsfns.m (Fx_show_tip):
(syms_of_nsfns):
* src/pgtkfns.c (Fx_show_tip):
(syms_of_pgtkfns):
* src/xfns.c (Fx_show_tip):
(syms_of_xfns): Add assertion and adjust default values.
2022-07-21 Stefan Kangas <stefan@marxist.se>
Minor doc fix in search-forward-help-for-help
* lisp/help.el (search-forward-help-for-help): Use command
substitution.
2022-07-21 Stefan Kangas <stefan@marxist.se>
Make bs-help obsolete in favor of describe-mode
* lisp/bs.el (bs-help): Make obsolete in favor of describe-mode.
Update uses.
2022-07-21 Stefan Kangas <stefan@marxist.se>
Make dictionary-help obsolete in favor of describe-mode
* lisp/net/dictionary.el (dictionary-help): Make obsolete in favor
of describe-mode. Update uses.
2022-07-21 Stefan Kangas <stefan@marxist.se>
Don't list obsolete in "other commands" help section
* lisp/help-fns.el (help-fns--list-local-commands): Don't list
obsolete commands.
2022-07-21 Eli Zaretskii <eliz@gnu.org>
Make 'describe-function' say "byte-compiled" when appropriate
* lisp/help-fns.el (help-fns-function-description-header): Say
"byte-compiled" when describing byte-compiled functions.
2022-07-21 Eli Zaretskii <eliz@gnu.org>
Make sure we don't unknowingly truncate tooltip text
* src/w32fns.c (Fx_show_tip): Add assertion when the default
tooltip dimension limits are insufficient. (Bug#56561)
2022-07-21 Po Lu <luangruo@yahoo.com>
Avoid wasting bandwidth to set user time
* src/xterm.c (x_display_set_last_user_time): Don't change the
user time property if nothing actually changed.
2022-07-21 Eli Zaretskii <eliz@gnu.org>
;Improve documentation of locale-specific string comparison
* doc/lispref/strings.texi (Text Comparison): Mention the Unicode
collation rules and buffer-local case-tables.
2022-07-21 Stefan Kangas <stefan@marxist.se>
Make bubbles-quit obsolete in favor of quit-window
* lisp/play/bubbles.el (bubbles-quit): Make obsolete in favor of
quit-window. Update uses.
2022-07-21 Stefan Kangas <stefan@marxist.se>
Remove superfluous installation instructions
These functions are already autoloaded.
* lisp/mail/mspools.el:
* lisp/progmodes/opascal.el:
* lisp/textmodes/remember.el:
* lisp/woman.el: Remove superfluous installation instructions.
2022-07-21 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
ea44d7ddfc ; * lisp/mail/smtpmail.el (smtpmail-via-smtp): Explain wit...
2022-07-20 Po Lu <luangruo@yahoo.com>
Improve handling screen resizes when built without RandR
* src/xterm.c (handle_one_xevent): Update DND tooltip position
upon ConfigureNotify for root window.
2022-07-20 Po Lu <luangruo@yahoo.com>
Revert "Prefer defvar-keymap in xwidget.el"
This reverts commit daf2c3e23a45bff14f9d444d2d07455376d4b6da.
2022-07-20 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in xwidget.el
* lisp/xwidget.el (xwidget-webkit-mode-map)
(xwidget-webkit-edit-mode-map): Prefer defvar-keymap.
2022-07-20 Gregory Heytings <gregory@heytings.org>
* src/xdisp.c (redisplay_window): Small optimization.
2022-07-20 Gregory Heytings <gregory@heytings.org>
Further tweaks to long lines handling.
* src/xdisp.c (redisplay_window): Increase the threshold above which
long lines detection is performed in the buffer. This should avoid
triggering that detection for most simple editing operations.
* src/lisp.h (modiff_incr): Explain why the counter is incremented
logarithmically.
* src/buffer.h (struct buffer_text): Adapt the comment about the
'modiff' field accordingly.
* src/buffer.c (modify_overlay): Increase the counter by 1 instead of
the size of the buffer section on which the overlay is placed.
* etc/NEWS: Small improvement.
2022-07-20 Po Lu <luangruo@yahoo.com>
Fix mouse wheel DND scroll direction on Haiku
* lisp/term/haiku-win.el (haiku-handle-drag-wheel): Record the
last wheel direction. If it differs, clear the click counter.
2022-07-20 Eli Zaretskii <eliz@gnu.org>
Fix error during startup in -nw sessions
* lisp/startup.el (normal-top-level, command-line-1): Don't mess
with fonts in a text-mode session. (Bug#56660)
2022-07-20 Mattias Engdegård <mattiase@acm.org>
Gently discourage use of `lsh` (bug#56641)
* lisp/subr.el (lsh): Note the general preference for `ash`.
* lisp/emacs-lisp/shortdoc.el (number): Remove entry for `lsh`.
It was identical to that for `ash` which is misleading.
Shortdoc is very helpful for finding the right function to use,
and `lsh` is just for compatibility at this point.
2022-07-20 Po Lu <luangruo@yahoo.com>
Fix calculation of default highlightForeground in the lucid menu bar
* lwlib/xlwmenu.c (xlwMenuResources, display_menu_item)
(make_drawing_gcs, make_shadow_gcs, openXftFont, XlwMenuRealize)
(XlwMenuSetValues): Use -1 as the default for
highlight_foreground. Replace that with the normal foreground
when creating GCs. Reported by Colin Baxter
<m43cap@yandex.com>.
2022-07-20 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
cb911febc6 ; Fix typos
# Conflicts:
# test/lisp/net/tramp-tests.el
2022-07-20 Po Lu <luangruo@yahoo.com>
Implement wheel movement during DND on Haiku
* lisp/term/haiku-win.el (haiku-dnd-wheel-count): New defvar.
(haiku-note-wheel-click, haiku-handle-drag-wheel): New
functions.
* src/haiku_support.cc (EmacsWindow): Get rid of window ID
logic.
(MessageReceived, MouseMoved, be_drag_message): Use thread ID to
identify windows instead of window ID.
* src/haikuselect.c (Fhaiku_drag_message): Record whether or not
the DND frame is a valid drop target.
(haiku_note_drag_wheel): New function.
(syms_of_haikuselect): New defvar.
* src/haikuterm.c (haiku_read_socket): Call
`haiku_note_drag_wheel' when appropriate.
* src/haikuterm.h: Update prototypes.
2022-07-20 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in some trivial cases
* lisp/calendar/diary-lib.el (diary-fancy-overriding-map):
* lisp/emacs-lisp/chart.el (chart-mode-map):
* lisp/emulation/cua-base.el (cua-global-keymap)
(cua--cua-keys-keymap, cua--prefix-override-keymap)
(cua--prefix-repeat-keymap, cua--global-mark-keymap)
(cua--rectangle-keymap, cua--region-keymap):
* lisp/emulation/viper-keym.el (viper-vi-intercept-map)
(viper-insert-intercept-map, viper-emacs-intercept-map)
(viper-vi-global-user-map, viper-vi-basic-map, viper-vi-kbd-map)
(viper-vi-diehard-map, viper-insert-global-user-map)
(viper-insert-basic-map, viper-insert-diehard-map)
(viper-insert-kbd-map, viper-replace-map)
(viper-emacs-global-user-map, viper-emacs-kbd-map)
(viper-empty-keymap, viper-mode-map, viper-minibuffer-map)
(viper-ex-cmd-map, ex-read-filename-map)
(viper-slash-and-colon-map, viper-comint-mode-modifier-map)
(viper-dired-modifier-map, viper-gnus-modifier-map):
* lisp/gnus/gnus-sum.el (gnus-summary-generic-mark-map):
* lisp/menu-bar.el (global-buffers-menu-map)
(menu-bar-preferences-menu):
* lisp/mh-e/mh-e.el (mh-folder-mode-map, mh-inc-spool-map)
(mh-search-mode-map, mh-show-mode-map):
* lisp/play/dunnet.el (dungeon-batch-map):
* lisp/progmodes/autoconf.el (autoconf-mode-map):
* lisp/tool-bar.el (tool-bar-map):
* lisp/vc/ediff-help.el (ediff-help-region-map):
* lisp/vc/ediff-hook.el (menu-bar-epatch-menu)
(menu-bar-ediff-merge-menu, menu-bar-ediff-menu):
* lisp/windmove.el (windmove-mode-map):
* lisp/xwidget.el (xwidget-webkit-isearch-mode-map)
(xwidget-webkit-edit-mode-map): Prefer defvar-keymap.
2022-07-19 Po Lu <luangruo@yahoo.com>
Fix setting user time upon scrolling self during DND
* src/xterm.c (handle_one_xevent): Set user time for emulated
scroll wheel events if Emacs ends up scrolled during DND.
2022-07-19 João Távora <joaotavora@gmail.com>
Make eldoc-echo-area-prefer-doc-buffer consider all frames
Previously, it considered only windows on 'visible' frames (according
to get-buffer-window). This seemed correct at first, but it's not
much use for multiple TTY frames and not particularly reliable on GUI
frames either. There's no reliable way to tell what is actually
visible, so it's best to assume that users setup frames that are
indeed visible when using this parameter.
* lisp/emacs-lisp/eldoc.el (eldoc--echo-area-prefer-doc-buffer-p):
Consider all frames.
2022-07-19 João Távora <joaotavora@gmail.com>
Ensure Eldoc buffer displays on interactive M-x eldoc
* lisp/emacs-lisp/eldoc.el (eldoc-display-in-buffer): Call
eldoc-doc-buffer with interactive set to t.
(Version): Bump to 1.13.0.
2022-07-19 Gregory Heytings <gregory@heytings.org>
Simplified and improved heuristic for long lines detection.
* src/lisp.h (modiff_incr): Add a parameter to 'modiff_incr' to record
the extent of the modification.
* src/insdel.c (insert_1_both, insert_from_string_1, insert_from_gap,
insert_from_buffer_1, adjust_after_replace, replace_range,
replace_range_2, del_range_2, modify_text): Add an argument to each
call to 'modiff_incr'.
* src/textprop.c (modify_text_properties): Add an argument to the call
to 'modiff_incr'.
* src/buffer.c (Frestore_buffer_modified_p, Fbuffer_swap_text,
modify_overlay): Add an argument to each call to 'modiff_incr'.
* src/xdisp.c (redisplay_window): Use the improved version of 'MODIFF'
for the heuristic.
2022-07-19 Gregory Heytings <gregory@heytings.org>
Revert commits 1ff69cc744 and 9a894206f6.
2022-07-19 João Távora <joaotavora@gmail.com>
Fix embarrassing paren-matching blunder in eglot.el
* eglot.el (eglot-handle-request workspace/applyEdit): Fix parens.
2022-07-19 João Távora <joaotavora@gmail.com>
Reply more reasonably to server's workspace/applyedit
* eglot.el (eglot-handle-request): Return non-nil
(eglot--apply-workspace-edit): Signal jsonrpc-error, not error.
2022-07-19 João Távora <joaotavora@gmail.com>
Appease byte-compiler warnings about wrong use of quotes
* eglot.el (eglot-stay-out-of, eglot--code-action): Just give it
what it wants.
2022-07-19 João Távora <joaotavora@gmail.com>
Eglot-workspace-configuration can be a function
* README.md (Workspace configuration): Renamed from per-project
configuration. Rework.
* NEWS.md: Mention change.
* eglot.el (eglot-workspace-configuration): Overhaul.
(eglot-signal-didChangeConfiguration): Use new
eglot-workspace-configuration.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/967
2022-07-19 Philip Kaludercic <philipk@posteo.net>
* eudc.texi: Unquote setopt option names
2022-07-19 Gregory Heytings <gregory@heytings.org>
Improve the heuristic for long lines detection again.
* src/xdisp.c (redisplay_window): Improve the heuristic again.
2022-07-19 Mattias Engdegård <mattiase@acm.org>
Use `ash` instead of `lsh`
* lisp/files.el (file-modes-number-to-symbolic):
* lisp/image/exif.el (exif--direct-ascii-value):
* lisp/term/haiku-win.el (defun):
* lisp/x-dnd.el (x-dnd-handle-xdnd, x-dnd-handle-motif):
`lsh` is slower and has confusing semantics; avoid.
2022-07-19 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in bindings.el
* lisp/bindings.el (narrow-map, undo-repeat-map)
(next-error-repeat-map, goto-map, search-map, ctl-x-r-map)
(page-navigation-repeat-map, abbrev-map, ctl-x-x-map): Prefer
defvar-keymap.
(mode-specific-map): Minor doc fix.
2022-07-19 Mattias Engdegård <mattiase@acm.org>
Speed up `butlast`
* lisp/subr.el (butlast): Don't duplicate the removed part.
* test/lisp/subr-tests.el (subr-tests--butlast-ref, subr-butlast):
Add test.
2022-07-19 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
282dde887d ; Fix typo missed in previous change
62c47ffd5f ; * lisp/net/tramp-crypt.el: Improve commentary
cba30431ff Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e...
8f9993bb3f ; * src/buffer.c (syms_of_buffer) <mode-line-format>: Doc ...
fec4bb89f9 ; Fix typos (Bug#56550)
2022-07-18 Po Lu <luangruo@yahoo.com>
Document workaround for bug#56627
* etc/PROBLEMS: Document problems with GTK tool bar icons on
some icon themes. (bug#56627)
2022-07-18 Stefan Monnier <monnier@iro.umontreal.ca>
(help-fns--first-release): Try and avoid false positives
We used to use a very "optimistic" regexp which worked well for
longish symbol names but suffered from too many false positives on
short names. Use a more restrictive regexp, which should make the
recent "weed out" change unnecessary.
This in turn requires the use of '...' more consistently in etc/NEWS* files.
* lisp/help-fns.el (help-fns--first-release-regexp): New function.
(help-fns--first-release): Use it. Fix minor issue with the Emacs
version regexp.
(help-fns--mention-first-release): Undo last change.
* etc/NEWS*: Replace `...' with '...'. Indent code examples by at
least 2 spaces. Add previously missing '...' quotes around many of
the variables and functions described.
2022-07-18 Po Lu <luangruo@yahoo.com>
Fix timestamp specified in wheel movement XDND events
* src/xterm.c (handle_one_xevent): Use the time of the wheel
event in XDND events sent in response to wheel movement.
2022-07-18 Po Lu <luangruo@yahoo.com>
Make drag-and-drop wheel movement work locally too on X
This is provided by the XDND protocol, so it isn't fair for it
to not work with local drag-and-drop.
* lisp/x-dnd.el (x-dnd-note-wheel-movement): New function. Set
it as the `x-dnd-wheel-function'.
* src/xterm.c (x_dnd_cleanup_drag_and_drop): Clear new flags.
(x_dnd_note_self_wheel): New function. Set some flags.
(x_dnd_process_quit, x_dnd_begin_drag_and_drop, handle_one_xevent)
(x_connection_closed, x_delete_terminal, mark_xterm): Handle and
set new wheel movement flags
(syms_of_xterm): New variable `x-dnd-wheel-function'.
2022-07-18 Eli Zaretskii <eliz@gnu.org>
* src/xdisp.c (set_vertical_scroll_bar): Remove stale comment.
2022-07-18 Eli Zaretskii <eliz@gnu.org>
Fix calculation of the vertical scroll bar's thumb
* src/xdisp.c (set_vertical_scroll_bar): Compute window's end
position "by hand" if w->window_end_pos cannot be relied upon.
2022-07-18 Gregory Heytings <gregory@heytings.org>
* etc/PROBLEMS: Remove the entry which is no longer relevant.
2022-07-18 Michael Albinus <michael.albinus@gmx.de>
Use ntake also in tramp-adb.el
* lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes):
Use `tramp-compat-ntake'.
2022-07-18 Alexander Adolf <alexander.adolf@condition-alpha.com>
Additional query and results attributes in eudcb-macos-contacts.el
* lisp/net/eudcb-macos-contacts.el: wider set of attributes for
queries, and in query results
* lisp/net/eudc-vars.el (eudc-inline-expansion-format): update
docstring to explain how to use the function eudc-translate-query to
translate to generic attribute names in the user supplied formatting
function
* etc/NEWS: announce wider query/result attribute set
* doc/misc/eudc.texi: more details on eudcb-mab.el's limitations
2022-07-18 Gregory Heytings <gregory@heytings.org>
Improve the heuristic for long lines detection.
* src/buffer.h (struct buffer_text): New 'unchanged_size' field.
(BUF_UNCHANGED_SIZE): New macro to access the field.
* src/buffer.c (Fget_buffer_create): Initialize the field.
(Fbuffer_swap_text): Handle it.
* src/xdisp.c (mark_window_display_accurate_1): Set the field.
(redisplay_window): Use the field for long lines detection.
2022-07-18 Gregory Heytings <gregory@heytings.org>
Shorter and safer fix for the segfault.
* src/xdisp.c (get_visually_first_element): Shorter and safer fix for
the segfault. Improves the fix introduced in cc7f37b2a4.
2022-07-18 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp new test macros
* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
(tramp--test-deftest-with-perl, tramp--test-deftest-with-ls):
Skip for all methods but those from tramp-sh.el.
2022-07-18 Michael Albinus <michael.albinus@gmx.de>
Use ntake in Tramp
* lisp/net/tramp-compat.el (tramp-compat-ntake): New defalias.
* lisp/net/tramp.el (tramp-handle-directory-files):
* lisp/net/tramp-crypt.el (tramp-crypt-handle-directory-files):
* lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes):
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Use it.
2022-07-18 Stefan Kangas <stefan@marxist.se>
* lisp/rect.el (rectangle-mark-mode-map): Prefer defvar-keymap.
2022-07-18 Gregory Heytings <gregory@heytings.org>
Fix typo in NEWS title.
2022-07-18 Mattias Engdegård <mattiase@acm.org>
Clarify `take` and `ntake` documentation (bug#56521)
* doc/lispref/lists.texi (List Elements): Describe `ntake` better.
* src/fns.c (Ftake, Fntake): Rephrase doc strings.
2022-07-18 Mattias Engdegård <mattiase@acm.org>
Speed up `seq-subseq` for lists (bug#56521)
* lisp/emacs-lisp/seq.el (seq-subseq):
Make faster by using `take` instead of a lisp loop,
and more importantly by not front-loading the error text formatting.
* test/lisp/emacs-lisp/seq-tests.el (seq-tests--list-subseq-ref)
(test-seq-subseq): Test `seq-subseq` for lists more thoroughly.
2022-07-18 Mattias Engdegård <mattiase@acm.org>
Use `take` where clearly safe to do so (bug#56521)
* lisp/emacs-lisp/seq.el (seq-take):
* lisp/auth-source.el (auth-source-secrets-search)
(auth-source-plstore-search):
* lisp/gnus/message.el (message-insert-formatted-citation-line):
* lisp/net/dbus.el (dbus-unregister-object):
* lisp/replace.el (occur-context-lines):
* test/src/print-tests.el (print-circular): Replace hand-written loop
or `butlast` call with `take` for clarity, performance and validation.
We have the equivalence
(take N LIST) = (butlast LIST (- (length LIST) N)).
2022-07-18 Gregory Heytings <gregory@heytings.org>
Further improvements to long lines handling.
* src/xdisp.c (get_visually_first_element): Fix segfault.
(get_narrowed_begv): Specific improvement for character-only terminals.
2022-07-18 Juri Linkov <juri@linkov.net>
* lisp/minibuffer.el (minibuffer-complete-history): Define sorting by metadata
(minibuffer-complete-history, minibuffer-complete-defaults):
Use completion metadata to disable sorting of the completion table
(bug#56613)
2022-07-18 Po Lu <luangruo@yahoo.com>
Implement last change on Haiku as well
* lisp/term/haiku-win.el (haiku-dnd-drag-handler): Stop
redisplaying here.
* src/haikuselect.c (haiku_note_drag_motion): Use
redisplay_preserve_echo_area.
2022-07-18 Po Lu <luangruo@yahoo.com>
Preserve echo area message when running DND mouse movement function
* lisp/term/x-win.el (x-dnd-movement): Stop redisplaying here.
* src/xterm.c (x_dnd_begin_drag_and_drop): Redisplay with the
echo area preserved.
2022-07-17 Richard Hansen <rhansen@rhansen.org>
Derive `Info-mode' from `special-mode'
* lisp/info.el (Info-mode): Derive `Info-mode' from `special-mode'.
This makes it easier to exclude it from globalized minor modes that
don't apply to special modes (such as `global-whitespace-mode' and
`global-display-fill-column-indicator-mode').
2022-07-17 Richard Hansen <rhansen@rhansen.org>
info-edit: Delay `ibuffer' var change until after `ibuffer' loads
* lisp/obsolete/info-edit.el: Delay the addition of `Info-edit-mode'
to the `ibuffer-help-buffer-modes' list until after `ibuffer' is
loaded. This fixes a "(void-variable ibuffer-help-buffer-modes)"
error when `info-edit' is loaded before `ibuffer'.
2022-07-17 Po Lu <luangruo@yahoo.com>
Handle virtual modifiers in the DND scrolling code
* lisp/x-dnd.el (x-dnd-modifier-mask): Handle virtual modifiers.
* src/xfns.c (Fx_get_modifier_masks): New function.
(syms_of_xfns): Define new subr.
* src/xterm.c (x_get_keyboard_modifiers): New function.
* src/xterm.h: Update prototypes.
2022-07-17 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/minibuffer.el (minibuffer-complete-history): Ensure a list of strings
2022-07-17 Juri Linkov <juri@linkov.net>
* lisp/subr.el (read-char-from-minibuffer, y-or-n-p): Simplify to use HIST=t.
2022-07-17 Juri Linkov <juri@linkov.net>
* lisp/minibuffer.el (minibuffer-complete-history): Check for history=t.
Signal a user error when the history is not a list (bug#56613).
2022-07-17 Mattias Engdegård <mattiase@acm.org>
Add `take` and `ntake` (bug#56521)
These are useful list primitives, complementary to `nthcdr`.
* src/fns.c (Ftake, Fntake): New.
(syms_of_fns): Defsubr them.
* doc/lispref/lists.texi (List Elements):
* lisp/emacs-lisp/shortdoc.el (list): Document.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns):
Declare `take` pure and side-effect-free.
* test/src/fns-tests.el (fns-tests--take-ref, fns--take-ntake):
New test.
* etc/NEWS: Announce.
2022-07-17 Eli Zaretskii <eliz@gnu.org>
Fix leaking of file descriptors due to pipe processes on MS-Windows
* src/w32proc.c (reader_thread): Wait for 'sys_close' to finish
processing the pipe read descriptor, before trying to close it.
* src/w32.c (sys_close): Attempt to detect when the reader thread
already exited, so that it would be possible to close descriptors
open by pipe processes for reading from the pipe. (Bug#56606)
2022-07-17 Po Lu <luangruo@yahoo.com>
Improve handling of tilt scroll and flip options during DND
* lisp/x-dnd.el (x-dnd-mwheel-scroll): New function.
(x-dnd-handle-xdnd): Use that instead of abusing mwheel.el.
2022-07-17 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in mpc.el
* lisp/mpc.el (mpc-mode-map, mpc-tagbrowser-dir-mode-map)
(mpc-volume-map, mpc-songs-mode-map): Prefer defvar-keymap.
2022-07-17 Lars Ingebrigtsen <larsi@gnus.org>
Make `C' in over tramp work in archive mode
* lisp/arc-mode.el (archive-copy-file): Make `C' in over tramp
work (bug#56574).
2022-07-17 Eli Zaretskii <eliz@gnu.org>
Fix tab-bar resizing under 'auto-resize-tab-bars' = 'grow-only'
* src/xdisp.c (redisplay_tab_bar): Compute the desired height of
the tab-bar before iterating over the tab-bar string, to detect
the required resizing earlier. Default 'change_p' to 'false'.
* lisp/tab-bar.el (tab-bar--update-tab-bar-lines): Support
'auto-resize-tab-bars' set to 'grow-only'.
2022-07-17 Visuwesh <visuweshm@gmail.com>
Ensure that directories exist when copying files from archive
* lisp/arc-mode.el (archive-copy-file): If the directory the file is
being extracted to does not exist, then create it (bug#56603).
2022-07-17 Lars Ingebrigtsen <larsi@gnus.org>
Improve error messaging when parent archive buffers are missing
* lisp/arc-mode.el (archive-write-file-member):
* lisp/tar-mode.el (tar-subfile-save-buffer): Give a better error
message when the parent buffer is dead (bug#56605).
2022-07-17 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f5218385c0 Fix obsoletion of nntp-authinfo-file
10b6919870 ; Fix typos
2022-07-16 Po Lu <luangruo@yahoo.com>
Handle scrolling during XDND drag-and-drop
* lisp/x-dnd.el (x-dnd-get-object-rectangle): Handle cases where
`posn-x-y' is nil.
(x-dnd-modifier-mask, x-dnd-hscroll-flags, x-dnd-note-click):
New functions.
(x-dnd-click-count): New defvar.
(x-dnd-handle-xdnd): Handle button press events.
* src/xterm.c (x_dnd_send_position): Fix handling of mouse
rects.
2022-07-16 Po Lu <luangruo@yahoo.com>
Fix drag-and-drop button button flags
* src/xterm.c (x_dnd_send_position): Always send buttons
regardless of version. Fix bit indices.
(handle_one_xevent): Likewise.
2022-07-16 Gregory Heytings <gregory@heytings.org>
Fix typo in e7b5912b23.
2022-07-16 Gregory Heytings <gregory@heytings.org>
Improvements to long lines handling.
* src/buffer.h (struct buffer): New field 'long_line_optimizations_p'.
* src/buffer.c (syms_of_buffer): New variable 'long-line-threshold'.
(reset_buffer): Initialize the 'long_line_optimizations_p' field.
(Fbuffer_swap_text): Handle it.
* src/xdisp.c (redisplay_window): Set 'long_line_optimizations_p' when
a buffer contains long lines.
(init_iterator): Use 'long_line_optimizations_p'.
(get_narrowed_begv): Update.
(SET_WITH_NARROWED_BEGV): New macro.
(unwind_narrowed_begv): New internal function used by the new macro.
(back_to_previous_line_start, get_visually_first_element,
move_it_vertically_backward): Use the new macro.
* src/search.c (find_newline1): Make it externally visible.
* src/lisp.h: Make 'find_newline1' externally visible.
* src/dispextern.h (struct it): Update comment. Remove the
'WITH_NARROWED_BEGV' macro.
* etc/NEWS: Mention the 'long-line-threshold' variable.
2022-07-16 kobarity <kobarity@gmail.com>
Fix python navigation problem with an empty line in nested defun
* lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix
bug when point is on an empty line (bug#56600).
2022-07-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix xref links in `C-h o'
* lisp/help-fns.el (describe-symbol): Make xref links happen in
all sections (bug#49587).
* lisp/help-fns.el (describe-symbol): Add back/forward links.
* lisp/help-mode.el (help-make-xrefs): Factor out links from
here...
(help-xref--navigation-buttons): To here.
2022-07-16 Stefan Kangas <stefan@marxist.se>
New test for make_symbol_constant
* test/src/data-tests.el (data-tests-make_symbol_constant): New
test.
2022-07-16 Eli Zaretskii <eliz@gnu.org>
* src/composite.c (find_automatic_composition): Fix off-by-one error.
2022-07-16 Po Lu <luangruo@yahoo.com>
Improve documentation of `posn-timestamp'
* doc/lispref/commands.texi (Accessing Mouse): Improve
documentation of `posn-timestamp' by actually describing the
timestamp it returns.
2022-07-16 Mattias Engdegård <mattiase@acm.org>
Update `eshell-variable-aliases-list` defcustom type
* lisp/eshell/esh-var.el (eshell-variable-aliases-list):
Add type for SIMPLE-FUNCTION value.
2022-07-16 Michael Albinus <michael.albinus@gmx.de>
Comment docstrings in tramp-test macros
* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
(tramp--test-deftest-with-perl, tramp--test-deftest-with-ls)
(tramp--test-deftest-direct-async-process): Comment docstring,
it doesn't work this way. Use `tramp-test-vec' if appropriate.
2022-07-16 Lars Ingebrigtsen <larsi@gnus.org>
Weed out some false positives in help-fns--mention-first-release
* lisp/help-fns.el (help-fns--mention-first-release): Weed out
things that give too many false positives (bug#49062).
2022-07-16 Manuel Giraud <manuel@ledu-giraud.fr>
Colored menu highlight in Lucid backend
* lwlib/xlwmenuP.h:
* lwlib/xlwmenu.h:
* lwlib/xlwmenu.c: Introduce resources to handle colored highlighting
of menu entries.
* doc/emacs/xresources.texi (Lucid Resources): Documentation.
2022-07-16 Po Lu <luangruo@yahoo.com>
Decrease network traffic with some XDND programs
* lisp/x-dnd.el (x-dnd-get-drop-width-height):
(x-dnd-get-drop-x-y): Remove functions.
(x-dnd-get-window-rectangle, x-dnd-intersect-rectangles)
(x-dnd-get-object-rectangle, x-dnd-get-drop-rectangle): New
functions.
(x-dnd-handle-xdnd): Generate mouse rectangles consisting of the
object (glyph) under point.
2022-07-16 Lars Ingebrigtsen <larsi@gnus.org>
Allow ;;;###autoloading transient-define-prefix
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--make-autoload): Allow ;;;###autoloading
transient-define-prefix (bug#48694).
* lisp/transient.el (transient-define-prefix): Autoload.
2022-07-16 Mattias Engdegård <mattiase@acm.org>
Optimise `append` calls
Add the transforms
(append) -> nil
(append X) -> X
(append '(X) Y) -> (cons 'X Y)
(append (list X) Y) -> (cons X Y)
(append (list X...) nil) -> (list X...)
and the argument transforms:
(list X...) (list Y...) -> (list X... Y...)
nil -> ;nothing
CONST1 CONST2 -> CONST1++CONST2
(list CONSTANTS...) -> '(CONSTANTS...)
(the last three for non-tail arguments only)
* lisp/emacs-lisp/byte-opt.el: New.
2022-07-16 Mattias Engdegård <mattiase@acm.org>
Improved cons optimisation
* lisp/emacs-lisp/byte-opt.el (byte-optimize-cons):
Add the transform
(cons X (list Y...)) -> (list X Y...)
2022-07-16 Mattias Engdegård <mattiase@acm.org>
Transform (list) -> nil in source optimiser
This optimisation is already done in the code generator but performing
it at this earlier stage is a useful normalising step that uncovers
more opportunities.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-list): New.
2022-07-16 Stefan Kangas <stefan@marxist.se>
Delete obsolete variable gnus-secondary-servers
* lisp/gnus/gnus.el (gnus-secondary-servers): Delete variable
obsolete since 24.1.
* lisp/gnus/gnus-group.el (gnus-group-browse-foreign-server):
* lisp/gnus/gnus-int.el (gnus-start-news-server): Don't use above
deleted variable.
2022-07-16 Stefan Kangas <stefan@marxist.se>
Fix obsoletion of nntp-authinfo-file
* lisp/gnus/nntp.el (nntp-authinfo-file): Fix obsoletion.
2022-07-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
db259d8fd3 Build Seccomp filter only if we have a 64-bit userspace (B...
2022-07-15 Po Lu <luangruo@yahoo.com>
Handle XDND mouse rects synchronously
* src/xterm.c (x_dnd_send_position): Record event X and Y for
consumption by the XdndStatus handler. Ignore mouse rects if
waiting for status.
(x_dnd_send_leave): Clear pending DND event.
(handle_one_xevent): When handling XdndStatus, check if the
pending event is contained in the new mouse rect.
2022-07-15 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/url/url-vars.el (url-mime-separator-chars): Fix last cosmetic change
2022-07-15 Michael Albinus <michael.albinus@gmx.de>
Extend tramp-tests
* test/lisp/net/tramp-tests.el (tramp--test-deftest-with-stat)
(tramp--test-deftest-with-perl, tramp--test-deftest-with-ls):
New defmacros.
(tramp-test18-file-attributes-with-stat)
(tramp-test18-file-attributes-with-perl)
(tramp-test18-file-attributes-with-ls)
(tramp-test19-directory-files-and-attributes-with-stat)
(tramp-test19-directory-files-and-attributes-with-perl)
(tramp-test19-directory-files-and-attributes-with-ls): New tests.
(tramp-test21-file-links): Delete also `tmp-name2'.
(tramp--test-deftest-direct-async-process): Rename from
`tramp--test--deftest-direct-async-process'. Remove DOCSTRING.
Adapt callees.
(tramp--test-special-characters): Remove. Move body to ...
(tramp-test41-special-characters): ... here.
(tramp--test-utf8): Remove. Move body to ...
(tramp-test42-utf8): ... here.
(tramp-test41-special-characters-with-stat)
(tramp-test41-special-characters-with-perl)
(tramp-test41-special-characters-with-ls)
(tramp-test42-utf8-with-stat)
(tramp-test42-utf8-with-perl)
(tramp-test42-utf8-with-ls): Rewrite, using the new macros.
2022-07-15 Stefan Kangas <stefan@marxist.se>
* lisp/tar-mode.el (tar-mode-map): Prefer defvar-keymap.
2022-07-15 Philipp Stephani <phst@google.com>
Build Seccomp filter only if we have a 64-bit userspace (Bug#56549)
* configure.ac (SIZEOF_LONG): New variable.
* lib-src/Makefile.in (SIZEOF_LONG): New variable; added conditional.
2022-07-15 Andreas Schwab <schwab@linux-m68k.org>
Fix ASAN error with fringe bitmap on NS
* src/nsterm.m (ns_define_fringe_bitmap): Correctly access fringe
bitmap data. (Bug#56553)
2022-07-15 Po Lu <luangruo@yahoo.com>
Fix double unfocus during NS cursor display
* src/nsterm.m (ns_draw_window_cursor): Unfocus around calls to
draw_phys_cursor_glyph, then focus again later. (bug#56559)
2022-07-15 Po Lu <luangruo@yahoo.com>
Only preserve PRIMARY and CLIPBOARD selection ownership by default
* lisp/cus-start.el (standard): Update defcustom type.
* src/xselect.c (x_should_preserve_selection): New function.
(x_clear_frame_selections): Use it to determine whether or not
to preserve a selection.
* src/xterm.c (x_preserve_selections): Fix tail initialization.
(syms_of_xterm): Update doc string of
`x-auto-preserve-selections'.
2022-07-15 João Távora <joaotavora@gmail.com>
Be more conservative with the lsp identifier guess
If the user is not requesting a prompt, opt for the safer approach
which is to get the location from textDocument/definition, not from
workspace/symbol. Because of things like function overloading, the
latter is not always successful in finding exactly the definition of
the thing one is invoking M-. on.
This requires using an xref-internal symbol, which is kind of
unfortunate.
* eglot.el (xref-backend-identifier-at-point): Rework.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
GitHub-reference: per https://github.com/joaotavora/eglot/issues/314
2022-07-15 João Távora <joaotavora@gmail.com>
Guess the "lsp identifier at point"
* eglot.el (eglot--workspace-symbols): New helper.
(xref-backend-identifier-completion-table): Rework.
(xref-backend-identifier-at-point): Rework.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
GitHub-reference: per https://github.com/joaotavora/eglot/issues/314
2022-07-15 Eli Zaretskii <eliz@gnu.org>
Avoid infloop in redisplay when displaying a tooltip
* src/xdisp.c (try_window): Ensure we fail if 'display_line'
indicates that the dimensions of the glyph matrix are
insufficient. (Bug#56561)
2022-07-15 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how dired-copy-filename-as-kill handles file names with spaces
* lisp/dired.el (dired-copy-filename-as-kill): Quote files
containing spaces (bug#48657).
2022-07-15 Lars Ingebrigtsen <larsi@gnus.org>
Adjust whitespace tests
2022-07-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix whitespace-mode display table restoration logic
* lisp/whitespace.el (whitespace-display-char-on): Fix the saving
logic -- `whitespace-mode' is on by this point (bug#48583).
2022-07-15 Visuwesh <visuweshm@gmail.com>
Fix mailcap-user-mime-data doc string
* lisp/net/mailcap.el (mailcap-user-mime-data): Make the doc
string reflect the actual structure (bug#56568).
2022-07-15 João Távora <joaotavora@gmail.com>
Tweak some details, fix some bugs
eglot--recover-workspace-symbol-meta had a bug that still made it
choke on improper lists.
Also, when simply M-. to the thing at point, let's not lose time on
iterating a potentially out-of-date eglot--workspace-symbols-cache.
So clear it early in the pre-command-hook.
* eglot.el (eglot--workspace-symbols-cache): Move up.
(eglot--pre-command-hook): Clear eglot--workspace-symbols-cache here.
(eglot--recover-workspace-symbol-meta): Check for consp.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
2022-07-15 Po Lu <luangruo@yahoo.com>
Fix generated drag-and-drop mouse rectangles
* lisp/x-dnd.el (x-dnd-get-drop-width-height): Handle window
width and height correctly. Remove unused parameter.
(x-dnd-after-move-frame): New function.
(move-frame-functions): Add new hook.
(x-dnd-compute-root-window-position): New function.
(x-dnd-get-drop-x-y): Use that instead of `left' and `top'
parameters, which include the title bar.
(x-dnd-handle-xdnd): Update accordingly.
* src/xfns.c (Fx_translate_coordinates): New function.
(syms_of_xfns): New defsym.
2022-07-15 Gerd Möllmann <gerd@gnu.org>
Extend support for debugging Emacs with LLDB
* etc/emacs_lldb.py: Handle case of Lisp_Object being a
struct (--enable-lisp-type-checking). Enable Emacs type category by
default. Expand children in type summary for Lisp_Object.
2022-07-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
6a05715552 Update the Samaritan's contact details in M-x doctor
d19834dfda ; Fix typos
2022-07-14 Po Lu <luangruo@yahoo.com>
Fix sending button presses if the drop target specified a mouse rectangle
* src/xterm.c (x_dnd_send_position): Handle button presses
specially, ignoring mouse rectangles.
2022-07-14 Sean Whitton <spwhitton@spwhitton.name>
Use notmuch thread:{} operator instead of performing two searches
This also avoids some command line length limit problems (bug#56442).
* gnus-search.el (gnus-search-run-search): Delete notmuch method.
(gnus-search-indexed-search-command): In the notmuch method, when
searching for threads, wrap whole query in thread:{} operator, and
always use --output=files, never --output=threads (bug#56442).
2022-07-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix --without-x build after previous image cache changes
* src/alloc.c (garbage_collect): Fix --without-all --without-x build.
2022-07-14 Lars Ingebrigtsen <larsi@gnus.org>
Restore how (read-from-minibuffer ... read-expression-map) worked
* lisp/simple.el (read-expression-map): Don't override RET and C-j
here, since that leads to breakages of other usages of this map
(bug#56548).
(read--expression-map): New map.
(read--expression): Use it.
2022-07-14 Visuwesh <visuweshm@gmail.com>
Make gnus display webp images inline
* lisp/gnus/mm-decode.el (mm-inline-media-tests): Add webp handler.
* lisp/net/mailcap.el (mailcap-mime-extensions): Add webp mimetype
(bug#56552).
2022-07-14 Lars Ingebrigtsen <larsi@gnus.org>
Make image-map commands work with inline image attachments in mm
* lisp/gnus/mm-view.el (mm-inline-image): Use insert-image so that
point movement is more pleasant and so that image-map commands
work (bug#56554).
2022-07-14 Visuwesh <visuweshm@gmail.com>
* lisp/image.el (put-image): Fix typo.
* lisp/image.el (put-image): Actually use the image-map keymap
(bug#56554).
2022-07-14 Visuwesh <visuweshm@gmail.com>
Use compose-mail in submit-emacs-patch
* lisp/mail/emacsbug.el (submit-emacs-patch): Prefer
compose-mail-other-window over message-mail-other-window (bug#56555).
2022-07-14 Stefan Kangas <stefan@marxist.se>
Make ps-print-ensure-fontified obsolete
* lisp/ps-print.el (ps-print-ensure-fontified): Redefine as
obsolete function alias for font-lock-ensure. Update callers.
2022-07-14 Lars Ingebrigtsen <larsi@gnus.org>
Prune animation cache when images are no longer reachable
* lisp/image.el (image-animate-timeout): Eject cached animated
images that are no longer reachable (bug#56546).
* src/image.c (Fclear_image_cache): Allow specifying a cached
animated image to eject.
(gif_load, webp_load): Adjust what to use as the caching key --
the identity of the list itself is apparently changed by some
callers.
2022-07-14 Lars Ingebrigtsen <larsi@gnus.org>
Make image-cache-size also include the animation cache
* src/image.c (struct anim_cache, anim_create_cache): Store approx
cache size.
(gif_load, webp_load): Ditto.
(Fimage_cache_size): Also report animation cache size (bug#56546).
2022-07-14 Lars Ingebrigtsen <larsi@gnus.org>
Prune the animation cache from gc
* src/alloc.c (garbage_collect): Prune animation cache
(bug#56546).
2022-07-14 Eli Zaretskii <eliz@gnu.org>
* src/gtkutil.c (xg_free_frame_widgets): Avoid compiler warning.
2022-07-14 Stefan Kangas <stefan@marxist.se>
Update the Samaritan's contact details in M-x doctor
* lisp/play/doctor.el (doctor-death): Update the Samaritans's contact
details; anon.twwells.com is no longer valid. Add link to Wikipedia.
2022-07-14 João Távora <joaotavora@gmail.com>
Cosmetic decisions guaranteed to tick off someone somewhere (tm)
The symbols returned by the LSP server must be converted to unique
strings if Emacs is to present them in a list. On the other hand, the
search operates on the pattern and is completely controlled by the
backend. There is not much Eglot, the LSP client, can do about this.
Decided to present the unique string to the user, even though it could
be hidden. All the manner of :annotation-function,
:affixation-function, :group-funcion etc didn't seem to add much
value.
Grouping was especially useless, since it makes sense to respect the
LSP server's account of sorting score, so that better results bubble
up to the top.
* eglot.el (xref-backend-identifier-completion-table): Uniquify
symbols with containerName and kind.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
2022-07-14 João Távora <joaotavora@gmail.com>
Experiment with grouping in xref-backend-identifier-completion-table
Doesn't look very good.
* eglot.el (xref-backend-identifier-completion-table): Add stuff.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/131
2022-07-14 João Távora <joaotavora@gmail.com>
Make c-u m-. work half decently
* NEWS.md: Mention change.
* eglot.el (eglot--lsp-interface-alist): Add WorkspaceSymbol
(eglot--workspace-symbols-cache): New variable.
(eglot--recover-workspace-meta): New helper.
(xref-backend-identifier-completion-table): Complicate.
(xref-backend-definitions): Complicate.
(completion-category-overrides): Register a category and a style here.
(completion-styles-alist): Add eglot--lsp-backend-style style
(eglot--lsp-backend-style-call): New funtion.
(eglot--lsp-backend-style-all-completions): New function.
(eglot--lsp-backend-style-try-completion): New function.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/131
2022-07-14 Stefan Kangas <stefan@marxist.se>
Silence unused variable warning in a build --without-all
* src/xfns.c (Fx_double_buffered_p): Silence unused variable warning
in a build --without-all.
2022-07-14 Stefan Kangas <stefan@marxist.se>
Compress hashcash headers by default
* lisp/mail/hashcash.el (hashcash-extra-generate-parameters):
Use compression by default.
2022-07-14 Stefan Kangas <stefan@marxist.se>
Pacify -Wunused-macros in --without-all builds
* src/image.c (IMAGE_TYPE_INIT): Make conditional on image support.
2022-07-14 Stefan Kangas <stefan@marxist.se>
Update the 'etags' test suite
* ETAGS_good_1:
* ETAGS_good_2:
* ETAGS_good_3:
* ETAGS_good_4:
* ETAGS_good_5:
* ETAGS_good_6: Adapt to recent changes in test sources.
2022-07-14 Po Lu <luangruo@yahoo.com>
Try to restore the initial "daemon" frame when a display goes down
* src/xterm.c (x_try_restore_frame): New function.
(x_connection_closed): Call it if selected_frame is nil.
2022-07-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
76878ce6a0 * etc/PROBLEMS: Describe problems with remote files. (Bug...
2022-07-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9db6817d63 Remove uneffective test
7af88de410 Mark async worker tmp file as utf-8-emacs-unix (bug#48029)
# Conflicts:
# test/src/comp-resources/comp-test-45603.el
# test/src/comp-tests.el
2022-07-14 Lars Ingebrigtsen <larsi@gnus.org>
Make clear-image-cache clear the animation cache
* src/dispextern.h: Declare image_prune_animation_caches for use
in gc.
* src/image.c (Fclear_image_cache): Clear animation cache.
(anim_prune_animation_cache, anim_get_animation_cache): Allow
clearing in addition to pruning.
(imagemagick_prune_animation_cache)
(imagemagick_get_animation_cache): Ditto.
(image_prune_animation_caches): New function (bug#56546).
2022-07-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
5e47ec9511 ; * lisp/url/url-http.el (url-http-parse-headers): Fix typo.
ba0871bef1 ; Fix typos: prefer American spelling
e3e7f31faa Adapt Tramp doc
# Conflicts:
# etc/NEWS
# etc/themes/modus-themes.el
# lisp/emacs-lisp/byte-opt.el
# test/lisp/so-long-tests/spelling-tests.el
2022-07-14 Gerd Möllmann <gerd@gnu.org>
Improve support for debugging Emacs with LLDB
* etc/emacs_lldb.py: Refactor and support more Lisp types.
2022-07-14 Eli Zaretskii <eliz@gnu.org>
* etc/PROBLEMS: Describe problems with remote files. (Bug#56499)
2022-07-14 Visuwesh <visuweshm@gmail.com>
Add new customizable phonetic Tamil input method
* lisp/language/indian.el ("Tamil"): Change the default input method
of the Tamil language environment to the new input method.
* lisp/leim/quail/indian.el
(quail-tamil-itrans-compute-syllable-table): New function extracted
from...
(quail-tamil-itrans-syllable-table): ... here. Use the above
function.
(quail-tamil-itrans--consonant-order): Auxiliary variable for the
above function.
(quail-tamil-itrans-compute-signs-table): Add new VARIOUS argument.
(quail-tamil-itrans-various-signs-and-digits-table)
(quail-tamil-itrans-various-signs-table): Adjust call to the above
function.
("tamil-phonetic"): Add new input method.
(tamil-input): New group for the input method.
(tamil-translation-rules): New defcustom for the input method to
change the translation rules.
(tamil--syllable-table, tamil--signs-table, tamil--hashtables)
(tamil--vowel-signs): Internal variables used by the input method.
(tamil--setter, tamil--make-tables)
(tamil--update-quail-rules): Internal functions for the input method.
(bug#56323)
* etc/NEWS: Announce the new input method.
2022-07-13 Po Lu <luangruo@yahoo.com>
Fix killing Emacs upon display disconnect
* src/xterm.c (x_connection_closed): On Xt builds terminals can
be left alive without any frames on them, so take that into
account. (bug#56528)
2022-07-13 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in tab-bar.el
* lisp/tab-bar.el: Prefer keymap-set.
(tab-bar-map, tab-switcher-mode-map)
(tab-bar-switch-repeat-map, tab-bar-move-repeat-map): Prefer
defvar-keymap.
2022-07-13 Andrea Corallo <akrl@sdf.org>
Remove uneffective test
* test/src/comp-tests.el (45603-1): Remove test.
* test/src/comp-resources/comp-test-45603.el: Delete.
2022-07-13 Andrea Corallo <akrl@sdf.org>
Mark async worker tmp file as utf-8-emacs-unix (bug#48029)
* lisp/emacs-lisp/comp.el (comp-final): Mark async worker tmp file
as utf-8.
* test/src/comp-tests.el (48029-1): New test.
* test/src/comp-resources/comp-test-funcs.el
(comp-test-48029-nonascii-žžž-f): New function.
2022-07-13 Stefan Kangas <stefan@marxist.se>
* lisp/vc/vc-bzr.el (vc-bzr-program): Support breezy.
2022-07-13 Lars Ingebrigtsen <larsi@gnus.org>
Make smtpmail try all auth methods
* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Try all valid
methods, even if one fails (bug#48562).
2022-07-13 Po Lu <luangruo@yahoo.com>
Fix recursive calls of x_connection_closed leading to dead terminal
* src/xterm.c (x_connection_closed): Return if called again for
the current display.
(x_io_error_quitter): Fix attributes. (bug#56528)
2022-07-13 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp version integrated in Emacs 28.2
* lisp/net/trampver.el (customize-package-emacs-version-alist):
Adapt Tramp version integrated in Emacs 28.2.
2022-07-13 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Make mouse-2 respect delete-selection mode"
This reverts commit 215a700751f88bba18989e340181361a484d5b3a.
This leads to unintended consequences for cua-mode, among others (bug#56530).
2022-07-13 Lars Ingebrigtsen <larsi@gnus.org>
Make bibtex-mode not signal errors when used programmatically
* lisp/textmodes/bibtex.el (bibtex-mode): Ensure that the font
lock machinery is set up (bug#48447).
2022-07-13 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp doc
* doc/misc/tramp.texi (Configuration): Mention enable-remote-dir-locals.
(Traces and Profiles): Fix tramp-verbose description.
* lisp/net/tramp.el (tramp-verbose): Fix docstring.
2022-07-13 Stefan Kangas <stefan@marxist.se>
Make the rsh command obsolete
* lisp/net/telnet.el (rsh): Make obsolete.
(telnet-connect-command, telnet-mode): Adjust documentation for
above change.
2022-07-13 Po Lu <luangruo@yahoo.com>
Implement TIMESTAMP target for Haiku selections
* lisp/term/haiku-win.el (haiku-selection-targets): Fix return
values.
(gui-backend-get-selection): Handle TIMESTAMP specially.
* src/haiku_select.cc (be_get_clipboard_count): New function.
* src/haikuselect.c (Fhaiku_selection_timestamp): New function.
(syms_of_haikuselect): Add new defsubr.
* src/haikuselect.h: Update prototypes.
2022-07-13 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a3dab1e621 Don't mention cl-cXXXr aliases in cl-lib manual
2022-07-13 Po Lu <luangruo@yahoo.com>
New user option 'webjump-use-internal-browser'
* lisp/net/webjump.el (webjump-use-internal-browser): New defcustom.
(webjump): Respect it. Reported by Youmu <condy0919@gmail.com>.
2022-07-12 Po Lu <luangruo@yahoo.com>
Fix closing displays when preserving selections is enabled
* src/frame.c (delete_frame): Bind `x-auto-preserve-selections'
to nil if deleting display.
* src/xselect.c (x_clear_frame_selections): Pass original frame
to that function.
* src/xterm.c (x_preserve_selections): Fix determining the new
owner.
(syms_of_xterm): New defsym `x-auto-preserve-selections'.
* src/xterm.h: Update prototypes.
2022-07-12 Lars Ingebrigtsen <larsi@gnus.org>
Tweak image-converter-add-handler interface
* doc/emacs/files.texi (Image Mode): Adjust documentation.
* lisp/image/image-converter.el (image-convert): Let the converter
know whether it's a file or not.
2022-07-12 Lars Ingebrigtsen <larsi@gnus.org>
Autoload image-converter-add-handler
* lisp/image/image-converter.el (image-converter-add-handler):
Autoload.
2022-07-12 Lars Ingebrigtsen <larsi@gnus.org>
Add support for viewing "images" such as Krita (.kra) files
* doc/emacs/files.texi (Image Mode): Document it.
* lisp/image/image-converter.el (image-converter-add-handler): New
function (bug#48415).
(image-convert): Use it.
2022-07-12 Stefan Kangas <stefan@marxist.se>
Drop obsolete rsh/rlogin from two user options
* lisp/net/ange-ftp.el (ange-ftp-gateway-program):
* lisp/net/imap.el (imap-shell-program): Drop obsolete "rsh"/"rlogin".
2022-07-12 Stefan Kangas <stefan@marxist.se>
Make pcomplete/{rsh,rlogin} into alias for pcomplete/ssh
* lisp/pcmpl-unix.el (pcomplete/rlogin, pcomplete/rsh): Make into
aliases for 'pcomplete/ssh', as "rsh" and "rlogin" is more often than
not aliases for "ssh" on modern machines.
2022-07-12 Michael Albinus <michael.albinus@gmx.de>
Remove rsh from Tramp manual, Overview section
* doc/misc/tramp.texi (Overview, Frequently Asked Questions):
Don't mention obsolete rsh and rcp.
2022-07-12 Jim Porter <jporterbugs@gmail.com>
Ensure Eshell variable aliases properly handle indexing
* lisp/eshell/em-dirs.el (eshell-dirs-initialize): Properly handle
indexing for variable aliases.
* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Properly
handle indexing for variable aliases, and add SIMPLE-FUNCTION
entry for aliases.
(eshell-get-variable): Update how variable alias functions are called.
* test/lisp/eshell/em-alias-tests.el
(em-alias-test/alias-arg-vars-indices)
(em-alias-test/alias-arg-vars-split-indices)
(em-alias-test/alias-all-args-var-split-indices):
* test/lisp/eshell/em-dirs-tests.el (em-dirs-test/pwd-var-indices)
(em-dirs-test/oldpwd-var-indices)
(em-dirs-test/directory-ring-var-indices):
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/inside-emacs-var-split-indices)
(esh-var-test/last-result-var-split-indices): New tests.
(esh-var-test/last-arg-var-split-indices): Expand test to check
conversion behavior inside double quotes (bug#56509).
2022-07-12 Jim Porter <jporterbugs@gmail.com>
Allow Eshell variable aliases to point to other aliases
In particular, this resolves an issue where '$+' referenced the real
environment variable '$PWD' instead of the Eshell variable alias of
the same name. This meant that changing directories in Eshell
wouldn't update the value of '$+'.
* lisp/eshell/esh-var.el (eshell-get-variable): Allow Eshell variable
aliaes to point to other aliases.
* test/lisp/eshell/em-dirs-tests.el (em-dirs-test/pwd-var)
(em-dirs-test/short-pwd-var): Adapt tests to check this case
(bug#56509).
2022-07-12 Jim Porter <jporterbugs@gmail.com>
Improve tests/organization for built-in variables
* lisp/eshell/em-dirs.el (eshell-inside-emacs)
(eshell-dirs-initialize): Move 'INSIDE_EMACS' from here...
* lisp/eshell/esh-var.el (eshell-inside-emacs)
(eshell-variable-aliases-alist): ... to here, and improve doc string.
* test/lisp/eshell/eshell-tests.el (eshell-test/inside-emacs-var):
Move from here...
* test/lisp/eshell/esh-var-tests.el (esh-var-test/inside-emacs-var):
... to here.
(esh-var-test/last-arg-var-indices)
(esh-var-test/last-arg-var-split-indices): New tests.
* test/lisp/eshell/em-alias-tests.el:
* test/lisp/eshell/em-dirs-tests.el:
* test/lisp/eshell-em-script-tests.el: New files.
* doc/misc/eshell.texi (Built-ins): Fix 'cd' documentation; it works
with the directory ring, not the directory stack. Move built-in
variables documentation from here...
(Variables): ... to here, and add documentation for missing built-in
variables.
2022-07-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix buffer-stale-function fix
* src/buffer.c (Fmake_indirect_buffer): Kill the local
buffer-stale-function variable instead of setting it
buffer-locally to the default value. This should have the same
effect, but is less confusing.
2022-07-12 Po Lu <luangruo@yahoo.com>
Reduce syncing when fetching selection names during frame deletion
* src/xterm.c (x_preserve_selections): Use XCB to asynchronously
fetch the selection owner.
2022-07-12 Stefan Kangas <stefan@marxist.se>
Don't mention cl-cXXXr aliases in cl-lib manual
* doc/misc/cl.texi (Lists, List Functions, Efficiency Concerns): Don't
mention 'cl-cXXXr' compatibility aliases for built-in 'cXXXr'
functions. They shouldn't be used in new code.
2022-07-12 Stefan Kangas <stefan@marxist.se>
Make some rst.el compat aliases obsolete
* lisp/textmodes/rst.el (rst-adjust-section-title)
(rst-display-adornments-hierarchy, rst-straighten-adornments)
(rst-toc-insert-update, rst-goto-section)
(rst-toc-mode-goto-section, rst-toc-mode-mouse-goto)
(rst-toc-mode-mouse-goto-kill, rst-toc-quit-window): Make
compatibility aliases obsolete.
2022-07-12 Stefan Kangas <stefan@marxist.se>
Make remote-shell-program default to ssh only
* lisp/files.el (remote-shell-program): Default to "ssh" only. The
other commands in this list have severe security issues, and it is
easy enough for users to customize them manually if they want to.
See also the discussion in: https://debbugs.gnu.org/56461
2022-07-12 Stefan Kangas <stefan@marxist.se>
Recognize gemini in thing-at-point
* lisp/thingatpt.el (thing-at-point-uri-schemes): Recognize gemini.
2022-07-12 Mattias Engdegård <mattiase@acm.org>
Better gomoku X colour with bright background
* lisp/play/gomoku.el (gomoku-X): Use blue rather than green for
crosses on bright background for better legibility.
(Red for naughts could be adjusted but seems just about bearable.)
2022-07-12 Alan Mackenzie <acm@muc.de>
Expunge unused recompute-lucid-menubar, lucid-menu-bar-dirty-flag
This fixes bug #56502. That function and these variables were manipulated by
the former file emacs-lisp/lmenu.el that was finally expunged from directory
obsolete/ by Stefan Kangas on 2020-05-15. There remain references to them in
the *.c, and *.m files.
* src/keyboard.c (syms_of_keyboard): Remove declarations of the symbol and
variable.
* src/haikumenu.c (set_frame_menu_bar)
* src/keyboard.c (command_loop_1)
* src/nsmenu.m (ns_update_menubar)
* src/pgtkmenu.c (set_frame_menubar)
* src/xdisp.c (update_menu_bar)
* src/xmenu.c (set_frame_menubar): Remove calls to Qrecompute_lucid_menubar
contitional on Vlucid_menu_bar_dirty_flag.
2022-07-12 Po Lu <luangruo@yahoo.com>
Fix preserving selections if `x-lost-selection-functions' signals
* src/xterm.c (x_preserve_selections): Get selection owner and
run lost selection hook separately.
2022-07-12 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9183d1672c ; * etc/PROBLEMS: Give a URL for bug#50666.
1f508a8b6f etc/PROBLEMS: Describe issues with native compilation on C...
84a5d47125 ; Fix last change
0461021893 ; * lisp/emacs-lisp/comp.el (native-comp-speed): Explain t...
876317271b * lisp/find-dired.el (find-dired): Doc fix; add crossrefer...
2022-07-11 Po Lu <luangruo@yahoo.com>
Try to save selections from being disowned during frame deletion
* lisp/cus-start.el (standard): Add
`x-auto-preserve-selections'.
* src/xselect.c (x_clear_frame_selections): Collect deleted
selections into a variable and preserve them.
* src/xterm.c (x_preserve_selections): New function.
(syms_of_xterm): New variable `x-auto-preserve-selections'.
* src/xterm.h: Update prototypes.
2022-07-11 Stefan Kangas <stefan@marxist.se>
* lisp/mail/mail-utils.el (mail-string-delete): Make obsolete.
2022-07-11 Ken Brown <kbrown@cornell.edu>
etc/PROBLEMS: Describe issues with native compilation on Cygwin
2022-07-11 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in thumbs.el
* lisp/thumbs.el (thumbs-mode-map, thumbs-view-image-mode-map):
Prefer defvar-keymap.
2022-07-11 Mattias Engdegård <mattiase@acm.org>
Remove obsolete uses of obsolete functions
* src/minibuf.c (minibuf_conform_representation): Remove.
(Ftry_completion): Don't call it.
(Ftest_completion): Don't use the obsolete Fstring_make_unibyte or
Fstring_make_multibyte; they don't serve any useful purpose here.
We don't try to equate unibyte and multibyte raw bytes in symbol
lookups elsewhere and there is no reason to do it here.
2022-07-11 Stefan Kangas <stefan@marxist.se>
Remove dead branch from substitute-command-keys
* lisp/help.el (substitute-command-keys): Remove dead branch;
where-is-internal will follow any remaps for us. Note also that the
test case for remapping still pass.
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Make `g' in `vc-annotate' not bug out
* lisp/vc/vc-annotate.el (vc-annotate): Don't bug out on `g'
(bug#48359).
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Only reset buffer-local buffer-stale-function in make-indirect-buffer
* src/buffer.c (Fmake_indirect_buffer): Don't set the global
buffer-stale-function (bug#48348).
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Document the recent add-global-abbrev change
* doc/emacs/abbrevs.texi (Defining Abbrevs): Document that you can
use the active region.
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Make add-mode-abbrev use the active region
* lisp/abbrev.el (add-mode-abbrev, add-global-abbrev): Document it.
(add-abbrev): If there's an active region, use that as the
expansion (bug#56496).
2022-07-11 Stefan Kangas <stefan@marxist.se>
* lisp/obsolete/rlogin.el: Add "Obsolete-since" line.
2022-07-11 Stefan Kangas <stefan@marxist.se>
Make net/rlogin.el obsolete
* lisp/net/rlogin.el: Move from here...
* lisp/obsolete/rlogin.el: ...to here. (Bug#56461)
2022-07-11 Stefan Kangas <stefan@marxist.se>
* src/.lldbinit: Fix copyright year.
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Allow commands that call `yes-or-no-p' to be repeatable again
* lisp/subr.el (y-or-n-p): Enable commands that call this function
to be repeatable (bug#45999). This stopped working after this
function started using read-from-minibuffer.
* src/fns.c (Fyes_or_no_p): Ditto.
2022-07-11 Stefan Kangas <stefan@marxist.se>
Move EIEIO autoloads to the common loaddefs.el
* lisp/emacs-lisp/eieio-core.el:
* lisp/emacs-lisp/eieio-custom.el:
* lisp/emacs-lisp/eieio-opt.el:
* lisp/obsolete/eieio-compat.el: Remove generated-autoload-file
setting and don't require eieio-loaddefs.el.
2022-07-11 Gerd Möllmann <gerd@gnu.org>
Support for debugging Emacs with LLDB
* (src/.lldbinit): New file.
* (etc/emacs_lldb.py): Module loaded from .lldbinit.
2022-07-11 Stefan Kangas <stefan@marxist.se>
Don't create unused file rmail-loaddefs.el
* lisp/mail/undigest.el: Remove 'generated-autoload-file' local
variable. (Bug#56491)
2022-07-11 Mattias Engdegård <mattiase@acm.org>
Simplify str_to_multibyte and related code
* src/character.h (str_to_multibyte):
* src/character.c (str_to_multibyte): Remove `nbytes` argument; return
it instead. Copy forwards.
* src/fns.c (concat_to_string, Fstring_make_multibyte):
Use str_to_multibyte.
(string_make_multibyte): Remove.
(string_to_multibyte):
* src/print.c (print_string): Adapt calls.
2022-07-11 Stefan Kangas <stefan@marxist.se>
Doc fix; don't mention rlogin
* doc/emacs/misc.texi (Remote Host):
* doc/misc/eshell.texi (Bugs and ideas): Don't mention
rlogin. (Bug#56461)
2022-07-11 Po Lu <luangruo@yahoo.com>
Improve behavior of `lost-selection-mode' with multiple buffers
* etc/NEWS: Announce new hook `post-select-region-hook'.
* lisp/select.el (lost-selection-last-region-buffer): New
variable.
(lost-selection-post-select-region-function): New function.
Deactivate the mark if the buffer changed.
(lost-selection-mode): Add new hook.
* src/keyboard.c (command_loop_1): Run that hook when
appropriate.
(syms_of_keyboard): New hook `post-select-region-hook'.
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix crm.el compilation warning
* lisp/emacs-lisp/crm.el (crm-default-separator): Move to avoid
compilation warning.
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Don't call home from test/src/process-tests.el
* test/src/process-tests.el (process-num-processors): Move from
here...
* test/manual/process-callout-tests.el: ... to here (bug#55858).
2022-07-11 Visuwesh <visuweshm@gmail.com>
Make mouse-2 respect delete-selection mode
* lisp/delsel.el: Make the mouse yank commands delete-selection-mode
aware (bug#56421).
2022-07-11 Stefan Kangas <stefan@marxist.se>
* lisp/emacs-lisp/package.el (define-package): Make obsolete.
2022-07-11 Po Lu <luangruo@yahoo.com>
Prevent setting user time if the WM doesn't support it
* src/xterm.c (x_update_frame_user_time_window): Don't set
_NET_WM_USER_TIME if it's not supported by the window manager.
2022-07-11 Mattias Engdegård <mattiase@acm.org>
Add test for the gradle-android compilation message pattern
* etc/compilation.txt (symbol): Add example.
* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
(compile-test-error-regexps): Add test case (bug#56249).
2022-07-11 Daniel Martín <mardani29@yahoo.es>
Fix memory leak in ns_draw_relief
* src/nsterm.h (struct ns_output): New fields to store the relief
colors.
* src/nsterm.m (ns_setup_relief_colors): New function to keep the
relief colors as part of the ns_output structure.
(ns_draw_relief): Remove static local variables. Assigning them to
nil caused a memory leak of NSColor instances (bug#56462). Call
ns_setup_relief_colors instead.
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Autoload named-let
* lisp/emacs-lisp/subr-x.el (named-let): Autoload `named-let' for
easier use (bug#56473).
2022-07-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix `M-x lisp-fill-paragraph'
* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix filling
when called directly with `M-x lisp-fill-paragraph' instead of via
`M-q' (bug#56476).
2022-07-11 Stefan Kangas <stefan@marxist.se>
Make crm-default-separator obsolete as per FIXME
* lisp/emacs-lisp/crm.el (crm-default-separator): Make into
obsolete variable alias for crm-separator.
(crm-separator): Update docstring for above change.
2022-07-11 Stefan Kangas <stefan@marxist.se>
* lisp/find-dired.el (find-dired): Doc fix; add crossreference.
2022-07-11 Stefan Kangas <stefan@marxist.se>
Re-add comment on autoloading cookies in preloaded files
This comment was removed in 2009, but it is useful to explain why
we are keeping these autoload cookies.
* lisp/bindings.el:
* lisp/font-core.el:
* lisp/format.el:
* lisp/international/mule-cmds.el: Re-add comment on autoloading.
* lisp/font-core.el (font-lock-defaults): Re-add autoload cookie,
despite the fact that this file is preloaded.
2022-07-11 Stefan Kangas <stefan@marxist.se>
Prefer :risky defcustom keyword
* lisp/align.el (align-region-separate, align-rules-list)
(align-exclude-rules-list, align-vhdl-rules-list):
* lisp/bindings.el (mode-line-percent-position):
* lisp/filesets.el (filesets-menu-cache-file, filesets-commands)
(filesets-external-viewers, filesets-ingroup-patterns)
(filesets-data):
* lisp/hi-lock.el (hi-lock-file-patterns-policy):
* lisp/mail/mailalias.el (mail-complete-alist)
(mail-directory-process, mail-directory-stream)
(mail-directory-parser):
* lisp/mail/rmail.el (rmail-confirm-expunge):
* lisp/mail/sendmail.el (mail-signature):
* lisp/mail/supercite.el (sc-cite-frame-alist)
(sc-uncite-frame-alist, sc-recite-frame-alist)
(sc-default-cite-frame, sc-default-uncite-frame)
(sc-default-recite-frame, sc-attrib-selection-list)
(sc-rewrite-header-list):
* lisp/progmodes/make-mode.el (makefile-special-targets-list):
* lisp/so-long.el (so-long-action-alist):
* lisp/textmodes/sgml-mode.el (sgml-tag-alist): Prefer defcustom
:risky keyword argument to directly setting the 'risky-local-variable'
symbol property.
2022-07-11 Mattias Engdegård <mattiase@acm.org>
Simplify and speed up string-to-multibyte
* src/character.h (str_to_multibyte):
* src/character.c (str_to_multibyte): Change signature and simplify;
the conversion is no longer done in-place.
* src/fns.c (string_to_multibyte): Drop temporary buffer and memcpy;
adapt to new str_to_multibyte signature.
* src/print.c (print_string): Drop memcpy; adapt call to str_to_multibyte.
* test/src/fns-tests.el (fns--string-to-unibyte): Rename to...
(fns--string-to-unibyte-multibyte): ... this and strengthen, so that
the test covers string-to-multibyte reasonably well.
2022-07-11 Manuel Giraud <manuel@ledu-giraud.fr>
Rename 'longlines-breakpoint-chars' to 'longlines-break-chars'
* etc/NEWS:
* lisp/longlines.el (longlines-break-chars): Rename
'longlines-breakpoint-chars' to 'longlines-break-chars'
(bug#56335).
2022-07-10 Po Lu <luangruo@yahoo.com>
Handle errors sending selection decline events asynchronously
* src/xselect.c (x_decline_selection_request): Handle errors
asynchronously.
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Export functions.
* src/xterm.h: Update prototypes.
2022-07-10 Matthias Schmitt <male.schmitt@posteo.de>
Add: 'local' keyword
2022-07-10 Philip Kaludercic <philipk@posteo.net>
* time-date.el (decoded-time-period): Rename TIME in docstring
2022-07-10 Stefan Kangas <stefan@marxist.se>
Remove some ineffectual calls to purecopy
* lisp/dired.el (dired-chown-program, dired-trivial-filenames):
* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function):
* lisp/help-fns.el (help-fns--mention-shortdoc-groups):
* lisp/mail/mail-extr.el (mail-extr-full-name-prefixes)
(mail-extr-all-letters-but-separators, mail-extr-all-letters)
(mail-extr-first-letters, mail-extr-last-letters)
(mail-extr-bad-dot-pattern, mail-extr-full-name-suffix-pattern)
(mail-extr-alternative-address-pattern)
(mail-extr-trailing-comment-start-pattern)
(mail-extr-name-pattern, mail-extr-telephone-extension-pattern)
(mail-extr-ham-call-sign-pattern, mail-extr-normal-name-pattern)
(mail-extr-two-name-pattern)
(mail-extr-listserv-list-name-pattern)
(mail-extr-stupid-vms-date-stamp-pattern)
(mail-extr-hz-embedded-gb-encoded-chinese-pattern)
(mail-extr-x400-encoded-address-pattern)
(mail-extr-x400-encoded-address-field-pattern-format)
(mail-extr-x400-encoded-address-surname-pattern)
(mail-extr-x400-encoded-address-given-name-pattern)
(mail-extr-x400-encoded-address-full-name-pattern): Remove
ineffectual calls to purecopy.
2022-07-10 Stefan Kangas <stefan@marxist.se>
Rename new option to browse-url-default-scheme
* lisp/net/browse-url.el (browse-url-default-scheme): Rename from
'browse-url-guess-default-scheme'. Update caller.
Suggested by Eli Zaretskii <eliz@gnu.org>.
2022-07-10 Mattias Engdegård <mattiase@acm.org>
Speed up string-to-unibyte
* src/character.h (str_to_unibyte):
* src/character.c (str_to_unibyte): Remove.
* src/fns.c (Fstring_to_unibyte): Ditch the call to str_to_unibyte and
the unnecessary heap allocation. Write new, faster code.
* test/src/fns-tests.el (fns--string-to-unibyte): New test.
2022-07-10 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp test environment on hydra.nixos.org
* lisp/emacs-lisp/ert-x.el (tramp-remote-path): Declare. Adapt
`tramp-remote-path' on hydra. (Bug#56424)
* test/lisp/dnd-tests.el (dnd-tests-begin-drag-files): Remove instrumentation.
* test/lisp/filenotify-tests.el:
* test/lisp/shadowfile-tests.el:
* test/lisp/net/tramp-tests.el: Do not adapt `tramp-remote-path'.
2022-07-10 Stefan Kangas <stefan@marxist.se>
Don't use purecopy in dictionary.el
* lisp/net/dictionary.el (dictionary-pre-buffer)
(dictionary-display-dictionary-line)
(dictionary-display-more-info, dictionary-display-strategy-line)
(dictionary-display-match-lines): Don't use purecopy; it has no
effect here.
2022-07-10 Stefan Monnier <monnier@iro.umontreal.ca>
* src/dired.c (directory_files_internal): Update comment
2022-07-10 Stefan Monnier <monnier@iro.umontreal.ca>
* src/dired.c (directory_files_internal): Fix bug#56469
Avoid concatenating encoded and decoded file names.
2022-07-10 Stefan Kangas <stefan@marxist.se>
New user option browse-url-guess-default-scheme
* lisp/net/browse-url.el (browse-url-guess-default-scheme): New
user option.
(browse-url-url-at-point): Use above new user option.
2022-07-10 Michael Albinus <michael.albinus@gmx.de>
* doc/misc/tramp.texi (Frequently Asked Questions): Fix formatting.
2022-07-10 Po Lu <luangruo@yahoo.com>
Minor fixes to WM_DELETE_WINDOW handling
* src/xterm.c (handle_one_xevent): Only handle WM_DELETE_WINDOW
to toplevel windows, and set event timestamp.
2022-07-10 Stefan Kangas <stefan@marxist.se>
Make browse-url.el support for plain "mozilla" obsolete
* lisp/net/browse-url.el (browse-url-mozilla-program)
(browse-url-mozilla-arguments)
(browse-url-mozilla-startup-arguments)
(browse-url-mozilla-new-window-is-tab, browse-url-mozilla)
(browse-url-mozilla-sentinel): Make obsolete. (Bug#56464)
(browse-url--browser-defcustom-type, browse-url-default-browser):
Don't refer to above obsolete function 'browse-url-mozilla'.
2022-07-10 Stefan Kangas <stefan@marxist.se>
* lisp/net/browse-url.el: Improve commentary.
2022-07-10 Eli Zaretskii <eliz@gnu.org>
Fix the startup.el behavior when 'face-font-rescale-alist' is non-nil
* lisp/startup.el (command-line-1, normal-top-level): Reset the
default face's font only if 'face-font-rescale-alist' affects that
face's font. For the use case where it matters, see
https://lists.gnu.org/archive/html/emacs-devel/2022-07/msg00157.html.
Make the 'inhibit-startup-screen' and non-inhibit branches behave
the same in that case.
2022-07-10 Po Lu <luangruo@yahoo.com>
Fix build with old sqlite libraries
* src/sqlite.c (Fsqlite_open): Don't use SQLITE_OPEN_FULLMUTEX
if not defined.
2022-07-10 Eli Zaretskii <eliz@gnu.org>
Speed up 'find_automatic_composition'
* src/composite.c (find_automatic_composition): Limit search
backward in buffers to the first newline. Fix commentary.
2022-07-10 Po Lu <luangruo@yahoo.com>
Don't sync for errors setting up DND targets and toplevels
* src/xterm.c (xm_setup_dnd_targets, x_dnd_free_toplevels)
(x_dnd_compute_toplevels): Avoid catching errors synchronously.
2022-07-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
115261b323 ; Improve wording of recently-changed doc strings.
2022-07-09 Po Lu <luangruo@yahoo.com>
Make `x-no-window-manager' cover user time as well
* src/xterm.c (x_update_frame_user_time_window):
(x_wm_supports_1): Respect `x-no-window-manager'. This makes
testing some features easier.
2022-07-09 Glenn Morris <rgm@gnu.org>
* test/Makefile.in (WRITE_LOG): Always be verbose on hydra.nixos.
2022-07-09 Stefan Monnier <monnier@iro.umontreal.ca>
Make STRING_SET_MULTIBYTE an inline function
* src/lisp.h (STRING_SET_MULTIBYTE): Make it into a function.
* src/composite.c (Fcomposition_get_gstring):
Prefer `make_multibyte_string` over Fconcat+STRING_SET_MULTIBYTE.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Exclude platform specific browsers from custom type
* lisp/net/browse-url.el (browse-url--browser-defcustom-type):
Don't include platform specific browsers on other platforms.
2022-07-09 Stefan Kangas <stefan@marxist.se>
* lisp/net/eww.el (eww): Improve docstring.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Make browse-url-default-browser fall back to EWW
* lisp/net/browse-url.el (browse-url-default-browser): Fall back
to EWW.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Drop support for the dead third-party w3 package
The w3 package was removed from GNU ELPA in 2020 as it doesn't run on
a recent Emacs, and development had stopped over a decade before that.
If anyone wants to revive the w3 package, they should look this all
over, but it doesn't make sense for us to maintain this support code.
Ref: https://debbugs.gnu.org/25395
* lisp/net/browse-url.el (browse-url-w3): Make obsolete.
(browse-url--browser-defcustom-type)
(browse-url-default-browser):
* lisp/ffap.el (ffap-url-at-point, ffap-file-at-point):
* lisp/net/newst-plainview.el (newsticker--buffer-do-insert-text):
* lisp/net/newst-reader.el (newsticker-html-renderer)
(newsticker-show-news):
* lisp/net/newst-treeview.el (newsticker--treeview-render-text):
* lisp/org/ol.el (org-store-link):
* lisp/url/url.el (url-retrieve): Remove w3 support code and related
documentation and comments. (Bug#56435)
* test/lisp/net/browse-url-tests.el
(browse-url-tests-browser-kind): Adjust test for above changes.
* etc/TODO: Remove TODO to install W3.
* doc/misc/org.org (Handling Links): Don't mention W3.
* lisp/msb.el (msb--few-menus, msb--very-many-menus): Check for
eww-mode instead of w3-mode.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Improve introductory section of TRAMP manual
* doc/misc/tramp.texi (Top, Overview): Explain what TRAMP is
without contrasting to Ange FTP. (Bug#56440)
(Frequently Asked Questions): Move information on Ange FTP here.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in net/*.el
* lisp/net/dictionary.el (dictionary-mode-map):
* lisp/net/dig.el (dig-mode-map):
* lisp/net/eudc-hotlist.el (eudc-hotlist-mode-map):
* lisp/net/eudc.el (eudc-mode-map):
* lisp/net/mairix.el (mairix-searches-mode-map):
* lisp/net/newst-treeview.el
(newsticker-treeview-list-sort-button-map)
(newsticker-treeview-mode-map):
* lisp/net/quickurl.el (quickurl-list-mode-map):
* lisp/net/rcirc.el (rcirc-mode-map)
(rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map):
* lisp/net/rlogin.el (rlogin-mode-map):
* lisp/net/secrets.el (secrets-mode-map):
* lisp/net/sieve-mode.el (sieve-mode-map):
* lisp/net/sieve.el (sieve-manage-mode-map):
* lisp/net/snmp-mode.el (snmp-mode-map):
* lisp/net/telnet.el (telnet-mode-map): Prefer defvar-keymap.
2022-07-09 Po Lu <luangruo@yahoo.com>
Avoid extra sync and atom name query on ending Motif DND
* src/xterm.c (handle_one_xevent): Use `x_dnd_action_symbol' to
set the Motif action instead.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Delete obsolete variable tooltip-use-echo-area
* lisp/tooltip.el (tooltip-use-echo-area): Delete variable
obsolete since 24.1.
(tooltip-help-tips):
* lisp/progmodes/gud.el (gud-tooltip-process-output)
(gud-tooltip-tips): Don't use above deleted variable.
2022-07-09 Stefan Kangas <stefan@marxist.se>
* lisp/woman.el (woman-fill-column): Increase default to 70.
* lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Double value.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Delete obsolete variable font-lock-maximum-size
* lisp/font-lock.el (font-lock-maximum-size): Delete variable
obsolete since 24.1.
(font-lock-initial-fontify):
* lisp/mail/rmail.el (rmail-variables):
* lisp/mh-e/mh-mime.el (mh-small-show-buffer-p): Don't use above
deleted variable.
* lisp/font-core.el (font-lock-mode):
* lisp/font-lock.el:
* lisp/info.el: Don't mention above deleted variable.
2022-07-09 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in 'back_to_previous_visible_line_start'
* src/xdisp.c (back_to_previous_visible_line_start): Avoid
assertion violations when narrowed_begv is in effect.
2022-07-09 Eli Zaretskii <eliz@gnu.org>
Fix segfault in composite.c
* src/composite.c (find_automatic_composition): Don't use
narrowed_begv if it's zero. This avoids segfault in
BACKWARD_CHAR, since zero is not a valid buffer position.
2022-07-09 Stefan Kangas <stefan@marxist.se>
New command emacs-news-toggle-tag
* lisp/textmodes/emacs-news-mode.el (emacs-news-toggle-tag): New
command.
(emacs-news-mode-map): Bind above new command to "C-c C-t".
* test/lisp/textmodes/emacs-news-mode-resources/toggle-tag.erts:
* test/lisp/textmodes/emacs-news-mode-tests.el: New files.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Improve ert-test-erts-file documentation
* lisp/emacs-lisp/ert.el (ert-test-erts-file): Improve docstring.
* doc/misc/ert.texi (erts files): Fix typo.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Bind M-G unconditionally in Dired
* lisp/dired-x.el: Move dired-goto-subdir binding from here...
* lisp/dired.el (dired-mode-map): ...to here. (Bug#21981)
* doc/misc/dired-x.texi (Miscellaneous Commands): Move
documentation of above command from here...
* doc/emacs/dired.texi (Subdirectory Motion): ...to here.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Move dired-buffer-more-recently-used-p to dired.el
* lisp/dired-x.el (dired-buffer-more-recently-used-p): Move from
here...
* lisp/dired.el (dired-buffer-more-recently-used-p): ...to here.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Delete obsolete variable buffer-substring-filters
* lisp/simple.el (buffer-substring-filters): Delete variable obsolete
since 24.1.
(buffer-substring--filter): Adjust for deleted variable.
* doc/lispref/text.texi (Buffer Contents): Adjust documentation
for deleted variable.
2022-07-09 Po Lu <luangruo@yahoo.com>
Improve drag-and-drop emulation time handling
* src/xselect.c (x_handle_selection_request): Use
display-specific pending DND time.
(x_set_pending_dnd_time): Delete function.
* src/xterm.c (x_dnd_do_unsupported_drop, handle_one_xevent):
Set dpyinfo->pending_dnd_time instead.
* src/xterm.h (struct x_display_info): New field
`pending_dnd_time'. Make handling pending drops
display-specific to avoid interference when there are multiple
displays.
2022-07-09 Po Lu <luangruo@yahoo.com>
Fix race conditions handling selection clear events on Haiku
* src/haiku_select.cc (be_handle_clipboard_changed_message):
Include current clipboard count.
(be_selection_outdated_p): New function.
* src/haikuselect.c (haiku_handle_selection_clear): Ignore
outdated events.
(haiku_selection_disowned): New argument `count'. Include it in
the timestamp field of the selection clear event.
* src/haikuselect.h: Update prototypes.
* src/systime.h: Define `Time' to an appropriate value on Haiku.
2022-07-09 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
3442de2edd Doc fix; don't mention obsolete variable
c4e251103b ; * lisp/textmodes/rst.el: Update URLs.
2022-07-08 Po Lu <luangruo@yahoo.com>
Fix redisplay after running selection hook on Haiku
* src/haikuselect.c (haiku_handle_selection_clear): Call
redisplay_preserve_echo_area.
2022-07-08 Po Lu <luangruo@yahoo.com>
Add new minor mode to deactivate the region once PRIMARY is lost
* doc/emacs/killing.texi (Primary Selection): Document new minor
mode `lost-selection-mode'.
* etc/NEWS: Announce new minor mode.
* lisp/select.el (lost-selection-function): New function.
(lost-selection-mode): New global minor mode.
2022-07-08 jgart <47760695+jgarte@users.noreply.github.com> (tiny change)
Add support for jedi-language-server
* eglot.el (eglot-server-programs): Add jedi-language-server
* README.md: Mention jedi-language-server
* NEWS.md: Mention jedi-language-server
GitHub-reference: close https://github.com/joaotavora/eglot/issues/961
2022-07-08 Po Lu <luangruo@yahoo.com>
Speed up querying for window manager support
* src/xterm.c (handle_one_xevent): Clear net_supported_window if
it is destroyed.
(x_get_wm_check_window): New function.
(x_wm_supports_1): First try net_supported_window. If it still
exists, don't ask for _NET_SUPPORTING_WM_CHECK.
2022-07-08 Gregory Heytings <gregory@heytings.org>
Fix typo in 1792cbaddc.
2022-07-08 Gregory Heytings <gregory@heytings.org>
Actually fix the long lines display bug (bug#56393).
* src/dispextern.h (struct it): New 'narrowed_begv' field.
* src/dispextern.h (WITH_NARROWED_BEGV): New macro.
* src/xdisp.c (get_narrowed_begv): New function.
(init_iterator): Initilize the 'narrowed_begv' field.
(back_to_previous_line_start, get_visually_first_element,
move_it_vertically_backward): Use the new macro.
* src/dispextern.h: Prototype of 'get_narrowed_begv'.
* src/window.c (window_body_height): Make it externally visible.
* src/window.h: Prototype of 'window_body_height'.
* src/composite.c (find_automatic_composition): Optimize display in buffers
with very long lines with 'get_narrowed_begv'.
* lisp/obsolete/longlines.el: Reobsolete longlines-mode.
* etc/NEWS: Announce the new minor mode, and remove the unobsoletion
indication for 'longlines-mode'.
* doc/emacs/trouble.texi (Long Lines): Remove the section.
(Lossage): Remove the entry for the Long Lines section.
* doc/emacs/emacs.texi (Top): Remove the entry for the Long Lines section.
2022-07-08 Gregory Heytings <gregory@heytings.org>
Revert commit 38b3780f6e.
Revert commits 9ea9533f17, c0c4600ece, 7b19ce51fc, 051d2a1e36 and eb6d2fb58d.
2022-07-08 Alan Mackenzie <acm@muc.de>
Remove now unused parameter TRACK from do_switch_frame.
* src/lisp.h (extern do_swith_frame declaration)
* src/frame.c (do_switch_frame): Remove parameter TRACK and its comment.
* src/frame.c (Fselect_frame, Fhandle_switch_frame, delete_frame)
* src/keyboard.c (quit_throw_to_read_char)
* src/minibuf.c (read_minibuf_unwind (twice))
* src/window.c (Fset_window_configuration): Remove argument TRACK.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Doc fix; don't mention obsolete variable
* src/window.c (Fset_window_hscroll): Doc fix; don't mention obsolete
variable.
2022-07-08 Juri Linkov <juri@linkov.net>
* lisp/isearch.el (isearch-search-fun-in-noncontiguous-region): New function.
(isearch-search-fun-in-text-property): Refactor body to
'search-within-boundaries', then call it (bug#14013).
(search-within-boundaries): New function refactored from
isearch-search-fun-in-text-property.
* test/lisp/isearch-tests.el: Add tests for new search functions.
(isearch--test-search-within-boundaries): New function.
(isearch--test-search-fun-in-text-property)
(isearch--test-search-fun-in-noncontiguous-region): New tests.
2022-07-08 Juri Linkov <juri@linkov.net>
Display the number of invisible matches for isearch-lazy-count (bug#40808)
* lisp/isearch.el (lazy-count-invisible-format): New variable.
(isearch-mode): Set isearch-lazy-count-invisible to nil.
(isearch-lazy-count-format): Use lazy-count-invisible-format and
isearch-lazy-count-invisible.
(isearch-range-invisible): Handle the value 'can-be-opened' of
'search-invisible' and don't open overlays for it, just check
if these overlays can be opened.
(isearch-lazy-count-invisible): New variable.
(isearch-lazy-highlight-new-loop): Set isearch-lazy-count-invisible to nil.
(isearch-lazy-highlight-search): Let-bind search-invisible either to t
for non-nil isearch-lazy-count, or to 'can-be-opened'.
(isearch-lazy-highlight-match): Don't highlight matches intended
to be counted only, not highlighted.
(isearch-lazy-highlight-buffer-update): Separately count invisible
matches by isearch-lazy-count-invisible.
* lisp/info.el (Info-isearch-filter): Check if search-invisible is t.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Don't mention moved variable in dired-x manual
* doc/misc/dired-x.texi (Technical Details): Remove mention of
'dired-clean-up-buffers-too'; it has been moved to dired.el.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Delete redundant defgroup dired-keys
* lisp/dired-x.el (dired-keys): Delete defgroup.
(dired-bind-vm): Move to :group dired-x.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Move dired-do-relsymlink from dired-x.el to dired.el
* lisp/dired-x.el (dired-do-relsymlink, dired-make-relative-symlink)
(dired-do-relsymlink-regexp): Move from here...
* lisp/dired-aux.el (dired-do-relsymlink, dired-make-relative-symlink)
(dired-do-relsymlink-regexp): ...to here. (Bug#21981)
* lisp/dired-x.el: Move keybinding and menu binding from here...
* lisp/dired.el (dired-mode-map, dired-mode-regexp-menu): ...to
here.
* lisp/dired-x.el (dired-keep-marker-relsymlink): Move from here...
* lisp/dired.el (dired-keep-marker-relsymlink): ...to here. Improve
docstring.
* doc/misc/dired-x.texi (Miscellaneous Commands): Move
documentation of above commands from here...
* doc/emacs/dired.texi (Operating on Files)
(Transforming File Names): ...to here.
2022-07-08 Juri Linkov <juri@linkov.net>
* lisp/progmodes/ruby-mode.el (ruby-mode): Set outline-regexp, outline-level.
Suggested by Yilkal Argaw <yilkalargawworkneh@gmail.com>.
2022-07-08 Mattias Engdegård <mattiase@acm.org>
Remove unused member of internal struct
* src/fns.c (struct textprop_rec, concat_to_string): Remove `from`.
2022-07-08 Stefan Kangas <stefan@marxist.se>
* lisp/dired.el (dired-jump-map): Bind also "j" to dired-jump.
2022-07-08 Po Lu <luangruo@yahoo.com>
Ensure correct position is returned after child frame movement
* src/xterm.c (x_set_offset): Synchronize child frame movement
correctly.
2022-07-08 Mattias Engdegård <mattiase@acm.org>
Fix file-name-case-insensitive-p in ffap (bug#56443)
Don't crash if the file name argument to file-name-case-insensitive-p,
after expansion, doesn't have a parent directory. This occurs
when calling ffap on something that looks like an email address.
* src/fileio.c (Ffile_name_case_insensitive_p): Return nil if no file
or parent directory could be found.
* test/src/fileio-tests.el (fileio-tests--identity-expand-handler)
(fileio--file-name-case-insensitive-p): New test.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Remove many items obsolete since 24.1
* lisp/allout.el (allout-abbreviate-flattened-numbering)
(allout-mode-deactivate-hook):
* lisp/ansi-color.el (ansi-color-unfontify-region):
* lisp/auth-source.el (auth-source-hide-passwords)
(auth-source-user-or-password)
(auth-source-forget-user-or-password):
* lisp/cedet/data-debug.el (data-debug-map):
* lisp/cedet/semantic/grammar.el (semantic-grammar-syntax-table)
(semantic-grammar-map):
* lisp/chistory.el (command-history-map):
* lisp/comint.el (comint-dynamic-complete)
(comint-dynamic-complete-as-filename)
(comint-dynamic-simple-complete):
* lisp/dired-x.el (read-filename-at-point)
(dired-x-submit-report):
* lisp/dos-fns.el (register-name-alist, make-register)
(register-value, set-register-value, intdos, mode25, mode4350):
* lisp/emacs-lisp/bytecomp.el (byte-compile-disable-print-circle):
* lisp/emacs-lisp/chart.el (chart-map):
* lisp/emacs-lisp/package.el (package-menu-view-commentary):
* lisp/emacs-lock.el (toggle-emacs-lock, emacs-lock-from-exiting):
* lisp/erc/erc.el (erc-complete-word):
* lisp/eshell/em-cmpl.el (eshell-cmpl-suffix-list):
* lisp/eshell/esh-util.el (eshell-for):
* lisp/files.el (inhibit-first-line-modes-regexps)
(inhibit-first-line-modes-suffixes):
* lisp/gnus/gnus-msg.el (gnus-outgoing-message-group)
(gnus-debug-files, gnus-debug-exclude-variables):
* lisp/gnus/gnus-registry.el (gnus-registry-user-format-function-M):
* lisp/gnus/gnus.el (gnus-local-domain, gnus-carpal):
* lisp/gnus/nnimap.el (nnimap-split-rule):
* lisp/iimage.el (turn-on-iimage-mode):
* lisp/image.el (image-extension-data, image-library-alist):
* lisp/mail/emacsbug.el (report-emacs-bug-pretest-address):
* lisp/mail/mail-utils.el (rmail-dont-reply-to):
* lisp/mail/mailalias.el (mail-complete-function)
(mail-completion-at-point-function):
* lisp/mail/rmail.el (rmail-dont-reply-to-names)
(rmail-default-dont-reply-to-names):
* lisp/mail/sendmail.el (mail-mailer-swallows-blank-line)
(mail-sent-via):
* lisp/menu-bar.el (menu-bar-kill-ring-save):
* lisp/minibuffer.el (completion-annotate-function)
(minibuffer-local-filename-must-match-map):
* lisp/msb.el (msb-after-load-hooks):
* lisp/obsolete/eieio-compat.el (eieio-defmethod)
(eieio-defgeneric):
* lisp/obsolete/info-edit.el (Info-edit-map):
* lisp/obsolete/starttls.el (starttls-any-program-available):
* lisp/progmodes/cfengine.el (cfengine-mode-abbrevs):
* lisp/progmodes/cwarn.el (turn-on-cwarn-mode):
* lisp/progmodes/make-mode.el (makefile-complete):
* lisp/progmodes/meta-mode.el (meta-complete-symbol)
(meta-mode-map):
* lisp/progmodes/pascal.el (pascal-toggle-completions)
(pascal-last-completions, pascal-show-completions):
* lisp/progmodes/prolog.el (prolog-char-quote-workaround):
* lisp/progmodes/which-func.el (which-func-mode): [FUNCTION]
* lisp/simple.el (count-lines-region, minibuffer-completing-symbol):
* lisp/speedbar.el (speedbar-syntax-table, speedbar-key-map):
* lisp/strokes.el (strokes-report-bug):
* lisp/subr.el (condition-case-no-debug):
* lisp/term/ns-win.el (ns-alternatives-map)
(ns-store-cut-buffer-internal):
* lisp/term/w32-win.el (w32-default-color-map):
* lisp/term/x-win.el (x-cut-buffer-or-selection-value):
* lisp/textmodes/bibtex.el (bibtex-complete)
(bibtex-entry-field-alist):
* lisp/textmodes/reftex-index.el (reftex-index-map)
(reftex-index-phrases-map):
* lisp/textmodes/reftex-sel.el (reftex-select-label-map)
(reftex-select-bib-map):
* lisp/textmodes/reftex-toc.el (reftex-toc-map):
* lisp/textmodes/rst.el (rst-block-face, rst-external-face)
(rst-definition-face, rst-directive-face, rst-comment-face)
(rst-emphasis1-face, rst-emphasis2-face, rst-literal-face)
(rst-reference-face):
* lisp/vc/vc-hooks.el (vc-toggle-read-only):
* lisp/view.el (view-return-to-alist)
(view-return-to-alist-update): Remove many functions and variables
obsolete since 24.1.
* lisp/textmodes/bibtex.el (bibtex-entry-alist): Don't use above
removed variable 'bibtex-entry-field-alist'.
* lisp/cedet/data-debug.el (data-debug-edebug-expr)
(data-debug-eval-expression):
* lisp/emacs-lisp/trace.el (trace--read-args):
* lisp/files-x.el (read-file-local-variable-value):
* lisp/simple.el (read--expression): Don't use above removed variable
'minibuffer-completing-symbol'.
* lisp/textmodes/rst.el (rst-font-lock-keywords): Don't use above
removed variables.
* src/w32fns.c (Fw32_default_color_map): Delete obsolete function.
(syms_of_w32fns): Delete defsubr for above defun.
* src/keyboard.c (syms_of_keyboard) <Vdeferred_action_list>
<Vdeferred_action_function>: Delete DEFVARs.
<Qdeferred_action_function>: Delete DEFSYM.
(syms_of_keyboard_for_pdumper): Adjust for above change.
(command_loop_1): Don't run deferred-action-function hook.
* lisp/subr.el (deferred-action-list, deferred-action-function):
Delete obsoletion statements.
* lisp/emacs-lisp/ert-x.el (ert-simulate-command): Don't run
'deferred-action-list' hook.
* doc/lispref/hooks.texi (Standard Hooks): Delete
'deferred-action-function'.
* lisp/emacs-lisp/lisp.el (field-complete):
* lisp/eshell/em-cmpl.el (eshell-cmpl-initialize):
* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc):
* lisp/gnus/nnmail.el (nnmail-fancy-expiry-target):
* lisp/mail/mail-utils.el (mail-dont-reply-to):
* lisp/mail/sendmail.el (sendmail-send-it):
* lisp/mail/smtpmail.el (smtpmail-send-it):
* lisp/minibuffer.el (minibuffer-completion-help):
* lisp/progmodes/python.el: Don't use above removed items.
* lisp/emacs-lisp/eieio-core.el:
* lisp/mail/mailalias.el (mail-complete-alist): Doc fixes; don't refer
to above removed items.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Put safe-local-variable property on auto-insert
* lisp/autoinsert.el (auto-insert): Put safe-local-variable
property to allow disabling auto-inserting without a warning.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Stop ffap-machine-at-point from pinging random hosts
Having this on by default is highly problematic from a security and
privacy standpoint, as it risks having outgoing traffic that could
potentially reveal sensitive data (passwords, names, etc.).
It also seems to be causing issues for users, see e.g.
https://github.com/emacs-helm/helm/issues/648
* lisp/ffap.el (ffap-machine-p-known): Change default to 'accept'.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Add :safe property to ffap-machine-p-* variables
* lisp/ffap.el (ffap--accept-or-reject-p): New predicate defun.
(ffap-machine-p-local, ffap-machine-p-known)
(ffap-machine-p-unknown): Add :safe property using above new
predicate.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Add tests for mail-extr.el
* test/lisp/mail/mail-extr-tests.el: New file.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Avoid obsolete initial-input argument in net-utils.el
* lisp/net/net-utils.el (ping, nslookup-host, dns-lookup-host)
(run-dig, ftp, smbclient, smbclient-list-shares, finger)
(network-connection-to-service): Don't use obsolete initial-input
argument. Use 'format-prompt'. (Bug#56436)
2022-07-08 Po Lu <luangruo@yahoo.com>
Improve behavior of sticky tooltips on Haiku
* src/haiku_support.cc (class EmacsView, MouseMoved): Remove
`tooltip_position'.
(class EmacsMotionSuppressionView): New class.
(BView_set_and_show_sticky_tooltip): Rename to
`be_show_sticky_tooltip'. Add motion suppression view.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (Fx_show_tip): Update for renamed function.
2022-07-08 Po Lu <luangruo@yahoo.com>
Fix flickering system tooltips on Haiku
* src/haiku_support.cc (class EmacsView, MouseMoved): Restore
sticky status and mouse relative position.
(BView_set_and_show_sticky_tooltip):
* src/haikufns.c (haiku_hide_tip): Fix coding style.
2022-07-08 Eli Zaretskii <eliz@gnu.org>
* src/xdisp.c (set_vertical_scroll_bar): Remove stale comment.
2022-07-08 Eli Zaretskii <eliz@gnu.org>
Fix calculation of the vertical scroll bar's thumb
* src/xdisp.c (set_vertical_scroll_bar): Compute window's end
position "by hand" if w->window_end_pos cannot be relied upon.
2022-07-08 Po Lu <luangruo@yahoo.com>
Reduce synchronization setting frame alpha
* src/xterm.c (x_set_frame_alpha): Don't synchronize while
setting alpha property, and don't ask for the current value of
the opacity property, which is much more expensive than changing
it.
2022-07-08 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
2ac0ddc4ac ; * lisp/net/net-utils.el: Minor doc fixes.
2022-07-07 Po Lu <luangruo@yahoo.com>
Fix returned action symbol upon "xterm" drop
* src/xterm.c (x_dnd_do_unsupported_drop): Set
x_dnd_action_symbol.
(x_dnd_begin_drag_and_drop): Don't clear it afterwards.
2022-07-07 Stefan Kangas <stefan@marxist.se>
* lisp/emacs-lisp/ert.el (Commentary): Refer to the Info manual.
2022-07-07 Stefan Kangas <stefan@marxist.se>
Prefer keymap inheritance in shr-image-map
* lisp/net/shr.el (shr-image-map): Replace copy-keymap with
inheritance.
2022-07-07 Lars Ingebrigtsen <larsi@gnus.org>
Make imenu--create-keymap more resilient
* lisp/imenu.el (imenu--create-keymap): Ignore nil items in the
alist (bug#56430).
2022-07-07 Eli Zaretskii <eliz@gnu.org>
Fix buffer-tests
* test/src/buffer-tests.el (test-restore-buffer-modified-p): Don't
assume turning on auto-save-mode cannot auto-save immediately.
2022-07-07 Mattias Engdegård <mattiase@acm.org>
Faster append and vconcat
By separating the code paths for append and vconcat, each becomes
simpler and faster.
* src/fns.c (concat_strings): Rename to...
(concat_to_string): ...this.
(concat): Split into concat_to_list and concat_to_vector.
(concat_to_list, concat_to_vector): New, specialised and
streamlined from earlier combined code.
(concat2, concat3, Fappend, Fconcat, Fvconcat): Adjust calls.
2022-07-07 Alan Mackenzie <acm@muc.de>
Remove obscure, obsolete code from do_switch_frame
This is relevant for bug #56305, and might solve that bug. The code being
removed went into Emacs between 1992 and 1994, and looks to have been a
workaround for switching frames, before the command 'other-frame' had been
written. Nowadays, that code has harmful effects, causing frames' focus to be
redirected at random, sometimes back to the frame itself.
* src/frame.c (do_switch_frame): Remove 53 lines of code.
2022-07-07 Stefan Kangas <stefan@marxist.se>
* lisp/net/dig.el (dig): Provide default.
2022-07-07 Stefan Kangas <stefan@marxist.se>
Make net-utils-url at point funs obsolete in favor of ffap
* lisp/net/net-utils.el (net-utils-machine-at-point)
(net-utils-url-at-point): Redefine as obsolete function alias for
'ffap-machine-at-point' and 'ffap-url-at-point'. Update callers.
* lisp/ffap.el (ffap-machine-at-point, ffap-url-at-point): Autoload.
2022-07-07 Po Lu <luangruo@yahoo.com>
Fix selection disowning upon frame deletion on Wayland
* src/pgtkselect.c (pgtk_clear_frame_selections): Manually
disown cleared selections. (bug#56434)
2022-07-07 Stefan Kangas <stefan@marxist.se>
* lisp/net/eww.el (eww-browse-url): Add 'browser-kind' property.
* lisp/woman.el (woman): Fix comment; don't mention gnudoit.
2022-07-07 Stefan Kangas <stefan@marxist.se>
Make two XEmacs related variables obsolete
* lisp/net/browse-url.el (browse-url-gnudoit-program)
(browse-url-gnudoit-args): Make obsolete. The corresponding command
'browse-url-w3-gnudoit' is already obsolete since 25.1.
2022-07-07 Po Lu <luangruo@yahoo.com>
Fix GTK build
* src/xterm.c (x_dnd_begin_drag_and_drop): Update GTK quitting
code for last change too. Reported by Norbert Koch
<viteno@netic.de>.
2022-07-07 João Távora <joaotavora@gmail.com>
Prevent desktop.el from saving/restoring eglot--managed-mode
Although desktop.el compatibility is Emacs bughttps://github.com/joaotavora/eglot/issues/56407, the optimal
solution agreed to there is a bit more work than what I have time to
right now. See e.g.
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=bug%2356407https://github.com/joaotavora/eglot/issues/68. For
now, just use `with-eval-after-load'
* eglot.el (Hacks desktop): Add eglot--managed-mode to
desktop-minor-mode-handlers
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/990
2022-07-07 João Távora <joaotavora@gmail.com>
Apply any additionaltextedits unconditionally
* eglot.el (eglot-completion-at-point): Apply any
additionalTextEdits unconditionally.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/981
2022-07-07 Po Lu <luangruo@yahoo.com>
Fix quitting out of selection converters during drag and drop
* src/xterm.c (x_dnd_process_quit): New function.
(x_dnd_begin_drag_and_drop): Use it instead. Also quit if
quit-flag is true immediately after a selection converter is
run.
2022-07-07 Stefan Kangas <stefan@marxist.se>
Mark comint modes in net-utils.el as non-interactive
* lisp/net/net-utils.el (net-utils-mode, nslookup-mode, ftp-mode)
(smbclient-mode, network-connection-mode): Mark as non-interactive.
(nslookup-mode-map, ftp-mode-map): Prefer defvar-keymap.
2022-07-07 Stefan Kangas <stefan@marxist.se>
Make 'run-dig' command obsolete in favor of 'dig'
* lisp/net/net-utils.el (run-dig): Redefine in terms of `dig' and make
obsolete. (Bug#56432).
(dig-program): Delete duplicate defcustom; it is also in dig.el.
(dig-program-options): Move from here...
* lisp/net/dig.el (dig-program-options): ...to here.
(dig-invoke): Respect 'dig-program-options'.
(dig): Prompt for DNS server when given double prefix argument.
2022-07-07 Eli Zaretskii <eliz@gnu.org>
Fix undo of changes in cloned indirect buffers
* lisp/simple.el (primitive-undo): If the visited-modtime of the
indirect buffer's file is bogus, use the modtime of the file
visited by its base buffer.
* src/undo.c (record_first_change): Call
'buffer_visited_file_modtime' with the correct buffer, instead of
always calling 'Fvisited_file_modtime', which returns possibly
bogus values for indirect buffers.
* src/fileio.c (Fset_visited_file_modtime): Signal a meaningful
error for indirect buffers.
(buffer_visited_file_modtime): New function, with implementation
taken from 'Fvisited_file_modtime'.
(Fvisited_file_modtime): Call 'buffer_visited_file_modtime'.
* src/lisp.h: Add prototype for 'buffer_visited_file_modtime'.
(Bug#56397)
2022-07-07 Stefan Kangas <stefan@marxist.se>
* lisp/net/dig.el (dig-exit): Mark for 'dig-mode'.
2022-07-07 Visuwesh <visuweshm@gmail.com>
Make the Indian itrans methods more phonetic
The characters ऋ and ॠ are pronunced as ru in languages such as
Marathi, Gujarati, Telugu, etc. so add new translation rules that
reflects this sound. (bug#56414)
* lisp/language/ind-util.el (indian-itrans-v5-table): Add new
translation rules to make the input method more phonetic.
(indian-tml-base-table, indian-tml-base-digits-table): Fix typo.
2022-07-07 Juri Linkov <juri@linkov.net>
Don't accumulate trailing newlines on every save of .dir-locals.el
* lisp/files-x.el (modify-dir-local-variable): Insert a newline
only after creating a new file.
(dir-locals-to-string): Remove newline to not add more newlines
on every save.
2022-07-07 Po Lu <luangruo@yahoo.com>
Fix `trace-function' default buffer
* lisp/emacs-lisp/trace.el (trace--read-args): Don't use
format-prompt; instead, use DEF arg to read-buffer.
2022-07-06 Sean Whitton <spwhitton@spwhitton.name>
gnus-advanced-body: Fix return value
* gnus-logic.el (gnus-advanced-body): Return whether the search
succeeded, not the value of one of the cleanup forms.
2022-07-06 Po Lu <luangruo@yahoo.com>
Fix NS build
* src/keyboard.c (process_special_events): Don't define copy and
moved events on the wrong toolkit.
2022-07-06 Po Lu <luangruo@yahoo.com>
Port `x-lost-selection-functions' to Haiku
* src/haiku_io.c (haiku_len): Add `CLIPBOARD_CHANGED_EVENT'.
* src/haiku_select.cc (be_update_clipboard_count): Set ownership
flags.
(be_handle_clipboard_changed_message):
(be_start_watching_selection): New functions.
* src/haiku_support.cc (class Emacs): Handle
B_CLIPBOARD_CHANGED.
* src/haiku_support.h (enum haiku_event_type): New event
`CLIPBOARD_CHANGED_EVENT'.
(struct haiku_clipboard_changed_event): New struct.
* src/haikuselect.c (haiku_handle_selection_clear)
(haiku_selection_disowned, haiku_start_watching_selections): New
functions.
(syms_of_haikuselect): New defsym and defvar.
* src/haikuselect.h: Update prototypes.
* src/haikuterm.c (haiku_read_socket): Handle selection events.
(haiku_term_init): Start watching selections.
* src/haikuterm.h: Update prototypes.
* src/keyboard.c (kbd_buffer_get_event, process_special_events)
(mark_kboards): Handle SELECTON_CLEAR_EVENTs correctly on Haiku.
2022-07-06 Po Lu <luangruo@yahoo.com>
Avoid excessive synchronization performing "xterm" drops
* src/xterm.c (x_dnd_do_unsupported_drop): Asynchronously catch
errors around XSendEvent.
2022-07-06 Stefan Kangas <stefan@marxist.se>
End new .dir-locals.el files with a newline
* lisp/files-x.el (dir-locals-to-string): Add newline at the end of
newly created .dir-locals.el files. This avoids git complaining about
"No newline at end of file".
2022-07-06 Stefan Kangas <stefan@marxist.se>
Autoload safe local property for plstore-encrypt-to
* lisp/plstore.el (plstore-encrypt-to): Autoload 'safe-local-variable'
property for improved security.
2022-07-06 Stefan Kangas <stefan@marxist.se>
Prefer defcustom :safe to putting 'safe-local-variable'
* lisp/emacs-lisp/lisp-mode.el (lisp-indent-offset)
(lisp-body-indent, emacs-lisp-docstring-fill-column):
* lisp/files.el (version-control):
* lisp/progmodes/modula2.el (m2-indent):
* lisp/progmodes/octave.el (octave-block-offset):
* lisp/progmodes/sh-script.el (sh-basic-offset):
* lisp/progmodes/tcl.el (tcl-indent-level)
(tcl-continued-indent-level):
* lisp/simple.el (fill-prefix):
* lisp/textmodes/fill.el (colon-double-space):
* lisp/textmodes/paragraphs.el (paragraph-start)
(paragraph-separate, sentence-end-double-space)
(sentence-end-without-period, sentence-end-without-space)
(sentence-end, sentence-end-base, page-delimiter)
(paragraph-ignore-fill-prefix):
* lisp/textmodes/tex-mode.el (tex-fontify-script):
* lisp/vc/add-log.el (add-log-dont-create-changelog-file):
* lisp/vc/vc-hooks.el (vc-follow-symlinks): Prefer defcustom :safe to
putting 'safe-local-variable'.
2022-07-06 Juri Linkov <juri@linkov.net>
* lisp/repeat.el (describe-repeat-maps): Handle non-symbol keymap (bug#21634).
2022-07-06 Juri Linkov <juri@linkov.net>
Add new args MESSAGE and TIMEOUT to set-transient-map (bug#21634)
* lisp/subr.el (set-transient-map): Add new args MESSAGE and TIMEOUT.
(set-transient-map-timeout, set-transient-map-timer): New variables.
* lisp/international/emoji.el (emoji-zoom-increase):
* lisp/indent.el (indent-rigidly):
* lisp/face-remap.el (text-scale-adjust, global-text-scale-adjust):
Use the arg MESSAGE of set-transient-map.
* doc/lispref/keymaps.texi (Controlling Active Maps): Mention new args
MESSAGE and TIMEOUT of set-transient-map.
2022-07-06 Stefan Kangas <stefan@marxist.se>
Make some additional defcustom types more restrictive
* lisp/desktop.el (desktop-lazy-idle-delay):
* lisp/files.el (dired-kept-versions)
(kept-old-versions, kept-new-versions):
* lisp/filesets.el (filesets-max-submenu-length)
(filesets-max-entry-length, filesets-tree-max-level)
(filesets-query-user-limit):
* lisp/hi-lock.el (hi-lock-file-patterns-range)
(hi-lock-highlight-range):
* lisp/ido.el (ido-max-work-directory-list):
* lisp/image/gravatar.el (gravatar-cache-ttl):
* lisp/imenu.el (imenu-auto-rescan-maxout, imenu-max-items):
* lisp/informat.el (Info-split-threshold):
* lisp/mail/hashcash.el (hashcash-default-payment)
(hashcash-default-accept-payment):
* lisp/mail/mail-hist.el (mail-hist-history-size):
* lisp/mail/smtpmail.el (smtpmail-retries):
* lisp/msb.el (msb-display-most-recently-used):
* lisp/nxml/rng-valid.el (rng-state-cache-distance)
(rng-validate-chunk-size):
* lisp/progmodes/gdb-mi.el (gdb-max-source-window-count):
* lisp/recentf.el (recentf-arrange-by-rules-min-items):
* lisp/simple.el (kill-ring-max, mark-ring-max)
(global-mark-ring-max):
* lisp/tab-line.el (tab-line-tab-name-truncated-max):
* lisp/term.el (term-buffer-maximum-size, term-input-chunk-size):
* lisp/thumbs.el (thumbs-max-image-number)
(thumbs-thumbsdir-max-size, thumbs-relief, thumbs-margin)
(thumbs-image-resizing-step):
* lisp/type-break.el (type-break-interval)
(type-break-good-rest-interval, type-break-query-interval)
(type-break-warning-repeat):
* lisp/vc/compare-w.el (compare-windows-sync-string-size):
* lisp/woman.el (woman-fill-column): Use defcustom :type natnum.
* lisp/emacs-lisp/backtrace.el (backtrace-line-length):
* lisp/doc-view.el (doc-view-conversion-refresh-interval):
Use defcustom :type natnum and allow the nil value.
* lisp/gnus/spam-stat.el (spam-stat-process-directory-age):
Use defcustom :type integer.
2022-07-06 Gregory Heytings <gregory@heytings.org>
Fix improvement of isearch in auto-narrow-mode.
* lisp/files.el (auto-narrow--reset-isearch-lazy-highlight): New internal
function.
(auto-narrow-pre-command-function, auto-narrow-post-command-function): Use the
new internal function.
2022-07-06 Stefan Kangas <stefan@marxist.se>
Fix missing :value with defcustom const :type
* lisp/calendar/calendar.el (calendar-intermonth-header)
(calendar-intermonth-text, calendar-date-style):
* lisp/calendar/diary-lib.el (diary-face-attrs):
* lisp/emacs-lisp/package.el (package-check-signature):
* lisp/erc/erc-dcc.el (erc-dcc-get-default-directory):
* lisp/gnus/gnus-art.el (gnus-auto-select-part):
* lisp/gnus/gnus-cus.el (gnus-agent-parameters):
* lisp/gnus/gnus.el (gnus-user-agent):
* lisp/mail/rmail.el (rmail-retry-ignored-headers):
* lisp/progmodes/sh-script.el (sh-indent-after-continuation):
Fix missing :value with defcustom const :type.
2022-07-06 Gregory Heytings <gregory@heytings.org>
Improve isearch in auto-narrow-mode.
* lisp/isearch.el (isearch-search): Set isearch-lazy-highlight to nil before
widening in auto-narrow-mode.
* lisp/files.el (auto-narrow--isearch-lazy-highlight): New internal variable.
(auto-narrow-pre-command-function, auto-narrow-post-command-function): Use it.
2022-07-06 Po Lu <luangruo@yahoo.com>
Fix infinite looping around Haiku menus
* src/haikumenu.c (haiku_menu_show): Block SIGIO around menu
event loop.
* src/haikuterm.c (haiku_read_socket): Flush tooltip frames
after resize.
2022-07-06 Davide Masserut <dm@mssdvd.com>
Send region to the subshell specified by the current file interpreter
* sh-script.el (sh-execute-region): Send region to the subshell
specified by the current file interpreter (bug#56406).
2022-07-06 Manuel Giraud <manuel@ledu-giraud.fr>
Remove soft newlines in longlines-mode
* lisp/longlines.el (longlines-mode, longlines-encode-string): Update
from `buffer-substring-filters' to `filter-buffer-substring-function'.
Remove soft newlines in substring (bug#56335).
2022-07-06 Gregory Heytings <gregory@heytings.org>
Various improvements to auto-narrow mode.
* lisp/files.el (auto-narrow-display-length): Improve docstring.
(auto-narrow-widen-automatically): Add 'undo' to the command list.
(auto-narrow-hook): New defcustom.
(auto-narrow-pre-command-function, auto-narrow-post-command-function):
Move initialization code.
(auto-narrow-mode): Do not make the 'auto-narrow-mode' permanent local
anymore.
* lisp/font-lock.el (turn-off-font-lock-mode): New convenience function.
* src/xdisp.c (set_vertical_scroll_bar): Fix typo.
(redisplay_window): Use the new convenience function.
* src/buffer.h (BUFFER_NEEDS_AUTO_NARROWING_P,
BUFFER_AUTO_NARROWED_NON_NARROWED_P): Two new convenience functions.
* src/window.c (Frecenter): Do not recenter auto-narrowed buffers that
are not actually narrowed.
* etc/NEWS: Improvement.
* doc/emacs/display.texi (Auto-Narrowing): Improvement.
2022-07-06 F. Jason Park <jp@neverwas.me>
* lisp/erc/erc-track.el (erc-track-minor-mode-map): Doc fix.
2022-07-06 dickmao <dick.r.chiang@gmail.com>
Use compatibility macro for ISUPPORT caching in ERC
* lisp/erc/erc-backend.el (erc--with-memoization): Defalias was a
kung-fu I've never seen before. (Bug#56340)
2022-07-06 Po Lu <luangruo@yahoo.com>
Stop synchronizing after sending XEmbed events
* src/xterm.c (xembed_send_message): Don't sync and handle
errors, which is actually why the XSync call in the spec exists.
2022-07-06 Martin Rudalics <rudalics@gmx.at>
Fix 'fit-frame-to-buffer' (Bug#56102)
* lisp/window.el (fit-frame-to-buffer-sizes): Fix doc-string.
Give calls to 'max' a second argument so they do something
useful. If ONLY equals 'vertically', call
'window-text-pixel-size' with X-LIMIT nil (Bug#56102). For
minimum sizes of the window to fit, use 'window-safe-min-size' by
default.
* doc/lispref/windows.texi (Resizing Windows): Fix descriptions of
'fit-frame-to-buffer' and 'fit-frame-to-buffer-sizes'.
2022-07-06 Po Lu <luangruo@yahoo.com>
Fix the MS-DOS build
* msdos/sedlibmk.inp: Define GL_GNULIB_RAWMEMCHR.
* src/process.c (Fsignal_names): Disable on MS-DOS and use
SIGNUM_BOUND, which is always provided by gnulib.
2022-07-06 Po Lu <luangruo@yahoo.com>
Speed up interning XDS atoms
* src/xselect.c (symbol_to_x_atom, x_atom_to_symbol)
(syms_of_xselect): Handle new atoms.
* src/xterm.c (x_atom_refs):
* src/xterm.h (struct x_display_info): New atoms
`XdndDirectSave0', `XdndActionDirectSave' and `text/plain'.
2022-07-06 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
* admin/merge-gnulib (AVOIDED_MODULES): Add chmod.
2022-07-06 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
6b5d829d9d Add index entry for "ignore case"
29e1459965 ; * lisp/files.el (remote-file-name-inhibit-cache): Minor ...
2022-07-06 Paul Eggert <eggert@cs.ucla.edu>
Adjust better to Autoconf quoting style change
* admin/gitmerge.el (gitmerge-emacs-version):
* admin/nt/dist-build/build-zips.sh (ACTUAL_VERSION):
* admin/quick-install-emacs (VERSION):
* lisp/cedet/ede/emacs.el (ede-emacs-version):
Adjust to change in configure.acs Autoconf quoting style.
* etc/srecode/ede-autoconf.srt:
* test/lisp/progmodes/autoconf-tests.el:
(autoconf-tests-current-defun-function-define)
(autoconf-tests-current-defun-function-subst):
Use better Autoconf quoting.
* make-dist (version): Simplify.
2022-07-05 Po Lu <luangruo@yahoo.com>
Reduce duplicate code cleaning up DND processes
* src/xterm.c (x_restore_events_after_dnd): New function.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop): Use
that instead of manually cleaning up properties and events.
2022-07-05 Po Lu <luangruo@yahoo.com>
Don't select for unnecessary properties during DND
* src/xterm.c (x_dnd_begin_drag_and_drop): Don't select for
property changes when not using toplevels.
2022-07-05 Po Lu <luangruo@yahoo.com>
Fix announcements of XDND mouse rectangles
* lisp/x-dnd.el (x-dnd-handle-xdnd): Use correct meaning of "2",
which isn't well documented.
* src/xterm.c (handle_one_xevent): Likewise. Also fix unpacking
of mouse rects.
2022-07-05 Gregory Heytings <gregory@heytings.org>
Actually fix the long lines display bug (bug#56393).
* lisp/files.el (auto-narrow-mode): New minor mode.
(auto-narrow-pre-command-function, auto-narrow-post-command-function):
New auxiliary functions for the minor mode.
(auto-narrow-display-length, auto-narrow-widen-automatically): New
defcustoms for the minor mode.
(auto-narrow--widen-automatically, auto-narrow--isearch-widen-automatically,
auto-narrow--initialized): New internal variables for the minor mode.
* src/buffer.h (struct buffer): New internal variable for the minor mode.
(bset_auto_narrow__narrowing_state, BUFFER_AUTO_NARROWED_P): New
auxiliary functions.
* src/buffer.c (init_buffer_once, syms_of_buffer): New internal variable
for the minor mode. Update the docstring of mode-line-format.
* src/fileio.c (Finsert_file_contents): Detect whether the minor mode should
be entered when the buffer is displayed.
(syms_of_fileio): New defcustom for the minor mode.
* src/keyboard.c (syms_of_keyboard): New hook functions for the minor mode.
(command_loop_1): Execute the hook functions.
* src/xdisp.c (redisplay_window): Enter the minor mode when the buffer is
displayed.
(decode_mode_spec): Indicate when the minor mode is active
in the modeline. Indicate the buffer position relative to the whole buffer.
(set_vertical_scroll_bar): Indicate the buffer position relative to the
whole buffer.
(syms_of_xdisp): Two new symbols.
* lisp/isearch.el (isearch-widen-automatically): New defcustom.
(isearch-search): Use the new defcustom.
* lisp/bindings.el (mode-line-modes): Do not propertize the indication
in the modeline when the new minor mode is active.
* etc/NEWS: Announce the new minor mode, and remove the unobsoletion
indication for 'longlines-mode'.
* lisp/longlines.el: Reobsolete longlines-mode.
* doc/emacs/display.texi (Auto-Narrowing): New section, describing the new
minor mode.
(Display): Entry for the new section.
* doc/emacs/trouble.texi (Long Lines): Remove the section.
(Lossage): Remove the entry for the Long Lines section.
* doc/emacs/emacs.texi (Top): Remove the entry for the Long Lines section.
2022-07-05 Glenn Morris <rgm@gnu.org>
* make-dist: Fix after recent configure.ac quoting changes.
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix custom-initialize-reset bootstrap error
* lisp/custom.el (custom-initialize-reset): Fix bootstrap problem
by avoiding when-let.
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix rcirc buffer name collisions
* lisp/net/rcirc.el (rcirc-handler-NICK): Avoid naming collisions
when renaming buffers (bug#45872).
2022-07-05 Michael Albinus <michael.albinus@gmx.de>
Mention remote-file-name-inhibit-auto-save-visited in Tramp manual
* doc/misc/tramp.texi (Auto-save File Lock and Backup):
Explain remote-file-name-inhibit-auto-save-visited.
2022-07-05 Stefan Kangas <stefan@marxist.se>
Add index entry for "ignore case"
* doc/emacs/glossary.texi (Glossary): Add index entry for "ignore
case" pointing to "Case Folding".
2022-07-05 Stefan Kangas <stefan@marxist.se>
Rename new option to remote-file-name-inhibit-auto-save-visited
* lisp/files.el (remote-file-name-inhibit-auto-save-visited):
Rename from 'auto-save-visited-remote-files' and invert logic.
(auto-save-visited-mode): Adjust accordingly. (Bug#41333)
Suggested by Michael Albinus <michael.albinus@gmx.de>.
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Give a warning if setopt has been used with an invalid value
* lisp/cus-edit.el (setopt--set): Mark the variable for checking.
* lisp/custom.el (custom-initialize-reset): Give a warning if the
type is wrong (bug#56400).
* lisp/wid-edit.el (widget-convert): Autoload.
2022-07-05 Stefan Kangas <stefan@marxist.se>
Re-fix narrowing problem in tramp-debug-buffer-command-completion-p
* lisp/net/tramp.el (tramp-debug-buffer-command-completion-p):
Respect narrowing also for end of substring. (Bug#56225)
2022-07-05 Stefan Kangas <stefan@marxist.se>
Make some defcustom types more restrictive
* lisp/abbrev.el (abbrev-suggest-hint-threshold):
* lisp/bookmark.el (bookmark-bmenu-file-column)
(bookmark-menu-length):
* lisp/buff-menu.el (Buffer-menu-size-width)
(Buffer-menu-mode-width):
* lisp/calendar/calendar.el (calendar-week-start-day)
(calendar-intermonth-spacing, calendar-column-width)
(calendar-day-digit-width):
* lisp/calc/calc.el (calc-undo-length):
* lisp/calendar/timeclock.el (timeclock-workday):
* lisp/comint.el (comint-buffer-maximum-size)
(comint-input-ring-size):
* lisp/doc-view.el (doc-view-resolution, doc-view-image-width):
* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-max-column):
* lisp/emacs-lisp/comp.el (native-comp-debug)
(native-comp-verbose, native-comp-async-jobs-number):
* lisp/emacs-lisp/package.el (package-name-column-width)
(package-version-column-width, package-status-column-width)
(package-archive-column-width):
* lisp/eshell/esh-mode.el (eshell-buffer-maximum-lines):
* lisp/frame.el (blink-cursor-blinks):
* lisp/info.el (Info-breadcrumbs-depth):
* lisp/jit-lock.el (jit-lock-chunk-size):
* lisp/kmacro.el (kmacro-ring-max):
* lisp/menu-bar.el (yank-menu-length, yank-menu-max-items):
* lisp/midnight.el (clean-buffer-list-delay-general)
(clean-buffer-list-delay-special):
* lisp/net/dictionary.el (dictionary-port)
(dictionary-proxy-port):
* lisp/net/ldap.el (ldap-default-port):
* lisp/net/pop3.el (pop3-port, pop3-stream-length):
* lisp/net/rcirc.el (rcirc-default-port):
* lisp/net/sieve-manage.el (sieve-manage-default-port):
* lisp/play/spook.el (spook-phrase-default-count):
* lisp/play/tetris.el (tetris-buffer-width)
(tetris-buffer-height, tetris-width, tetris-height)
(tetris-top-left-x, tetris-top-left-y):
* lisp/profiler.el (profiler-sampling-interval):
* lisp/progmodes/sql.el (sql-port):
* lisp/recentf.el (recentf-max-menu-items):
* lisp/strokes.el (strokes-grid-resolution):
* lisp/tab-bar.el (tab-bar-tab-name-truncated-max):
* lisp/term/xterm.el (xterm-max-cut-length):
* lisp/time.el (display-time-interval, world-clock-timer-second):
* lisp/url/url-cache.el (url-cache-expire-time):
* lisp/url/url-cookie.el (url-cookie-save-interval):
* lisp/url/url-history.el (url-history-save-interval):
* lisp/url/url-queue.el (url-queue-parallel-processes)
(url-queue-timeout):
* lisp/url/url-vars.el (url-max-password-attempts)
(url-max-redirections):
* lisp/vc/emerge.el (emerge-min-visible-lines):
* lisp/vc/vc.el (vc-log-show-limit):
* lisp/window.el (window-min-height, window-min-width):
* lisp/winner.el (winner-ring-size): Use :type natnum.
* lisp/savehist.el (savehist-file-modes): Fix setting to nil value and
use :type natnum.
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Don't hard-code `M-c' in `read-regexp'
* lisp/replace.el (read-regexp-map): New map.
(read-regexp--case-fold, read-regexp-toggle-case-folding)
(read-regexp): Factor out to avoid hard-coding `M-c'.
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Documnt left/right mwheel events
* doc/lispref/commands.texi (Misc Events): Document left/right
mwheel events (bug#41722).
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Mention byte order marks in string-limit doc string
* lisp/emacs-lisp/subr-x.el (string-limit): Mention byte order
marks (bug#48324).
2022-07-05 Stefan Kangas <stefan@marxist.se>
New user option auto-save-visited-remote-files
* lisp/files.el (auto-save-visited-remote-files): New user option.
(auto-save-visited-mode): Use above new variable to decide whether
or not to save remote files. (Bug#41333)
2022-07-05 Stefan Kangas <stefan@marxist.se>
New user option auto-save-visited-mode-predicate
* lisp/files.el (auto-save-visited-mode-predicate): New defcustom.
(auto-save-visited-mode): Use above new variable as a predicate to
decide whether or not to save a buffer.
2022-07-05 Stefan Kangas <stefan@marxist.se>
Shorten name of recently added command to emacs-news-open-line
* lisp/textmodes/emacs-news-mode.el (emacs-news-open-line): Rename
from 'emacs-news-mode-open-line'.
2022-07-05 Po Lu <luangruo@yahoo.com>
Fix manually disowning Emacs drag atoms
* src/xterm.c (handle_one_xevent): Disown Motif drag atom if
eventp->time is CurrentTime as well. This can happen with some
synthetic events.
2022-07-05 Lars Ingebrigtsen <larsi@gnus.org>
Remove the interactive prefix from emoji-insert
* lisp/international/emoji.el (emoji-insert): Remove the prefix
action from this command, since the same is already available on
`C-x 8 e s', and we're considering using the prefix to copy to the
kill ring.
2022-07-05 Po Lu <luangruo@yahoo.com>
Allow immediately saving XDS drops
This fixes things with programs that have a very timeout, such
as Chromium, within which it isn't practical for the user to
confirm the default file name.
* lisp/x-dnd.el (x-dnd-direct-save-function): Add new choices to
defcustom.
(x-dnd-init-frame): Use fast protocol requests.
(x-dnd-save-direct-immediately): New function.
(x-dnd-handle-xds-drop): Fix nil values of selected file name.
2022-07-05 Paul Eggert <eggert@cs.ucla.edu>
Quote configure.ac arguments more consistently
This should help avoid further Autoconf portability gotchas such as
the one recently fixed in 2022-06-27T04:26:01Z!meyering@fb.com.
* autogen.sh (autoconf_min): Adjust pattern to match
updated configure.ac.
* configure.ac: Quote arguments more consistently,
as per the Autoconf manual.
2022-07-05 Paul Eggert <eggert@cs.ucla.edu>
Dont mishandle preset emacs_cv_lesstif
* configure.ac: Restore CFLAGS etc. correctly even when
emacs_cv_lesstif is already set on the command line.
2022-07-05 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d5e1424174 Expand docstrings related to auto-saving
2022-07-04 Po Lu <luangruo@yahoo.com>
Don't take XCB socket every time we want the no of the next request
* src/xterm.c (x_ignore_errors_for_next_request, x_uncatch_errors)
(x_check_errors, x_had_errors_p): Don't call XNextRequest
redundantly. Use NextRequest if it was immediately preceded by
XNextRequest, which updates dpy->request.
2022-07-04 Stefan Kangas <stefan@marxist.se>
New command emacs-news-mode-open-line
* lisp/textmodes/emacs-news-mode.el
(emacs-news-mode-open-line): New command.
(emacs-news-mode-map): Remap 'open-line' to above new command.
2022-07-04 Po Lu <luangruo@yahoo.com>
Improve support for remote files in XDS
* lisp/x-dnd.el (x-dnd-direct-save-function): Remove "local file
name" from documentation.
(x-dnd-save-direct): Handle remote file names normally.
(x-dnd-handle-xds-drop): Handle remote file names in URI.
2022-07-04 Po Lu <luangruo@yahoo.com>
Don't overestimate supported input extension version on GTK 3
* src/xterm.c (x_term_init): If minor > original_minor (the
maximum version supported by libXi), set it back to
original_minor.
2022-07-04 Alexander Adolf <alexander.adolf@condition-alpha.com>
Add reverse mapping for EUDC attribute names
* lisp/net/eudc.el (eudc-translate-query): new optional parameter to
reverse the mapping direction
(eudc-translate-attribute-list): new optional parameter to
reverse the mapping direction
2022-07-04 Stefan Monnier <monnier@iro.umontreal.ca>
(gnus-inverse-list-range-intersection): Update alias
* lisp/gnus/gnus-range.el (gnus-inverse-list-range-intersection):
Don't alias to an obsolete alias.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Expand docstrings related to auto-saving
* lisp/files.el (auto-save-visited-mode):
* lisp/simple.el (auto-save-mode): Expand docstring.
2022-07-04 Paul Eggert <eggert@cs.ucla.edu>
Fix core dump with x-get-local-selection
* src/xselect.c (Fx_get_local_selection): Check that VALUE has 4
elements, since x_get_local_selection can dump core otherwise.
This pacifies gcc -Wanalyzer-null-dereference, which found the
problem.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Add quit-window entry to list-timers menu
* lisp/emacs-lisp/timer-list.el (timer-list-mode-map): Add
quit-window entry to menu.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in emacs-lisp/*.el
* lisp/emacs-lisp/backtrace.el (backtrace-mode-map):
* lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-mode-map):
* lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode-map):
* lisp/emacs-lisp/crm.el (crm-local-completion-map)
(crm-local-must-match-map):
* lisp/emacs-lisp/debug.el (debugger-mode-map):
* lisp/emacs-lisp/edebug.el (edebug-mode-map, edebug-global-map)
(edebug-eval-mode-map):
* lisp/emacs-lisp/eieio-custom.el (eieio-custom-mode-map):
* lisp/emacs-lisp/elp.el (elp-results-symname-map):
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-shared-map):
* lisp/emacs-lisp/re-builder.el (reb-mode-map)
(reb-lisp-mode-map, reb-subexp-mode-map):
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map)
(tabulated-list-sort-button-map):
* lisp/emacs-lisp/timer-list.el (timer-list-mode-map):
2022-07-04 Stefan Kangas <stefan@marxist.se>
Document using make-composed-keymap with defvar-keymap
* doc/lispref/keymaps.texi (Inheritance and Keymaps): Document
using 'make-composed-keymap' with 'defvar-keymap'.
* lisp/help-mode.el (help-mode-map): Use defvar-keymap to make this
code match the above documentation change.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Doc fix; quote keys in face-remap.el
* lisp/face-remap.el (text-scale-adjust, global-text-scale-adjust):
Doc fix; quote keys.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Inherit instead of copying keymap in bookmark.el
* lisp/bookmark.el (bookmark-rename): Inherit instead of copying
keymap.
2022-07-04 Stefan Kangas <stefan@marxist.se>
* src/keymap.c (Fcopy_keymap): Document using defvar-keymap.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Use substitute-command-keys in Helper-help
* lisp/emacs-lisp/helper.el (Helper-help-scroller)
(Helper-help-options, Helper-help): Use substitute-command-keys.
(Helper-help-map): Prefer defvar-keymap.
2022-07-04 Po Lu <luangruo@yahoo.com>
Avoid code duplication converting XI event state in toolkit menu code
* src/xmenu.c (x_menu_translate_generic_event):
(popup_get_selection): Use `xi_convert_event_state' instead.
* src/xterm.c (xi_convert_event_state): Export on non-GTK
builds.
* src/xterm.h: Update prototypes.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Fix scrolling backwards in Helper-help
* lisp/emacs-lisp/helper.el (Helper-help-scroller): Fix scrolling
backwards.
2022-07-04 Mattias Engdegård <mattiase@acm.org>
Remove some useless `eval-when-compile`
* lisp/cedet/semantic/java.el (semantic-java-number-regexp):
* lisp/cedet/semantic/lex.el (semantic-lex-number-expression):
* lisp/emacs-lisp/cl-indent.el (common-lisp-indent-function-1):
* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression)
(lisp--el-match-keyword, lisp-string-in-doc-position-p):
* lisp/emacs-lisp/shorthands.el (shorthands-font-lock-shorthands):
* lisp/net/socks.el (socks-send-command):
* lisp/progmodes/meta-mode.el (meta-font-lock-keywords):
* lisp/shell.el (shell--parse-pcomplete-arguments):
* lisp/textmodes/sgml-mode.el (sgml-mode):
* lisp/textmodes/tex-mode.el (tex--guess-mode)
(tex-common-initialization, tex-input-files-re):
* lisp/textmodes/tildify.el (tildify-mode):
* lisp/xdg.el (xdg-line-regexp):
Eliminate `eval-when-compile` when the argument would be evaluated by
the compiler anyway.
2022-07-04 Mattias Engdegård <mattiase@acm.org>
Replace lisp-mode-symbol-regexp with (rx lisp-mode-symbol)
This is shorter, simplifies use inside rx expressions, and removes
need for eval-when-compile elsewhere (for later exploitation).
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-symbol): New rx-define.
(lisp-mode-symbol-regexp): Redefine using lisp-mode-symbol.
(lisp-imenu-generic-expression, lisp--el-match-keyword)
(lisp-fdefs, lisp-string-in-doc-position-p):
* lisp/emacs-lisp/checkdoc.el (checkdoc--error-bad-format-p):
* lisp/emacs-lisp/shorthands.el (shorthands-font-lock-shorthands):
Use lisp-mode-symbol instead of lisp-mode-symbol-regexp.
2022-07-04 Stefan Kangas <stefan@marxist.se>
* lisp/progmodes/ebrowse.el (ebrowse-tree-mode): Fix typo.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Remove remaining Helper-help support from view-mode
* lisp/view.el (view-old-Helper-return-blurb): Make obsolete.
(view--enable, view--disable): Delete remaining Helper-help support
code; view-mode stopped using it in 1995.
2022-07-04 Daanturo <daanturo@gmail.com>
Add file-parent-directory function
* doc/lispref/files.texi: Document the function.
* etc/NEWS: Add its entry.
* lisp/emacs-lisp/shortdoc.el: Add it to 'file-name' group.
* lisp/files.el: implementation (bug#56355).
2022-07-04 Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
lisp/thumbs.el: Fix calling the "convert" command
* lisp/thumbs.el (thumbs-call-convert): Pass 'action-prefix' and
'action' as a combined parameter. Do not pass 'arg' if it is nil.
(thumbs-modify-image): Do not pass "" as 'arg' to
'thumbs-call-convert' (bug#56375).
Some time in the past this was converted from using the shell to
passing the parameters directly, but the fallout was not handled
correctly.
2022-07-04 Lars Ingebrigtsen <larsi@gnus.org>
Preserve <title> in the Emacs manuals
* admin/admin.el (manual-html-fix-headers): Preserve the <title>
element (bug#48334).
2022-07-04 Lars Ingebrigtsen <larsi@gnus.org>
Don't bug out in manual-html-fix-index-2 on newer makeinfo versions
* admin/admin.el (manual-html-fix-index-2): Don't bug out if the
makeinfo version doesn't include <ul>.
2022-07-04 Visuwesh <visuweshm@gmail.com>
Exclude radio buttons when suggesting URI in eww
* lisp/net/eww.el (eww-links-at-point): Exclude radio links.
(bug#56366).
2022-07-04 Stefan Kangas <stefan@marxist.se>
New command help-fns-edit-mode-cancel
* lisp/help-fns.el (help-fns-edit-mode-cancel): New command.
(help-fns--edit-value-mode-map): Bind it to 'C-c C-k'.
(help-fns-edit-variable): Advertise it in help text.
2022-07-04 Po Lu <luangruo@yahoo.com>
Handle errors caused by ignoring errors with GDK's trap installed
* src/xterm.c (x_ignore_errors_for_next_request)
(x_stop_ignoring_errors): Also tell GDK to ignore errors from
the following requests. (bug#56372)
2022-07-04 Po Lu <luangruo@yahoo.com>
Always wait for XdndStatus before sending XdndDrop
* src/xterm.c (x_dnd_do_drop): New function.
(x_dnd_begin_drag_and_drop): Clear new flag.
(handle_one_xevent): Use that function; send drops upon receipt
of pending XdndStatus, to avoid race conditions where we don't
yet know the selected action.
2022-07-04 Po Lu <luangruo@yahoo.com>
Fix accessing dpyinfo after it is deallocated
* src/xterm.c (x_connection_closed): Print disconnect error for
the last terminal before freeing it.
2022-07-04 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
41472f3b6c Document 'jit-lock-debug-mode'
2022-07-03 Po Lu <luangruo@yahoo.com>
Display list of traps and handlers when crashing due to an X error
* src/xterm.c (x_connection_closed): Print list of installed
error handlers if not crashing due to an IO error.
(NO_INLINE): Include error serial in error message.
2022-07-03 Florian Rommel <mail@florommel.de>
Add support for fullscreen values fullheight and fullwidth on PGTK
* src/pgtkterm.c (window_state_event): Support values fullheight and
fullwidth for the fullscreen frame-parameter
* doc/lispref/frames.texi (Size Parameters): Document inability to
actively set hullheight/fullwidth for PGTK frames
* configure.ac: Bump GTK version for PGTK
* etc/NEWS: Change GTK version in PGTK announcement
2022-07-03 Po Lu <luangruo@yahoo.com>
Add some more error checking code to `x_stop_ignoring_errors'
* src/xterm.c (x_stop_ignoring_errors): Abort if no request was
actually made, making the state inconsistent.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Simplify lisp-el-font-lock-keywords-2 definition slightly
* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
Simplify slightly.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Quote some literal keys to get help-key-binding face
* lisp/align.el (align):
* lisp/bindings.el (undo-repeat-map):
* lisp/calc/calc-embed.el (calc-do-embedded):
* lisp/calc/calc-prog.el (calc-user-define-invocation):
* lisp/calc/calc-yank.el (calc--edit-mode):
* lisp/comint.el (comint-history-isearch)
* lisp/dired.el (dired-mode):
* lisp/emulation/viper.el (viper-mode):
* lisp/erc/erc-button.el (erc-button-face):
* lisp/erc/erc-track.el (erc-track-enable-keybindings):
* lisp/gnus/gnus-art.el (gnus-article-button-face):
* lisp/gnus/gnus-eform.el (gnus-edit-form):
* lisp/gnus/gnus-sum.el (gnus-summary-stop-at-end-of-message)
(gnus-summary-goto-unread):
* lisp/icomplete.el (icomplete-show-matches-on-no-input):
* lisp/image-mode.el (image-scroll-up):
* lisp/international/iso-transl.el (iso-transl-set-language):
* lisp/isearch.el (isearch-forward-regexp):
* lisp/misc.el (butterfly):
* lisp/outline.el (outline-minor-mode-cycle-filter)
(outline-minor-mode-cycle):
* lisp/progmodes/grep.el (rgrep):
* lisp/progmodes/gud.el (gud-gdb-repeat-map, gud-sdb-repeat-map)
(gud-dbx-repeat-map, gud-xdb-repeat-map, gud-perldb-repeat-map)
(gud-pdb-repeat-map, gud-guiler-repeat-map, gud-jdb-repeat-map):
* lisp/progmodes/idlw-shell.el (idlwave-shell-graphics-window-size)
(idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave-shell-debug-modifiers)
(idlwave-list-shell-load-path-shadows):
* lisp/progmodes/python.el (python-shell-get-process-or-error):
* lisp/repeat.el (repeat-check-key):
* lisp/replace.el (query-replace, query-replace-regexp)
(read-regexp):
* lisp/simple.el (read-extended-command-predicate):
* lisp/tab-bar.el (tab-bar-switch-repeat-map)
(tab-bar-move-repeat-map):
* lisp/term.el (ansi-term):
* lisp/textmodes/reftex-index.el (reftex-index-phrases-set-macro-key):
* lisp/vc/emerge.el (emerge-scroll-left, emerge-scroll-right):
* lisp/windmove.el:
* lisp/winner.el (winner-mode): Quote literal keys to get
'help-key-binding' face.
* lisp/comint.el (comint-insert-previous-argument): Use regular
quotes.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Use command substitutions instead of literal keys in some places
* lisp/emulation/viper-macs.el (ex-map, viper-set-register-macro):
* lisp/minibuffer.el (minibuffer-beginning-of-buffer-movement):
* lisp/speedbar.el (speedbar-frame-mode):
* lisp/subr.el (kbd):
* lisp/textmodes/page-ext.el (pages-directory)
(pages-directory-for-addresses):
* lisp/textmodes/reftex-toc.el: Use command substitutions instead of
literal keys.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Normalize definition of erc-track-minor-mode-map
* lisp/erc/erc-track.el (erc-track-minor-mode-map): Normalize keymap
definition.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Use substitute-command-keys in reftex-toc-show-help
* lisp/textmodes/reftex-toc.el (reftex-toc-help)
(reftex-toc-show-help): Use substitute-command-keys.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Font lock \\<> and \\{} command substitutions in docstrings
* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
Support \\<> and \\{} command substitutions.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Fix warning in last commit
* lisp/calc/calc-misc.el (calc-dispatch-help): Fix warning.
2022-07-03 Juri Linkov <juri@linkov.net>
Use more help-key-binding faces in repeat-mode message
* lisp/repeat.el (repeat-echo-message-string): Use
substitute-command-keys for repeat-exit-key as well.
2022-07-03 Juri Linkov <juri@linkov.net>
* lisp/mwheel.el: More fixes for global-text-scale (bug#48307)
(mouse-wheel-global-text-scale): Move down closer to mouse-wheel-text-scale.
(mouse-wheel-scroll-amount): Add :value global-text-scale and mention it
in the docstring.
(mouse-wheel-global-text-scale, mouse-wheel--setup-bindings):
Add mouse-wheel-down-alternate-event and mouse-wheel-up-alternate-event.
Allow a list of modifiers for 'text-scale'.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Improve calc-dispatch-help docstring
* lisp/calc/calc-misc.el (calc-dispatch-help): Use command
substitutions.
2022-07-03 Michael Albinus <michael.albinus@gmx.de>
Tramp code cleanup
* lisp/net/tramp-cache.el (tramp-get-file-property)
(tramp-get-connection-property): Make DEFAULT optional. Adapt callees.
* lisp/net/tramp.el:
* lisp/net/tramp-adb.el:
* lisp/net/tramp-cmds.el:
* lisp/net/tramp-compat.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-ftp.el:
* lisp/net/tramp-fuse.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-sshfs.el:
* lisp/net/trampver.el: Code cleanup.
* test/lisp/net/tramp-tests.el (tramp--test-sh-no-ls--dired-p)
(tramp--test-with-proper-process-name-and-buffer): Code cleanup.
2022-07-03 Florian Rommel <mail@florommel.de>
abort-redisplay: Add missing unbind_to in 'recenter'
* src/window.c (recenter): Add ubind_to before early return.
(Bug#56369)
2022-07-03 Stefan Monnier <monnier@iro.umontreal.ca>
lisp/elec-pair.el: Simplify last change
* lisp/elec-pair.el (electric-pair--with-syntax):
Rename from `electric-pair--with-text-syntax`.
Make `start` mandatory. Run `body` in the normal syntax if `start` is nil.
(electric-pair--with-syntax-1): New function, extracted from
`electric-pair--with-text-syntax`.
(electric-pair-syntax-info, electric-pair--balance-info):
Adjust calls accordingly.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Fix dired-goto-subdir prompt
* lisp/dired-aux.el (dired-goto-subdir): Fix prompt and improve
docstring. Add interactive mode tag for dired-mode.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Fix warnings in my last commit
* lisp/textmodes/emacs-news-mode.el (outline): Require.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Improve navigation keybindings in emacs-news-mode
* lisp/textmodes/emacs-news-mode.el (emacs-news-common-map): New
defvar-keymap. Bind navigation commands as in 'org-mode' and
'outline-minor-mode'.
(emacs-news-mode-map): Inherit from 'emacs-news-common-map'.
(emacs-news-view-mode-map): New defvar-keymap; inherit from
'emacs-news-common-map'.
2022-07-03 Eli Zaretskii <eliz@gnu.org>
Fix implementation of 'reset' face values
* src/xfaces.c (Finternal_merge_in_global_face)
(gui_supports_face_attributes_p): Only modify local copy of face
attributes when replacing 'reset' pseudo-values with real values.
(Bug#38771)
2022-07-03 Stefan Kangas <stefan@marxist.se>
Move dired-clean-up-buffers-too to dired.el
* lisp/dired-x.el (dired-clean-up-buffers-too)
(dired-clean-confirm-killing-deleted-buffers): Move from here...
* lisp/dired.el (dired-clean-up-buffers-too)
(dired-clean-confirm-killing-deleted-buffers): ...to
here. (Bug#21981)
(dired-clean-up-after-deletion): Adjust documentation.
* etc/NEWS: Announce the change.
2022-07-03 kobarity <kobarity@gmail.com>
Fix `python-nav-beginning-of-defun' line continuation using backslash
* lisp/progmodes/python.el (python-nav--beginning-of-defun): Allow
line continuation using backslash in defuns (bug#55702).
(python-info-looking-at-beginning-of-defun): Add CHECK-STATEMENT
argument.
2022-07-03 Stefan Kangas <stefan@marxist.se>
* lisp/dired-x.el (dired-omit-size-limit): Increase value.
2022-07-03 Lars Ingebrigtsen <larsi@gnus.org>
Make string-limit with encoding return complete glyphs
* lisp/emacs-lisp/subr-x.el (string-limit): Return more correct
results in the CODING-SYSTEM case for coding systems with BOM and
charset designations (bug#48324). Also amend the algorithm to
return complete glyphs, not just complete code points.
2022-07-03 Po Lu <luangruo@yahoo.com>
Improve performance when rejecting XI touch event
* src/xterm.c (handle_one_xevent): Avoid sync handling simple
error.
2022-07-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix streaming problems in nnimap-retrieve-headers
* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Don't stream the
UID FETCH commands, since the server may return the results
out-of-order (bug#56332).
2022-07-03 Lars Ingebrigtsen <larsi@gnus.org>
Add new function `seq-split'
* doc/lispref/sequences.texi (Sequence Functions): Document it.
* lisp/emacs-lisp/seq.el (seq-split): New function.
* lisp/emacs-lisp/shortdoc.el (sequence): Mention it.
2022-07-03 Allen Li <darkfeline@felesatra.moe>
elec-pair: Fix bug incorrectly hiding syntax-propertize-function
* lisp/elec-pair.el (electric-pair--with-text-syntax): New macro.
(electric-pair-syntax-info):
(electric-pair--balance-info):
(electric-pair--syntax-ppss, electric-pair--balance-info): Use it.
(electric-pair--with-uncached-syntax): Remove (bug#49629).
The main bug that this is fixing is `syntax-propertize-function' being
hidden in `electric-pair--balance-info' when the original syntax table
is to be used, not `electric-pair-text-syntax-table'.
Notably, this causes `electric-pair-mode' to often misbehave in HTML
files when pairing angle brackets.
This commit also flushes the cache before installing
`electric-pair-text-syntax-table', to prevent cached syntax for the
original table from affecting things.
2022-07-03 Po Lu <luangruo@yahoo.com>
Improve efficiency of `x_frame_highlight' and `x_frame_unhighlight'
* src/xterm.c (x_frame_highlight, x_frame_unhighlight): Don't
sync catching errors.
2022-07-03 Stefan Kangas <stefan@marxist.se>
* lisp/dired.el (dired-do-eww): New command.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Improve dired-do-{info,man} error handling
* lisp/dired.el (dired-do-man, dired-do-info): Use
'dired-get-file-for-visit' to get better error handling.
Interactive mode tagging.
2022-07-03 Eli Zaretskii <eliz@gnu.org>
Implement pseudo-value 'reset' of face attrributes
* doc/lispref/display.texi (Face Attributes):
* etc/NEWS: Document the new pseudo-value 'reset'.
* src/xfaces.c (realize_named_face, lookup_derived_face)
(gui_supports_face_attributes_p, lookup_named_face)
(Finternal_merge_in_global_face, merge_named_face, merge_faces):
Handle the 'reset' pseudo-value of a face's attribute.
(syms_of_xfaces): New symbol 'reset'.
(RESET_P): New macro.
(check_lface_attrs, Finternal_set_lisp_face_attribute): Allow
'reset' as a value of any attribute except ':inherit'.
(Bug#38771)
2022-07-03 James Thomas <jimjoe@gmx.net>
* lisp/leim/quail/indian.el ("malayalam-mozhi"): Set DETERMINISTIC.
2022-07-03 Po Lu <luangruo@yahoo.com>
Fix deadlocks with very old versions of libXi
* src/xfns.c (setup_xi_event_mask, Fx_create_frame): Set
`xi_mask' ourselves if the version of libXi is too old to have
working XIGetSelectedEvents.
* src/xterm.c (x_destroy_window): Free `xi_mask' with xfree in
that case.
2022-07-03 Eli Zaretskii <eliz@gnu.org>
Document 'jit-lock-debug-mode'
* doc/lispref/modes.texi (Other Font Lock Variables): Document
'jit-lock-debug-mode'.
2022-07-03 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
dc3d01a5af CC Mode: Fix a c-backward-token-2 call wrongly jumping bac...
e390396e68 Doc fixes; don't use obsolete names
c85f7c2e8a Don't refer to obsolete alias for insert-char
60ad45c5d2 Don't use obsolete face name in manoj-dark-theme
2022-07-02 Po Lu <luangruo@yahoo.com>
Speed up receiving drops over slow connections
* lisp/x-dnd.el (x-dnd-debug-errors): New variable.
(x-dnd-handle-drag-n-drop-event): Bind
`x-fast-protocol-requests' to t if that is off.
* src/xfns.c (Fx_change_window_property):
(Fx_delete_window_property):
* src/xselect.c (Fx_send_client_message, x_send_client_event):
Don't sync to check for errors if fast protocol requests are
enabled.
* src/xterm.c (x_catch_errors_for_lisp, x_check_errors_for_lisp)
(x_uncatch_errors_for_lisp): New functions.
(syms_of_xterm): New variable `x-fast-protocol-requests'.
* src/xterm.h: Update prototypes.
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
REQUIRE-MATCH doc string clarification
* src/minibuf.c (Fcompleting_read):
* lisp/minibuffer.el (read-file-name): Clarify what the return
value is in the REQUIRE-MATCH function case.
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix some typos in NEWS
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Add sanity check for Emacsen distributed without .el files
* src/lread.c (maybe_swap_for_eln): Add sanity check for Emacsen
distributed without .el files (bug#48342).
2022-07-02 Alan Mackenzie <acm@muc.de>
CC Mode: Fix a c-backward-token-2 call wrongly jumping back over macros.
This fixes bug #56256.
* lisp/progmodes/cc-fonts.el (c-font-lock-c++-lambda-captures): Replace a
c-backward-token-2, which could jump back too far leading to an infinite
loop, with a save-excursion to remember the point we've got to go back to.
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Filter out nul bytes when killing from a *grep* buffer
* lisp/progmodes/grep.el (grep-mode): Filter out the nul bytes
(bug#48321).
2022-07-02 Manuel Giraud <manuel@ledu-giraud.fr>
Add more separators to longlines-mode
* lisp/obsolete/longlines.el (longlines-breakpoint-chars): New
custom to have multiple breakpoint chars.
(longlines-set-breakpoint): Add a target-column parameter and use
`longlines-breakpoint-chars'.
(longlines-find-break-backward, longlines-find-break-foreward):
Use `longlines-breakpoint-chars'.
(longlines-wrap-line): Do not insert space upon merging, just
remove the soft newline. Fix "space before tab" in indent.
(longlines-merge-lines-p): Use the new target-column parameter to
find out if the next line could be merged with the current one.
(longlines-encode-region): Do not replace a soft newline with a
space, just remove it.
* etc/NEWS: New user option 'longlines-breakpoint-chars'
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Unobsolete longlines-mode (bug#18589)
2022-07-02 Stefan Kangas <stefan@marxist.se>
Use help-key-binding face in text scale adjust messages
* lisp/face-remap.el (text-scale-adjust)
(global-text-scale-adjust): Use substitute-command-keys.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Use help-key-binding face in repeat-mode message
* lisp/repeat.el (repeat-echo-message-string): Use
substitute-command-keys.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Make dired-jump repeatable in repeat-mode
* lisp/dired.el (dired-jump-map): New variable.
(dired-jump): Put 'repeat-map' property with 'dired-jump-map'.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Move dired-info and dired-man from dired-x to dired
* lisp/dired-x.el (dired-bind-man, dired-bind-info): Change into
defvars and make obsolete.
(dired-extra-startup): Doc fix.
(dired-info, dired-man): Move from here...
* lisp/dired.el (dired-do-info, dired-do-man): ...to here and
rename. (Bug#21981)
* lisp/dired.el (dired-mode-map): Bind 'I' and 'N' to 'dired-do-info'
and 'dired-do-man'.
* doc/misc/dired-x.texi (Miscellaneous Commands): Remove documentation
of 'dired-info' and 'dired-man'.
* doc/emacs/dired.texi (Dired Enter): Document 'dired-do-info' and
'dired-do-man'.
* etc/NEWS: Announce the above changes.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in nxml/*.el
* lisp/nxml/nxml-mode.el (nxml-mode-map):
* lisp/nxml/nxml-outln.el (nxml-outline-prefix-map)
(nxml-outline-show-map, nxml-outline-hiding-tag-map)
(nxml-outline-showing-tag-map): Prefer defvar-keymap.
2022-07-02 Po Lu <luangruo@yahoo.com>
Fix error handling for XCB Xlib
* src/xterm.c (xm_send_drop_message)
(xm_send_top_level_enter_message, xm_send_drag_motion_message)
(xm_send_top_level_leave_message, x_dnd_compute_toplevels)
(x_dnd_send_enter, x_dnd_send_position, x_dnd_send_leave)
(x_dnd_send_drop, handle_one_xevent, x_catch_errors_with_handler)
(x_request_can_fail, x_clean_failable_requests)
(x_ignore_errors_for_next_request, x_stop_ignoring_errors)
(x_uncatch_errors, x_check_errors, x_had_errors_p, x_error_handler)
(frame_set_mouse_pixel_position, x_focus_frame): Record serial
sequences instead of simply the next request when ignoring a
single request. Use XNextRequest instead of NextRequest, since
the latter is unreliable when using Xlib built with XCB.
* src/xterm.h (struct x_failable_request): New struct..
(struct x_display_info): Make failable request variables the
right type.
2022-07-02 Po Lu <luangruo@yahoo.com>
Fix display disconnect when tooltip frame is alive
* src/xterm.c (x_connection_closed): Don't dereference nil when
loop finds a tooltip frame.
2022-07-02 Gregory Heytings <gregory@heytings.org>
Command for global adjustments to the default face
* lisp/face-remap.el (global-text-scale-adjust): New command.
(text-scale-adjust): Refer to the new related command.
(global-text-scale-adjust-resizes-frames): New user option.
* lisp/mwheel.el (mouse-wheel-scroll-amount): Add the new command
to the mouse wheel scrolling events.
(mouse-wheel-global-text-scale): New function.
(mouse-wheel-mode): Use the new function with mouse-wheel-mode.
* doc/emacs/display.texi (Text Scale): Document the new command and
the new user option.
* etc/NEWS: Mention the new command and its bindings, and the new
user option.
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Add a comment about buffer_local_value/find_symbol_value
* src/data.c: Note that buffer_local_value is very similar
(bug#48281).
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Allow NUL characters in JSON input
* src/json.c (Fjson_parse_string, Fjson_parse_buffer): Allow NUL
characters in JSON (bug#48274).
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Make comint-watch-for-password-prompt more resilient
* lisp/comint.el (comint-watch-for-password-prompt): Don't try to
send commands to the process after it's exited (bug#56336). (This
commonly happens when invoked via `M-&'.)
2022-07-02 Michael Albinus <michael.albinus@gmx.de>
Preserve connection-local settings in dired
* lisp/dired-aux.el (dired-shell-command):
Preserve connection-local settings. (Bug#56333)
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
Add native-compile-prune-cache command
* lisp/emacs-lisp/comp.el (native-compile-prune-cache): New
command (bug#48108).
2022-07-02 Lars Ingebrigtsen <larsi@gnus.org>
native-comp-eln-load-path doc string fix
* src/comp.c (syms_of_comp): Fix grammar in doc string.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Doc fixes; don't use obsolete names
* etc/compilation.txt:
* lisp/mh-e/mh-funcs.el (mh-kill-folder): Don't use obsolete
names.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Don't refer to obsolete alias for insert-char
* lisp/leim/quail/persian.el: Don't refer to obsolete alias for
insert-char.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Don't use obsolete face name in manoj-dark-theme
* etc/themes/manoj-dark-theme.el (change-log-acknowledgment): Don't
use obsolete/non-existent face name.
2022-07-02 Eli Zaretskii <eliz@gnu.org>
* src/sheap.h (STATIC_HEAP_SIZE): Double the size of static heap.
2022-07-02 Po Lu <luangruo@yahoo.com>
Completely get rid of races during Motif drag window creation
* src/xterm.c (x_special_window_exists_p): New function.
(xm_get_drag_window_1): Rework workflow and display grabbing.
2022-07-02 Stefan Kangas <stefan@marxist.se>
* src/xfns.c (Fx_server_input_extension_version): Fix typo.
2022-07-02 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1c3d107cb5 Fix "C-u C-x =" for SPC
7e33618bbc ; * src/fns.c (Frequire): Fix a typo in the doc string. (...
6908309827 Doc fixes: don't refer to some obsolete items
dc3cb749f3 Remove obsolete cust-print from elisp index
9ffbbddf8e * admin/make-tarball.txt: Minor clarifications.
f5421104e9 Fix external image conversion on MS-Windows
6f22631a63 * doc/emacs/buffers.texi (Indirect Buffers): Mention modif...
# Conflicts:
# doc/emacs/buffers.texi
# lisp/emacs-lisp/nadvice.el
# lisp/image/image-converter.el
2022-07-02 Lele Gaifax <lele@metapensiero.it> (tiny change)
Fix repeated "the"
* configure.ac (EMACS_CONFIG_FEATURES):
* etc/NEWS:
* lisp/dnd.el (dnd-begin-text-drag):
* src/pgtkfns.c (Fx_display_mm_height, Fx_display_mm_width):
(Fx_display_backing_store, Fx_display_visual_class):
* src/xterm.c: Fix repeated "the". (Bug#56341)
2022-07-02 Visuwesh <visuweshm@gmail.com>
Fix fallout from bug#50143
* lisp/language/ind-util.el (indian-tml-base-table)
(indian-tml-base-digits-table): Add TAMIL OM sign and more Sanskrit
consonants to the table (bug#50143) (bug#56323).
2022-07-02 Omar Polo <op@omarpolo.com>
Improve rcirc's CertFP documentation
* doc/misc/rcirc.texi: Clarify meaning of key and password
* lisp/net/rcirc.el (rcirc-authinfo): Add example
2022-07-02 Po Lu <luangruo@yahoo.com>
Fix drag-and-drop from Chromium family browsers
* lisp/x-dnd.el (x-dnd-copy-types): New defcustom.
(x-dnd-default-test-function): Check if data type warrants using
`copy'.
(x-dnd-do-direct-save): Offer application/octet-stream as well.
2022-07-02 Stefan Kangas <stefan@marxist.se>
* lisp/ruler-mode.el (ruler-mode-map): Use defvar-keymap.
* lisp/epa-mail.el (epa-mail-mode-map): Use defvar-keymap.
2022-07-01 Stefan Kangas <stefan@marxist.se>
Font lock \\`' command substitutions in docstrings
* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2):
Support \\`' command substitutions.
2022-07-01 Po Lu <luangruo@yahoo.com>
Add interactive XDS test
* test/lisp/dnd-tests.el (dnd-tests-direct-save): New test.
2022-07-01 Stefan Monnier <monnier@iro.umontreal.ca>
* editfns.c (Fbyte_to_string): Use `make_unibyte_string`
2022-07-01 Po Lu <luangruo@yahoo.com>
Return the correct action from the Lisp side of drag-and-drop
* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Select
`window' when handling internal DND events.
(x-dnd-handle-unsupported-drop): Return an appropriate action.
* src/keyboard.c (kbd_buffer_get_event):
* src/termhooks.h (enum event_kind): Delete
`UNSUPPORTED_DROP_EVENT'.
* src/xterm.c (x_dnd_send_unsupported_drop): Set flags instead
of recording input event.
(x_clear_dnd_monitors): Rename to `x_clear_dnd_variables'. Also
clear unsupported drop data.
(x_dnd_begin_drag_and_drop): Run unsupported drop function
inline (and safely), and use its return value if it returned a
symbol.
(syms_of_xterm): Update doc string of
`x-dnd-unsupported-drop-function'.
* src/xterm.h: Update declarations.
2022-07-01 Stefan Kangas <stefan@marxist.se>
Use command substitution in kmacro.el
* lisp/kmacro.el (kmacro-bind-to-key, kmacro-view-macro-repeat):
Use command substitution.
2022-07-01 Stefan Kangas <stefan@marxist.se>
* doc/misc/erc.texi (Connecting): Fix typo.
2022-07-01 Eli Zaretskii <eliz@gnu.org>
Fix "C-u C-x =" for SPC
* lisp/descr-text.el (describe-char): Don't report 'nobreak-space'
face for SPC. (Bug#56337)
2022-07-01 Eli Zaretskii <eliz@gnu.org>
Fix quoting of file names in 'ctags'
* lib-src/etags.c (main) [WINDOWSNT || MSDOS]: Quote file names
according to the rules of the system shells.
2022-07-01 Lars Ingebrigtsen <larsi@gnus.org>
Add support for <mark> in shr
* lisp/net/shr.el (shr-mark): New face (bug#48211).
(shr-tag-mark): New function
2022-07-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix elisp-byte-compile-buffer requirements
* lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer):
Require bytecomp so that byte-compile-dest-file-function is
defined. (The byte compiler didn't catch this, because it's
defined in bytecomp.)
2022-07-01 dick r. chiang <dick.r.chiang@gmail.com>
Fix typo in Property Search manual entry
* doc/lispref/text.texi (Property Search): Fix typo (bug#56329).
2022-07-01 Lars Ingebrigtsen <larsi@gnus.org>
Make time-stamp-tests.el work in a Norwegian language enviroment
The short version of names for days/month is not necessary the same as
limiting the string with a #n operator. For instance:
(format-time-string "%^A" time)
=> "FREDAG"
(format-time-string "%^a" time)
=> "FR."
(time-stamp-string "%#3a" time)
=> "FRE"
2022-07-01 Po Lu <luangruo@yahoo.com>
Document XDS stuff
* doc/emacs/frames.texi (Drag and Drop):
* doc/lispref/frames.texi (Drag and Drop): Add documentation
about XDS features.
* etc/NEWS: Tag entry.
2022-07-01 Lars Ingebrigtsen <larsi@gnus.org>
Make it easier to debug nnimap-retrieve-headers
* lisp/gnus/nnimap.el (nnimap--max-retrieve-headers): New variable
to ease debugging.
(nnimap-retrieve-headers): Use it.
2022-07-01 Lars Ingebrigtsen <larsi@gnus.org>
Make the emoji-zoom commands use a transient map for repetition
* lisp/international/emoji.el (emoji-zoom-increase)
(emoji-zoom-decrease): Use a transient map for convenience.
2022-07-01 Po Lu <luangruo@yahoo.com>
Expand file names read from XDS functions
* lisp/x-dnd.el (x-dnd-handle-xds-drop): Expand file names
before use. Some GUI dialogs read un-expanded file names.
2022-07-01 Po Lu <luangruo@yahoo.com>
Prevent XdndPosition messages from rarely being sent out of band
* src/xterm.c (handle_one_xevent): Don't clear
`x_dnd_waiting_for_status_window' if a pending position message
was sent in reply to an XdndStatus event.
2022-07-01 Po Lu <luangruo@yahoo.com>
Support receiving XDS drops correctly
* etc/NEWS: Announce new feature. It is not yet documented.
* lisp/x-dnd.el (x-dnd-known-types): Add XdndDirectSave0.
(x-dnd-direct-save-function): New defcustom.
(x-dnd-xdnd-to-action): Add `direct-save'.
(x-dnd-maybe-call-test-function): If XDS is present, use `direct-save'.
(x-dnd-find-type): New function.
(x-dnd-handle-xdnd): Handle XDS position and drop messages.
(x-dnd-handle-direct-save): Don't use local-file-uri if nil.
(x-dnd-save-direct): New function.
(x-dnd-handle-octet-stream-for-drop):
(x-dnd-handle-xds-drop): New functions.
2022-07-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-06-29 19:13:08 UTC.
2022-06-30 Po Lu <luangruo@yahoo.com>
Add tests for XDS protocol support
* test/lisp/x-dnd-tests.el (x-dnd-tests-xds-property-value): New
variable.
(x-window-property): Handle new kind of window property.
(x-dnd-tests-xds-target-dir, x-dnd-tests-xds-name)
(x-dnd-tests-xds-include-hostname): New variables.
(x-dnd-tests-call-xds-converter): New function.
(x-begin-drag, x-change-window-property):
(x-delete-window-property): New replacement functions.
(x-dnd-tests-do-direct-save-internal): New function.
(x-dnd-tests-do-direct-save): New test.
2022-06-30 Po Lu <luangruo@yahoo.com>
Fix `clipboard-yank' inserting off the kill ring instead of CLIPBOARD
* lisp/select.el (gui-last-cut-in-clipboard)
(gui-last-cut-in-primary): New variables.
(gui-select-text): Set those variables.
(gui--selection-value-internal, gui-selection-value): Don't
return nil if the last cut did not own the chosen
selection. (bug#56325)
2022-06-30 Po Lu <luangruo@yahoo.com>
Disable middle click selection emulation during XDS
* doc/lispref/frames.texi (Drag and Drop): Document new
variable.
* lisp/x-dnd.el (x-dnd-do-direct-save): Disable drop emulation
during XDS drag-and-drop.
* src/keyboard.c (kbd_buffer_get_event): Handle recorded value.
* src/xterm.c (x_dnd_do_unsupported_drop): Return if new
variable is nil.
(x_dnd_send_unsupported_drop): Record value of new variable in
events.
(x_dnd_begin_drag_and_drop): Handle recorded value.
(syms_of_xterm): New variable `x-dnd-use-unsupported-drop'.
2022-06-30 F. Jason Park <jp@neverwas.me>
Update ERC's Info doc with network-ID related changes
* doc/misc/erc.texi: Update the `erc' and `erc-tls' entry-point
sections with the new :id keyword parameter. Expand the auth-info
related information in the passwords section. Remove all mention of
the variable `erc-rename-buffers', whose "on" behavior has been made
permanent.
* etc/ERC-NEWS: Add new section for future 5.5 release.
2022-06-30 F. Jason Park <jp@neverwas.me>
Optionally prevent sending multiline input in ERC
* lisp/erc/erc.el (erc-inhibit-multiline-input): Add option to cap the
number of lines to be sent before admonishing the user.
(erc-ask-about-multiline-input): Add option to ask instead of warning
user when `erc-inhibit-multiline-input' is reached.
(erc--check-prompt-input-for-excess-lines): Add validator to possibly
warn when too many lines are submitted for transmission.
* test/lisp/erc/erc-tests.el
(erc--check-prompt-input-for-excess-lines): Add test.
(Bug#54536)
2022-06-30 F. Jason Park <jp@neverwas.me>
Improve ERC's handling of multiline prompt input
* lisp/erc/erc.el (erc--pre-send-split-functions): Add new internal
hook allowing members to revise individual lines before sending. This
was created with an eye toward possibly exporting it publicly as a
customizable option.
(erc-last-input-time): Tweak meaning of variable to match likely
original intent, which is that it's only updated on successful calls
to `erc-send-current-line'.
(erc--discard-trailing-multiline-nulls): Conditionally truncate list
of lines to be sent, skipping trailing blanks. This constitutes a
behavioral change. But, considering the nature of the bug being
fixed, it is thought to be justified.
(erc--input-split): Add new internal struct containing split input
lines and flag for command detection.
(erc--input-line-delim-regexp): Add regex var for splitting multiline
prompt input.
(erc--blank-in-multiline-p): Add helper for detecting blank lines.
(erc--check-prompt-input-for-multiline-blanks,
erc--check-prompt-input-for-point-in-bounds,
erc--check-prompt-input-for-running-process): New functions to
encapsulate logic for various pre-flight idiot checks.
(erc--check-prompt-input-functions): Add new hook for validating
prompt input prior to clearing it, internal for now.
(erc-send-current-line): Pre-screen for blank lines and bail out if
necessary.
(erc-send-input): Add optional param to skip checking for blank lines.
Call hook `erc--pre-send-split-functions'.
* test/lisp/erc/erc-tests.el (erc-ring-previous-command): Use new test
helper.
(erc--input-line-delim-regexp,
erc--blank-in-multiline-input-p): Add tests.
(erc-tests--send-prep, erc-tests--set-fake-server-process,
erc-tests--with-process-input-spy): Add test helpers.
(erc--check-prompt-input-functions, erc-send-current-line,
erc-send-whitespace-lines): Add tests.
(Bug#54536)
2022-06-30 F. Jason Park <jp@neverwas.me>
Fix regression in erc-send-input-line
* lisp/erc/erc.el (erc-send-input-line): Restore remedial single-space
padding to ensure empty messages typed at the prompt without an
explicit /msg aren't rejected by the server. This behavior is only
noticeable when `erc-send-whitespace-lines' is active.
* test/lisp/erc/erc-tests.el (erc-process-input-line): Add trailing
newline to more correctly simulate how it's actually called by
`erc-send-input'. (Bug#50008)
2022-06-30 F. Jason Park <jp@neverwas.me>
Standardize auth-source queries in ERC
* lisp/erc/erc.el (erc-password): Deprecate variable only used by
`erc-select-read-args'. Server passwords are primarily used as
surrogates for other forms of authentication. Such use is common but
nonstandard and often discouraged in favor of the de facto standard,
SASL. Folks in the habit of invoking `erc(-tls)' interactively should
be encouraged to use auth-source instead.
(erc-select-read-args): Before this change, `erc-select-read-args'
offered to use the value of a non-nil `erc-password' as the :password
argument for `erc' and `erc-tls', referring to it as the "default"
password. And when `erc-prompt-for-password' was nil and
`erc-password' wasn't, the latter was passed along unconditionally.
This only further complicated an already confusing situation for new
users, who in most cases shouldn't be worried about sending a PASS
command at all. Until SASL arrives, they should provide server
passwords manually or learn to use auth-source.
(erc-auth-source-server-function, erc-auth-source-join-function): New
user options for retrieving a password externally, ostensibly by
calling `auth-source-search'.
(erc--auth-source-determine-params-defaults): New helper for
`erc--auth-source-search' with potential for exporting publicly in the
future. Favors :host and :port fields above others. Prioritizes
network IDs over announced servers and dialed endpoints.
(erc--auth-source-determine-params-merge): Add new function for
merging contextual and default parameters. This is another contender
for possible exporting.
(erc--auth-source-search): New function for consulting auth-source and
sorting the result as filtered and prioritized by the previously
mentioned helpers.
(erc-auth-source-search): New function to serve as default
value for auth-source query-function options.
(erc-server-join-channel): Use user option for consulting auth-source
facility. Also accept nil for first argument (instead of server).
(erc-cmd-JOIN): Use above-mentioned facilities when joining new
channel. Omit server when calling `erc-server-join-channel'. Don't
filter target buffers twice. Don't call `switch-to-buffer', which
would create phantom buffers with names like target/server that were
never used. IOW, only switch to existing target buffers.
(erc--compute-server-password): Add new helper function for
determining password.
(erc-open, erc-determine-parameters): Move password figuring from the
first to the latter.
* lisp/erc/erc-services.el
(erc-auth-source-services-function): Add new option for consulting
auth-source in a NickServ context.
(erc-nickserv-get-password): Pass network-context ID, when looking up
password in `erc-nickserv-passwords' and when formatting prompt for
user input.
(erc-nickserv-passwords): Add comment to custom option definition type
tag.
* test/lisp/erc/erc-services-tests.el: Add new test file for above
changes. For now, stash auth-source-related tests here until a
suitable home can be found.
* lisp/erc/erc-join.el (erc-autojoin--join): Don't pass session-like
entity from `erc-autojoin-channels-alist' match to
`erc-server-join-channel'. Allow that function to decide for itself
which host to look up if necessary.
* test/lisp/erc/resources/base/auth-source/foonet.eld: New file.
* test/lisp/erc/resources/base/auth-source/nopass.eld: New file.
* test/lisp/erc/resources/erc-scenarios-common.el: New file.
* test/lisp/erc/resources/services/auth-source/libera.eld: New file.
* test/lisp/erc/erc-scenarios-auth-source.el: New file.
* test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file.
* test/lisp/erc/erc-scenarios-join-auth-source.el: New file.
* test/lisp/erc/resources/base/reuse-buffers/channel/barnet.eld: New file.
* test/lisp/erc/resources/base/reuse-buffers/channel/foonet.eld: New file.
* test/lisp/erc/resources/join/auth-source/foonet.eld: New file.
(Bug#48598)
2022-06-30 F. Jason Park <jp@neverwas.me>
Favor network identities in erc-join
* lisp/erc/erc-join.el (erc-autojoin-server-match): Favor network
identities, falling back on old definition.
(erc-autojoin--join): Add new helper containing common code from
hookees `erc-autojoin-after-ident' and `erc-autojoin-channels'.
(erc-autojoin-after-ident, erc-autojoin-channels): No longer make a
point of returning nil because the hooks they're registered on,
`erc-nickserv-identified-hook' and `erc-after-connect', don't stop on
success.
(erc-autojoin--mutate): Add helper for `erc-autojoin-add' and
`erc-autojoin-remove'.
(erc-autojoin-add, erc-autojoin-remove): Favor given network
identities, over networks, when matching keys for
`erc-autojoin-channels-alist'.
* test/lisp/erc/erc-scenarios-base-reconnect.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-newcmd-id.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-newcmd.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-recon-id.el: New file.
* test/lisp/erc/erc-scenarios-join-netid-recon.el: New file.
* test/lisp/erc/resources/erc-scenarios-common.el: New file.
* test/lisp/erc/resources/join/legacy/foonet.eld: New file.
* test/lisp/erc/resources/join/network-id/barnet.eld: New file.
* test/lisp/erc/resources/join/network-id/foonet-again.eld: New file.
* test/lisp/erc/resources/join/network-id/foonet.eld: New file.
* test/lisp/erc/resources/join/reconnect/foonet-again.eld: New file.
* test/lisp/erc/resources/join/reconnect/foonet.eld: New file.
2022-06-30 F. Jason Park <jp@neverwas.me>
Don't call erc-auto-query twice on PRIVMSG
* lisp/erc/erc-backend.el (erc-server-JOIN): Use `erc--open-target'
instead of `erc-join'.
(erc-server-PRIVMSG): Don't call `erc-auto-query' at all, and instead
borrow the portion of its logic that detects when a query buffer
should be created instead of a channel buffer.
* lisp/erc/erc.el (erc-cmd-QUERY): Update the mode line explicitly
after calling `erc-query' in case it's needed after `erc-setup-buffer'
runs. Simplify.
(erc-query, erc--open-target): Replace uses of `erc-query'
with `erc--open-target' and make the former obsolete. Don't call
`erc-update-mode-line' because `erc-open' already does that.
(erc-auto-query): Make this function obsolete. It was previously only
used in erc-backend.el and only sewed confusion.
(erc-query-on-unjoined-chan-privmsg): Add note questioning its role.
It was previously only used by the now deprecated `erc-auto-query'.
* test/lisp/erc/erc-scenarios-misc.el
(erc-scenarios-base-mask-target-routing): Add test for server masks.
* test/lisp/erc/resources/base/mask-target-routing/foonet.eld: New file.
2022-06-30 F. Jason Park <jp@neverwas.me>
Register erc-kill-buffer-function locally
* lisp/erc/erc.el (erc-kill-buffer-function): Don't add hook when
loading file. Move to major-mode setup and make buffer-local instead.
Depends on tests in bug#48598.
2022-06-30 F. Jason Park <jp@neverwas.me>
Add user-oriented test scenarios for ERC
* test/lisp/erc/erc-scenarios-base-association-nick.el: New file.
* test/lisp/erc/erc-scenarios-base-association-samenet.el: New file.
* test/lisp/erc/erc-scenarios-base-association.el: New file.
* test/lisp/erc/erc-scenarios-base-compat-rename-bouncer.el: New file.
* test/lisp/erc/erc-scenarios-base-misc-regressions.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-id.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-base.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-both.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer-recon-id.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-bouncer.el: New file.
* test/lisp/erc/erc-scenarios-base-netid-samenet.el: New file.
* test/lisp/erc/erc-scenarios-base-reconnect.el: New file.
* test/lisp/erc/erc-scenarios-base-renick.el: New file.
* test/lisp/erc/erc-scenarios-base-reuse-buffers.el: New file.
* test/lisp/erc/erc-scenarios-base-unstable.el: New file.
* test/lisp/erc/erc-scenarios-base-upstream-recon-soju.el: New file.
* test/lisp/erc/erc-scenarios-base-upstream-recon-znc.el: New file.
* test/lisp/erc/erc-scenarios-misc.el: New file.
* test/lisp/erc/erc-scenarios-services-misc.el: New file.
* test/lisp/erc/resources/base/assoc/bouncer-history/barnet.eld: New file.
* test/lisp/erc/resources/base/assoc/bouncer-history/foonet.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/again.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/foisted.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/refoisted.eld: New file.
* test/lisp/erc/resources/base/assoc/bumped/renicked.eld: New file.
* test/lisp/erc/resources/base/assoc/multi-net/barnet.eld: New file.
* test/lisp/erc/resources/base/assoc/multi-net/foonet.eld: New file.
* test/lisp/erc/resources/base/assoc/reconplay/again.eld: New file.
* test/lisp/erc/resources/base/assoc/reconplay/foonet.eld: New file.
* test/lisp/erc/resources/base/assoc/samenet/chester.eld: New file.
* test/lisp/erc/resources/base/assoc/samenet/tester.eld: New file.
* test/lisp/erc/resources/base/assoc/samenet/tester2.eld: New file.
* test/lisp/erc/resources/base/channel-buffer-revival/foonet.eld: New file.
* test/lisp/erc/resources/base/flood/soju.eld: New file.
* test/lisp/erc/resources/base/gapless-connect/barnet.eld: New file.
* test/lisp/erc/resources/base/gapless-connect/foonet.eld: New file.
* test/lisp/erc/resources/base/gapless-connect/pass-stub.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/barnet-again.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/barnet-drop.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/barnet.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/foonet-again.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/foonet-drop.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/foonet.eld: New file.
* test/lisp/erc/resources/base/netid/bouncer/stub-again.eld: New file.
* test/lisp/erc/resources/base/netid/samenet/chester.eld: New file.
* test/lisp/erc/resources/base/netid/samenet/tester.eld: New file.
* test/lisp/erc/resources/base/reconnect/aborted-dupe.eld: New file.
* test/lisp/erc/resources/base/reconnect/aborted.eld: New file.
* test/lisp/erc/resources/base/reconnect/options-again.eld: New file.
* test/lisp/erc/resources/base/reconnect/options.eld: New file.
* test/lisp/erc/resources/base/reconnect/timer-last.eld: New file.
* test/lisp/erc/resources/base/reconnect/timer.eld: New file.
* test/lisp/erc/resources/base/renick/queries/bouncer-barnet.eld: New file.
* test/lisp/erc/resources/base/renick/queries/bouncer-foonet.eld: New file.
* test/lisp/erc/resources/base/renick/queries/solo.eld: New file.
* test/lisp/erc/resources/base/renick/self/auto.eld: New file.
* test/lisp/erc/resources/base/renick/self/manual.eld: New file.
* test/lisp/erc/resources/base/renick/self/qual-chester.eld: New file.
* test/lisp/erc/resources/base/renick/self/qual-tester.eld: New file.
* test/lisp/erc/resources/base/reuse-buffers/server/barnet.eld: New file.
* test/lisp/erc/resources/base/reuse-buffers/server/foonet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/soju-barnet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/soju-foonet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/znc-barnet.eld: New file.
* test/lisp/erc/resources/base/upstream-reconnect/znc-foonet.eld: New file.
* test/lisp/erc/resources/erc-scenarios-common.el: New file.
* test/lisp/erc/resources/networks/announced-missing/foonet.eld: New file.
* test/lisp/erc/resources/services/password/libera.eld: New file.
Add test cases for locking down fundamental client behavior, much of
it involving the relationship between buffers and connections. Also
add accompanying resources subdir containing canned dialog scripts and
common code needed by various tests. For test cases demoing the
problematic behavior originally described in the initial report, see
update #4 on the bug tracker thread for bug#48598. Most reside in a
file named test/lisp/erc/erc-scenarios-48598.el introduced by the
patch "Add user-oriented test scenarios for ERC".
2022-06-30 F. Jason Park <jp@neverwas.me>
Address long-standing ERC buffer-naming issues
* lisp/erc/erc-backend.el (erc-server-connected): Revise doc string.
(erc-server-reconnect, erc-server-JOIN): Reuse original ID param from
the first connection when calling `erc-open'.
(erc-server-NICK): Apply same name generation process used by
`erc-open'; except here, do so for the purpose of "re-nicking".
Update network identifier and maybe buffer names after a user's own
nick changes.
* lisp/erc/erc-networks.el (erc-networks--id, erc-networks--id-fixed,
erc-networks--id-qualifying): Define new set of structs to contain all
info relevant to specifying a unique identifier for a network context.
Add a new variable `erc-networks--id' to store a local reference to a
`erc-networks--id' object, shared among all buffers in a logical
session.
(erc-networks--id-given, erc-networks--id-create,
erc-networks--id-on-connect, erc-networks--id--equal-p,
erc-networks--id-qualifying-init-parts,
erc-networks--id-qualifying-init-symbol,
erc-networks--id-qualifying-grow-id,
erc-networks--id-qualifying-reset-id,
erc-networks--id-qualifying-prefix-length,
erc-networks--id-qualifying-update, erc-networks--id-reload,
erc-networks--id-ensure-comparable, erc-networks--id-sort-buffers):
Add new functions to support management of `erc-networks--id' struct
instances.
(erc-networks--id-sep): New variable for to help when formatting
buffer names.
(erc-obsolete-var): Define new generic context rewriter.
(erc-networks-shrink-ids-and-buffer-names,
erc-networks--refresh-buffer-names,
erc-networks--shrink-ids-and-buffer-names-any): Add functions to
reassess all network IDs and shrink them if necessary along with
affected buffer names. Also add function to rename buffers so that
their names are unique. Register these on all three of ERC's
kill-buffer hooks because an orphaned target buffer is enough to keep
its session alive.
(erc-networks-rename-surviving-target-buffer): Add new function that
renames a target buffer when it becomes the sole bearer of a name
based on a target that has become unique across all sessions and, in
most cases, all networks. IOW, remove the @NETWORK-ID suffix from the
last remaining channel or query buffer after its namesakes have all
been killed off. Register this function with ERC's target-related
kill-buffer hooks.
(erc-networks--examine-targets): Add new utility function that visits
all ERC buffers and runs callbacks when a buffer-name collision is
encountered.
(erc-networks--qualified-sep): Add constant to hold separator between
target and suffix.
(erc-networks--construct-target-buffer-name,
erc-networks--ensure-unique-target-buffer-name,
erc-networks--ensure-unique-server-buffer-name,
erc-networks--maybe-update-buffer-name): Add helpers to support
`erc-networks--reconcile-buffer-names' and friends.
(erc-networks--reconcile-buffer-names): Add new buffer-naming strategy
function and helper for `erc-generate-new-buffer-name' that only run
in target buffers.
(erc-determine-network, erc-networks--determine): Deprecate former and
partially replace with latter, which demotes RPL_ISUPPORT-derived
NETWORK name to fallback in favor of known `erc-networks-alist'
members as part of shift to network-based connection-identity policy.
Return sentinel on failure. Expect `erc-server-announced-name' to be
set, and signal when it's not.
(erc-networks--name-missing-sentinel): Value returned when new
function `erc-networks--determine' fails to find network name. The
rationale for not making this customizable is that the value signifies
the pathological case where a user of an uncommon IRC setup has not
yet set a mapping from announced- to network name. And the chances of
there being multiple unknown networks is low.
(erc-set-network-name, erc-networks--set-name): Deprecate former and
partially replace with latter. Ding with helpful message, and don't
set `erc-network' when network name is not found.
(erc-networks--ensure-announced): Add new fallback function to ensure
`erc-server-announced-name' is set. Register with post-MOTD hooks.
(erc-unset-network-name): Deprecate function unused internally.
(erc-networks--insert-transplanted-content,
erc-networks--reclaim-orphaned-target-buffers,
erc-networks--copy-over-server-buffer-contents,
erc--update-server-identity): Add helpers for
`erc-networks--rename-server-buffer'. The first re-associates all
existing target buffers that ought to be owned by the new server
process. The second grabs buffer text from an old, dead server buffer
before killing it. It then inserts that text above everything in the
current, replacement server buffer. The other two massage the IDs of
related sessions, possibly renaming them as well. They may also
uniquify the current session's network ID.
(erc-networks--init-identity): Add new function to perform one-time
session-related setup. This could be combined with
`erc-set-network-name'.
(erc-networks--rename-server-buffer): Add new function to replace
`erc-unset-network-name' as default `erc-disconnected-hook' member;
renames server buffers once network is discovered; added to/removed
from `erc-after-connect' hook on `erc-networks' minor mode.
(erc-networks--bouncer-targets): Add constant to hold target symbols
of well known bouncer-configuration bots.
(erc-networks-on-MOTD-end): Add primary network-context handler to run
on 376/422 functions, just before logical connection is officially
established.
(erc-networks-enable, erc-networks-mode): Register main network-setup
handler with 376/422 hooks.
* lisp/erc/erc.el (erc-rename-buffers): Change this option's default
to t, remove the only instance where it's actually used, and make it
an obsolete variable.
(erc-reuse-buffers): Make this an obsolete variable, but take pains to
ensure its pre-28.1 behavior is preserved. That is, undo the
regression involving unwanted automatic reassociation of channel
buffers during joins, which arrived in ERC 5.4 and effectively
inverted the meaning of this variable, when nil, for channel buffers,
all without accompanying documentation or announcement.
(erc-generate-new-buffer-name): Replace current policy of appending a
slash and the invocation host name. Favor instead temporary names for
server buffers and network-based uniquifying suffixes for channels and
query buffers. Fall back to the TCP host:port<n> convention when
necessary. Accept additional optional params after the others.
(erc-get-buffer-create): Don't generate a new name when reconnecting,
just return the same buffer. `erc-open' starts from a clean slate
anyway, so this just keeps things simple. Also add optional params.
(erc-open): Add new ID param to for a network identifier explicitly
passed to an entry-point command. This is stored in the `given' slot
of the `erc-network--id' object. Also initialize the latter in new
connections and otherwise copy it over. As part of the push to recast
erc-networks.el as an essential library, set `erc-network' explicitly,
when known, rather than via hooks.
(erc, erc-tls): Add new ID keyword parameter and pass it to
`erc-open'.
(erc-log-irc-protocol): Use `erc--network-id' instead of the function
`erc-network' to determine preferred peer name.
(erc-format-target-and/or-network): This is called frequently from
mode-line updates, so renaming buffers here is not ideal. Instead, do
so in `erc-networks--rename-server-buffer'.
(erc-kill-server-hook): Add `erc-networks-shrink-ids-and-buffer-names'
as default member.
(erc-kill-channel-hook, erc-kill-buffer-hook): Add
`erc-networks-shrink-ids-and-buffer-names' and
`erc-networks-rename-surviving-target-buffer' as default member.
* test/lisp/erc/erc-tests.el (erc-log-irc-protocol): Use network-ID
focused internal API.
* test/lisp/erc/erc-networks-tests.el: Add new file that includes
tests for the above network-ID focused functions.
See bug#48598 for background on all of the above.
2022-06-30 F. Jason Park <jp@neverwas.me>
Add ERC test server and related resources
* test/lisp/erc/resources/erc-d/erc-d.el: New file.
* test/lisp/erc/resources/erc-d/erc-d-u.el: New file.
* test/lisp/erc/resources/erc-d/erc-d-i.el: New file.
* test/lisp/erc/resources/erc-d/erc-d-t.el: New file.
* test/lisp/erc/resources/erc-d/erc-d-tests.el: New file.
* test/lisp/erc/erc-scenarios-internal.el: New file to serve as
discoverable proxy for erc-d-tests.
2022-06-30 F. Jason Park <jp@neverwas.me>
Discourage ill-defined use of buffer targets in ERC
* lisp/erc/erc.el (erc-default-recipients, erc-default-target):
Explain that the variable has fallen out of favor and that the
function may have been used historically by third-party code for
detecting channel subscription status, even though that's never been
the case internally since at least the adoption of version control.
Recommend newer alternatives.
(erc--current-buffer-joined-p): Add possibly temporary predicate for
detecting whether a buffer's target is a joined channel. The existing
means are inconsistent, as discussed in bug#48598. The mere fact that
they are disparate is unfriendly to new contributors. For example, in
the function `erc-autojoin-channels', the `process-status' of the
`erc-server-process' is used to detect whether a buffer needs joining.
That's fine in that specific situation, but it won't work elsewhere.
And neither will checking whether `erc-default-target' is nil, so
long as `erc-delete-default-channel' and friends remain in play.
(erc-add-default-channel, erc-delete-default-channel, erc-add-query,
erc-delete-query): Deprecate these helpers, which rely on an unused
usage variant of `erc-default-recipients'.
* lisp/erc/erc-services.el: remove stray `erc-default-recipients'
declaration.
* lisp/erc/erc-backend.el (erc-server-NICK, erc-server-JOIN,
erc-server-KICK, erc-server-PART): wrap deprecated helpers to suppress
warnings.
* lisp/erc/erc-join.el (erc-autojoin-channels): Use helper to detect
whether a buffer needs joining. Prefer this to server liveliness, as
explained above.
2022-06-30 F. Jason Park <jp@neverwas.me>
Add eventual replacement for erc-default-recipients
* lisp/erc/erc.el (erc--target, erc--target-channel,
erc--target-channel-local): Add new structs to hold info on a buffer's
target; stored in a local variable of the same name.
(erc--target-from-string): Add standalone constructor for
`erc--target'.
(erc--default-target): Add temporary internal getter to ease
transition to `erc--target' everywhere.
(erc-open): Create above items in non-server buffers.
* lisp/erc/erc-backend.el (erc-server-NICK): Recreate `erc--target'
when necessary.
2022-06-30 F. Jason Park <jp@neverwas.me>
Add helper to determine local channels in ERC
* lisp/erc/erc.el (erc--valid-local-channel-p): Add internal helper to
determine whether an IRC channel is local according to its network's
CHANTYPES ISUPPORT parameter.
* test/lisp/erc/erc-tests.el (erc--valid-local-channel-p): Add test
for this helper.
2022-06-30 F. Jason Park <jp@neverwas.me>
Make ERC respect spaces in server passwords
* lisp/erc/erc.el (erc-login): Also known as connection passwords,
these are sent as the sole arg to the PASS command, which is nowadays
often overloaded with other semantics imposed by various entities to
convey things like bouncer or services creds.
2022-06-30 F. Jason Park <jp@neverwas.me>
Recognize ASCII and strict CASEMAPPINGs in ERC
* lisp/erc/erc.el (erc-downcase, erc--casemapping-rfc1459-strict,
erc--casemapping-rfc1459): Add new translation tables for the latter
two mappings and use them in `erc-downcase'.
* test/lisp/erc/erc-tests.el: Add test for `erc-downcase'.
2022-06-30 F. Jason Park <jp@neverwas.me>
Update ISUPPORT handling in ERC
* lisp/erc/erc-backend.el (erc--isupport-params): Add new variable to
hold a hashmap of parsed `erc-server-parameters' in a more useful
format. But keep `erc-server-parameters' around for public use. We
currently lack dedicated local variables for certain discovered IRC
session properties, such as what prefix characters are supported for
channels, etc. And the truth of this needs querying many times per
second at various points. As such, caching here seems justified but
can be easily removed if deemed otherwise because all ingredients are
internal.
(erc--parse-isupport-value): Add helper function that parses an
ISUPPORT value and returns the component parts with backslash-x hex
escapes removed. This can probably use some streamlining.
(erc--with-memoization): Add compat alias for use in internal ISUPPORT
getter. Should be moved to `erc-compat.el' when that library is fully
reincorporated.
(erc--get-isupport-entry): Add internal getter to look up ISUPPORT
items.
(erc-server-005): Treat `erc-server-response' "command args" field as
read-only. Previously, this field was set to nil after processing,
which was unhelpful to other parts of the library. Also call above
mentioned helper to parse values. And add some bookkeeping to handle
negation.
* lisp/erc/erc-capab.el (erc-capab-identify-send-messages): Use
internal ISUPPORT getter.
* lisp/erc/erc.el (erc-cmd-NICK, erc-parse-prefix,
erc-nickname-in-use): Use internal ISUPPORT getter.
* test/lisp/erc/erc-tests.el: Add tests for the above mentioned
changes in erc-backend.el.
2022-06-30 F. Jason Park <jp@neverwas.me>
Require erc-networks in erc.el
* lisp/erc/erc.el: Require erc-networks.el, which ERC can't run
without these days. To sidestep the circular dependency, require it
last, just after erc-goodies. Remove the `declare-function' for
`erc-network-name' because it's not currently needed at load time.
(erc-log-irc-protocol, erc-hide-current-message-p): Remove `fboundp'
guard logic from `erc-network-name' invocations but preserve meaning
by interpreting `erc-network' being unset to mean module isn't loaded
or authoritative network detection has failed.
(erc-format-network): Likewise here. At the moment, this function
always returns the empty string because the function
`erc-network-name' always returns non-nil, perhaps from the
fallback/failure sentinel "Unknown", perhaps from the printed form of
nil.
* lisp/erc/erc-networks.el (erc-network): This is called throughout
erc.el but was previously cumbersome to use on account of being
guarded by `fboundp'. It now relies on the fact that its namesake
variable is set in target buffers as well.
2022-06-30 F. Jason Park <jp@neverwas.me>
Don't set erc-server-announced-name unless known
* lisp/erc/erc.el (erc-open): whenever this function is called, the
variable `erc-server-announced-name' may be set locally in the calling
server buffer. However, if that buffer's dialed server matches that
of the one being created, the announced name is copied over on faith.
But there's no guarantee that the name will match the one ultimately
emitted by the server during its introductory burst. Beyond
potentially causing confusion in protocol logs, this behavior may
complicate debugging efforts. Setting the variable to nil helps
ensure a consistent environment when preparing a buffer for all newly
dialed connections. This commit also simplifies the setting of
`erc-server-connected', which is always nil when connecting and
vice-versa.
2022-06-30 F. Jason Park <jp@neverwas.me>
Allow exemption from flood penalty in erc-backend
* lisp/erc/erc-backend.el (erc-server-send, erc-server-PING): Change name
of param `forcep' in `erc-server-send' to `force' and change its type
to the union of the symbol `no-penalty' and the set of all other
non-nil values. In `erc-server-PING', use this exemption when calling
`erc-server-send'. This fix was fast tracked and summarily
incorporated into bug#48598 because users of the soju bouncer are all
affected. See update #5 in the bug's email thread under the section
entitled "Riders" for an explanation.
2022-06-30 F. Jason Park <jp@neverwas.me>
Customize displaying of ERC buffers on reconnect
* lisp/erc/erc-backend.el (erc--server-last-reconnect-count):
Add variable to record last reconnect tally.
* lisp/erc/erc.el (erc-reconnect-display): Add new option to specify
channel-buffer display behavior on reconnect.
(erc-setup-buffer): Use option `erc-reconnect-display' if warranted.
(erc-cmd-JOIN): Forget last reconnect count when issuing a manual
/JOIN command.
(erc-connection-established): Record reconnect count in internal var
before resetting.
(Bug#51753)
2022-06-30 F. Jason Park <jp@neverwas.me>
Remove duplicate ERC prompt on reconnect
* lisp/erc/erc-backend.el (erc--unhide-prompt, erc--hide-prompt,
erc--unhide-prompt-on-self-insert): Add functions to ensure prompt is
hidden on disconnect and shown when a user types /reconnect in a
disconnected server buffer.
(erc-process-sentinel): Register aforementioned function with
`pre-command-hook' when prompt is deleted after disconnecting.
(erc-server-PRIVMSG): Ensure prompt is showing when a new message
arrives from target.
* lisp/erc/erc.el (erc-hide-prompt): Repurpose unused option by
changing meaning slightly to mean "selectively hide prompt when
disconnected." Also delete obsolete, commented-out code that at some
point used this option in its prior incarnation.
(erc-prompt-hidden): Add new option to specify look of prompt when
hidden.
(erc-unhide-query-prompt): Add option to force-reveal query prompts on
reconnect.
(erc-open): Augment earlier reconnect-detection semantics by
incorporating `erc--server-reconnecting'. In existing buffers, remove
prompt-related hooks and reveal prompt, if necessary.
(erc-cmd-RECONNECT): Allow a user to reconnect when already
connected (by first disconnecting).
(erc-connection-established): Possibly unhide query prompts.
(Bug#54826)
* test/lisp/erc/erc-tests.el (erc-tests--test-prep,
erc-tests--set-fake-server-process): Factor out some common
buffer-prep boilerplate involving user input and the server process.
Shared with bug#54536.
2022-06-30 F. Jason Park <jp@neverwas.me>
Accept user keyword arg in ERC entry-point commands
* lisp/erc/erc-backend.el (erc-server-reconnect): Reuse the username
argument from the previous session's USER command when reconnecting.
Also pass the existing client certificate, fixing an issue related to
bug#47788.
(erc-session-user-full-name): Move variable here from erc.el.
(erc-session-username): Add new local variable to store entry point
parameter.
* lisp/erc/erc.el (erc-session-user-full-name): Move variable to
erc-backend.
(erc-open, erc-determine-parameters, erc, erc-tls): Accept new
optional user parameter.
(erc-query): Preserve current `erc-session-username' when calling
`erc-open'.
(erc-login): Use `erc-session-username' instead of deriving it.
(erc-compute-user): Add new function to determine user name from
explicit argument or user options.
(Bug#54824)
2022-06-30 F. Jason Park <jp@neverwas.me>
Initialize erc-server-filter-data in erc-backend
* lisp/erc/erc-backend.el (erc-server-connect): Set
`erc-server-filter-data' to nil upon (re)connecting.
* lisp/erc/erc.el (erc-open): For the sake of clarity, don't
initialize `erc-server-filter-data' here because non-connect
invocations merely set up a target buffer and have no business
touching this variable.
2022-06-30 F. Jason Park <jp@neverwas.me>
Rework mutual dependency between erc and erc-backend
* lisp/erc/erc.el: Declare needed variables exported by erc-backend.el
as special near the top of the file, and only require `erc-backend'
after providing `erc' as a feature at the very end.
* lisp/erc/erc-backend.el: Don't preemptively provide `erc-backend'.
* test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies): Add
utility test to scrape for unused vars that may accumulate over time.
(Bug#54825)
2022-06-30 Stefan Kangas <stefan@marxist.se>
Doc fixes: don't refer to some obsolete items
* admin/notes/multi-tty:
* lisp/chistory.el (command-history):
* lisp/emacs-lisp/nadvice.el:
* lisp/vc/diff-mode.el: Doc fix; don't refer to obsolete variables and
functions.
2022-06-30 Stefan Kangas <stefan@marxist.se>
Remove obsolete cust-print from elisp index
* doc/lispref/edebug.texi (Printing in Edebug): Remove obsolete
library "cust-print" from index.
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix define-obsolete-function-alias formatting in loaddefs-gen.el
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
Fix formatting of define-obsolete-function-alias statements
(bug#56292).
2022-06-30 Stefan Monnier <monnier@iro.umontreal.ca>
(syntax-wholeline-max): New var
Try and reduce the pain caused by font-lock and syntax-propertize's
wholeline-based operation in buffers made up of a few very long lines
(bug#45898).
* lisp/emacs-lisp/syntax.el (syntax-wholeline-max): New var.
(syntax--lbp): New function.
(syntax-propertize-wholelines): Use it.
* lisp/jit-lock.el (jit-lock--antiblink-post-command): Use `syntax--lbp`.
* lisp/font-lock.el (font-lock-extend-region-wholelines): Rewrite,
using `syntax-propertize-wholelines`.
2022-06-30 Stefan Kangas <stefan@marxist.se>
* admin/make-tarball.txt: Minor clarifications.
2022-06-30 Mattias Engdegård <mattiase@acm.org>
Don't say that macro-expansion error is a warning
* lisp/emacs-lisp/gv.el:
* lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load): Since
eager macro-expansion errors are no longer warnings, don't say so.
2022-06-30 Stefan Kangas <stefan@marxist.se>
* lisp/eshell/em-term.el (eshell-visual-commands): Add vim.
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Also add elisp-eval/byte-compile-buffer to lisp-interaction-mode
* lisp/progmodes/elisp-mode.el (lisp-interaction-mode-map): Also
add elisp-eval-buffer and elisp-byte-compile-buffer to this map.
2022-06-30 Mattias Engdegård <mattiase@acm.org>
Don't change indentation rules for `>=` and `=`
* lisp/emacs-lisp/rx.el: `>=` and `=` are much more likely functions
than RX constructs and the indentation machinery currently has
no way to tell them apart.
Suggested by Michael Herdeegen.
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in previous elisp-byte-compile-buffer change
* lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer): Make
warnings point to the correct place.
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix up warning links in elisp-byte-compile-buffer
* lisp/progmodes/elisp-mode.el (elisp-byte-compile-buffer): Make
warnings point to the correct place.
2022-06-30 Stefan Kangas <stefan@marxist.se>
New hook save-place-after-find-file-hook
This is intended for use in Org mode, where we currently use advise.
* lisp/saveplace.el (save-place-after-find-file-hook): New hook.
(save-place-find-file-hook): Run new hook.
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Make "eager macro-expansion" warning into an error
* doc/lispref/loading.texi (How Programs Do Loading): Update
documentation.
* lisp/emacs-lisp/macroexp.el:
(internal-macroexpand-for-load): We've been warning about eager
macro expansion for many years, so finally change that into an
error (bug#18154).
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Do NEWS tagging
2022-06-30 Eli Zaretskii <eliz@gnu.org>
Fix external image conversion on MS-Windows
* lisp/image/image-converter.el (image-converter--convert-magick)
(image-converter--convert): Force encoding/decoding to avoid any
text or EOL conversions, since we are reading/writing binary
data. (Bug#56317)
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Add find-function-setup-keys bindings for find-library commands
* lisp/emacs-lisp/find-func.el (find-function-setup-keys): Add `L'
bindings for the find-library family of commands (bug#51240).
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Restore temp-buffer-resize-mode behaviour wrt. [back] buttons
* lisp/help.el (help--window-setup): If temp-buffer-resize-mode, do
the window setup after adding [back] buttons (bug#56306).
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in previous server.el change
* lisp/server.el (server-process-filter): Fix typo in previous change.
2022-06-30 Michael Shields <shields@msrl.com>
Don't ignore emacsclient's --frame-parameters option when -t
* lisp/server.el (server-process-filter): Add part of patch that
was mistakenly missed when the patch was applied (bug#24147).
This also fixes bug#56309.
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Add new commands to elisp mode for eval/compilation
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map): Add new
keystrokes.
(elisp-eval-buffer, elisp-byte-compile-file)
(elisp-byte-compile-buffer): New commands.
2022-06-30 Mike Kupfer <mkupfer@alum.berkeley.edu>
Clarify `version-control' in the Emacs manual
* doc/emacs/files.texi (Backup Names): Rephrase for greater
clarity (bug#56291).
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Recognize Gradle error messages in compile-mode
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): Recognize Gradle errors
(bug#56249).
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Add provide to testcover
* lisp/emacs-lisp/testcover.el (testcover): Provide (bug#55388).
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-06-30 Lars Ingebrigtsen <larsi@gnus.org>
Add new commands to zoom emojis
* lisp/international/emoji.el (emoji-zoom-map)
(emoji-zoom-increase, emoji-zoom-decrease): New commands.
* lisp/international/mule-cmds.el (ctl-x-map): Bind them.
2022-06-30 Po Lu <luangruo@yahoo.com>
Disable unrelated drag-and-drop protocols during XDS drop
* doc/lispref/frames.texi (Drag and Drop): Document variables
used to control drag-and-drop protocols.
* lisp/x-dnd.el (x-dnd-do-direct-save): Disable irrelevant DND
protocols.
* src/xterm.c (x_dnd_get_target_window_1):
(x_dnd_get_target_window):
(handle_one_xevent): Respect new variable.
(syms_of_xterm): New variable `x-dnd-disable-motif-protocol'.
2022-06-30 jicksaw <jicksaw@pm.me> (tiny change)
Reduce eldoc noise from hover messages
Also close https://github.com/joaotavora/eglot/issues/985
Only echo hover response content, without response range.
LSP specification says the range is meant to visualize a hover.
Maybe echoing the range is useful for some, but it seems
non-standard behavior.
Example issue: haskell-language-server responds with range set to
whole file when hovering a comment -> Large, useless eldoc
* eglot.el (eglot--hover-info): Remove text selected by range from
output
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/514
2022-06-30 Po Lu <luangruo@yahoo.com>
Improve compliance with the XDS and XDND protocols
* lisp/select.el (xselect-convert-to-text-uri-list): Return a
type of `text/uri-list' instead of STRING or C_STRING.
* lisp/x-dnd.el (x-dnd-xds-performed): New defvar.
(x-dnd-handle-direct-save): Set it to t and handle URIs with
hostnames correctly. Also return errors correctly.
(x-dnd-handle-octet-stream): New function.
(x-dnd-do-direct-save): Handle application/octet-stream, check
results.
2022-06-29 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Use "Surname" instead of "Name" in prompts
* lisp/net/eudc-vars.el (eudc-user-attribute-names-alist): Add
name/"Surname" association.
* lisp/net/eudc.el (eudc-get-email): Prompt for surname.
* lisp/net/eudc.el (eudc-get-phone): Likewise.
2022-06-29 Po Lu <luangruo@yahoo.com>
Fix preservation of the original value of PRIMARY after dropping on xterm
* src/xselect.c (x_own_selection): New arg `dnd_data'. Record
it.
(x_get_local_selection, x_handle_selection_request)
(x_convert_selection): Convert the DND data instead if the
situation warrants.
(Fx_own_selection_internal, Fx_get_selection_internal)
(Fx_get_local_selection): Update calls to x_get_local_selection.
* src/xterm.c (x_dnd_do_unsupported_drop): If obtaining
selection ownership failed, return. Record DND value and
preserve the current value of PRIMARY, if it exists.
* src/xterm.h: Update prototypes.
2022-06-29 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Prevent field overlap when query form is reset
* lisp/net/eudc.el (eudc-query-form): Delete all overlays before
erasing buffer. Remove widget-after-change from
after-change-functions.
2022-06-29 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/emacs/buffers.texi (Indirect Buffers): Mention modification hook quirk
2022-06-29 Eli Zaretskii <eliz@gnu.org>
Fix hscrolling of :align-to when display-line-numbers is in effect
* src/dispextern.h (struct it): Rename 'tab_offset' member to
'stretch_adjust'.
* src/xdisp.c (gui_produce_glyphs, produce_stretch_glyph)
(display_line): All users of 'tab_offset' changed.
(produce_stretch_glyph): Fix calculation of ':align-to' when
line numbers are displayed and the window is hscrolled.
(calc_pixel_width_or_height): Fix calculation of width of 'space'
display property when 'display-line-numbers' is turned on, but the
line number was not yet produced for the current glyph row.
(Bug#56176)
2022-06-29 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix `diff-buffers` case
2022-06-29 Mattias Engdegård <mattiase@acm.org>
More robust `gnu` pattern (bug#56249)
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Don't allow spaces in the file names, to avoid false matches.
Don't allow ad-hoc spaces preceding the program name either.
2022-06-29 Mattias Engdegård <mattiase@acm.org>
Complete transition to rx for compilation `gnu` pattern
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Change from a mixture of traditional regexp syntax and rx,
to make intentions clearer.
2022-06-29 Mattias Engdegård <mattiase@acm.org>
* lisp/emacs-lisp/rx.el: Indent some rx constructs correctly.
This includes group-n, submatch-n, =, >=, ** and repeat, whose first 1
or 2 arguments are special.
2022-06-29 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
6c26f089a7 Update ChangeLog and AUTHORS for 28.1.90 pretest
# Conflicts:
# ChangeLog.3
# etc/AUTHORS
2022-06-29 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
bf137fdbd2 ; * admin/make-tarball.txt: Small clarification.
2022-06-29 Po Lu <luangruo@yahoo.com>
Fix handling invalidated selection requests
* src/xselect.c (x_handle_selection_request): Correctly punt
when !dpyinfo.
2022-06-29 Stefan Kangas <stefan@marxist.se>
Bump Emacs version to 28.1.90
* README:
* configure.ac:
* msdos/sed2v2.inp:
* nt/README.W32: Bump Emacs version to 28.1.90.
2022-06-29 Stefan Kangas <stefan@marxist.se>
Update ChangeLog and AUTHORS for 28.1.90 pretest
* ChangeLog.3:
* etc/AUTHORS: Update.
2022-06-29 Po Lu <luangruo@yahoo.com>
Fix some bugs found while testing drag-and-drop
* lisp/x-dnd.el (x-dnd-get-drop-width-height):
(x-dnd-get-drop-x-y): Fix doc string.
(x-dnd-handle-xdnd): Don't set update rect if
`dnd-indicate-insertion-point'. Bug found testing with "JX
Application Framework".
2022-06-29 Stefan Monnier <monnier@iro.umontreal.ca>
(cl--generic-compiler): Revert last change
That change (introduced to circumvent an error now that `seq.el` is
preloaded) caused all dispatchers to be left uncompiled, which slows down
method dispatch very significantly. Fix the problem in the old way,
i.e. by adding an explicit call to `cl--generic-prefill-dispatchers`.
* lisp/emacs-lisp/cl-generic.el (cl--generic-compiler): Revert last change.
Add (cl--generic-prefill-dispatchers 1 integer) instead to handle
the new dispatchers needed for `seq.el`.
(cl--generic-prefill-generalizer-sample): New function.
(cl--generic-get-dispatcher): Use it to signal an error giving precise
instructions for what to do if we're about the load the byte-compiler
during the preload.
(cl--generic-oclosure-generalizer): Rename from
`cl-generic--oclosure-generalizer` for consistency with all
other generalizers.
2022-06-29 Po Lu <luangruo@yahoo.com>
Update dnd-tests.el to make sure remote files are removed when Emacs quits
* test/lisp/dnd-tests.el (dnd-tests-begin-drag-files)
(dnd-tests-begin-file-drag): Test value of `kill-emacs-hook'.
2022-06-29 Po Lu <luangruo@yahoo.com>
Implement starting X Direct Save (XDS) drops
* doc/lispref/frames.texi (Drag and Drop): Document new function
`dnd-direct-save'.
* etc/NEWS: Likewise.
* lisp/dnd.el (dnd-direct-save-remote-files): New defcustom.
(dnd-begin-file-drag): Implement defucstom.
(dnd-begin-drag-files): Add kill-emacs-hook after saving remote
file.
(dnd-direct-save): New function.
* lisp/x-dnd.el (x-dnd-known-types): Fix coding style.
(x-dnd-handle-drag-n-drop-event): Handle local value with
self-originating DND events.
(x-dnd-xds-current-file, x-dnd-xds-source-frame): New defvars.
(x-dnd-handle-direct-save, x-dnd-do-direct-save): New functions.
* src/xfns.c (Fx_begin_drag): Allow any atom to be used as a DND
action.
* src/xselect.c (symbol_to_x_atom): Make public.
* src/xterm.c (x_dnd_note_self_drop): Include selection local
value.
(x_ignore_errors_for_next_request): Don't assume x_error_message
is set.
* src/xterm.h: Update prototypes.
2022-06-29 Stefan Kangas <stefan@marxist.se>
Make two text-property-search tests easier to read
* test/lisp/emacs-lisp/text-property-search-tests.el
(text-property-search-forward/point-at-beginning)
(text-property-search-backward/point-at-end): Rewrite to make tests
easier to read.
2022-06-29 Stefan Kangas <stefan@marxist.se>
Minor cleanup in dired-x-bind-find-file
* lisp/dired-x.el (dired-x-bind-find-file): Use 'format-message'
and 'keymap-set'.
2022-06-29 Lars Ingebrigtsen <larsi@gnus.org>
Improve the eval-defun doc string
* lisp/progmodes/elisp-mode.el (eval-defun): Document what the
command actually does w.r.t. finding a form to evaluate
(bug#47747).
2022-06-29 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that In-Reply-To is saved in drafts in Message
* lisp/gnus/message.el (message-hidden-headers): Hide In-Reply-To
now that we pre-generate it.
(message-setup-1): Pre-generate In-Reply-To so that it'll be saved
in drafts (bug#47639).
2022-06-29 Tom Gillespie <tgbugs@gmail.com>
test/lisp/progmodes/python-tests.el: add test for nav end of block
Add test for python-nav-end-of-block to prevent regression of bug#56271.
2022-06-29 Tom Gillespie <tgbugs@gmail.com>
lisp/progmodes/python.el (python-nav-end-of-block): prevent infinite loop
lisp/progmodes/python.el (python-nav-end-of-block): Fix a bad
assumption that python-nav-end-of-statement always makes forward
progress by testing that it actually does. If this check is not made
then it is possible for python-nav-end-of-block to enter an infinite
loop. (bug#56271)
2022-06-29 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation-mode parsing of file names in Gradle errors
* lisp/progmodes/compile.el
(compilation-error-regexp-alist-alist): Fix parsing of file names
in Gradle output (bug#56249).
2022-06-29 Po Lu <luangruo@yahoo.com>
* lisp/pgtk-dnd.el (pgtk-dnd-use-offix-drop): Remove extra variable.
2022-06-29 Po Lu <luangruo@yahoo.com>
Clean up failable requests in more places
* lisp/term/haiku-win.el (haiku-get-numeric-enum): Fix build.
* src/xterm.c (x_clean_failable_requests): Avoid redundant
memcpy if first == last.
(x_ignore_errors_for_next_request): Fix check for last request.
(x_check_errors, x_had_errors_p): Clean up failable requests
here.
2022-06-29 Po Lu <luangruo@yahoo.com>
Handle be:actions field in Haiku DND messages
* lisp/term/haiku-win.el (haiku-get-numeric-enum): New function.
(haiku-numeric-enum): New macro.
(haiku-select-encode-xstring, haiku-select-encode-utf-8-string):
Replace hard-coded numeric enumerators.
(haiku-parse-drag-actions): New function.
(haiku-drag-and-drop): Use action returned by that function.
(x-begin-drag): Replace hard-coded enumerator.
2022-06-29 Gerd Möllmann <gerd@gnu.org>
Ensure correct toggle menu item display
* lisp/menu-bar.el (menu-bar-make-toggle-command): Call
force-mode-line-update. (Bug#56155)
2022-06-29 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
2eba8cad20 Tramp shall not trap unrelated D-Bus errors
a8e72eb0e2 ; * etc/NEWS: Fix file name quotations.
091b22cb12 Fix hash table function return values in manual
# Conflicts:
# etc/NEWS
2022-06-28 Po Lu <luangruo@yahoo.com>
Fix reported problem with drag-and-drop inside VirtualBox
* lisp/x-dnd.el (x-dnd-handle-old-kde, x-dnd-handle-offix)
(x-dnd-handle-motif): Select window before handling drop, like
on Xdnd.
(x-dnd-convert-to-offix, x-dnd-do-offix-drop)
(x-dnd-handle-unsupported-drop): Accept local selection data and
use that instead.
* src/keyboard.c (kbd_buffer_get_event): Call unsupported drop
function with local selection data as 8th arg.
* src/xselect.c (x_get_local_selection): Accept new arg
`local_value'. All callers changed.
(Fx_get_local_selection): New function.
(syms_of_xselect): Update defsubrs.
* src/xterm.c (x_dnd_lose_ownership): New function.
(x_dnd_begin_drag_and_drop): Unless new variable is true, disown
XdndSelection after returning. This supposedly makes
drag-and-drop from guest to host work in VirtualBox without
causing pointer motion to become choppy afterwards.
(syms_of_xterm): New variable `x_dnd_preserve_selection_data'
and update doc string of `x-dnd-unsupported-drop-function'.
* test/lisp/dnd-tests.el (dnd-tests-begin-text-drag)
(dnd-tests-begin-file-drag, dnd-tests-begin-drag-files): Set new
variable to nil during tests.
2022-06-28 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in previous maintaining.texi change
* doc/emacs/maintaining.texi (Looking Up Identifiers): Fix typo.
2022-06-28 Juri Linkov <juri@linkov.net>
* lisp/isearch.el (isearch-delete-char): Improve fix for bug#52248.
When reaching the top of the stack where isearch-other-end is nil,
still close unnecessary overlays for the previous position.
(isearch-close-unnecessary-overlays): Rename arg BEG for consistency.
2022-06-28 Visuwesh <visuweshm@gmail.com>
trouble.texi (Long Lines): Fix typo.
* doc/emacs/trouble.texi (Long Lines): Fix typo (bug#56283).
2022-06-28 Lars Ingebrigtsen <larsi@gnus.org>
Put the obsoletion earlier in the *Help* buffer
* lisp/help-fns.el (help-fns--obsolete): Remove indentation and fill.
(help-fns--var-obsolete): Ditto.
(describe-function-1): Output the obsoletion info first since it's
vital information.
(describe-variable): Ditto (bug#56251).
2022-06-28 Lars Ingebrigtsen <larsi@gnus.org>
Improve sxhash-equal documentation
* doc/lispref/hash.texi (Defining Hash): Explain more about what
sxhash-equal is for and what the caveats are.
* src/fns.c (Fsxhash_eql, Fsxhash_equal): Clarify doc string.
2022-06-28 Lars Ingebrigtsen <larsi@gnus.org>
Allow using define-short-documentation-group without loading shortdoc
* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group):
Allow using without loading shortdoc.el (bug#56260).
2022-06-28 Michael Albinus <michael.albinus@gmx.de>
Tramp shall not trap unrelated D-Bus errors
* lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): Declare.
(tramp-gvfs-file-name-handler): Let-bind it.
(tramp-gvfs-dbus-event-vector): Fix docstring.
(tramp-gvfs-maybe-open-connection): Do not set it globally. (Bug#56162)
2022-06-28 Lars Ingebrigtsen <larsi@gnus.org>
Clarify Looking Up Identifiers in the manual
* doc/emacs/maintaining.texi (Looking Up Identifiers): Clarify the
text about C-M-, (bug#56261).
2022-06-28 Zachary Kanfer <zkanfer@gmail.com>
Add new command `rename-visited-file'
* doc/emacs/files.texi (Save Commands): Document it.
* lisp/files.el (rename-visited-file): New command (bug#56229).
2022-06-28 Jim Meyering <meyering@fb.com> (tiny change)
Fix configure.ac quoting of AC_CHECK_LIB's 2nd arg
Running an autoconf-head-generated configure, would fail like this:
/emacs/configure: line 18002: syntax error near unexpected token `;;'
/emacs/configure: line 18002: ` ;;'
That is due to under-quoting of AC_CHECK_LIB's second argument, which led to
the comma in an embedded string being interpreted as paramater-delimiting.
* configure.ac: Quote the second arg of each AC_CHECK_LIB invocation.
(Bug#56272)
2022-06-28 Po Lu <luangruo@yahoo.com>
Adjust x-clipboard-yank for recent selection ownership changes
* lisp/term/x-win.el (x-clipboard-yank): Don't own CLIPBOARD
inside kill-new.
2022-06-28 Po Lu <luangruo@yahoo.com>
Clean up Fx_begin_drag
* src/xfns.c (Fx_begin_drag): Use FOR_EACH_TAIL instead of
iterating manually.
2022-06-28 Po Lu <luangruo@yahoo.com>
Automatically detect cyclic lists in some Haiku functions
* src/haikuselect.c (haiku_lisp_to_message): Use FOR_EACH_TAIL
to iterate over message data.
2022-06-28 Basil L. Contovounesios <contovob@tcd.ie>
Fix hash table function return values in manual
* doc/lispref/hash.texi (Hash Access): Reconcile documented return
values of puthash and clrhash with their respective
docstrings (bug#55562).
2022-06-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a280df4cab ; Mention in NEWS the need to use --bindir
# Conflicts:
# etc/NEWS
2022-06-27 Po Lu <luangruo@yahoo.com>
Fix handling "C-S-u" and such when using XKB
* src/xterm.c (handle_one_xevent): Don't rely on XKB for
consumed modifiers.
2022-06-27 Po Lu <luangruo@yahoo.com>
Always use XKB to translate keysyms when no input method is available
* src/xterm.c (handle_one_xevent) [HAVE_XKB]: Also use XKB to
handle core KeyPress events.
2022-06-27 Basil L. Contovounesios <contovob@tcd.ie>
* lisp/subr.el (plistp): Simplify (bug#47427).
2022-06-27 Paul Eggert <eggert@cs.ucla.edu>
"make clean" etc. problem now fixed on Solaris.
2022-06-27 Gerd Möllmann <gerd@gnu.org>
Prevent regexp cache entries from being GC'ed in more cases
* src/search.c (string_match_1, fast_string_match_internal)
(fast_c_string_match_ignore_case): Use freeze_pattern.
(Bug#56108)
2022-06-27 Eli Zaretskii <eliz@gnu.org>
Fix deletion of composed text
* lisp/composite.el (lgstring-glyph-boundary): New function.
* lisp/simple.el (delete-forward-char): Call
'lgstring-glyph-boundary' to find where to end the deletion inside
an automatic composition. (Bug#56237)
2022-06-27 Lars Ingebrigtsen <larsi@gnus.org>
Fix some missed Fplist_put adjustments in src/w32.c
* src/w32.c (serial_configure): Adjust some missed Fplist_put renames.
2022-06-27 Lars Ingebrigtsen <larsi@gnus.org>
Add new type predicate plistp
* lisp/subr.el (plistp): New type predicate (bug#47427). This
referred to in the error message from plist-put: "Debugger
entered--Lisp error: (wrong-type-argument plistp (a b c))".
2022-06-27 Lars Ingebrigtsen <larsi@gnus.org>
Adjust plist calls in .m files
* src/nsterm.m (mod_of_kind):
* src/nsimage.m (ns_load_image): Adjust plist calls in .m files.
2022-06-27 Lars Ingebrigtsen <larsi@gnus.org>
Allow plist-get/plist-put/plist-member to take a comparison function
* doc/lispref/lists.texi (Plist Access): Document it.
* lisp/filesets.el (filesets-reset-fileset)
(filesets-ingroup-cache-get):
(filesets-ingroup-cache-put):
(filesets-build-menu-now): Don't use lax-plist functions.
* lisp/simple.el (lax-plist-put, lax-plist-get): Moved here from
fns.c and make obsolete.
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Don't mark
plist functions as side-effect-free or pure.
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Adjust type.
* lisp/emacs-lisp/shortdoc.el (list): Don't document deprecated
functions.
* src/xdisp.c (build_desired_tool_bar_string):
(display_mode_element):
(store_mode_line_string):
(display_string):
(produce_stretch_glyph):
(note_mode_line_or_margin_highlight):
(note_mouse_highlight):
* src/w32.c (serial_configure):
* src/sysdep.c (serial_configure):
* src/sound.c (parse_sound):
* src/process.c (Fset_process_buffer):
(Fset_process_sentinel):
(Fprocess_contact):
(Fmake_process):
(Fmake_pipe_process):
(Fset_network_process_option):
(Fserial_process_configure):
(Fmake_serial_process):
(set_network_socket_coding_system):
(finish_after_tls_connection):
(connect_network_socket):
(Fmake_network_process):
(server_accept_connection):
* src/lread.c (ADDPARAM):
(hash_table_from_plist):
* src/keyboard.c (make_lispy_position):
* src/indent.c (check_display_width):
* src/image.c (postprocess_image):
* src/gnutls.c (gnutls_verify_boot):
(Fgnutls_boot):
(gnutls_symmetric):
(Fgnutls_hash_mac):
(Fgnutls_hash_digest):
* src/dired.c (filter):
* src/data.c (add_to_function_history):
* src/coding.c (Fcoding_system_put): Adjust callers from
Fplist_put (etc) to plist_put.
* src/fns.c (plist_get):
(plist_put):
(plist_member): New functions (without optional third parameter)
to be used in C code.
* src/fns.c (Fplist_get, Fplist_put, Fplist_member): Take an
optional predicate parameter (bug#47425).
* src/lisp.h: Declare new plist_put, plist_get and plist_member
functions.
* test/lisp/json-tests.el (test-json-add-to-plist): Use plist-get.
* test/src/fns-tests.el (test-cycle-lax-plist-get):
(test-cycle-lax-plist-put):
(lax-plist-get/odd-number-of-elements):
(test-plist): Remove lax-plist tests, since semantics have changed
(they no longer error out on cycles).
2022-06-27 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS entry about C-h v font locking
2022-06-27 hokomo <hokomo@airmail.cc> (tiny change)
Fix detecting dotted pairs in icalendar-export-region
* lisp/calendar/icalendar.el (icalendar-export-region): Fix detecting
dotted pairs (bug#56241).
2022-06-27 Allen Li <darkfeline@felesatra.moe>
find-dired: Add find-dired-with-command
Add a command that runs and sets up the find-dired buffer with an
arbitrary find command. Also rewrite the existing find-dired commands
using it.
The set of commands possible with find-dired is limited; the new
command allows users to run the full set of commands, but also leaves
the responsibility to the user to construct the command manually.
* lisp/find-dired.el (find-command-history): New var.
(find-dired-with-command): New command.
(find-dired): Rewritten with new command.
2022-06-27 Allen Li <darkfeline@felesatra.moe>
find-dired: Factor out find-dired--escaped-ls-option
Deduplicate this logic for other future find-dired commands.
* lisp/find-dired.el (find-dired--escaped-ls-option): New function.
(find-dired): Use find-dired--escaped-ls-option.
2022-06-27 Lars Ingebrigtsen <larsi@gnus.org>
Fix off-by-one error in Fsignal_names
* src/process.c (Fsignal_names): Fix off-by-one error.
2022-06-27 Po Lu <luangruo@yahoo.com>
Use correct background for image mask color on Haiku
* src/haikuterm.c (haiku_draw_image_glyph_string): Use adjusted
background for image mask.
2022-06-27 Po Lu <luangruo@yahoo.com>
Implement stipples for images on Haiku
* src/haiku_draw_support.cc (be_draw_bitmap_with_mask): New
function.
* src/haiku_support.h: Add prototype.
* src/haikuterm.c (haiku_draw_image_glyph_string): Draw stipple
correctly.
(haiku_draw_glyph_string): Fix conditions under which
row->stipple_p is set.
2022-06-27 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
48bda83d35 Update to Org 9.5.4-3-g6dc785
c66b90a534 Mention Solaris 10 'make clean' and 'make check'
ade34cf821 Mention further crashes on Solaris 10
2022-06-27 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a9d338818a ; elec-pair: Fix docstring typo (bug#56233)
2022-06-26 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.4-3-g6dc785
2022-06-26 Po Lu <luangruo@yahoo.com>
Correctly convert event state in more places
* src/xterm.c (handle_one_xevent): Use `xi_convert_event_state'
to handle synthetic and xwidget button events.
2022-06-26 Paul Eggert <eggert@cs.ucla.edu>
Mention Solaris 10 'make clean' and 'make check'
Mention further crashes on Solaris 10
2022-06-26 Lars Ingebrigtsen <larsi@gnus.org>
Minor clean up of previous Fsignal_names patch
* src/process.c (Fsignal_names): Clean up code slightly.
2022-06-26 Lars Ingebrigtsen <larsi@gnus.org>
Make `signal-process' allow completing over signal names
* lisp/simple.el (read-signal-name): New function.
* src/process.c (Fsignal_process): Use it to allow completing over
the signal names (bug#56239).
(Fsignal_names): New function.
2022-06-26 Lars Ingebrigtsen <larsi@gnus.org>
Font-lock variable values in *Help*
* lisp/help-fns.el (describe-variable): Font-lock the variable
value (bug#47363).
2022-06-26 Mattias Engdegård <mattiase@acm.org>
Optimise away functions in for-effect context
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Turn functions into nil when compiled for-effect since they have no
side-effects on their own. This may enable further improvements such
as the elimination of variable bindings.
`unwind-protect` forms can be treated as plain function call at this
point. In particular, their unwind function argument should be
not optimised for effect since it's a function.
2022-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
(oclosure-test-limits): Fix test failure when interpreted
* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-limits):
Make sure we bind `byte-compile-debug` dynamically.
2022-06-26 Eli Zaretskii <eliz@gnu.org>
Fix re-composition under 'composition-break-at-point'
* src/xdisp.c (try_window_id): Disable this optimization if
'composition-break-at-point' is non-nil.
2022-06-26 Eli Zaretskii <eliz@gnu.org>
* lisp/simple.el (delete-forward-char): Fix bug #56237.
2022-06-26 Jim Porter <jporterbugs@gmail.com>
When closing an Eshell process target, send EOF three times
* lisp/eshell/esh-io.el (eshell-close-target): Send EOF 3 times.
* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-tests--deftest):
Re-enable these tests on EMBA.
This patch is adapted by one from Ken Brown, who uncovered the reason
for this bug (bug#56025).
2022-06-26 Kjartan Óli Ágústsson <kjartanoli@outlook.com>
Reconvert EPUB buffers when user CSS is changed
* lisp/doc-view.el (doc-view-epub-user-stylesheet): Add
`doc-view-custom-set-mutool-user-stylesheet' as setter, change name.
(doc-view-custom-set-epub-font-size): Factor reconvert logic out
(doc-view--epub-reconvert): Add defun
(doc-view--epub-stylesheet-watcher): Add defvar
(doc-view-custom-set-epub-user-stylesheet): Add defun (bug#55825).
2022-06-26 Visuwesh <visuweshm@gmail.com>
Make <mouse-2> in mode line more careful as well
* lisp/mouse.el (mouse-delete-other-windows): Only delete other
windows if the user didn't move the cursor off the
mode-line (bug#56198).
2022-06-26 Visuwesh <visuweshm@gmail.com>
Make <mouse-3> in the mode line more careful
* lisp/mouse.el (mouse-delete-window): Only delete the window if
the user hasn't moved point out of the mode line before releasing
the button (bug#56198).
2022-06-26 Jonas Bernoulli <jonas@bernoul.li>
Avoid positional arguments to define-minor-mode
Back in Emacs-21.1, `define-minor-mode' grew keyword arguments to
replace its old positional arguments. Starting with Emacs-28.1
a warning will be omitted if positional arguments are still used.
2022-06-26 Jim Porter <jporterbugs@gmail.com>
Make Eshell globs ending in "/" match directories only
* lisp/eshell/em-glob.el (eshell-glob-convert): Return whether to
match directories only.
(eshell-glob-entries): Add ONLY-DIRS argument.
* test/lisp/eshell/em-glob-tests.el
(em-glob-test/match-any-directory): New test.
(em-glob-test/match-recursive)
(em-glob-test/match-recursive-follow-symlinks): Add test cases for
when "**/" or "***/" are the last components in a glob.
* etc/NEWS: Announce this change (bug#56227).
2022-06-26 Jim Porter <jporterbugs@gmail.com>
Convert Eshell globs ahead of time instead of doing it repeatedly
* lisp/eshell/em-glob.el (eshell-glob-recursive): New variable.
(eshell-glob-convert-1, eshell-glob-convert): New functions.
(eshell-extended-glob): Use 'eshell-glob-convert'.
(eshell-glob-entries): Adapt function to use pre-converted globs.
* test/lisp/eshell-em-glob-tests.el (em-glob-test/match-dot-files):
New test.
2022-06-26 Jim Porter <jporterbugs@gmail.com>
Optionally signal an error if an Eshell predicate fails to match anything
* lisp/eshell/em-pred.el (eshell-error-if-no-glob): Declare it.
(eshell-apply-modifiers): Add STRING-DESC argument and signal an error
if there are no matches and 'eshell-error-if-no-glob' is set.
(eshell-parse-arg-modifier): Pass modifier string to
'eshell-apply-modifiers'.
* test/lisp/eshell/em-pred-tests.el (eshell-eval-predicate): Simplify.
(em-pred-test/no-matches): New test.
* doc/misc/eshell.texi (Bugs and ideas): Remove todo entry about this
change.
2022-06-26 Daniel Martín <mardani29@yahoo.es>
Fix typo in signal-process-functions
* doc/lispref/processes.texi (Signals to Processes): Update reference
to correct default variable in the ELisp manual.
* etc/NEWS: The same for the NEWS entry (bug#56234).
2022-06-26 Lars Ingebrigtsen <larsi@gnus.org>
Update term-char-mode doc string
* lisp/term.el (term-char-mode): Update doc string.
2022-06-26 Michael Heerdegen <michael_heerdegen@web.de>
Fix Bug#56110 (switching from line-mode to char-mode)
* lisp/term.el (term-char-mode): Make `add-function' override the
correct place (the buffer local variable `term-input-sender').
2022-06-26 Lars Ingebrigtsen <larsi@gnus.org>
Fix a recent Lisp mode filling test failure
* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Restore the
"fill first line separately" logic.
2022-06-26 Stefan Kangas <stefan@marxist.se>
Fix typo in use-package docstring
2022-06-26 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/syntax.el: Rework the handling of nested calls.
Nested calls to `syntax-ppss` and `syntax-propertize` can easily
happen unexpectedly via ondemand propertizing or `forward-sexp`.
Refine the handling of nested calls so we detect them more reliably
(e.g. also within `syntax-propertize-extend-region-functions`)
and so that the `syntax-ppss` cache is automatically flushed in case
it might have been filled with data that's become obsolete since.
(syntax-propertize--inhibit-flush): Delete var.
(syntax-propertize--in-process-p): New function to replace it.
(syntax-ppss-flush-cache): Use it.
(syntax-ppss--updated-cache): New var.
(syntax-propertize): Make `syntax-propertize--done` binding apply to
`syntax-propertize-extend-region-functions` as well, as intended (fixes
bug#46713). Use `syntax-ppss--updated-cache` to flush
syntax-ppss cache at the end when needed.
Don't bind `syntax-propertize--inhibit-flush` any more.
(syntax-ppss): Set `syntax-ppss--updated-cache` when applicable.
2022-06-26 Lars Ingebrigtsen <larsi@gnus.org>
Don't create HOME if it doesn't exist
* lisp/files.el (locate-user-emacs-file): Don't create HOME if it
doesn't exist (bug#47298). This returns us to Emacs 26.3
behaviour here.
2022-06-26 Michael Albinus <michael.albinus@gmx.de>
Fix narrowing problem in tramp-debug-buffer-command-completion-p
* lisp/net/tramp.el (tramp-debug-buffer-command-completion-p):
Respect narrowing. (Bug#56225)
2022-06-26 Po Lu <luangruo@yahoo.com>
Add some more common predefined atoms
* src/xterm.c (x_intern_cached_atom, x_get_atom_name): Add
DRAWABLE, BITMAP, COLORMAP, CURSOR and FONT.
2022-06-26 Eli Zaretskii <eliz@gnu.org>
Fix ispell-word on colorless TTY frames
* lisp/textmodes/ispell.el
(ispell-highlight-spelling-error-generic): Keep marker position of
END intact, deletion of text notwithstanding. (Bug#56219)
2022-06-26 Po Lu <luangruo@yahoo.com>
Stop catching errors for some requests
* src/xterm.c (x_dnd_compute_toplevels)
(frame_set_mouse_pixel_position, x_focus_frame): Use
`x_ignore_errors_for_next_request'. This results in a healthy
~30% speedup for the involved requests.
2022-06-25 Po Lu <luangruo@yahoo.com>
Handle errors while sending client events asynchronously
* src/xterm.c (xm_send_drop_message)
(xm_send_top_level_enter_message, xm_send_drag_motion_message)
(xm_send_top_level_leave_message, x_dnd_send_enter)
(x_dnd_send_position, x_dnd_send_leave, x_dnd_send_drop): Avoid
sync to check for errors while sending client events.
(x_dnd_begin_drag_and_drop, handle_one_xevent, XTread_socket):
Clean up failable requests.
(x_request_can_fail): New functions.
(x_clean_failable_requests, x_ignore_errors_for_next_request)
(x_uncatch_errors): Clean up failable requests.
(x_error_handler): If a request is allowed to fail, just return.
(x_term_init): Set up new pointer.
* src/xterm.h (N_FAILABLE_REQUESTS): New macro.
(struct x_display_info): New field `failable_requests' and
associated next pointer.
2022-06-25 Paul Eggert <eggert@cs.ucla.edu>
Port make clean to Solaris 10
* test/Makefile.in (CLEAN_XML_FILES): New macro.
(clean): Use it.
2022-06-25 Paul Eggert <eggert@cs.ucla.edu>
Port distribution tarball to Solaris 10
* make-dist (taropt): Use 'tar -H ustar' to generate a portable
tar file format instead of a GNU-specific format. Needed now that
Emacs tarballs contain file names longer than 100 bytes, e.g.:
emacs-28.1/test/lisp/gnus/mml-sec-resources/private-keys-v1.d/C072AF82DCCCB9A7F1B85FFA10B802DC4ED16703.key
emacs-28.1/test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-success.el
Without this patch, extracting a tarball on Solaris 10 fails with
many diagnostics like “tar: ././@LongLink: typeflag 'L' not
recognized, converting to regular file”.
2022-06-25 Paul Eggert <eggert@cs.ucla.edu>
Port test SUBDIRS to Solaris 10
* test/Makefile.in (SUBDIRS): Port to traditional find, which
lacks -path.
2022-06-25 Paul Eggert <eggert@cs.ucla.edu>
Pacify Oracle Studio re xterm.c
* src/xterm.c (xErrorHandler, xIOErrorHandler):
New typedefs.
(xm_get_drag_window_1, x_connection_closed): Use them instead of
void *, since the C standard frowns on converting function
pointers to and from void *. This pacifies Oracle Studio
diagnostics like “warning: assignment type mismatch: pointer to
void "=" pointer to function(pointer to struct _XDisplay {})\
returning int”.
(x_detect_pending_selection_requests, x_had_errors_p): Do not rely
on implicit conversion of a pointer to a bool return value; use !!
instead. This pacifies Oracle Studios “warning: improper
pointer/integer combination: op "="”.
(xim_open_dpy) [HAVE_X11R6 && !HAVE_X11R6_XIM]: Do not use
xim_destroy_callback; configure.ac says “inoue@ainet.or.jp says
Solaris has a bug related to X11R6-style ## XIM support” and
Oracle Studio complains “warning: assignment type mismatch:
pointer to function(pointer to struct _XIC {}, pointer to char,
pointer\ to char) returning void "=" pointer to function(pointer
to struct _XIM {}, pointer to char, pointer to char) returning
void”.
2022-06-25 Paul Eggert <eggert@cs.ucla.edu>
Pacify Oracle Studio re print_vectorlike
* src/print.c (print_vectorlike): Use explicit cast of function
pointer to void *, to pacify Oracle Studio 12.6s “warning:
assignment type mismatch: pointer to void "=" pointer to
function(pointer to void) returning void”. Admittedly this is
not strictly conforming C code even with the cast.
2022-06-25 Paul Eggert <eggert@cs.ucla.edu>
Pacify Oracle Studio re Time_to_position
* src/keyboard.c (Time_to_position): Use no-op position_to_Time to
pacify Oracle Studio 12.6s “warning: initializer will be
sign-extended”.
2022-06-25 Lars Ingebrigtsen <larsi@gnus.org>
Make `M-q' work on the first line of a multi-line string again
* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Exclude the
quote marks from the region so that filling works (bug#56197).
2022-06-25 Po Lu <luangruo@yahoo.com>
Update input_pending after deferring selection requests
* src/xterm.c (x_defer_selection_requests): If kbd_fetch_ptr
moved, update input_pending. Bug found calling
`input-pending-p' inside the DND movement function.
2022-06-25 Stefan Kangas <stefan@marxist.se>
New command recentf-open
* lisp/recentf.el (recentf-open): New command. (Bug#56148)
(recentf): New alias.
(recentf, recentf-mode): Update documentation to focus more on the
list of recently opened files and ways of accessing it, instead of
focusing on the menu bar only.
(recentf-list, recentf-enabled-p): Minor doc fixes.
* doc/emacs/files.texi (File Conveniences): Update documentation.
2022-06-25 Lars Ingebrigtsen <larsi@gnus.org>
Fix subr-x fix that was missed when re-reverting
* lisp/replace.el (require): Fix subr-x build warning.
2022-06-25 Stefan Kangas <stefan@marxist.se>
Don't error out on invalid literal key substitutions
It would be backwards-incompatible to error out on invalid literal key
substitutions. Consider this docstring fragment, where "\\`" should
have been escaped but wasn't:
"Example value: \"\\(?:\\`[#.]\\)\\|\\(?:[#~]\\'\\)\"."
If we error out, we can't display this docstring at all. However, it
is clearly better to display something in such cases, even if
suboptimal, than refusing to display anything at all.
* lisp/help.el (substitute-command-keys): Don't error out on invalid
literal key substitutions: just ignore them instead.
* test/lisp/help-tests.el
(help-tests-substitute-command-keys/literal-key-sequence-errors):
Delete test.
(help-tests-substitute-command-keys/literal-key-sequence-ignore-invalid):
New test.
2022-06-25 Lars Ingebrigtsen <larsi@gnus.org>
Re-fix build warnings about subr-x defsubsts
* lisp/term/haiku-win.el (require):
* lisp/progmodes/elisp-mode.el (require):
* lisp/isearch.el (require): Require subr-x at compile time, since
these use defsubsts/macros from there.
* lisp/emacs-lisp/subr-x.el (string-empty-p): Move from here...
* lisp/simple.el (string-empty-p): ... to here. This is to help
with a build problem where files.el is using the defsubst, but
requiring subr-x.el at compile time leads to load errors.
2022-06-25 Manuel Giraud <manuel@ledu-giraud.fr>
Avoid recording passwords' chars
* lisp/cus-start.el (standard): New user custom `record-all-keys'.
* src/keyboard.c (syms_of_keyboard): Un-obsolete
`inhibit--record-char'.
* lisp/subr.el (read-passwd): Use `inhibit--record-char' to
inhibit passwords recording.
2022-06-25 Eli Zaretskii <eliz@gnu.org>
Minor optimization of the "abort redisplay" feature
* src/xdisp.c (init_iterator, set_iterator_to_next)
(redisplay_internal):
* src/syntax.c (scan_sexps_forward):
* src/regex-emacs.c (re_match_2_internal):
* src/bidi.c (bidi_fetch_char, bidi_paragraph_init)
(bidi_find_bracket_pairs, bidi_find_other_level_edge): Don't call
'update_redisplay_ticks' if aborting too-long redisplay is
disabled. (Bug#45898)
2022-06-25 Po Lu <luangruo@yahoo.com>
Implement image transform smoothing on Haiku
* src/dispextern.h (struct image): New field
`use_bilinear_filtering'.
* src/haiku_draw_support.cc (BView_DrawBitmap): Accept it.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_draw_image_glyph_string):
* src/image.c (image_set_transform): Set it.
2022-06-25 Eli Zaretskii <eliz@gnu.org>
Fix false positive due to 'max-redisplay-ticks' feature
* src/xdisp.c (redisplay_internal): Reset the tick count at end of
redisplay cycle. (Bug#45898)
2022-06-25 Po Lu <luangruo@yahoo.com>
Fix non-XI2 build
* src/xterm.c (handle_one_xevent): Don't make `event' const when
passing it to RandR functions. Also, update out of date
comment.
2022-06-25 Po Lu <luangruo@yahoo.com>
Implement "flip" image transforms on Haiku
* src/dispextern.h (struct image): New field `transform',
`original_width' and `original_height'.
* src/haiku_draw_support.cc (BView_DrawMask): Rename to
`be_draw_image_mask' and fix coding style.
(rotate_bitmap_270, BBitmap_transform_bitmap, rotate_bitmap_90):
Delete functions.
(be_apply_affine_transform): New function.
(be_apply_inverse_transform): New function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_translate_transform): New function.
(haiku_draw_image_glyph_string): Use affine transforms to
implement images.
* src/image.c (image_set_transform): Implement using affine
transforms on Haiku too.
2022-06-25 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1f6750b53a Avoid treating number as an enum in the org manual
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix some byte-compilation warnings about subr-x"
This reverts commit cd479aa8bd498da4d7980a7fe7a37e238761482f.
This led to build failures when doing bootstraps.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Allow toggling completion modes for `M-x' with `M-X'
* doc/lispref/commands.texi (Interactive Call): Document it.
* lisp/minibuffer.el (minibuffer-local-must-match-map): Bind 'M-X'.
* lisp/simple.el (execute-extended-command-cycle): New command.
(read-extended-command): Use it to allow toggling (bug#47215).
(read-extended-command-1): Renamed from `read-extended-command'.
(execute-extended-command-for-buffer): Factored out most of the
code...
(command-completion--command-for-this-buffer-function): ... to
here.
(extended-command-versions): New variable.
This code is based on a patch by Felician Nemeth
<felician.nemeth@gmail.com>.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Make ido sorting respect ido-case-fold
* lisp/ido.el (ido-file-lessp):
(ido-file-extension-lessp): Respect ido-case-fold (bug#47127).
2022-06-24 Stefan Kangas <stefan@marxist.se>
Avoid treating number as an enum in the org manual
* doc/misc/org.org (The Agenda Dispatcher): Avoid treating number as
enum.
2022-06-24 Michael Albinus <michael.albinus@gmx.de>
Make url-tramp-convert-tramp-to-url more robust
* lisp/url/url-tramp.el (url-tramp-convert-tramp-to-url):
Prevent errors from not existing Tramp methods.
2022-06-24 Platon Pronko <platon7pronko@gmail.com> (tiny change)
Fix logic error in Tramp, setting file ownership
* lisp/net/tramp.el (tramp-skeleton-write-region): Fix logic in
changing file ownership. (Bug#56180)
2022-06-24 Timo Taipalus <timo@taipalus.cc>
Add support for image flipping
* lisp/image.el (image-map): Keybindings for flipping functions.
(image-flip-horizontally): New function that toggles image flipping
property.
(image-flip-vertically): New function that toggles image flipping
property and rotates image 180 degrees.
* src/image.c (syms_of_image): Add property.
(image_set_transform): Modify image rotation code to also horizontally
flip the image when the property is set.
* etc/NEWS: Add description.
* doc/lispref/display.texi (Image Descriptors): Document :flip
(bug#47095).
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix some byte-compilation warnings about subr-x
* lisp/term/haiku-win.el (require):
* lisp/replace.el (require):
* lisp/progmodes/elisp-mode.el (require):
* lisp/isearch.el (require):
* lisp/files.el (require): Require subr-x when compiling.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix imenu popup syntax
* lisp/imenu.el (imenu--create-keymap): Fix menu syntax
(bug#56185).
2022-06-24 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a772c0b852 ; Fix typos: prefer US spelling.
# Conflicts:
# doc/misc/modus-themes.org
2022-06-24 Eli Zaretskii <eliz@gnu.org>
Fix assertion violation when 'max-redisplay-ticks' is set too low
* src/xdisp.c (update_redisplay_ticks): Disable 'scrolling_window'
optimization in 'update_window' when redisplay of a window is
aborted. (Bug#56184)
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS entry about kill-buffer change
2022-06-24 Mattias Engdegård <mattiase@acm.org>
Bytecode opcode comments update
This is a cosmetic change only; there is no change in behaviour.
* lisp/emacs-lisp/bytecomp.el:
* src/bytecode.c (BYTE_CODES, exec_byte_code):
Update and/or remove incorrect, outdated or useless comments.
Clarify. Reorder where appropriate. Rename Bsave_current_buffer to
Bsave_current_buffer_OBSOLETE and Bsave_current_buffer_1 to
Bsave_current_buffer, reflecting the state since 1996.
2022-06-24 Basil L. Contovounesios <contovob@tcd.ie>
Reduce memory footprint of eglot--{}
* eglot.el (eglot--{}): Specify smallest hash table :size, to spare
~1KiB according to memory-report-object-size.
See also https://github.com/joaotavora/eglot/pull/315.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/978
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Update seq.el comment
* lisp/emacs-lisp/seq.el: Update comment.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Allow `kill-buffer' query to save the buffer first
* lisp/loadup.el ("emacs-lisp/rmc"): Preload.
* lisp/simple.el (kill-buffer--possibly-save): New function to
offer to save the buffer before killing (bug#47075).
* src/buffer.c (Fkill_buffer): Call the new function to query the
user.
(syms_of_buffer): Define symbol.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Preload seq
* lisp/loadup.el ("emacs-lisp/seq"): Preload seq since it's now
almost impossible to do anything in Emacs that doesn't result in
seq being loaded -- for instance, visiting a .txt file or an .el
file, so this will speed up Emacs usage for basically everybody.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Allow read-multiple-choice to do long-form answers
* doc/lispref/commands.texi (Reading One Event): Document it.
* lisp/emacs-lisp/rmc.el (read-multiple-choice): Allow using
long-form answers instead of single character ones.
(read-multiple-choice--long-answers): New function.
(read-multiple-choice--short-answers): Refactored out from the
main function.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix cl-generic bootstrap problems
* lisp/sqlite-mode.el (require):
* lisp/net/eudc.el (require):
* lisp/arc-mode.el (require): Require subr-x, since these files
are using macros from there.
* lisp/emacs-lisp/subr-x.el (with-memoization): Move from here...
* lisp/subr.el (with-memoization): ... to here, as it's used from
the preloaded cl-generic.el file.
* lisp/emacs-lisp/cl-generic.el (cl--generic-compiler): Don't use
the autoloaded `byte-compile' function during bootstrap.
(cl--generic-get-dispatcher): Don't require subr-x, either.
cl-generic has been preloaded since 2015, and most usages of it (in
preloaded files) work fine. In particular, using `cl-defgeneric' is
unproblematic. However, `cl-defmethod' would end up pulling in the
byte compiler (at load time), which would make it impossible to use
`cl-defmethod' in pre-loaded files, and this change fixes that (but
possibly not in the most self-evidently correct way).
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Make warning about require/autoload while bootstrapping not error out
* src/fns.c (Frequire):
* src/eval.c (Fautoload_do_load): Avoid further errors while
outputting the error about not being able to autoload/require
while bootstrapping.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Make debug-early-backtrace more resilient
* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Allow
outputting backtraces during bootstrap.
2022-06-24 Po Lu <luangruo@yahoo.com>
Fix handling of mouse motion across screens during drag-and-drop
* src/xterm.c (x_dnd_fill_empty_target): New function.
(handle_one_xevent): Fill empty target if the event didn't come
from the same screen.
2022-06-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous nnimap header fetching change
* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Ensure that the
splitting works.
2022-06-24 Eli Zaretskii <eliz@gnu.org>
Merge branch 'abort-redisplay'
This allows abandoning the redisplay of a window
that takes too long to complete. Bug#45898
* src/xdisp.c (update_redisplay_ticks): New function.
(init_iterator, set_iterator_to_next): Call
'update_redisplay_ticks'.
(syms_of_xdisp) <max_redisplay_ticks>: New variable.
<list_of_error>: Remove 'void-variable': it is no longer needed,
since 'calc_pixel_width_or_height' can no longer signal a
void-variable error, and it gets in the way of aborting
redisplay via 'redisplay_window_error'.
* src/keyboard.c (command_loop_1): Reinitialize the tick count
before executing each command in the loop.
* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
after finishing the loop.
* src/dispnew.c (make_current): Make sure enabled rows of the
current matrix have a valid hash, even if redisplay of a window
was aborted due to slowness. This avoids assertion violations in
'scrolling_window' due to the wrong hash value.
* src/xdisp.c (display_working_on_window_p): New global variable.
(unwind_display_working_on_window): New function.
* src/keyboard.c (command_loop_1): Reset
'display_working_on_window_p' before and after executing commands.
* src/window.c (Frecenter, window_scroll, displayed_window_lines):
* src/indent.c (Fvertical_motion): Set
'display_working_on_window_p' before calling 'start_display'.
* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
after finishing the loop.
* src/regex-emacs.c (re_match_2_internal):
* src/bidi.c (bidi_find_bracket_pairs, bidi_fetch_char)
(bidi_paragraph_init, bidi_find_other_level_edge): Update the
redisplay tick count as appropriate, when moving the iterator by
one character position actually requires to examine many more
positions.
* src/xdisp.c (redisplay_window_error): Show messages about
aborted redisplay of a window as delayed-warnings.
* doc/emacs/trouble.texi (DEL Does Not Delete): Move to the end of
the chapter. This issue is no longer frequent or important as it
was back in Emacs 20 days.
(Long Lines): Document 'max-redisplay-ticks'.
* doc/emacs/emacs.texi (Top): Update the detailed menu.
* etc/NEWS: Announce 'max-redisplay-ticks'.
2022-06-23 Po Lu <luangruo@yahoo.com>
Improve grabbing detection with multiple master devices (MPX)
* src/frame.c (gui_mouse_grabbed): Respect any_grab_hook.
* src/termhooks.h (GCALIGNED_STRUCT): New hook `any_grab_hook'.
* src/xterm.c (x_have_any_grab): New function.
(x_create_terminal): Define hook on XI2 builds.
2022-06-23 Po Lu <luangruo@yahoo.com>
Simplify XI event state conversion
* src/xterm.c (xi_convert_button_state, xi_convert_event_state):
New functions.
(handle_one_xevent): Reduce duplicate code for converting XI
state and button state into X state.
2022-06-23 Stefan Kangas <stefan@marxist.se>
* lisp/net/browse-url.el: Doc fix; recommend keymap-* functions.
* lisp/recentf.el (recentf-auto-cleanup): Clarify docstring.
2022-06-23 Mattias Engdegård <mattiase@acm.org>
Remove unused function in bytecomp.el
* lisp/emacs-lisp/bytecomp.el (byte-compile-delete-first): Remove.
2022-06-23 Gerd Moellmann <gerd.moellmann@gmail.com>
Save desktop-save-mode when changed from menu
* lisp/menu-bar.el (menu-bar-options-save): Save desktop-save-mode
(bug#56156).
2022-06-23 Stefan Kangas <stefan@marxist.se>
Tag shortcut commands for recentf-dialog-mode
* lisp/recentf.el (recentf--shortcuts-keymap): Add interactive mode
tags for 'recentf-dialog-mode' specific commands.
2022-06-23 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap and keymap-set in recentf.el
* lisp/recentf.el (recentf-mode-map): Prefer defvar-keymap.
(recentf--shortcuts-keymap): Prefer keymap-set.
2022-06-23 Stefan Kangas <stefan@marxist.se>
Use shortened filenames in recentf-mode
* lisp/recentf.el (recentf-filename-handlers): Set to
'abbreviate-file-name' to get shortened names by default. (Bug#56123)
2022-06-23 Stefan Kangas <stefan@marxist.se>
Revert "Allow shortening filenames in recentf-mode menu"
This reverts commit 32906819addde1aa952d4718699d332d3a58b004.
2022-06-23 Stefan Kangas <stefan@marxist.se>
Revert "Use short file names by default in recentf menu"
This reverts commit ec9228eb81c0a89b18480dfff18cc9afdc3d0884.
2022-06-23 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that nnimap doesn't send too long lines to the server
* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Don't send
too-long lines to the server (bug#56138).
2022-06-23 Po Lu <luangruo@yahoo.com>
Minor fixes to last change
* src/pgtkselect.c (pgtk_get_window_property): Add 1 to xdata
when it is GdkAtom.
* src/pgtkterm.c (drag_leave): Initialize inev.ie.
2022-06-23 Po Lu <luangruo@yahoo.com>
Make DND from other GTK programs work on Wayland
* lisp/pgtk-dnd.el (pgtk-dnd-handle-gdk): Try to keep the
selection contents in extra-data during a motion event.
2022-06-23 Po Lu <luangruo@yahoo.com>
Allow dropping more data types on PGTK
* lisp/loadup.el (featurep): Load `pgtk-dnd'.
* lisp/pgtk-dnd.el: New file.
(pgtk-dnd-test-function, pgtk-dnd-types-alist)
(pgtk-dnd-known-types, pgtk-dnd-use-offix-drop)
(pgtk-dnd-current-state, pgtk-get-selection-internal)
(pgtk-register-dnd-targets, pgtk-dnd-empty-state)
(pgtk-dnd-init-frame, pgtk-dnd-get-state-cons-for-frame)
(pgtk-dnd-get-state-for-frame, pgtk-dnd-default-test-function)
(pgtk-dnd-current-type, pgtk-dnd-forget-drop)
(pgtk-dnd-maybe-call-test-function, pgtk-dnd-save-state)
(pgtk-dnd-handle-moz-url, pgtk-dnd-insert-utf8-text)
(pgtk-dnd-insert-utf16-text, pgtk-dnd-insert-ctext)
(pgtk-dnd-handle-uri-list, pgtk-dnd-handle-file-name)
(pgtk-dnd-choose-type, pgtk-dnd-drop-data)
(pgtk-dnd-handle-drag-n-drop-event, pgtk-update-drop-status)
(pgtk-drop-finish, pgtk-dnd-handle-gdk, pgtk-dnd): New variables
and functions and library.
* lisp/term/pgtk-win.el (special-event-map): Load
`drag-n-drop-event'.
(after-make-frame-functions): Register DND after make frame
functions.
* src/emacs.c (main): Stop calling empty init_pgtkterm function.
* src/pgtkselect.c (Fpgtk_register_dnd_targets, Fpgtk_drop_finish)
(Fpgtk_update_drop_status): New functions.
(syms_of_pgtkselect): Register new functions.
* src/pgtkterm.c (struct event_queue_t): Fix coding style of
definition.
(symbol_to_drag_action, drag_action_to_symbol)
(pgtk_update_drop_status, pgtk_finish_drop): New functions.
(drag_data_received): Delete function.
(pgtk_set_event_handler): Register for DND correctly.
(syms_of_pgtkterm): New defsyms for DND types.
(init_pgtkterm): Delete function.
* src/pgtkterm.h: Update prototypes, fix prototype coding style.
2022-06-23 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a3f294b37f Improve last change in autotype.texi
2022-06-22 Po Lu <luangruo@yahoo.com>
Don't send XdndPosition before XdndStatus arrives
* src/xterm.c (x_dnd_send_position): Set pending DND message if
target is right.
(x_dnd_send_leave): Clear pending status target.
(x_dnd_begin_drag_and_drop): Clear new flags.
(handle_one_xevent): Respect those flags.
2022-06-22 Po Lu <luangruo@yahoo.com>
Update device-specific grab during drag-and-drop
* src/xterm.c (x_detect_focus_change): Fix typo.
(handle_one_xevent): Set device if DND is in progress and update
device->grab.
2022-06-22 Stefan Kangas <stefan@marxist.se>
Make recentf-elements obsolete
* lisp/recentf.el (recentf-elements): Make obsolete. Update
callers.
2022-06-22 Stefan Kangas <stefan@marxist.se>
Convert several defsubst to defun in recentf.el
* lisp/recentf.el (recentf-enabled-p, recentf-string-equal)
(recentf-string-lessp, recentf-push, recentf-expand-file-name)
(recentf-add-file, recentf-remove-if-non-kept)
(recentf-digit-shortcut-command-name, recentf-elements)
(recentf-menu-bar, recentf-sort-ascending)
(recentf-sort-descending, recentf-sort-basenames-ascending)
(recentf-sort-basenames-descending)
(recentf-sort-directories-ascending)
(recentf-sort-directories-descending)
(recentf-show-basenames-ascending)
(recentf-show-basenames-descending): Change from defsubst to
defun.
2022-06-22 Stefan Kangas <stefan@marxist.se>
Bind C-c C-c and C-c C-k in recentf-dialog-mode
* lisp/recentf.el (recentf-dialog-mode-map): Prefer defvar-keymap.
Bind `C-c C-c' and `C-c C-k' to confirm/cancel the dialog.
(recentf-cancel-dialog, recentf-edit-list-validate): Add
interactive mode tags for 'recentf-dialog-mode'.
(recentf-dialog-mode): Mark as non-interactive.
(recentf-edit-list): Display key binding.
2022-06-22 Michael Albinus <michael.albinus@gmx.de>
Fix dnd-tests-open-remote-url on EMBA
* test/lisp/dnd-tests.el (dnd-tests-open-remote-url): Check for
ftp client.
2022-06-22 Mattias Engdegård <mattiase@acm.org>
duplicate-line: fix optional argument and add test (bug#46621)
The test assumes that the current semantics are intended and desired,
which may or may not be true, but it's better than not having any at
all.
* lisp/misc.el (duplicate-line): Don't crash if called with no argument.
* test/lisp/misc-tests.el (misc--duplicate-line): New test.
2022-06-22 Richard Hansen <rhansen@rhansen.org>
bindat (strz): Null terminate fixed-length strings if there is room
* lisp/emacs-lisp/bindat.el (bindat--pack-strz): For fixed-length strz
fields, explicitly write a null terminator after the packed string if
there is room (bug#56048).
* doc/lispref/processes.texi (Bindat Types): Update documentation.
* test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc):
Update tests.
2022-06-22 Gerd Moellmann <gerd.moellmann@gmail.com>
Prevent GC of window referenced from EmacsScroller
* src/nsterm.m (EmacsScroller.mark, mark_nsterm): New functions.
* src/nsterm.h (EmacsScroller.mark, mark_nsterm): Declare.
* src/alloc.c (garbage_collect) [MAVE_NS]: Call mark_nsterm.
(Bug#56095)
2022-06-22 Eli Zaretskii <eliz@gnu.org>
Improve last change in autotype.texi
* doc/misc/autotype.texi (Autoinserting): Fix wording. Suggested
by Richard Stallman <rms@gnu.org>.
2022-06-22 Stefan Kangas <stefan@marxist.se>
Prefer Emacs mouse button event names to XEmacs names
* lisp/mwheel.el:
* lisp/vc/ediff-mult.el (ediff-meta-buffer-verbose-message)
(ediff-draw-dir-diffs, ediff-redraw-registry-buffer): Prefer Emacs
mouse button event names to XEmacs names.
2022-06-22 Stefan Kangas <stefan@marxist.se>
* lisp/bs.el (bs-mode-map): Prefer defvar-keymap.
2022-06-22 Po Lu <luangruo@yahoo.com>
Fix non-system-malloc build
* src/xterm.c (x_gc_free_ext_data_private): New function.
(x_gc_get_ext_data): Set it as the private data free function.
2022-06-22 Stefan Kangas <stefan@marxist.se>
Do interactive mode tagging in edmacro.el
* lisp/edmacro.el (edmacro-finish-edit, edmacro-insert-key):
Add interactive mode tag for edmacro-mode.
2022-06-22 Stefan Kangas <stefan@marxist.se>
Use short file names by default in recentf menu
* lisp/recentf.el (recentf-menu-filter): Set the default to
'recentf-show-abbreviated' to get short file names. (Bug#56123)
2022-06-22 Sean Whitton <spwhitton@spwhitton.name>
Don't drop existing escape char in eshell
* lisp/eshell/em-term.el (eshell-exec-visual): Don't drop existing
escape char.
2022-06-22 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_scroll_bar_note_movement): Fix no-toolkit build.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Mention the new Tetris user option
2022-06-21 Po Lu <luangruo@yahoo.com>
Port x-selection-timeout to PGTK
* src/pgtkselect.c (pgtk_own_selection): Fix comment.
(wait_for_property_change, pgtk_get_foreign_selection): Respect
selection timeout.
(syms_of_pgtkselect): New variable `pgtk-selection-timeout'.
2022-06-21 Po Lu <luangruo@yahoo.com>
Fix setting user time for mouse movement events
* src/xterm.c (x_note_mouse_movement, XTmouse_position)
(x_scroll_bar_note_movement, handle_one_xevent): Record whether
or not mouse movement was send_event before using the mouse
movement time.
* src/xterm.h (struct x_display_info): New field
`last_mouse_movement_time_send_event'.
2022-06-21 Sam Steingold <sds@gnu.org>
A trivial optimization and a formatting fix
* lisp/subr.el (internal--compiler-macro-cXXr): Re-use `head' for `n'.
Fix indentation and line length.
2022-06-21 Tassilo Horn <tsdh@gnu.org>
Merge from origin/emacs-28
f3acc09377 ; Revert "Use file-in-directory-p instead of obsolete dire...
5082d74cfd ; * lisp/recentf.el: Fix typo.
3f66e2a903 * lisp/repeat.el (repeat-mode): Fix message format.
137539c125 Clarify autotype.texi text slightly
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix logic in previous Tetris change
* lisp/play/tetris.el (tetris-new-shape): Fix logic in previous
change.
2022-06-21 Timothee Denizou <timothee.denizou@epita.fr> (tiny change)
Allow different randomization of shapes in Tetris
* lisp/play/tetris.el (tetris-allow-repetitions): New user option.
(tetris--shuffle, tetris--seven-bag): New functions.
(tetris-new-shape): Use the option.
* Added 7 bag randomizer for tetris
A piece is selected from the bag and removed each time we want a piece
When the bag is empty, refill the bag with the seven piece and shuffle it
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix shr--set-target-ids test for empty buffer
* lisp/net/shr.el (shr--set-target-ids): Fix the check for an
empty buffer (which may be narrowed).
2022-06-21 Michael Heerdegen <michael_heerdegen@web.de>
Fix autoload generation of iter-defun forms
This fixes Bug#54648.
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--make-autoload):
Add `iter-defun' and `cl-iter-defun' to the list of "complex cases"
that are macro-expanded and recursed on.
2022-06-21 Philipp Stephani <phst@google.com>
Document and test 'no-byte-compile' behavior.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Document behavior
if 'no-byte-compile' is set.
* test/lisp/emacs-lisp/bytecomp-tests.el
(byte-compile-file/no-byte-compile): New unit test.
* test/lisp/emacs-lisp/bytecomp-resources/no-byte-compile.el: New test
file.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix too-long ediff defface doc strings
* lisp/vc/ediff-init.el (ediff-fine-diff-Ancestor):
(ediff-even-diff-Ancestor):
(ediff-odd-diff-Ancestor): Fix too-long doc strings.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Check defface doc strings
* lisp/emacs-lisp/bytecomp.el
(byte-compile-file-form-custom-declare-variable): We already warn
about missing groups from byte-compile-normal-call, so this would
be a double warning.
(custom-declare-face)
(byte-compile-file-form-custom-declare-face): Add doc string
checking for defface.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Untabify doc strings before displaying in Customize
* lisp/cus-edit.el (custom-variable-documentation): Untabify the
doc string since we'll be indenting it when displaying it (which
makes the tabs not align properly).
2022-06-21 Manuel Giraud <manuel@ledu-giraud.fr>
Two typos captured on OpenBSD/clang
2022-06-21 Po Lu <luangruo@yahoo.com>
Fix recent change to xlwmenu.c
* lwlib/xlwmenu.c (ungrab_all): Ungrab keyboard if it was
grabbed. This handles `lucid--menu-grab-keyboard' changing
while the menu is open.
(XlwMenuDestroy):
(pop_up_menu): Record if the keyboard was grabbed.
2022-06-21 Po Lu <luangruo@yahoo.com>
Rewrite PGTK selection code from scratch
* src/frame.c (delete_frame): Clear selections and swallow
special events.
* src/keyboard.c (kbd_buffer_get_event, process_special_events):
Also handle selection events on PGTK.
* src/keyboard.h (union buffered_input_event): Include selection
events on PGTK.
* src/pgtkselect.c (symbol_to_gtk_clipboard, LOCAL_SELECTION):
New functions and macros.
(selection_type_to_quarks, get_func, clear_func): Delete
functions.
(pgtk_selection_init, pgtk_selection_lost):
(pgtk_selection_usable): New functions.
(Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal)
(Fpgtk_selection_exists_p, Fpgtk_selection_owner_p)
(Fpgtk_get_selection_internal): Complete rewrite.
(syms_of_pgtkselect): Update defsyms and add more hooks.
* src/pgtkselect.h: Delete file.
* src/pgtkterm.c (evq_enqueue): Set last user time based on the
event.
(pgtk_any_window_to_frame, button_event): Fix coding style.
(pgtk_set_event_handler): Add selection events.
(pgtk_find_selection_owner, pgtk_selection_event): New
functions.
(pgtk_term_init): Remove call to `pgtk_selection_init'.
* src/pgtkterm.h (struct pgtk_display_info): New field
`display'.
(enum selection_input_event): New struct. New macros for
accessing its fields.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous -batch change for gc-cons-percentage
* src/emacs.c (main): Reset the default for gc-cons-percentage in
interactive Emacs.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Increase gc-cons-percentage in -batch Emacs
* doc/lispref/os.texi (Batch Mode): Document it.
* src/emacs.c (main): Use a gc-cons-percentage of 1.0 in
noninteractive Emacsen.
2022-06-21 Michael Albinus <michael.albinus@gmx.de>
Tramp code cleanup
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
Improve handling of "process-name" and "process-buffer" connection
properties.
2022-06-21 Stefan Kangas <stefan@marxist.se>
Allow shortening filenames in recentf-mode menu
* lisp/recentf.el (recentf-show-abbreviated): New function.
(recentf--filter-names): New helper function.
(recentf-show-basenames): Use above new helper function.
(recentf-menu-filter): Allow setting user option to new value
'recentf-show-abbreviated'.
2022-06-21 Stefan Kangas <stefan@marxist.se>
* lisp/repeat.el (repeat-mode): Fix message format.
2022-06-21 kobarity <kobarity@gmail.com>
Fix nested defuns handling in `python-nav-beginning-of-defun'
* lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix
handling of nested defuns (bug#56105).
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous describe-key change
* lisp/help.el (describe-function-orig-buffer): Ensure we bind
dynamically.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Make describe-key do doc string command key substitution again
* lisp/help.el (describe-key): Do doc string command key
substitution (bug#56106).
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix fontification in describe-key
* lisp/help.el (describe-key): Use insert instead of princ so that
text properties on the key descriptions survive.
2022-06-21 Kevin Brubeck Unhammer <unhammer@fsfe.org>
Speed up mail-extr in some configurations
* lisp/mail/mail-extr.el (mail-extract-address-components):
(mail-extract-address-components): The buffer is already in
fundamental-mode, so don't re-enable it (bug#56113).
2022-06-21 Earl Hyatt <okamsn@protonmail.com>
Clarify autotype.texi text slightly
* doc/misc/autotype.texi (Autoinserting): Make text slightly
clearer (bug#56118).
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Rename recently-introduced dired-omit-line-regexp user option
* lisp/dired-x.el (dired-omit-lines, dired-omit-mode): Rename
dired-omit-line-regexp to dired-omit-lines for consistency.
2022-06-21 Lars Ingebrigtsen <larsi@gnus.org>
Make Lucid menus work from the keyboard also when uninstalled
* lwlib/xlwmenu.c (ungrab_all, pop_up_menu): Use it.
* src/keyboard.c (syms_of_keyboard): New variable (bug#46990).
2022-06-21 Po Lu <luangruo@yahoo.com>
Allow toggling antialiasing inside the Haiku font dialog
* src/haiku_support.cc (struct font_selection_dialog_message):
New field `disable_antialias'.
(MessageReceived): Handle new message SET_DISABLE_ANTIALIASING.
(class DualLayoutView): Rename to `TripleLayoutView'.
(class TripleLayoutView): Rename from `DualLayoutView'.
(MinSize): Update computations for three views.
(class EmacsFontSelectionDialog, UpdatePreview)
(EmacsFontSelectionDialog): Add an antialiasing checkbox to
control antialiasing.
(be_select_font): New arguments `initial_antialias' and
`disable_antialias'.
* src/haiku_support.h: Update prototypes.
* src/haikufont.c (haikufont_pattern_from_object): Set
FSPEC_ANTIALIAS.
(Fx_select_font): Update accordingly.
2022-06-21 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
2eb738f2b8 Support builds configured with a separate --bindir
cf4c204df8 * doc/misc/eww.texi (Overview, Basics): Fix typos.
2022-06-20 Po Lu <luangruo@yahoo.com>
Add test for bug#56078 fix
* test/lisp/dnd-tests.el (dnd-tests-open-remote-url): New test.
2022-06-20 Po Lu <luangruo@yahoo.com>
Remove selection requests on the keyboard buffer when closing display
* src/xterm.c (X_NEXT_KBD_EVENT): New macro.
(x_defer_selection_requests): Set input_pending if the kbd
buffer was modified.
(x_delete_selection_requests): New function.
(x_delete_display): Call that. Bug found when a display died
while the clipboard manager was sending an unreasonably high
number of requests.
2022-06-20 Po Lu <luangruo@yahoo.com>
Move selection delayed message to a better location
* lisp/term/x-win.el (gui-backend-get-selection): Remove
`with-delayed-message' here.
* src/xselect.c (x_display_selection_waiting_message)
(x_cancel_atimer): New functions.
(x_get_foreign_selection): Add an atimer that displays the
message after a while.
2022-06-20 Sean Whitton <spwhitton@spwhitton.name>
* lisp/edmacro.el: Add missing (require 'seq).
2022-06-20 Sean Whitton <spwhitton@spwhitton.name>
term-set-escape-char: Remove old binding from term-raw-escape-map
* lisp/term.el (term-set-escape-char): When replacing the escape char,
remove the binding of the old escape char in term-raw-escape-map.
2022-06-20 Alan Mackenzie <acm@muc.de>
Fix potential (goto-char nil) in byte-compile-warning-prefix
* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Replace a wrong
'or' form involving OFFSET with simply OFFSET. This prevents OFFSET from
possibly being nil in the first branch of the containing `if' form.
2022-06-20 Eli Zaretskii <eliz@gnu.org>
Support builds configured with a separate --bindir
* src/emacs.c (load_pdump): Don't overwrite the leading
directories of the Emacs executable just because the pdumper file
was not found in the expected directory relative to the binary.
This is needed to support builds with a separate --bindir
configure-time option and native-compilation. (Bug#55741)
2022-06-20 Lars Ingebrigtsen <larsi@gnus.org>
Issue a message if getting a selection takes a long time
* lisp/term/x-win.el (gui-backend-get-selection): If getting the
selection takes a long time, issue a message after one second
(bug#46935).
2022-06-20 Michael Albinus <michael.albinus@gmx.de>
Adapt url-tramp-tests
* test/lisp/url/url-tramp-tests.el (url-tramp-test-convert-url-to-tramp)
(url-tramp-test-convert-tramp-to-url): Adapt tests.
2022-06-20 Po Lu <luangruo@yahoo.com>
Fix x-selection-timeout if some keyboard input arrives while waiting
* src/process.c (wait_reading_process_output): Don't allow
skipping calls to select if detect_input_pending when just
waiting for a cell. (bug#46935)
* src/xselect.c (x_get_foreign_selection): Add more debugging
code.
2022-06-20 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in hi-lock.el
* lisp/hi-lock.el: Prefer keymap-set in documentation.
(hi-lock-map): Prefer defvar-keymap.
2022-06-20 Po Lu <luangruo@yahoo.com>
Fix ns-reg-to-script definition
* src/nsfont.m (syms_of_nsfont): Fix definition.
2022-06-20 Po Lu <luangruo@yahoo.com>
Fix running temacs on Haiku
* src/emacs.c (main): Run init_haiku_select at the right place.
2022-06-20 Po Lu <luangruo@yahoo.com>
Fix initialization of Haiku font driver
* src/font.c (register_font_driver): Fix comment.
* src/haikufont.c (haikufont_booleans): New list.
(haikufont_filter_properties): New function.
(haikufont_driver): Register new hook.
(syms_of_haikufont_for_pdumper): Register font driver globally.
(syms_of_haikufont): Call it in a pdumper hook.
2022-06-20 Michael Albinus <michael.albinus@gmx.de>
Fix problems with Tramp FTP and URL handler mode
* lisp/net/tramp-archive.el (tramp-archive-run-real-handler):
Add ;;;###tramp-autoload cookie.
* lisp/net/tramp-ftp.el (tramp-ftp-file-name-handler): Prevent invocation
of `tramp-archive-file-name-handler'. (Bug#56078)
* lisp/url/url-tramp.el (url-tramp-convert-url-to-tramp)
(url-tramp-convert-tramp-to-url): Make them more robust.
2022-06-20 Po Lu <luangruo@yahoo.com>
Ignore pinch events from the wrong window
* src/xterm.c (handle_one_xevent): Use x_window_to_frame to find
frames for pinch events.
2022-06-20 David Ponce <da_vid@orange.fr>
Make images found through `find-image' be handled like `create-image'
* lisp/image.el (find-image): Use `create-image' so that we get
auto-scaling of images (bug#40978).
2022-06-20 Lars Ingebrigtsen <larsi@gnus.org>
Allow using :width/:height as normal with xbm images
* doc/lispref/display.texi (XBM Images): Adjust the documentation.
* src/image.c (enum xbm_keyword_index): Add :data-width and
:data-height.
(xbm_format): Ditto.
(xbm_image_p): Allow passing in :width/:height for display.
(xbm_load): Use :data-width/:data-height.
2022-06-20 Stefan Kangas <stefan@marxist.se>
* doc/misc/eww.texi (Overview, Basics): Fix typos.
2022-06-20 Richard Hansen <rhansen@rhansen.org>
whitespace: Redraw if indentation or line length changes
* lisp/whitespace.el (whitespace-color-on): Convert the indentation
matcher from a static regular expression to a function so that changes
to `indent-tabs-mode' and `tab-width' are picked up the next time
`font-lock-flush' runs.
(whitespace--indentation-matcher): The new function matcher.
(whitespace--variable-watcher): New variable watcher that calls
`font-lock-flush' if `whitespace-mode' is enabled for the buffer.
(whitespace--watched-vars): List of variables to watch.
(whitespace-unload-function): Un-watch the variables. (bug#56103).
2022-06-19 Po Lu <luangruo@yahoo.com>
Respect `:antialias' on Haiku
* src/haiku_font_support.cc (BFont_find): Pass through
FSPEC_ANTIALIAS.
(be_set_font_antialiasing): New function.
* src/haiku_support.h (enum haiku_font_specification): New enum
FSPEC_ANTIALIAS.
(struct haiku_font_pattern): New field `use_antialiasing'.
* src/haikufont.c (haikufont_pattern_to_entity)
(haikufont_spec_or_entity_to_pattern, haikufont_open): Respect
antialiasing.
(syms_of_haikufont): New defsym `:indices'.
2022-06-19 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
* src/treesit.c (make_ts_parser): Initialize timestamp field.
2022-06-19 Po Lu <luangruo@yahoo.com>
Don't generate superfluous wheel events during drag and drop
* src/xterm.c (handle_one_xevent): Only set user time and don't
create wheel events if DND is in progress.
2022-06-19 Po Lu <luangruo@yahoo.com>
Fix earlier change in xfaces.c for antialiasing in the mode line
* src/xfaces.c (realize_gui_face): Don't put QCantialias in
empty spec if it doesn't exist in the original.
2022-06-19 Miha Rihtaršič <miha@kamnitnik.top>
xref-goto-xref: Set input focus in addition to selecting window
* lisp/progmodes/xref.el (xref--show-location): Set input focus in
addition to selecting displayed window (Bug#55983).
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Allow removing quotes around links in *Help* buffers
* doc/emacs/help.texi (Help Mode): Document it.
* lisp/help-mode.el (help-clean-buttons): New user option
(help-xref-button): Use it.
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Tweak quoting in help-fns--compiler-macro
* lisp/help-fns.el (help-fns--compiler-macro): Fix quotes in help
text.
2022-06-19 Pip Cet <pipcet@gmail.com>
Fix bytecompiler infloop compiling infloops
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Don't apply
optimization if we can't change anything (bug#46906).
2022-06-19 Drew Adams <drew.adams@oracle.com>
Let `dired-omit-mode' match lines, as well as file names
* lisp/dired-aux.el (dired-do-kill-lines): Adjust to use it.
* lisp/dired-x.el (dired-omit-line-regexp): New user option
(bug#46882).
(dired-omit-mode, dired-omit-expunge): Use the new user option.
2022-06-19 Stefan Kangas <stefan@marxist.se>
Update font scaling documentation to not talk about "face height"
* lisp/play/gamegrid.el (gamegrid-init-buffer):
* lisp/mwheel.el (mouse-wheel-scroll-amount):
(mouse-wheel-text-scale):
* lisp/faces.el (set-face-attribute):
* lisp/face-remap.el (text-scale-mode-step):
(text-scale-increase):
(text-scale-adjust):
* lisp/cus-face.el (custom-face-attributes):
* doc/emacs/frames.texi (Mouse Commands):
* doc/emacs/display.texi (Text Scale): Talk about font sized instead
of "face height" (bug#46853).
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Allow appending to the kill ring with mouse selections
* lisp/bindings.el (ignore-preserving-kill-region): New function.
(global-map): Use it.
* lisp/mouse.el (mouse-set-region, mouse-drag-region)
(mouse-drag-track): Allow appending to kill ring with mouse
selections (bug#32747).
2022-06-19 Michael Albinus <michael.albinus@gmx.de>
Fix last change in tramp-adb-handle-make-process
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
Fix process buffer management.
2022-06-19 Stefan Kangas <stefan@marxist.se>
Fix starting eshell with missing/invalid modules defined
* lisp/eshell/esh-mode.el (eshell-mode): Warn instead of failing to
start when 'eshell-modules-list' has invalid entries. (Bug#54976)
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Make describe-repeat-maps fontify key bindings
* lisp/repeat.el (describe-repeat-maps): Fontify key bindings as
key bindings.
2022-06-19 Eli Zaretskii <eliz@gnu.org>
Show warnings about aborted redisplay
* src/xdisp.c (redisplay_window_error): Show messages about
aborted redisplay of a window as delayed-warnings.
2022-06-19 Po Lu <luangruo@yahoo.com>
More conservative fix for bug#37473
* src/xfaces.c (realize_gui_face): Add more conservative fix,
since the last change makes C-x C-+ lead to weight weirdness on
my machine.
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Make M-S-x output better in mode that have bindings for `undefined'
* lisp/simple.el (command-completion-using-modes-p): Speed up case
when there's no command modes.
(execute-extended-command-for-buffer): Make M-S-x output better
(bug#46665).
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Recognize \' as a quoted quote in MySQL
* lisp/progmodes/sql.el (sql-mode): Recognize \' as a quoted quote
in MySQL (bug#38302).
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Don't handle reverseVideo X resource specially
* lisp/term/x-win.el (window-system-initialization): Don't handle
reverseVideo specially (bug#32921).
2022-06-19 Sébastien Miquel <sebastien.miquel@posteo.eu>
Small fix in font-lock-extend-region-multiline
* lisp/font-lock.el (font-lock-extend-region-multiline): Do not
extend the region if `font-lock-multiline' starts at
`font-lock-end' (bug#46558).
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Don't lose antialiasing info when hitting `C-x C-+'
* src/xfaces.c (realize_gui_face): Don't lose antialiasing info
when hitting `C-x C-+' (bug#37473).
2022-06-19 Po Lu <luangruo@yahoo.com>
Fix setting last user time during drag-and-drop
* src/xterm.c (handle_one_xevent): Set the last user time if a
button press happens during drag and drop. Mysterious problems
were other seen with sending selections to a clipboard
immediately afterwards on Irix 6.5.
2022-06-19 Stefan Kangas <stefan@marxist.se>
Add rudimentary font-locking to edmacro-mode
* lisp/edmacro.el (edmacro-label): New face.
(edmacro-mode-font-lock-keywords): New variable.
(edit-kbd-macro): Use font-lock in 'edmacro-mode'. Minor
improvement to command substitution.
2022-06-19 Stefan Kangas <stefan@marxist.se>
* lisp/obsolete/eieio-compat.el: Add missing Obsolete-since line.
2022-06-19 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in kmacro.el
* lisp/kmacro.el (kmacro-keymap, kmacro-step-edit-map): Prefer
defvar-keymap.
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix edebug parsing of .,
* lisp/emacs-lisp/edebug.el (edebug-next-token-class): Parse .,
correctly (bug#37653).
2022-06-19 Michael Heerdegen <michael_heerdegen@web.de>
Tune when to show "Quick Help" in Ediff mode-line
* lisp/vc/ediff-wind.el (ediff-refresh-mode-lines): Decide whether to
display "Quick Help" in the mode-line based on the value of
`ediff-use-long-help-message' instead of checking
`ediff-window-setup-function' (Bug#12840).
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Make checkdoc-defun-info parsing slightly less wrong
* lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info): Disregard
`interactive' in nested parts of the defun (bug#56052).
2022-06-19 Eli Zaretskii <eliz@gnu.org>
Update redisplay ticks for more operations, and misc modifications
* src/xdisp.c (update_redisplay_ticks): Don't disable redisplay of
mini-windows.
* src/regex-emacs.c (re_match_2_internal):
* src/bidi.c (bidi_find_bracket_pairs, bidi_fetch_char)
(bidi_paragraph_init, bidi_find_other_level_edge): Update the
redisplay tick count as appropriate, when moving the iterator by
one character position actually requires to examine many more
positions.
* doc/emacs/trouble.texi (Long Lines):
* src/xdisp.c (syms_of_xdisp) <max_redisplay_ticks>: Update
recommended non-zero values.
2022-06-19 Lars Ingebrigtsen <larsi@gnus.org>
Add mechanism for gradually phasing in new byte compilation warnings
* lisp/Makefile.in (BYTE_COMPILE_FLAGS): Enable all byte
compilation warnings.
* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types): Add
docstrings-non-ascii-quotes and document new semantics for `all'
and t.
(byte-compile--emacs-build-warning-types): New constant.
(byte-compile-warning-enabled-p): Implement the new semantics.
(byte-compile-docstring-style-warn): Reinstate the Unicode quote
warning.
2022-06-19 Po Lu <luangruo@yahoo.com>
Ignore emulated mouse clicks during drag-and-drop
* src/xterm.c (handle_one_xevent): Don't set dpyinfo->grab and
last mouse frame for emulated mouse events during a
drag-and-drop operation.
2022-06-19 Po Lu <luangruo@yahoo.com>
Fix crashes when the _EMACS_DRAG_ATOM is the wrong type
* src/xterm.c (xm_get_drag_atom_1): Don't use PropModeAppend if
rc != Success.
2022-06-19 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
422f958030 Fix invalid defcustom :group when :predicate is used
2022-06-19 Po Lu <luangruo@yahoo.com>
Fix XDND from Firefox again
* lisp/x-dnd.el (x-dnd-handle-xdnd): Prevent nil from appearing
in format 32 list.
(x-dnd-handle-motif): Send reply if the user quit out of the
drop handler as well.
2022-06-18 Po Lu <luangruo@yahoo.com>
Cache the Motif drag window to avoid fetching it every time
* src/xterm.c (xm_get_drag_window_1): New function.
(xm_get_drag_window): Cache the window. If it already exists,
just return it.
(xm_setup_dnd_targets): If a BadWindow error occurs, re-create
the Motif drag window.
* src/xterm.h (struct x_display_info): New field
`motif_drag_window'.
2022-06-18 Po Lu <luangruo@yahoo.com>
Fix timestamps recorded in Motif DND top level leave messages
* src/xterm.c (xm_send_top_level_leave_message): Use X_SHRT_MAX
since Motif treats x and y as signed.
(handle_one_xevent): Use correct time for lmsg.timestamp sent in
response to entering the return-frame.
2022-06-18 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in edmacro.el
* lisp/edmacro.el (edmacro-mode-map): Prefer defvar-keymap.
2022-06-18 Stefan Kangas <stefan@marxist.se>
Respect no-face argument in literal key substitutions
* lisp/help.el (substitute-command-keys): Respect 'no-face' argument
also in literal key substitutions.
* test/lisp/help-tests.el
(help-tests-substitute-key-bindings/help-key-binding-face): Rename
from help-tests-substitute-key-bindings/face-help-key-binding.
(help-tests-substitute-key-bindings/help-key-binding-no-face): New test.
2022-06-18 Basil L. Contovounesios <contovob@tcd.ie>
Fix last tty-select-active-regions change
* lisp/frame.el (tty-select-active-regions): Pacify warning about
missing defcustom :group by specifying the same group as
select-active-regions, as well as the frames group.
* src/keyboard.c (command_loop_1, syms_of_keyboard): Rename last
occurrences of xterm-select-active-regions to
tty-select-active-regions (bug#55883).
2022-06-18 Alan Mackenzie <acm@muc.de>
CC Mode: Add accurate handling for backslash in C line and block comments
This is needed to handle the idiosyncratic meaning of backslash in comments in
the C and C++ standards.
* lisp/progmodes/cc-engine.el: Correct a spelling error.
* lisp/progmodes/cc-mode.el (c-before-change-fix-comment-escapes)
(c-after-change-fix-comment-escapes): New functions.
* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Add
c-before-change-fix-comment-escapes to the C/Objc and C++ values.
(c-before-font-lock-functions): Add c-after-change-fix-comment-escapes to the
C/Objc and C++ values.
2022-06-18 Eli Zaretskii <eliz@gnu.org>
Fix test failures due to 'xterm-select-active-regions'
* lisp/frame.el (tty-select-active-regions): Rename from
xterm-select-active-regions and move here from xterm.c.
(display-selections-p): Adjust to the above. (Bug#55883)
2022-06-18 Mattias Engdegård <mattiase@acm.org>
More aggressive bytecode split between top-level forms (bug#55972)
* lisp/emacs-lisp/bytecomp.el (byte-compile-keep-pending):
Allow bytecode split between all kinds of top-level forms, not just
those with chunk handlers, to prevent individual chunks from growing
too large. In particular this helps compilation of
package-quickstart.el.
2022-06-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix checkdoc--fix-y-or-n-p query
* lisp/emacs-lisp/checkdoc.el (checkdoc--fix-y-or-n-p): Fix the
query to match what's done (bug#56053).
2022-06-18 Richard Hansen <rhansen@rhansen.org>
Fix invalid defcustom :group when :predicate is used
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Fix
invalid `:group' argument for the `-modes' defcustom that is created
when `:predicate' is used (bug#56049).
2022-06-18 Lars Ingebrigtsen <larsi@gnus.org>
Filter out NS non-key events from `where-is-internal'
* doc/lispref/keymaps.texi (Scanning Keymaps): Document it.
* lisp/keymap.el (make-non-key-event): New function.
* lisp/term/common-win.el (x-setup-function-keys): Mark ns events
as not being keys (bug#55940).
* src/keymap.c (Fwhere_is_internal): Filter out key sequences that
are marked as being non-keys.
2022-06-18 Po Lu <luangruo@yahoo.com>
Remove unnecessary clearing of internal border on Haiku
* src/haikuterm.c (haiku_new_font): Don't clear internal border.
2022-06-18 Lars Ingebrigtsen <larsi@gnus.org>
Allow pretty-printing results from `C-x C-e' in edebug
* doc/lispref/edebug.texi (Edebug Eval): Document it.
* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Allow
displaying the full value in a different buffer.
2022-06-18 Alan Mackenzie <acm@muc.de>
CC Mode: Fix infinite loop in noise macro near end of buffer
This fixes bug #55771. Also fix an inaccuracy in c-defun-name-1 with the same
cause.
* lisp/progmodes/cc-cmds.el (c-defun-name-1)
* lisp/progmodes/cc-engine.el (c-forward-noise-clause): Check the return
value of c-forward-token-2 and act upon it when not zero.
2022-06-18 Duncan Findlay <duncf@google.com>
Support `select-active-regions' with xterm
This allows Emacs to save the active region to the user's
primary selection on supported terminals. The behavior follows
the existing `select-active-regions' variable and requires
`xterm-select-active-regions' to be non-nil.
* src/keyboard.c (command_loop_1):
* lisp/frame.el (display-selections-p): On text terminals, check
terminal parameter `xterm--set-selections' and variable
`xterm-select-active-regions' when deciding whether to update
primary selection. (bug#55883)
* lisp/term/xterm.el (xterm-select-active-regions): New
defcustom.
2022-06-18 Eli Zaretskii <eliz@gnu.org>
Update documentation
* doc/emacs/trouble.texi (DEL Does Not Delete): Move to the end of
the chapter. This issue is no longer frequent or important as it
was back in Emacs 20 days.
(Long Lines): Document 'max-redisplay-ticks'.
* doc/emacs/emacs.texi (Top): Update the detailed menu.
* etc/NEWS: Announce 'max-redisplay-ticks'.
2022-06-18 Eli Zaretskii <eliz@gnu.org>
Don't count ticks too eagerly in syntax.c
* src/syntax.c (scan_sexps_forward): Don't increment redisplay
tick count of the loop didn't advance at all.
2022-06-18 Eli Zaretskii <eliz@gnu.org>
Allow aborting redisplay stuck in 'parse-partial-sexp'
* src/xdisp.c (display_working_on_window_p): New global variable.
(unwind_display_working_on_window): New function.
* src/keyboard.c (command_loop_1): Reset
'display_working_on_window_p' before and after executing commands.
* src/window.c (Frecenter, window_scroll, displayed_window_lines):
* src/indent.c (Fvertical_motion): Set
'display_working_on_window_p' before calling 'start_display'.
* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
after finishing the loop.
2022-06-18 Mattias Engdegård <mattiase@acm.org>
Avoid "control-control-KEY" (bug#55738)
Constructs such as ?\C-^@ or ?\C-\C-m literally apply a Control
modifier twice which doesn't make sense at all. What is really meant
is a C0 base character with the Control modifier bit set.
This change is only stylistic in nature.
* lisp/edmacro.el (edmacro-format-keys):
* lisp/keymap.el (key-parse):
* lisp/subr.el (event-modifiers, event-basic-type):
* test/lisp/subr-tests.el (subr-test-kbd):
Use \0 and \r instead of ^@ and \C-m to represent NUL and RET
when combined with other modifiers.
2022-06-18 Stefan Kangas <stefan@marxist.se>
Prefer URL commentary header in two files
* lisp/transient.el:
* test/lisp/progmodes/cperl-mode-tests.el: Prefer URL commentary
header.
2022-06-18 Stefan Kangas <stefan@marxist.se>
Define docstring element for more forms in scheme-mode
* lisp/progmodes/scheme.el: Define docstring element for more
forms. (Bug#33117)
2022-06-18 Po Lu <luangruo@yahoo.com>
Remove unused Haiku code
* src/haiku_select.cc (be_get_clipboard_targets_1)
(be_get_clipboard_targets): Delete functions.
(init_haiku_select): Rename to `be_clipboard_init'. Avoid
duplicate definition with haikuterm.h.
* src/haikuselect.c (init_haiku_select): New function.
* src/haikuselect.h: Update prototypes.
2022-06-18 Po Lu <luangruo@yahoo.com>
Fix type mixup in haikuselect.c
* src/haikuselect.c (haiku_lisp_to_message): Fix variable mixup.
Found with --enable-check-lisp-object-type.
2022-06-18 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
024bbcb35e Prune the Gnus FAQ of some outdated data
2022-06-18 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d671cd57c4 Update cl-struct-sequence-type doc string
017bdb1611 Fix a tagging problem in tramp.texi
e0bac17bbc Mention face quirks after the final line in the lispref ma...
ad74677cf3 Delete reference to obsolete library complete.el
2022-06-17 Po Lu <luangruo@yahoo.com>
Prevent Lisp code or synthetic events from ruining the user time
* src/xterm.c (x_display_set_last_user_time): New parameter
`send_event'. Make sure user time is newer unless !send_event.
(x_set_last_user_time_from_lisp): Remove redundant check.
(XTmouse_position):
(handle_one_xevent): Pass `send_event' whenever appropriate.
2022-06-17 Po Lu <luangruo@yahoo.com>
Fix specifying named action lists in `x-begin-drag'
* src/xfns.c (Fx_begin_drag): Record original value of `targets'
separately. Pass that as the selection targets list instead.
* src/xterm.c (x_dnd_delete_action_list): New function.
(x_dnd_begin_drag_and_drop): Bind it if there are multiple
actions.
2022-06-17 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Fix double-free in treesit.c
* src/treesit.c (Ftreesit_query_capture): Remove free at the end.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Extend 'e' in edebug to pretty-print the values
* doc/lispref/edebug.texi (Edebug Eval): Document it.
* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Allow
displaying the full value in a different buffer.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Prune the Gnus FAQ of some outdated data
* doc/misc/gnus-faq.texi (FAQ 9-2): Remove some outdated advice
(bug#56042).
2022-06-17 Stefan Kangas <stefan@marxist.se>
Delete another library obsolete since 24.1
This file was missed in the last commit to delete libraries obsolete
since Emacs 24.3 or older.
* lisp/obsolete/pc-mode.el: Delete file. This library has been
obsolete since Emacs 24.1. (Bug#50999)
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Add hacek variations to `C-x 8'
* lisp/international/iso-transl.el (iso-transl-char-map): Add
hacek characters on `C-x 8 ^ ^'.
2022-06-17 Stefan Kangas <stefan@marxist.se>
image-dired: Use full name for bookmark handler type
* lisp/image-dired.el (image-dired-bookmark-jump): Use full mode name
for bookmark handler type.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Set bookmark handler type for Eshell
* lisp/eshell/esh-mode.el (eshell-bookmark-jump): Set bookmark handler
type.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Update bookmark tests for recent change
* test/lisp/bookmark-tests.el (bookmark-tests-set/bookmark-use-annotations-t)
(bookmark-tests-edit-annotation)
(bookmark-test-bmenu-send-edited-annotation)
(bookmark-test-bmenu-send-edited-annotation/restore-focus): Update for
recent change.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix copy-from-above-command doc string type
* lisp/misc.el (copy-from-above-command): Fix doc string typo.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Add new command `duplicate-line'
* lisp/misc.el (copy-from-above-command): Mention it.
(duplicate-line): New command (bug#46621).
2022-06-17 Mattias Engdegård <mattiase@acm.org>
Slightly faster hash-table-keys and hash-table-values
* lisp/emacs-lisp/subr-x.el (hash-table-keys, hash-table-values):
Omit the reversal of the returned list. It is not ordered anyway.
* test/lisp/emacs-lisp/subr-x-tests.el
(subr-x--hash-table-keys-and-values): New test.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Don't quote numbers in byte-run--set-*
* lisp/emacs-lisp/byte-run.el (byte-run--set-doc-string)
(byte-run--set-indent): Don't quote numbers (bug#48145).
2022-06-17 Michael Albinus <michael.albinus@gmx.de>
Fix handling of "process-*" properties in Tramp
* lisp/net/tramp.el (tramp-local-host-regexp): Add "localhost4".
(with-tramp-saved-connection-property): New defmacro.
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-make-process):
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory):
(tramp-smb-handle-file-acl, tramp-smb-handle-process-file)
(tramp-smb-handle-set-file-acl)
(tramp-smb-handle-start-file-process): Use it. (Bug#55832)
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix some declare-after-interactive functions
* lisp/progmodes/opascal.el (opascal-new-comment-line):
* lisp/image-mode.el (image-transform-fit-to-height):
* lisp/help-fns.el (help-fns-edit-variable):
* lisp/gnus/gnus-salt.el (gnus-pick-start-reading):
* lisp/eshell/esh-util.el (eshell-for):
* lisp/ldefs-boot.el (view-return-to-alist-update): Fix warnings
about declare after interactive.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Don't quote the `when' form in obsoletions
* lisp/emacs-lisp/byte-run.el (byte-run--set-obsolete): The `when'
is a string (or nil), so don't quote it (bug#48145).
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--print-form):
Adjust folding.
2022-06-17 Mattias Engdegård <mattiase@acm.org>
Warn about misplaced or duplicated function/macro declarations
Doc strings, `declare` and `interactive` forms must appear in that
order and at most once each. Complain if they don't, instead of
silently ignoring the problem (bug#55905).
* lisp/emacs-lisp/byte-run.el (byte-run--parse-body)
(byte-run--parse-declarations): New.
(defmacro, defun): Check for declaration well-formedness as
described above. Clarify doc strings. Refactor some common code.
* test/lisp/emacs-lisp/bytecomp-resources/fun-attr-warn.el:
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-fun-attr-warn):
New test.
2022-06-17 Eli Zaretskii <eliz@gnu.org>
Handle too long syntactic fontifications
* src/syntax.c (scan_sexps_forward): Call 'update_redisplay_ticks'
after finishing the loop.
* src/dispnew.c (make_current): Make sure enabled rows of the
current matrix have a valid hash, even if redisplay of a window
was aborted due to slowness. This avoids assertion violations in
'scrolling_window' due to the wrong hash value.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix efaq-w32.texi build warning
* doc/misc/efaq-w32.texi (Other useful ports): Fix ordering to
match nodes (or should the nodes be moved instead?).
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Update cl-struct-sequence-type doc string
* lisp/emacs-lisp/cl-macs.el (cl-struct-sequence-type): Fix doc
string to reflect what it does (bug#46523).
2022-06-17 Stefan Kangas <stefan@marxist.se>
Fix some command substitutions
* lisp/net/rcirc.el (rcirc-edit-multiline):
* lisp/textmodes/reftex-index.el (reftex-index-phrases-mode)
(reftex-index-phrase-selection-or-word):
* lisp/textmodes/remember.el (remember): Fix command substitutions.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Rename command to bookmark-edit-annotation-confirm
* lisp/bookmark.el (bookmark-edit-annotation-confirm): Rename from
'bookmark-send-edited-annotation' to be more consistent with
'bookmark-edit-annotation-cancel'. Make the old name into an
obsolete function alias.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Improve help-enable-variable-value-editing help
* lisp/help-fns.el (help-enable-variable-value-editing): Expand
docstring to better explain what effect it has.
(help-fns-edit-variable): Use command substitution.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Fix command substitution in emacsbug.el
* lisp/mail/emacsbug.el: Minor doc fix.
(submit-emacs-patch, report-emacs-bug): Fix command substitution.
Prefer keymap-set to define-key.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Allow editing all symbols in help-fns--editable-variable
* lisp/help-fns.el (help-fns--editable-variable): Allow editing
all symbols (bug#56038).
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Improve time parsing documentation
* doc/lispref/os.texi (Time Parsing): Clarify which functions
take/return timestamps and which ones take decoded time structures.
* src/timefns.c (Fdecode_time): Clarify TIME argument (bug#46505).
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Make uce.el obsolete (bug#46472)
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix wdired marking of unsuccessfully renamed files
* lisp/wdired.el (wdired-finish-edit): Don't mark non-renamed
files as renamed (bug#46438).
2022-06-17 Dmitry Gutov <dgutov@yandex.ru>
buffer-match-p: Resolve backward compat concerns
* doc/lispref/buffers.texi (Buffer List): Document 'major-mode'
and 'derived-mode' predicates. Fix some typos.
* lisp/subr.el (buffer-match-p): Use the structure initially
pioneered by project-kill-buffer-conditions as-is (bug#54296).
* lisp/progmodes/project.el (project-kill-buffer-conditions)
(project--buffer-check): Revert the latest change.
(project--buffer-check): Add support for lambda predicates.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix a tagging problem in tramp.texi
* doc/misc/tramp.texi (Frequently Asked Questions): Restore an
@end lisp removed by accident.
2022-06-17 Po Lu <luangruo@yahoo.com>
Reduce code duplication when setting user time window
* src/xterm.c (x_make_frame_visible): Use
`x_update_frame_user_time_window'.
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Mention face quirks after the final line in the lispref manual
* doc/lispref/display.texi (Face Attributes): Mention the quirks
about point after the final line (bug#56011).
2022-06-17 Lars Ingebrigtsen <larsi@gnus.org>
Speed up shr-string-pixel-width
* lisp/net/eww.el (eww-update-header-line-format): Use
string-pixel-width (since we don't care about shr-use-fonts here).
* lisp/net/shr.el (shr-string-pixel-width): Use
`string-pixel-width', which should be faster.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Cancel editing bookmark annotations with C-c C-k
* lisp/bookmark.el (bookmark-edit-annotation-cancel): New command.
(bookmark-edit-annotation-mode): Document it.
(bookmark-edit-annotation-mode-map): Bind it to 'C-c C-k'.
(bookmark-default-annotation-text): Announce it when editing
annotations.
(bookmark-edit-annotation--maybe-display-list): New macro.
(bookmark-send-edited-annotation): Use above new macro.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Use command substitution in bookmark-edit-annotation
* lisp/bookmark.el (bookmark-default-annotation-text): Use command
substitution.
(bookmark-edit-annotation): Enter mode before inserting annotation
to get the correct command substitution.
2022-06-17 Stefan Kangas <stefan@marxist.se>
* lisp/edmacro.el (edit-kbd-macro): Use command substitution.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Delete most libraries obsolete since 24.1 and 24.3
Emacs 24.3 was released 10 years ago.
* lisp/obsolete/abbrevlist.el:
* lisp/obsolete/assoc.el:
* lisp/obsolete/complete.el:
* lisp/obsolete/cust-print.el:
* lisp/obsolete/erc-hecomplete.el:
* lisp/obsolete/mailpost.el:
* lisp/obsolete/mouse-sel.el:
* lisp/obsolete/old-emacs-lock.el:
* lisp/obsolete/patcomp.el:
* lisp/obsolete/pc-select.el:
* lisp/obsolete/s-region.el: Delete files. These libraries have been
obsolete since Emacs 24.1 or 24.3. (Bug#50999)
* etc/NEWS: Announce their deletion.
* lisp/minibuffer.el (minibuffer-confirm-exit-commands):
* lisp/textmodes/rst.el: Remove references to above obsolete
libraries.
2022-06-17 Po Lu <luangruo@yahoo.com>
Clarify doc of `x-display-set-last-user-time'
* src/xfns.c (Fx_display_last_user_time): Explain in more detail
the meaning of TERMINAL.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Delete reference to obsolete library complete.el
* doc/misc/tramp.texi (Frequently Asked Questions): Delete reference
to obsolete library complete.el.
2022-06-17 Mattias Engdegård <mattiase@acm.org>
* src/fns.c (Fmapconcat): Better empty-string-or-nil detection.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Fix misplaced interactive spec
* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-10483):
* test/lisp/cedet/srecode/document-tests.el
(srecode-document-function-comment-extract-test):
* test/lisp/obsolete/inversion-tests.el (inversion-unit-test):
* test/lisp/cedet/cedet-files-tests.el (cedet-files-utest): Remove
misplaced interactive spec.
(cedet-files-utest-list): Minor doc fix; improve formatting.
2022-06-17 Po Lu <luangruo@yahoo.com>
Improve compatibility when receiving drops from early XDND programs
* lisp/x-dnd.el (x-dnd-handle-xdnd): Save version in state.
If version is less than 5, don't put action and success in
XdndFinished events. If less than 2, always use `copy' as
the selected action.
2022-06-17 Po Lu <luangruo@yahoo.com>
Fix computation of screen width and height on Haiku
* src/haiku_support.cc (be_get_screen_dimensions): Use correct
macros to extract width and height.
2022-06-17 Po Lu <luangruo@yahoo.com>
Fix instances of not using a usable Motif drag atom
* src/xterm.c (xm_get_drag_atom_1): If another frame owns an
atom, use it anyway.
2022-06-17 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f419de6eca * lisp/textmodes/artist.el: Minor doc fixes.
5ddd0f1a35 * lisp/net/tramp.el (tramp-methods): Fix quoting in docstr...
b0c5accb99 Update MS Windows FAQ for MinGW64-w64/MSYS2
2022-06-16 Po Lu <luangruo@yahoo.com>
Improve window manager user time reporting mode switching
* src/xterm.c (x_display_set_last_user_time): Stop periodically
checking for user time window support.
(x_update_frame_user_time_window): New function.
(handle_one_xevent): Call it on toplevel ReparentNotify if the
frame has been visible at least once.
* src/xterm.h (struct x_display_info): Remove
`last_user_check_time'.
2022-06-16 Po Lu <luangruo@yahoo.com>
Update last event time during DND operations
* lisp/x-dnd.el (x-dnd-handle-xdnd, x-dnd-handle-motif): Set
last user time to provided timestamp.
* src/xfns.c (Fx_display_last_user_time): New function.
(syms_of_xfns): New defsubr.
* src/xterm.c (x_set_last_user_time_from_lisp): New function.
* src/xterm.h: Update prototypes.
2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Change treesit-parser-list from variable to function
Effectively making the list internal. Now Emacs user cannot shoot
themselves in the foot by removing a parser from the list, make
chaanges to buffer and add that parser back to the list.
* doc/lispref/parsing.texi (Language Definitions, Using Parser)
(Retrieving Node, Multiple Languages): Change variable to function.
* lisp/treesit.el (treesit-language-at, treesit-node-on)
(treesit-buffer-root-node, treesit-indent, treesit-check-indent)
(treesit-search-forward, treesit-search-beginning)
(treesit-end-of-defun, treesit-inspect-mode): Change variable to
function.
* src/buffer.c (bset_ts_parser_list, reset_buffer, init_buffer_once):
Add ts_parser_list.
* src/buffer.h (struct buffer): Add ts_parser_list.
* src/treesit.c (ts_record_change, Ftreesit_parser_create): Use the
buffer field instead of the old buffer local variable.
(Ftreesit_parser_delete, Ftreesit_parser_list): New functions.
(syms_of_treesit): Remove treesit-parser-list.
* test/src/treesit-tests.el (treesit-basic-parsing): Use the new
function.
2022-06-16 Stefan Kangas <stefan@marxist.se>
* lisp/textmodes/artist.el: Minor doc fixes.
2022-06-16 Stefan Monnier <monnier@iro.umontreal.ca>
* src/fns.c (Fmapconcat): Optimize the case where separator==""
2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Add treesit test for previous change
* test/src/treesit-tests.el (treesit-cross-boundary): New test.
2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Consolidate treesit parser create functions
Merge treesit-parser-create, treesit-get-parser,
treesit-get-parser-create into one: treesit-parser-create.
* src/treesit.c (Ftreesit_parser_language): make BUFFER parameter
optional, add new parameter NO-REUSE. Optionally reuse parser.
* test/src/treesit-tests.el: Change all parser creation to use
treesit-parser-create. Remove tests for the removed functions.
* lisp/treesit.el (treesit-get-parser, treesit-get-parser-create):
Remove.
* lisp/treesit.el (treesit-set-ranges, treesit-get-ranges)
(treesit-buffer-root-node, treesit-query-string)
(treesit-font-lock-fontify-region, treesit-search-forward)
(treesit-query-validate): Change to use treesit-parser-create.
2022-06-16 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Fix treesit function ts_record_change and friends
In ts_record_change, the way we calculate tree-sitter change was
wrong:
ptrdiff_t affected_start =
max (visible_beg, start_byte) - visible_beg;
ptrdiff_t affected_old_end =
min (visible_end, affected_start + bytes_del);
ptrdiff_t affected_new_end =
affected_start + bytes_ins;
I changed it to below (also renamed variables)
ptrdiff_t start_offset =
min (visible_end,
max (visible_beg, start_byte)) - visible_beg;
ptrdiff_t old_end_offset =
min (visible_end,
max (visible_beg, old_end_byte)) - visible_beg;
ptrdiff_t new_end_offset =
min (visible_end,
max (visible_beg, new_end_byte)) - visible_beg;
Also previously only visible_end is changed (in a wrong way)
XTS_PARSER (lisp_parser)->visible_end = affected_new_end;
Now we have a whole new bunch of code that makes the right change.
* src/treesit.c (ts_tree_edit_1): Add assertion.
(ts_record_change): See above.
(ts_ensure_position_synced): Add assertion.
(ts_ensure_parsed): Only free if non-NULL.
(make_ts_parser): Add assertion.
(Ftreesit_parser_set_included_ranges): Ensure parsed before setting ranges.
(Ftreesit_parser_included_ranges): Add assertion.
2022-06-16 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp test
* test/lisp/net/tramp-tests.el (tramp-test03-file-name-method-rules):
Remove superfluous checks.
2022-06-16 Eli Zaretskii <eliz@gnu.org>
Fix disruption of windows' display by shr.el
* src/window.c (struct saved_window): New member 'vscroll'.
(Fset_window_configuration, save_window_save): Save and restore
the window's vscroll value.
* lisp/net/shr.el (shr-insert-document): Restore the original
window's hscroll, in case we are rendering in a window other than
where the document will be eventually displayed. This avoids
resetting hscroll of windows we use temporarily for shr's
rendering job. (Bug#56008)
2022-06-16 Michael Heerdegen <michael_heerdegen@web.de>
Allow number register insertion in Calc (Bug#55943)
* lisp/calc/calc-yank.el (calc-get-register): Convert number values to
strings.
2022-06-16 Mattias Engdegård <mattiase@acm.org>
* src/fns.c (mapcar1): Test types in rough order of likelyhood.
2022-06-16 Mattias Engdegård <mattiase@acm.org>
Use BASE_EQ instead of EQ where obviously safe
* src/alloc.c (deadp):
* src/buffer.c (reset_buffer_local_variables, candidate_buffer)
(Fkill_buffer, Fbuffer_swap_text, Fmake_overlay, Fmove_overlay):
* src/callint.c (Fcall_interactively):
* src/coding.c (decode_coding_object, encode_coding_object)
(code_convert_region, Ffind_operation_coding_system):
* src/comp.c (Fcomp_el_to_eln_rel_filename):
* src/conf_post.h (RE_TRANSLATE_P):
* src/data.c (Fkill_local_variable, Fash, expt_integer):
* src/dired.c (file_name_completion):
* src/dispnew.c (set_window_cursor_after_update, update_frame_1)
(Fframe_or_buffer_changed_p):
* src/doc.c (Fdocumentation, Fdocumentation_property)
(default_to_grave_quoting_style):
* src/editfns.c (Fconstrain_to_field, save_excursion_save)
(save_excursion_restore, Fngettext):
* src/eval.c (Fautoload, un_autoload, specbind):
* src/fileio.c (Fmake_temp_file_internal):
* src/fns.c (string_char_to_byte, string_byte_to_char)
(Fnthcdr, Fnreverse):
* src/indent.c (vmotion):
* src/inotify.c (add_watch):
* src/keyboard.c (command_loop_1, read_char)
(read_char_minibuf_menu_prompt):
* src/lread.c (oblookup):
* src/macfont.m (macfont_descriptor_entity, macfont_open):
* src/minibuf.c (Finnermost_minibuffer_p, Ftry_completion)
(Ftest_completion):
* src/nsfns.m (ns_set_icon_name):
* src/pdumper.c (dump_queue_dequeue):
* src/pgtkfns.c (pgtk_set_icon_type, pgtk_set_icon_name):
* src/process.c (Faccept_process_output):
* src/textprop.c (set_text_properties):
* src/w32fns.c (w32_set_icon_type, w32_set_icon_name):
* src/w32select.c (validate_coding_system):
* src/window.c (decode_next_window_args, window_loop)
(save_window_save):
* src/xdisp.c (wset_redisplay):
* src/xfaces.c (Fx_family_fonts, resolve_face_name)
(gui_supports_face_attributes_p):
* src/xfns.c (x_set_icon_type, x_set_icon_name):
* src/xselect.c (clean_local_selection_data):
Use BASE_EQ instead of EQ where it is obvious that neither argument
can be a symbol with properties or at least one argument is a
non-symbol.
2022-06-16 Lars Ingebrigtsen <larsi@gnus.org>
Make package-recompile delete all .elc files first
* lisp/emacs-lisp/package.el (package-recompile): Delete all .elc
files under the package directory.
2022-06-16 Lars Ingebrigtsen <larsi@gnus.org>
Add new package.el commands for recompilation
* doc/emacs/package.texi (Package Installation): Document them.
* lisp/emacs-lisp/package.el (package-recompile):
(package-recompile-all): New commands (bug#27253).
2022-06-16 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-methods): Fix quoting in docstring.
2022-06-16 Eli Zaretskii <eliz@gnu.org>
Speed up Org to Texinfo generation
* doc/misc/Makefile.in ($(1:.org=.texi)): Use a higher GC
threshold, to speed up .org=.texi conversion. Patch by Ihor
Radchenko <yantar92@gmail.com>.
2022-06-16 Stefan Kangas <stefan@marxist.se>
Make artist-version variable obsolete
* lisp/textmodes/artist.el (artist-version): Make obsolete. This has
not been updated in nearly two decades; use the Emacs version instead.
(artist-submit-bug-report): Don't use above obsolete variable.
2022-06-16 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap for artist-mode-map
* lisp/textmodes/artist.el (artist-mode-map): Prefer
defvar-keymap.
2022-06-16 Ihor Radchenko <yantar92@gmail.com>
org-cite-list-citations: Cache footnote-definition searches
* lisp/org/oc.el (org-cite-list-citations): Avoid quadratic complexity.
Pre-calculate list of all footnote definitions and cache the footnote
label search hits. Do not make `org-element-map' accumulate unused
result.
2022-06-16 Ihor Radchenko <yantar92@gmail.com>
org-element-map: Avoid repetitive `plist-get' call
* lisp/org/org-element.el (org-element-map): Do not call `(plist-get info
:ignore-list)' on every iteration.
2022-06-16 Ihor Radchenko <yantar92@gmail.com>
org-export-data: Concatenate strings in temporary buffer for performance
* lisp/org/ox.el (org-export-data): Use temporary buffer to collect export
data instead of `mapconcat'. Using buffer puts less load on garbage
collector.
2022-06-16 Ihor Radchenko <yantar92@gmail.com>
org-export-as: Do not update buffer settings when not modified
* lisp/org/ox.el (org-export-as): Use `buffer-chars-modified-tick' and
avoid extra invocations of `org-set-regexps-and-options' and
`org-update-radio-target-regexp' when the buffer is not changed.
Also, disable folding checks. Folding is irrelevant inside export
buffer.
2022-06-16 Ihor Radchenko <yantar92@gmail.com>
org-export-resolve-id-link: Pre-cache all the ids in the parse tree
* lisp/org/ox.el (org-export-resolve-id-link): Pre-cache all the ids in
the parse tree for faster lookup.
2022-06-16 Po Lu <luangruo@yahoo.com>
Fix Motif drag-and-drop timestamps
* lisp/x-dnd.el (x-dnd-handle-motif): Pass timestamp when
retrieving DND selection value. Bug found on Solaris 2.6.
2022-06-16 Ihor Radchenko <yantar92@gmail.com>
org-export-resolve-fuzyy-link: Pre-cache all possible search cells
* lisp/org/ox.el (org-export-resolve-fuzzy-link): Before matching LINK,
pre-process and cache all the non-nil search cells in the parse tree.
When matching, use the pre-processed info. Fix the :test function for
the cache hash table.
2022-06-16 Ihor Radchenko <yantar92@gmail.com>
org-export-get-footnote-definition: Pre-cache references in parse tree
* lisp/org/ox.el (org-export-get-footnote-definition): Pre-process parse
tree once to filter out all non-footnote elements. This speeds up
subsequent footnote definition searches.
2022-06-16 Robert Pluim <rpluim@gmail.com>
Fix check for window system with toolkit scrollbars
* configure.ac (USE_TOOLKIT_SCROLL_BARS): Add missing 'test' to
condition. (Bug#55970)
2022-06-16 Po Lu <luangruo@yahoo.com>
Fix byte-swapping of Motif DND tables
* src/xterm.c (xm_read_targets_table_rec): Swap nitems first
before checking the length.
2022-06-16 Arash Esbati <arash@gnu.org>
Update MS Windows FAQ for MinGW64-w64/MSYS2
* doc/misc/efaq-w32.texi (Compiling, Debugging): Mention
MinGW64-w64/MSYS2 as the preferred way for building Emacs on
capable systems.
(Attachments with Gnus): Catch up with emacs-mime.texi in the
example given.
(Spell check): Add the availability of GNU Aspell and Hunspell
in MSYS2 distribution.
(Other useful ports): Add an entry for MinGW64-w64/MSYS2.
Fix link for MinGW homepage.
Remove entry for defunct UWIN project. (Bug#55930)
2022-06-16 Richard Hansen <rhansen@rhansen.org>
bindat (strz): Write null terminator after variable length string
* lisp/emacs-lisp/bindat.el (bindat--pack-strz): Explicitly write a
null byte after packing a variable-length string to ensure proper
termination when packing to a pre-allocated string.
* doc/lispref/processes.texi (Bindat Types): Update documentation.
* test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc):
Update tests.
2022-06-16 Po Lu <luangruo@yahoo.com>
Fix defcustom in last change
* lisp/x-dnd.el (x-dnd-use-offix-drop): Fix defcustom.
2022-06-16 Po Lu <luangruo@yahoo.com>
Improve handling of fallback drop protocols
* lisp/x-dnd.el (x-dnd-use-offix-drop): New value `files', which
means to only drop files using the OffiX protocol. Make it the
default.
(x-dnd-handle-old-kde): Handle other data types correctly.
(x-dnd-offix-old-kde-to-name): New variable.
(x-dnd-offix-id-to-name): Fix typo in doc string.
(x-dnd-handle-unsupported-drop): Implement new value.
2022-06-16 Po Lu <luangruo@yahoo.com>
Fix Motif DND after atom ownership is lost due to frame destruction
* src/xterm.c (xm_get_drag_atom_1): Record owner.
(x_free_frame_resources): Clear drag atom if owner was freed.
* src/xterm.h (struct x_display_info): New field
`motif_drag_atom_owner'.
2022-06-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
4d7a936ac2 ; * src/fileio.c (Fset_file_modes): Improve previous change
32cff740e2 Describe 'set-file-modes' argument prompting
2022-06-16 Po Lu <luangruo@yahoo.com>
Improve drag atom computation
* src/xterm.c (xm_get_drag_window): Avoid leak if error occured
creating drag window. Also use StructureNotifyMask instead of
ButtonPressMask.
(xm_get_drag_atom_1): Update. Make EMACS_DRAG_ATOM a list of
atoms and use the first one that isn't currently owned.
(xm_get_drag_atom): Stop owning selection here.
(xm_setup_drag_info): Record chosen atom.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent, x_connection_closed):
Use chosen atom.
* src/xterm.h (struct x_display_info): New field
`motif_drag_atom_time'.
2022-06-16 Paul Eggert <eggert@cs.ucla.edu>
Streamline time decoding and conversion
* src/lisp.h (lisp_h_BASE2_EQ, BASE2_EQ): New macros and functions.
* src/timefns.c (tzlookup, Fdecode_time): Use them.
(Ftime_convert): Convert to symbol once, instead of many times.
2022-06-16 Paul Eggert <eggert@cs.ucla.edu>
Dont test time functions for NaNs, INF
* test/src/timefns-tests.el (decode-then-encode-time)
(time-equal-p-NaN-NaN, time-arith-tests):
Dont test time functions with infinities and NaNs,
which are not Lisp time values.
2022-06-16 Paul Eggert <eggert@cs.ucla.edu>
Prefer BASE_EQ in time-sensitive ops
* src/timefns.c (tzlookup, lisp_time_hz_ticks)
(decode_time_components, lisp_to_timespec, lispint_arith)
(time_arith, time_cmp, Fdecode_time, Fencode_time)
(Ftime_convert): Prefer BASE_EQ to EQ where either will do.
2022-06-16 Paul Eggert <eggert@cs.ucla.edu>
icalendar-tests no longer assumes TZ = wall
Do not assume that the TZ environment variable is either unset or
agrees with /etc/localtime. I ran into this test bug while
running TZ=America/Chicago make check on a platform where
/etc/localtime was America/Los_Angeles.
* test/lisp/calendar/icalendar-tests.el:
(icalendar-tests--decode-isodatetime): Dont use
set-time-zone-rule, whose doc string says “Instead of calling this
function, you typically want something else” for a reason.
Instead, pass the zone arg to icalendar-test--format.
2022-06-15 Po Lu <luangruo@yahoo.com>
Handle OffiX drop of multiple files
* lisp/x-dnd.el (x-dnd-types-alist): Register DndTypeFiles.
(x-dnd-offix-id-to-name): Fix typo.
(x-dnd-handle-offix-files): New function.
(x-dnd-convert-to-offix): Fix conversion to DndTypeFiles.
2022-06-15 Po Lu <luangruo@yahoo.com>
Comply with the Motif requirement for unique drag atoms
* src/xselect.c (x_handle_selection_request)
(Fx_get_selection_internal, syms_of_xselect): New variable
`x-selection-alias-alist'. Respect that alist of aliases.
* src/xterm.c (x_atom_refs): Intern _EMACS_DRAG_ATOM.
(xm_get_drag_atom_1, xm_get_drag_atom): New functions.
(xm_setup_drag_info, x_dnd_cleanup_drag_and_drop)
(x_dnd_begin_drag_and_drop, x_dnd_update_state, handle_one_xevent)
(x_connection_closed, x_intern_cached_atom): Alias the drag atom
to XdndSelection. Use it instead of XdndSelection to set the
Motif index atom.
(x_get_atom_name): Handle new atoms.
(syms_of_xterm): New defsym.
* src/xterm.h (struct x_display_info): New fields for new atoms
and their names.
2022-06-15 Sean Whitton <spwhitton@spwhitton.name>
* .dir-locals.el: Set emacs-lisp-docstring-fill-column.
2022-06-15 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
* src/treesit.c (ts_check_range_argument): Check for point-min/max.
2022-06-15 Lars Ingebrigtsen <larsi@gnus.org>
Adjust ibuffer test
* test/lisp/ibuffer-tests.el (ibuffer-format-qualifier): Adjust
test after recent formatting changes.
2022-06-15 Lars Ingebrigtsen <larsi@gnus.org>
Allow completing tags, parameters and values in html-mode
* lisp/textmodes/sgml-mode.el (html-mode--complete-at-point):
Allow completing tags, parameters and values (bug#29057).
2022-06-15 Manuel Giraud <manuel@ledu-giraud.fr>
Do not display 'nil for 0-ary filter qualifier in ibuf
* lisp/ibuf-ext.el (ibuffer-format-qualifier-1): Do not display
nil in header for 0-ary filter qualifier.
* lisp/ibuf-macs.el (define-ibuffer-filter): Also fix the message.
2022-06-15 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in ibuffer.el
* lisp/ibuffer.el (ibuffer--filter-map, ibuffer-name-map)
(ibuffer-filename/process-header-map, ibuffer-mode-name-map)
(ibuffer-name-header-map, ibuffer-size-header-map)
(ibuffer-mode-header-map, ibuffer-mode-filter-group-map): Prefer
defvar-keymap.
2022-06-15 Po Lu <luangruo@yahoo.com>
Implement using the OffiX protocol for dropping
* lisp/x-dnd.el (x-dnd-use-offix-drop): New user option.
(x-dnd-handle-unsupported-drop): Return t if the OffiX protocol
was used.
(x-treat-local-requests-remotely): New defvar.
(x-dnd-convert-to-offix, x-dnd-do-offix-drop): New functions.
* src/xterm.c: Update commentary.
(x_term_init): Extend number of DND atoms allocated by default.
2022-06-15 Robert Pluim <rpluim@gmail.com>
Describe 'set-file-modes' argument prompting
* src/fileio.c (Fset_file_modes): Document that FILENAME is prompted
for. (Bug#55984)
2022-06-15 Miha Rihtaršič <miha@kamnitnik.top>
whitespace.el: New whitespace style `lines-char'
* lisp/whitespace.el (whitespace-style):
(whitespace-style-value-list):
(whitespace-toggle-option-alist):
(global-whitespace-toggle-options):
(whitespace-help-text):
(whitespace-interactive-char):
(whitespace-style-face-p):
(whitespace-color-on):
(whitespace-lines-regexp): New whitespace style `lines-char', which
highlights only the first character over the whitespace-line-column
limit (bug#55980).
2022-06-15 Po Lu <luangruo@yahoo.com>
Handle receiving new OffiX protocol during drag-and-drop
* lisp/x-dnd.el (x-dnd-types-alist, x-dnd-known-types): Add
DndTypeFile and DndTypeText.
(x-dnd-init-frame): Add _DND_PROTOCOL.
(x-dnd-handle-drag-n-drop-event): Handle _DND_PROTOCOL events.
(x-dnd-handle-old-kde): Drop event if proto is too new.
(x-dnd-offix-id-to-name): New list.
(x-dnd-handle-offix-file, x-dnd-handle-offix): New functions.
2022-06-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix ;;;###autoload scanning from (some) packages
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
Fix autoloads scanning from packages.
2022-06-15 Michael Albinus <michael.albinus@gmx.de>
Fix file name quoting in tramp-smb.el
* lisp/net/tramp-smb.el (tramp-smb-shell-quote-localname): New defun.
(tramp-smb-handle-add-name-to-file, tramp-smb-handle-copy-file)
(tramp-smb-handle-delete-directory)
(tramp-smb-handle-delete-file)
(tramp-smb-do-file-attributes-with-stat)
(tramp-smb-handle-file-local-copy)
(tramp-smb-handle-file-system-info)
(tramp-smb-handle-make-directory-internal)
(tramp-smb-handle-make-symbolic-link)
(tramp-smb-handle-process-file, tramp-smb-handle-rename-file)
(tramp-smb-handle-set-file-modes)
(tramp-smb-handle-start-file-process)
(tramp-smb-handle-write-region, tramp-smb-get-file-entries)
(tramp-smb-get-stat-capability): Use it.
(tramp-smb-get-localname): Remove superfluous test. (Bug#55855)
2022-06-15 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp debugging
* lisp/net/tramp-cache.el (tramp-list-connections): Fix docstring.
* lisp/net/tramp.el (tramp-backtrace): New optional arg FORCE.
2022-06-15 Juri Linkov <juri@linkov.net>
Update args of isearch-search-fun-in-text-property (bug#14013)
* lisp/isearch.el (isearch-search-fun-in-text-property): Swap signature args.
* lisp/dired-aux.el (dired-isearch-search-filenames): Update the call.
2022-06-15 Visuwesh <visuweshm@gmail.com>
repeat-mode: Don't echo unset keys in help message
* repeat.el (repeat-echo-message-string): Check if the key is set.
(bug#55977)
2022-06-15 Po Lu <luangruo@yahoo.com>
Handle coordinates for the old KDE drop protocol
* src/xterm.c (x_atom_refs): Add DndProtocol and _DND_PROTOCOL.
(x_coords_from_dnd_message): Handle the old KDE protocol.
* src/xterm.h (struct x_display_info): New atoms.
2022-06-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
850050ca5c Revert "Clarify what a Calc registeri in in calc-insert-re...
2022-06-15 Yuan Fu <yuan@debian-BULLSEYE-live-builder-AMD64>
Fix compile warnings and errors in treesit.c
* src/treesit.c (ts_initialize): Fix.
(Ftreesit_parser_set_included_ranges): Fix.
(Ftreesit_query_compile): Fix.
2022-06-14 Po Lu <luangruo@yahoo.com>
Fix link action handling with Motif DND
* src/xterm.c (enum xm_drag_operation): New alternate
definition.
(XM_DRAG_OPERATION_IS_LINK): New macro.
(handle_one_xevent): Use it instead.
2022-06-14 Po Lu <luangruo@yahoo.com>
Handle coordinates from XM_DRAG_REASON_DRAG_MOTION replies
* src/xterm.c (struct xm_drag_motion_reply): New struct.
(xm_read_drag_motion_reply): New function.
(x_coords_from_dnd_message): Handle those messages as well.
2022-06-14 Yuan Fu <casouri@gmail.com>
Merge remote-tracking branch 'savannah/master' into feature/tree-sitter
Merge branch 'feature/tree-sitter-depth-control' into feature/tree-sitter
2022-06-14 Yuan Fu <casouri@gmail.com>
Add manual for treesit-traverse-forward and friends
* doc/lispref/parsing.texi (Retrieving Node): Add manual entry for
treesit-traverse-depth-first, treesit-traverse-breadth-first,
treesit-traverse-forward.
* lisp/treesit.el (treesit-traverse-forward): Fix docstring.
2022-06-14 Yuan Fu <casouri@gmail.com>
Change treesit-check-query and mention it in documentation
* doc/lispref/parsing.texi (Pattern Matching): Mention it.
* lisp/treesit.el (treesit-check-query): Rename to
treesit-query-validate.
* src/treesit.c (Ftreesit_query_capture, Ftreesit_query_compile):
Mention it.
2022-06-14 Yuan Fu <casouri@gmail.com>
Add treesit-query-compile to manual
* doc/lispref/parsing.texi: Add treesit-query-compile.
2022-06-14 Yuan Fu <casouri@gmail.com>
Add test for treesit-query-compile
* test/src/treesit-tests.el (treesit-query-api): Rename pattern to
query, and add treesit-query-compile into the mix.
2022-06-14 Sean Whitton <spwhitton@spwhitton.name>
Add abbrev tables for minibuffer-mode and minibuffer-inactive-mode
* lisp/minibuffer.el (minibuffer-mode, minibuffer-inactive-mode): Add
an abbrev table for each of these modes (bug#55946).
2022-06-14 Eli Zaretskii <eliz@gnu.org>
Support callers which sometimes run unrelated to display code
* src/xdisp.c (update_redisplay_ticks): Don't abort callers
with w == NULL if we are called outside of display engine code,
and don't update the tick count in that case.
2022-06-14 Yuan Fu <casouri@gmail.com>
Support compiled queries in treesit-query-capture
Last commit added this new type, this commit adds functionalities.
treesit.el only has documentation changes.
* lisp/treesit.el (treesit-query-in, treesit-font-lock-settings,
treesit-defun-query): Update docstring.
* src/treesit.c (make_ts_query): New function.
(Ftreesit_query_compile): New function.
(Ftreesit_query_capture): Remove code that creates a query object and
instead either use make_ts_query or use the give compiled query. Free
the query object conditonally.
(syms_of_treesit): New symbol.
2022-06-14 Yuan Fu <casouri@gmail.com>
* src/treesit.c (Ftreesit_query_p): New function.
2022-06-14 Yuan Fu <casouri@gmail.com>
Add new type treesit-compiled-query
No intergration/interaction with the new type, just adding it.
* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add new type.
* src/alloc.c (cleanup_vector): Add gc for the new type.
* src/data.c (Ftype_of): Add switch case for the new type.
(syms_of_data): Add symbols for the new type.
* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add new type.
* src/treesit.c (Ftreesit_compiled_query_p): New function.
(syms_of_treesit): Add symbol for the new type.
* src/treesit.h (struct Lisp_TS_Query): New struct.
(TS_COMPILED_QUERY_P, XTS_COMPILED_QUERY, CHECK_TS_COMPILED_QUERY):
New macros.
* src/print.c (print_vectorlike): Add printing for the new type.
2022-06-14 Mattias Engdegård <mattiase@acm.org>
Simplify byte-compiler assuming cconv normalisations
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker)
(byte-optimize-let-form, byte-optimize-letX):
* lisp/emacs-lisp/bytecomp.el (byte-compile-unwind-protect):
Simplify source optimisation and codegen code that can now rely on
normalised let/let* and unwind-protect forms.
2022-06-14 Mattias Engdegård <mattiase@acm.org>
Run cconv for dynbound code as well
Make cconv work for dynamically bound code and always run it.
This allows later stages to benefit from transformations and
normalisations in cconv.
* lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): Always run
cconv.
* lisp/emacs-lisp/cconv.el (cconv--analyze-function)
(cconv-analyze-form): In dynbound code, treat all variable bindings
as dynamic (lambda, let, let* and condition-case).
2022-06-14 Mattias Engdegård <mattiase@acm.org>
Normalise setq during macro-expansion
Early normalisation of setq during macroexpand-all allows later
stages, cconv, byte-opt and codegen, to be simplified and duplicated
checks to be eliminated.
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
Normalise all setq forms to a sequence of (setq VAR EXPR).
Emit warnings if necessary.
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
* lisp/emacs-lisp/bytecomp.el (byte-compile-setq):
Simplify.
* test/lisp/emacs-lisp/bytecomp-tests.el: Adapt and add tests.
* test/lisp/emacs-lisp/bytecomp-resources/warn-variable-setq-nonvariable.el;
* test/lisp/emacs-lisp/bytecomp-resources/warn-variable-setq-odd.el:
New files.
2022-06-14 Eli Zaretskii <eliz@gnu.org>
Handle W = NULL in 'update_redisplay_ticks'
* src/xdisp.c (update_redisplay_ticks): If W == NULL, assume we
are iterating the current buffer.
2022-06-14 Juri Linkov <juri@linkov.net>
* lisp/replace.el (read-regexp): Use minibuffer-message in the minibuffer.
2022-06-14 Eli Zaretskii <eliz@gnu.org>
Restart tick counting every command
* src/keyboard.c (command_loop_1): Reinitialize the tick count
before executing each command in the loop.
* src/xdisp.c (update_redisplay_ticks): Be more defensive to W
being NULL and to its buffer being nil. Set
'windows_or_buffers_changed' to avoid trusting stale window data
like w->window_end_valid.
2022-06-14 Robert Pluim <rpluim@gmail.com>
Add more characters with macron in C-x 8 map and latin input methods
* lisp/international/iso-transl.el (iso-transl-char-map): Add
sequences for {AE,ae,G,g} with macron.
* lisp/leim/quail/latin-post.el ("latin-postfix"): Add missing entries
for {AE,ae,G,g} with macron.
* lisp/leim/quail/latin-pre.el ("latin-prefix"): Add entries for
'letter with macron' for {A,a,E,e,AE,ae,I,I,O,o,U,u,Y,y} with macron.
(Bug#55668)
2022-06-14 Stephen Berman <stephen.berman@gmx.net>
Fix errors when aligning text in find-dired
* lisp/find-dired.el (find-dired-filter): Don't error out while
trying to align the text (by just removing that code) (bug#46218).
2022-06-14 Lars Ingebrigtsen <larsi@gnus.org>
Make flymake-proc--delete-temp-directory slightly safer
* lisp/progmodes/flymake-proc.el
(flymake-proc--delete-temp-directory): Temp dir name may be
abbreviatated, so expand it first (bug#46203).
2022-06-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix .dir-local.el caching for symlinks
* lisp/files.el (dir-locals-read-from-dir): We want the time stamp
of the actual file, not the time stamp of the symlink (if
.dir-locals.el is a symlink) (bug#46122).
2022-06-14 Lars Ingebrigtsen <larsi@gnus.org>
Leave the contents on the *Backtrace* buffer on `q'
* lisp/emacs-lisp/debug.el (debug): Don't clear the contents of
the buffer on `q' (bug#55863).
2022-06-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix gud parsing of empty jdb classpaths
* lisp/progmodes/gud.el (gud-jdb-marker-filter): Parse empty
classpaths (like classpath: []) correctly (bug#55957).
2022-06-14 Daniel Martín <mardani29@yahoo.es>
Bind Cmd-t to menu-set-font on macOS
* lisp/term/ns-win.el (global-map): set-frame-font asks for a font
using the minibuffer, but the former ns-popup-font-panel always showed
the graphical font panel on macOS. To preserve the same behavior,
bind it to menu-set-font, which is also called by Options, Set Default
Font (bug#55967).
2022-06-14 Lars Ingebrigtsen <larsi@gnus.org>
Allow using alists in ido completion and hitting TAB
* lisp/ido.el (ido-completion-help): Allow using an alist
COMPLETIONS (bug#46091).
2022-06-14 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Clarify what a Calc registeri in in calc-insert-register"
This reverts commit 73400e4002ce8fca060093548e6791b3a784eeaa.
This has been fixed in Emacs 29 by making it possible to use regular registers in calc.
2022-06-14 Lars Ingebrigtsen <larsi@gnus.org>
Mention how to only get syntactic font locking in the manual
* doc/lispref/modes.texi (Syntactic Font Lock): Note how to only
get syntactic font locking (bug#46039).
2022-06-14 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp problem with non-essential
* lisp/net/tramp.el (tramp-run-real-handler):
Handle also functions which use a `tramp-file-name' for the file
name handler. (Bug#55832)
(tramp-get-home-directory, tramp-get-remote-uid)
(tramp-get-remote-gid): VEC can also be nil.
2022-06-14 Po Lu <luangruo@yahoo.com>
Fix mishandling of dnd-scroll-margin with scroll bar motion
* lisp/dnd.el (dnd-handle-movement): Ignore posns inside scroll
bars for now.
2022-06-14 Juri Linkov <juri@linkov.net>
* lisp/minibuffer.el (minibuffer-complete-history): New command.
(minibuffer-complete-defaults): New command.
https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00498.html
2022-06-14 Juri Linkov <juri@linkov.net>
* lisp/simple.el (completion-auto-wrap): Rename from completion-wrap-movement.
(next-completion): Use completion-auto-wrap.
https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00139.html
2022-06-14 Po Lu <luangruo@yahoo.com>
Fix out of date parts in NS doc and keyboard bindings
* doc/emacs/macos.texi (Mac / GNUstep Events): Remove
`ns-drag-n-drop' which doesn't exist anymore. Add events to
concept index and document `ns-show-prefs'. (bug#55940)
* lisp/term/ns-win.el (global-map): Remove ns-popup-font-panel.
2022-06-14 Po Lu <luangruo@yahoo.com>
Handle coordinates of Motif drop start messages
* src/xterm.c (xm_read_drop_start_message): New function.
(xm_read_drag_motion_message): Check that the originator is
correct.
(x_coords_from_dnd_message): Read drop start messages as well.
2022-06-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
73400e4002 Clarify what a Calc registeri in in calc-insert-register
2022-06-13 Po Lu <luangruo@yahoo.com>
Handle coordinate extraction for more event types
* src/xterm.c (xm_read_drag_motion_message): New function.
(x_coords_from_dnd_message): Handle XM_DRAG_REASON_DRAG_MOTION.
2022-06-13 Po Lu <luangruo@yahoo.com>
Use coordinates provided by DND messages if available
This avoids an extra sync, which matters when dropping onto
Emacs running over a slow connection.
* src/xselect.c (x_handle_dnd_message): New args
`root_window_coords', `root_x' and `root_y'.
* src/xterm.c (x_coords_from_dnd_message): New function.
(handle_one_xevent): Pass root window coordinates to
x_handle_dnd_message.
* src/xterm.h: Update prototypes.
2022-06-13 Dmitry Gutov <dgutov@yandex.ru>
project--git-submodules: Parse more strictly
* lisp/progmodes/project.el (project--git-submodules):
Don't mistake 'load-path' for 'path' (bug#55396).
2022-06-13 Paul Eggert <eggert@cs.ucla.edu>
Default decoded-time dst slot to -1
* lisp/simple.el (decoded-time): Default dst slot to -1.
Improve related doc strings.
2022-06-13 Yuan Fu <casouri@gmail.com>
Use the up-only parameter in treesit navigation functions
* lisp/treesit.el(treesit-inspect-node-at-point,
treesit-end-of-defun): Set up-only to t.
2022-06-13 Yuan Fu <casouri@gmail.com>
Add depth control for treesit traverse functions
* lisp/treesit.el (treesit-traverse-depth-first,
treesit-traverse-forward): Add depth parameter.
(treesit-search-forward, treesit-search-beginning,
treesit-search-end): Add up-only parameter.
2022-06-13 Yuan Fu <casouri@gmail.com>
Fix treesit-search-forward
Move the check for movement
(if (> arg 0)
;; Make sure we moved forward.
(> (funcall pos-fn node) starting-point)
;; Make sure we moved backward.
(< (funcall pos-fn node) starting-point))
into cl-loop:
if (treesit-node-eq cap-node node)
becomes
if (and (treesit-node-eq cap-node node)
(if (> arg 0)
;; Make sure we moved forward.
(> (funcall pos-fn node)
starting-point)
;; Make sure we moved backward.
(< (funcall pos-fn node)
starting-point)))
* lisp/treesit.el (treesit-search-forward): Move the check.
2022-06-13 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12.1.1 -Wanalyzer-use-of-uninitialized-value
* src/xfont.c (xfont_list_pattern): Initialize a local.
Although Im not sure this is needed, it doesnt change
behavior (except possibly to make undefined behavior defined).
2022-06-13 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12.1.1 in default developer build
* src/pdumper.c (pdumper_load): Use explicit memset to work around
GCC bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105961>.
2022-06-13 Juri Linkov <juri@linkov.net>
* lisp/progmodes/grep.el (grep-read-files): Combine files with aliases.
Use completion-table-merge to combine completions of files from
read-file-name-internal with a list of defaults from grep-files-aliases
(bug#55800).
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Mention \`M-x ...' in the lispref manual
* doc/lispref/help.texi (Keys in Documentation): Note \`M-x ...'
syntax.
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Clarify what a Calc registeri in in calc-insert-register
* lisp/calc/calc-yank.el (calc-insert-register): Note that these
aren't normal registers (bug#55943).
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow saying \\=`M-x ...' in a doc string
* lisp/help.el (substitute-command-keys): Allow saying \\=`M-x
foo' in doc strings (and have it be fontified as a key binding).
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Massage In-Reply-To data in message-mail
* lisp/gnus/message.el (message-mail): Fix up Message-IDs from
Firefox (bug#55926).
2022-06-13 Lassi Kortela <lassi@lassi.io> (tiny change)
Match complete words in dns-mode
* lisp/textmodes/dns-mode.el (dns-mode-font-lock-keywords): Match
complete words like SOA and not all words that contain the string
SOA (bug#55944).
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow `query-replace' to do exact replacement of the current item
* doc/emacs/search.texi (Query Replace): Document it.
* lisp/replace.el (query-replace-help): Amend help text.
(query-replace-map): Bind `E' to the exact case replacement.
(perform-replace): Allow editing a replacement with exact case
(bug#8504).
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Add to mode cedilla characters to iso-transl-char-map
* lisp/international/iso-transl.el (iso-transl-char-map): Add some
more cedilla characters.
2022-06-13 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Meetei Mayek script
* lisp/language/indian.el ("Meetei Mayek"): New language environment.
Add composition rules for Meetei Mayek. Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Meetei Mayek.
* lisp/leim/quail/indian.el ("meetei-mayek"): New input method.
* etc/HELLO: Add a Meetei Mayek greeting.
* etc/NEWS: Announce the new language environment.
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Make the ediff control panel mode line prettier
* lisp/vc/ediff-wind.el (ediff-refresh-mode-lines): Don't include
"Quick Help" in the mode line in the plain version (bug#12840).
(ediff-make-wide-control-buffer-id): Make the informative part of
the mode line bold. (Code from Michael Heerdegen.)
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow rgrep users to indicate case folding easier
* lisp/progmodes/grep.el (rgrep): Allow the user to toggle case
sensitivity interactively (bug#16913).
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Add a `M-c' command to `read-regexp'
* doc/lispref/minibuf.texi (Text from Minibuffer): Document it.
* lisp/replace.el (read-regexp): Add a `M-c' command to indicate
case folding (bug#16913).
2022-06-13 Richard Hansen <rhansen@rhansen.org>
bindat (strz): Error on null byte if packing variable-length string
* lisp/emacs-lisp/bindat.el (strz): Signal an error if a null byte is
encountered while packing a string to a variable-length strz field.
* test/lisp/emacs-lisp/bindat-tests.el (strz): Add tests (bug#55938).
2022-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
* files.el (auto-mode-alist): Add entry to `.eld` files
2022-06-13 Lars Ingebrigtsen <larsi@gnus.org>
Make `/ a' in *Package* filter by name
* lisp/emacs-lisp/package.el (package-menu-filter-by-archive):
Filter by package name instead of by regexp, so that if the user
types "gnu", they won't get "nongnu", too (bug#55919).
2022-06-13 Visuwesh <visuweshm@gmail.com>
* lisp/find-dired.el (find-dired): Make directory clickable.
* lisp/find-dired.el (find-dired): Make the directory line
clickable (bug#55906).
2022-06-13 Po Lu <luangruo@yahoo.com>
Respect test function when performing local drag-and-drop
* lisp/x-dnd.el (x-dnd-test-function): Fix doc string to
describe what is actually accepted.
(x-dnd-known-types, x-dnd-targets-list): Fix coding style.
(x-dnd-handle-native-drop): New function.
* src/xselect.c (x_atom_to_symbol): Export.
* src/xterm.c (x_dnd_note_self_drop): Call new variable to
determine what action to return.
(x_clear_dnd_action): New function.
(x_dnd_begin_drag_and_drop): Respect new variable.
(syms_of_xterm): New defvar `x-dnd-native-test-function'.
* src/xterm.h: Update prototypes.
2022-06-13 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d6f080d3de ; * doc/man/etags.1: Bump man page date.
2022-06-13 Po Lu <luangruo@yahoo.com>
Improve DND tooltip updating
* src/xterm.c (x_dnd_update_tooltip_now): Add missing part of
last change.
(x_monitors_changed_cb, handle_one_xevent): Only update if a
change in monitor configuration really happened.
2022-06-12 Po Lu <luangruo@yahoo.com>
Keep tooltip position in sync with monitor changes
* src/xterm.c (x_dnd_update_tooltip_now): New function.
(x_monitors_changed_cb):
(handle_one_xevent): Call that function on monitor change.
2022-06-12 Po Lu <luangruo@yahoo.com>
Fix special DND event coordinates
* src/xterm.c (x_dnd_note_self_drop): Set DND action to
XdndActionPrivate.
(x_dnd_begin_drag_and_drop): Don't return XdndPrivate specially
here.
(handle_one_xevent): Fix order of arguments to
x_dnd_note_self_drop.
2022-06-12 Juri Linkov <juri@linkov.net>
* lisp/icomplete.el: Consider a list in minibuffer-default (bug#55800)
* lisp/icomplete.el (icomplete--sorted-completions): Handle a string value
in the first element of the list of default values in minibuffer-default.
2022-06-12 Eli Zaretskii <eliz@gnu.org>
Change the API of 'update_redisplay_ticks'
* src/xdisp.c (update_redisplay_ticks): Change the 2nd argument
to be 'struct window'; all callers changed.
2022-06-12 Juri Linkov <juri@linkov.net>
* lisp/isearch.el (isearch-search-fun-in-text-property): Handle ^/$ specially.
When the regexp contains ^ or $ then use a temporary buffer to find matches
at the beginning/end of the region with the given text property (bug#14013).
2022-06-12 Eli Zaretskii <eliz@gnu.org>
Fix a typo in a doc string.
2022-06-12 Eli Zaretskii <eliz@gnu.org>
Initial implementation of "abort-redisplay" feature
* src/xdisp.c (update_redisplay_ticks): New function.
(init_iterator, set_iterator_to_next): Call
'update_redisplay_ticks'.
(syms_of_xdisp) <max_redisplay_ticks>: New variable.
<list_of_error>: Remove 'void-variable': it is no longer needed,
since 'calc_pixel_width_or_height' can no longer signal a
void-variable error, and it gets in the way of aborting
redisplay via 'redisplay_window_error'.
2022-06-12 Po Lu <luangruo@yahoo.com>
Fix encoding of multibyte ToolTalk filenames
* lisp/select.el (xselect-convert-to-dt-netfile): Encode file
name before computing its tooltalk name, since the indices work
on bytes.
* test/lisp/dnd-tests.el (dnd-tests-begin-file-drag): Add test.
2022-06-12 Po Lu <luangruo@yahoo.com>
Fix handling of scroll bar clicks on Haiku
* src/haiku_support.cc (class EmacsView, BasicMouseDown)
(BasicMouseUp): Move MouseDown and MouseUp here. New parameter
`scroll_bar'.
(MouseDown, MouseUp): Call basic variants.
(class EmacsScrollBar): New field `parent'.
(BScrollBar_make_for_view): Rename to
`be_create_scroll_bar_for_view'.
* src/haiku_support.h (struct haiku_button_event): New field
`scroll_bar'.
* src/haikuterm.c (haiku_scroll_bar_from_widget): Handle NULL
widget.
(haiku_scroll_bar_create): Update calls.
(haiku_mouse_position): Fix scroll bar part.
(haiku_read_socket): Handle button events on scroll bars as
scroll bar click events.
2022-06-12 Mattias Engdegård <mattiase@acm.org>
Use BASE_EQ when comparing with Qunbound
Qunbound is uninterned and can therefore never be EQ to any symbol
with position.
* src/buffer.c (Fbuffer_local_value, buffer_lisp_local_variables)
(buffer_local_variables_1):
* src/bytecode.c (exec_byte_code):
* src/comp.c (compile_function, Fcomp__compile_ctxt_to_file):
* src/composite.c (composition_gstring_cache_clear_font):
* src/data.c (Fboundp, Fsymbol_value, set_internal)
(Fdefault_boundp, Fdefault_value, Fmake_variable_buffer_local):
* src/emacs-module.c (module_global_reference_p):
* src/eval.c (Fdefault_toplevel_value, defvar)
(run_hook_with_args):
* src/fns.c (hash_put, Fmaphash):
* src/font.c (font_put_extra):
* src/frame.c (gui_set_frame_parameters)
(gui_frame_get_and_record_arg, gui_default_parameter)
(gui_figure_window_size):
* src/haikufns.c (get_geometry_from_preferences)
(haiku_create_frame, haiku_create_tip_frame):
* src/haikuterm.c (haiku_draw_text_decoration)
(haiku_default_font_parameter):
* src/json.c (lisp_to_json_nonscalar_1):
* src/keymap.c (access_keymap_1, access_keymap, current_minor_maps):
* src/lread.c (readevalloop, define_symbol):
* src/minibuf.c (read_minibuf, Ftry_completion):
(Fall_completions, Ftest_completion):
* src/pgtkfns.c (pgtk_default_font_parameter, Fx_create_frame)
(x_create_tip_frame):
* src/pgtkselect.c (Fpgtk_own_selection_internal):
* src/print.c (print):
* src/profiler.c (evict_lower_half, record_backtrace):
* src/terminal.c (create_terminal):
* src/textprop.c (set_properties):
* src/w32fns.c (my_create_window, w32_icon)
(w32_default_font_parameter, Fx_create_frame)
(w32_create_tip_frame):
* src/w32term.c (w32_draw_glyph_string):
* src/xdisp.c (handle_single_display_spec)
(cursor_row_fully_visible_p, calc_pixel_width_or_height):
* src/xfns.c (x_default_scroll_bar_color_parameter, x_icon_verify)
(x_icon, x_default_font_parameter, Fx_create_frame)
(x_create_tip_frame):
* src/xselect.c (x_handle_selection_request):
* src/xterm.c (x_draw_glyph_string, x_term_init):
Use BASE_EQ instead of EQ when comparing with Qunbound.
2022-06-12 Lars Ingebrigtsen <larsi@gnus.org>
Make find-sibling-file-search non-private
* lisp/files.el (find-sibling-file-search): Rename to be non-private.
(find-sibling-file): Adjust call.
2022-06-12 Yuan Fu <casouri@gmail.com>
Update docstring of eglot-events-buffer-size
* eglot.el (eglot-events-buffer-size): Mention that you need to
restart the connection for 'eglot-events-buffer-size' to take effect.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/974
GitHub-reference: close https://github.com/joaotavora/eglot/issues/776
2022-06-12 Eli Zaretskii <eliz@gnu.org>
Fix "C-x C-d" with wildcard arguments
* lisp/files.el (list-directory): Make sure 'default-directory' is
set to a valid value if the argument DIRNAME included wildcards.
(Bug#55877)
2022-06-12 Po Lu <luangruo@yahoo.com>
Fix phantom drag-and-drop targets showing up in some programs
* src/xterm.c (x_dnd_cleanup_drag_and_drop)
(x_dnd_begin_drag_and_drop): Delete XdndTypeList if it was set
after the DND operation completes. Some programs apparently
think its presence on the drag source means there are more than
3 targets.
2022-06-12 Richard Hansen <rhansen@rhansen.org>
bindat (str, strz): Reject non-ASCII, non-`eight-bit' characters
* lisp/emacs-lisp/bindat.el (str) (strz): Signal an error if the user
attempts to pack a multibyte string containing characters other than
ASCII and `eight-bit' characters (bug#55897).
* doc/lispref/processes.texi (Bindat Types): Update documentation.
* test/lisp/emacs-lisp/bindat-tests.el (str) (strz): Add tests.
2022-06-12 Po Lu <luangruo@yahoo.com>
Don't repetitively initialize type lists during DND
* src/xterm.c (x_dnd_send_enter): Only set XdndTypeList once.
(x_dnd_begin_drag_and_drop): Clear type list flag.
2022-06-12 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
cbd2c87a5d ; Fix last change in whitespace.el.
52ad2b53cb Fix doc strings in whitespace.el
2022-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/find-func.el (find-function-advised-original): Simplify
2022-06-11 Yuan Fu <casouri@gmail.com>
* configure.ac (HAVE_TREE_SITTER): Not set TREE_SITTER_LIBS.
2022-06-11 Yuan Fu <casouri@gmail.com>
Rename treesit-traverse-forward-depth-first
* lisp/treesit.el (treesit-traverse-forward): Rename to
'treesit-traverse-forward'.
(treesit-traverse-forward, treesit-search-forward): Use
the new name.
2022-06-11 Po Lu <luangruo@yahoo.com>
Use cached monitor info during DND if available
* src/xterm.c (x_dnd_begin_drag_and_drop): Use previously cached
monitor attributes if they exist.
2022-06-11 Po Lu <luangruo@yahoo.com>
* src/nsfns.m (ns_move_tooltip_to_mouse_location): Handle invisible frames.
2022-06-11 Po Lu <luangruo@yahoo.com>
Don't rely on XdndAware on frames for dropping to work
* src/xterm.c (x_dnd_get_target_window): New parameter
WAS_FRAME. If toplevel is a frame, set it and clear proto and
motif.
(x_dnd_send_enter, x_dnd_send_position, x_dnd_send_leave)
(x_dnd_send_drop): Remove special-cased self dropping code.
(x_dnd_note_self_position, x_dnd_note_self_drop): New functions.
(x_dnd_begin_drag_and_drop, x_dnd_update_state):
(handle_one_xevent): Handle our own frames using those functions
instead.
2022-06-11 Mattias Engdegård <mattiase@acm.org>
* src/fns.c (internal_equal): Use BASE_EQ where possible.
2022-06-11 Basil L. Contovounesios <contovob@tcd.ie>
Recognize processes as a CL type again
For discussion, see:
https://lists.gnu.org/r/emacs-devel/2022-06/msg00567.html
* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Include process
as a type, to avoid cl-typep complaining about process objects.
2022-06-11 Lars Ingebrigtsen <larsi@gnus.org>
Make new fileio test more reliable
* test/src/fileio-tests.el: Use a unibyte buffer to avoid length
confusion.
2022-06-11 Lars Ingebrigtsen <larsi@gnus.org>
Bump sh-imenu-generic-expression defcustom version
* lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Bump
the :version since we changed the value.
2022-06-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix loaddefs installation of packages with no autoloads
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Always
generate an output file if we have EXTRA-DATA. This fixes package
installation of packages with no ;;;###autoload forms.
2022-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
fileio-tests.el (test-non-regular-insert): Fix thinko
* test/src/fileio-tests.el (fileio-tests--non-regular-insert): Rename
from `test-non-regular-insert` and make it into a test rather than
a broken function. Oh, and make it work while at it.
2022-06-11 Stefan Monnier <monnier@iro.umontreal.ca>
Bindat: Document `sint`; add `le` arg to `uint`; deprecate `uintr`
* lisp/emacs-lisp/bindat.el (bindat--type) <uint>: Add `le` optional arg.
(bindat--type) <uintr>: Delete method.
(uintr): Re-define as a bindat-macro instead.
(bindat-type): Update docstring accordingly.
(bindat--primitives): Update.
(sint): Simplify.
* doc/lispref/processes.texi (Bindat Types): Update `uint`, add `sint`,
and remove `uintr`.
* test/lisp/emacs-lisp/bindat-tests.el (data-bindat-spec): Use the new
`le` arg of `uint` instead of `uintr`.
2022-06-11 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Improve Lepcha composition rules and rename its native name
* lisp/language/indian.el ("Lepcha"): Rename lepcha script
native name and improve composition rules. (Bug#55869)
* etc/HELLO: Rename Lepcha script native name.
2022-06-11 Po Lu <luangruo@yahoo.com>
Fix timestamp of special drop events
* src/xterm.c (x_dnd_send_drop): Set special event timestamp
to the timestamp of the drop instead of CurrentTime.
2022-06-11 Lars Ingebrigtsen <larsi@gnus.org>
Allow inserting parts of /dev/urandom with insert-file-contents
* doc/lispref/files.texi (Reading from Files): Document it.
* src/fileio.c (Finsert_file_contents): Allow specifying END for
special files (bug#18370).
2022-06-11 Po Lu <luangruo@yahoo.com>
Fix some drag-and-drop handling on Haiku
* lisp/term/haiku-win.el (haiku-drag-and-drop): Don't raise
frame for some types of drags.
* src/haikuselect.c (haiku_unwind_drag_message): Don't hide
tooltip here.
(Fhaiku_drag_message): Only clear grab and hide tooltip if the
drag was successful.
2022-06-11 Po Lu <luangruo@yahoo.com>
Fix initializers for Haiku scroll bars
* src/haiku_support.cc (class Emacs):
(class EmacsScrollBar): Fix initializers.
2022-06-11 Visuwesh <visuweshm@gmail.com>
Support mksh-specific function names in imenu
* lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Add
mksh-specific function names to imenu-generic-expression
(bug#55889).
2022-06-11 Lars Ingebrigtsen <larsi@gnus.org>
Further tweaks to how remapped commands are described
* lisp/help.el (describe-map): Rework how remapped commands are
output to avoid repetitions.
They're now shown as:
C-x 4 C-o ido-display-buffer
(Remapped via <remap> <display-buffer>)
C-x 5 C-o ido-display-buffer-other-frame
(Remapped via <remap> <display-buffer-other-frame>)
C-x x i ido-insert-buffer
(Remapped via <remap> <insert-buffer>)
2022-06-11 Eli Zaretskii <eliz@gnu.org>
Fix doc strings in whitespace.el
* lisp/whitespace.el (whitespace-style, whitespace-action):
Untabify the doc strings. (Bug#55904)
2022-06-11 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Lepcha script (bug#55869)
* lisp/language/indian.el ("Lepcha"): New language environment.
Add composition rules for Lepcha. Add sample text and input method.
* lisp/language/misc-lang.el ("Kharoshthi"): Fix whitespace.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Lepcha.
* lisp/leim/quail/indian.el ("lepcha"): New input method.
* etc/HELLO: Add a Lepcha greeting.
* etc/NEWS: Announce the new language environment.
2022-06-11 Po Lu <luangruo@yahoo.com>
Fix queuing already-present selection requests
* src/xterm.c (x_defer_selection_requests): Move kbd_fetch_ptr
if possible and fix counter increment order.
2022-06-11 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
0705705ebf Improve documentation of "etags -I"
0ad8cd40ce Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e...
22a832ad82 Mention the #f syntax from cl-prin1
3fd0854378 Fix file name quoting in tramp-smb.el (do not merge)
2022-06-10 Po Lu <luangruo@yahoo.com>
Handle allocation errors when interning large amounts of atoms
* src/xfns.c (Fx_begin_drag): Catch BadAlloc errors around
XInternAtoms.
2022-06-10 Po Lu <luangruo@yahoo.com>
Prevent crash handling keyboard input from non-frame windows
* src/xterm.c (handle_one_xevent): Use `dpyinfo' to access xkb
desc. (bug#55890)
2022-06-10 Po Lu <luangruo@yahoo.com>
Fix cancelling DND upon a regular X error
* src/xterm.c (x_connection_closed): The display isn't dead upon
a non-IO error, so don't avoid sending messages to clean stuff
up.
2022-06-10 Dmitry Gutov <dgutov@yandex.ru>
elisp-completion-at-point: Replace last usage of 'read'
* lisp/progmodes/elisp-mode.el (elisp-completion-at-point):
Replace the last remaining usage of 'read' (bug#55491).
2022-06-10 Juri Linkov <juri@linkov.net>
New function isearch-search-fun-in-text-property (bug#14013).
* lisp/dired-aux.el (dired-isearch-search-filenames): Move most of the body
to the new function isearch-search-fun-in-text-property.
* lisp/isearch.el (isearch-search-fun-in-text-property):
New function refactored from dired-isearch-search-filenames.
2022-06-10 Jim Porter <jporterbugs@gmail.com>
Don't use 'list' command in Eshell command forms
When executed like a command, 'list' looks for external programs named
'list' first before falling back to the Lisp function of the same
name. This causes unexpected behavior, since the Lisp function is
what we want in these tests.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-cmd-indices)
(esh-var-test/quoted-interp-cmd-indices): Use 'listify' instead of
'list'.
2022-06-10 Po Lu <luangruo@yahoo.com>
Remove extra call to XTranslateCoordinates when performing "xterm" drop
* src/xterm.c (x_dnd_do_unsupported_drop): Signal error when
XdndSelection is lost, set subwindow, and simplify
XTranslateCoordinates loop.
2022-06-10 Taiju HIGASHI <higashi@taiju.info>
Don't reduce vocabulary in ja-dic.el by default
* configure.ac: Add the "--with-small-ja-dic" configure option.
* leim/Makefile.in (${leimdir}/ja-dic/ja-dic.el): Change the build
method depending on whether or not the --with-small-ja-dic option
is specified.
* lisp/international/ja-dic-cnv.el (skkdic-convert-okuri-nasi): Add
the "no-reduction" optional argument. When it is specified, then
generate a Japanese dictionary without reduced vocabulary.
(skkdic-convert): Add the "no-reduction" optional argument.
(batch-skkdic-convert): Add the "--no-reduction" command line argument.
2022-06-10 Richard Hansen <rhansen@rhansen.org>
bindat (strz): Fix documentation for strz with pre-allocated string
* doc/lispref/processes.texi (Bindat Types): Document that a null
terminator is not written if `bindat-pack' is given a pre-allocated
string.
2022-06-10 Lars Ingebrigtsen <larsi@gnus.org>
Link find-sibling-file to ff-find-related-file in manual
* doc/emacs/files.texi (Visiting): Link to ff-find-related-file
documentation.
2022-06-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix find-sibling-file doc string
* lisp/files.el (find-sibling-file): Remove incorrect statement
from doc string (bug#55879).
2022-06-10 Lars Ingebrigtsen <larsi@gnus.org>
Make describe-prefix-bindings say when there are no matches
* lisp/help.el (describe-prefix-bindings): Say when there are no
bindings under a prefix (bug#55875), for instance in `C-c C-h' in
a buffer with no `C-c' commands.
2022-06-10 Ignacio Casso <ignaciocasso@hotmail.com>
Fix issues with loading autoloaded defcustoms while bound
* doc/lispref/customize.texi (Variable Definitions)
(Variable Definitions): Update documentation.
* lisp/custom.el (custom-initialize-set)
(custom-initialize-reset): Update doc string.
(custom-initialize-changed): Use set-default-toplevel-value. This
fixes issues with (let ((custom-variable ...)) (autoload-function ...)).
(custom-set-default): Ditto.
* src/data.c (Fdefault_boundp): Update doc string.
2022-06-10 Lars Ingebrigtsen <larsi@gnus.org>
Don't put trailing optional nil values into `command-history'
* src/callint.c (fix_command): Don't put trailing optional nil
values into `command-history' (bug#45333).
2022-06-10 Mattias Engdegård <mattiase@acm.org>
Fix macOS parallel bootstrap error (bug#55846)
* nextstep/Makefile.in (${ns_appdir}):
Change to a single-target rule to avoid the same actions being
executed in parallel.
2022-06-10 Lars Ingebrigtsen <larsi@gnus.org>
Mention the REQUIRE-MATCH extension in NEWS
2022-06-10 Lars Ingebrigtsen <larsi@gnus.org>
Allow specifying a wildcard argument to list-directory again
* lisp/files.el (list-directory): Allow specifying a wildcard
argument interactively again (bug#55877).
2022-06-10 Lars Ingebrigtsen <larsi@gnus.org>
Allow REQUIRE-MATCH to be a function
* doc/lispref/minibuf.texi (Minibuffer Completion): Document it.
* lisp/minibuffer.el (completion--complete-and-exit): Allow
REQUIRE-MATCH to be a function.
(read-file-name): Mention it.
* src/minibuf.c (Fcompleting_read): Mention it.
2022-06-10 Po Lu <luangruo@yahoo.com>
Fix receiving drops from drop-only Motif programs
* lisp/x-dnd.el (x-dnd-xm-read-targets-table): Fix doc string.
(x-dnd-handle-motif): Recompute types and state on XmDROP_START
if no state already exists.
2022-06-10 Eli Zaretskii <eliz@gnu.org>
Improve documentation of "etags -I"
* doc/man/etags.1:
* doc/emacs/maintaining.texi (Create Tags Table): Elaborate on the
importance of the '-I' option to 'etags'. (Bug#45246)
2022-06-10 Po Lu <luangruo@yahoo.com>
Eliminate extra call to XTranslateCoordinates looking for drop target
* src/xterm.c (x_dnd_get_target_window): Translate coordinates
starting from the root window and avoid extra sync.
2022-06-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
22a832ad82 Mention the #f syntax from cl-prin1
2022-06-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d02c94090c Fix error reporting in process-async-https-with-delay
9a4862a973 * doc/misc/org.org: Remove spurious markup.
768ed1476a Make Tramp version check more robust
7f778c6943 Fix debugging with GDB when a breakpoint has multiple loca...
25e53e9391 ; * lisp/files.el (file-expand-wildcards): Doc fix.
3ea9357d10 Update documentation of 'aset' and 'store-substring'
# Conflicts:
# lisp/files.el
2022-06-10 Po Lu <luangruo@yahoo.com>
Add tests for x-dnd Motif value parsing logic
* test/lisp/x-dnd-tests.el: New file.
2022-06-09 Po Lu <luangruo@yahoo.com>
Don't rely on TARGETS to read selection targets for Motif DND
* lisp/x-dnd.el (x-dnd-types-alist):
(x-dnd-known-types): Fix formatting.
(x-dnd-xm-unpack-targets-table-header):
(x-dnd-xm-read-single-rec):
(x-dnd-xm-read-targets-table):
(x-dnd-xm-read-targets): New functions.
(x-dnd-handle-motif): Read targets from the targets table
of the drag window instead of the selection's TARGET target.
2022-06-09 Po Lu <luangruo@yahoo.com>
Fix crashes in x_tooltip_window_to_frame on GTK
* src/xterm.c (x_tooltip_window_to_frame): Ignore all non-X
frames instead of trying to get their tooltip window.
2022-06-09 Po Lu <luangruo@yahoo.com>
* src/haikuselect.c (haiku_note_drag_motion): Only handle visible tip_f.
2022-06-09 Po Lu <luangruo@yahoo.com>
Fix DND tooltip handling with tooltip-reuse-hidden-frame
* src/xterm.c (x_dnd_update_tooltip_position): Don't move window
if tip_f is not visible.
2022-06-09 Eli Zaretskii <eliz@gnu.org>
Update the 'etags' test suite
* ETAGS_good_1:
* ETAGS_good_2:
* ETAGS_good_3:
* ETAGS_good_4:
* ETAGS_good_5:
* ETAGS_good_6: Adapt to recent changes in test sources.
* lib-src/etags.c (C_entries): Add commentary for resetting
bracelev. (Bug#45246)
2022-06-09 Lars Ingebrigtsen <larsi@gnus.org>
Adjust browse-url test after previous browse-url change
2022-06-09 Lars Ingebrigtsen <larsi@gnus.org>
Make browse-url-encode-url encode even less
* lisp/net/browse-url.el (browse-url-encode-url): Don't encode
dollar signs, because that's out of spec (bug#55873).
2022-06-09 Lars Ingebrigtsen <larsi@gnus.org>
Improve `C-h b' output for remapped commands.
* lisp/help.el (describe-map): Include the bindings of the
remapped commands (bug#14084).
This will result in output like this, instead of just listing the
remapped commands:
<remap> <display-buffer> ido-display-buffer
C-x 4 C-o display-buffer
<remap> <display-buffer-other-frame> ido-display-buffer-other-frame
C-x 5 C-o display-buffer-other-frame
<remap> <insert-buffer> ido-insert-buffer
C-x x i insert-buffer
<remap> <kill-buffer> ido-kill-buffer
C-x k kill-buffer
<remap> <switch-to-buffer> ido-switch-buffer
C-x b switch-to-buffer
<remap> <switch-to-buffer-other-frame> ido-switch-buffer-other-frame
C-x 5 b switch-to-buffer-other-frame
<remap> <switch-to-buffer-other-window> ido-switch-buffer-other-window
C-x 4 b switch-to-buffer-other-window
2022-06-09 Lars Ingebrigtsen <larsi@gnus.org>
New setting for mouse-drag-copy-region to not put "" onto kill ring
* doc/emacs/frames.texi (Mouse Commands): Document it.
* lisp/mouse.el (mouse-drag-copy-region): Add value (bug#17211)
for not putting "" strings onto the kill ring.
(mouse-set-region, mouse-save-then-kill): Use the new value.
2022-06-09 Po Lu <luangruo@yahoo.com>
Fix recalculation of `icon-title-format' after a frame is iconified
Previously it would only happen upon the next mode line
redisplay, meaning that just pressing C-z would not update the
implicit title, since C-z doesn't cause a redisplay.
* src/dispextern.h: Update prototypes.
* src/frame.h (SET_FRAME_ICONIFIED): De-slugify. Call
`gui_consider_frame_title', since `icon-title-format' might be
different from the current frame title.
* src/xdisp.c (gui_consider_frame_title): Export (also in
dispextern.h). (bug#55850)
2022-06-09 Lars Ingebrigtsen <larsi@gnus.org>
Mention the #f syntax from cl-prin1
* doc/lispref/objects.texi (Special Read Syntax): Mention #f,
which is in cl-prin1 output (bug#55853).
2022-06-09 Lars Ingebrigtsen <larsi@gnus.org>
Make `line-number-at-pos' work more like in earlier Emacs versions
* src/fns.c (Fline_number_at_pos): Allow calling with position
outside the region if called with ABSOLUTE non-nil (bug#55847).
This isn't announced in the doc string, but makes function
compatible with the version in earlier Emacs versions.
2022-06-09 Po Lu <luangruo@yahoo.com>
Never return tooltip frames from ns-begin-drag
* src/nsterm.m ([EmacsWindow draggedImage:movedTo:]):
([EmacsWindow beginDrag:forPasteboard...]): Don't return frame
if tooltip.
2022-06-09 Po Lu <luangruo@yahoo.com>
Handle monitor attribute updates during drag-and-drop
* src/xterm.c (x_monitors_changed_cb):
(handle_one_xevent): Set x_dnd_monitors during monitor changes.
2022-06-09 Stefan Baums <baums@stefanbaums.com>
Add support for the Kharoshthi script
* etc/NEWS: Announce the new language environment and script.
* etc/HELLO: Add Kharoshthi greeting.
* lisp/leim/quail/misc-lang.el ("kharoshthi"): New input method.
* lisp/language/misc-lang.el ("Kharoshthi"): New language
environment. Set up composition rules for Kharoshthi.
(Bug#55539)
2022-06-09 Po Lu <luangruo@yahoo.com>
Satisfy GCC warnings on the GNUstep build
* src/nsfns.m (ns_move_tooltip_to_mouse_location):
* src/nsterm.m ([EmacsWindow draggedImage:movedTo:]): Pacify GCC.
2022-06-09 Po Lu <luangruo@yahoo.com>
Disable tooltip timeouts for drag-and-drop tooltips
* lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip):
Don't time out the created tooltip.
2022-06-09 Po Lu <luangruo@yahoo.com>
Implement `follow-tooltip' on NS as well
* lisp/term/ns-win.el (x-begin-drag): Pass `follow-tooltip'.
* src/nsfns.m (Fx_show_tip): Record last dx and dy.
(syms_of_nsfns): New staticpros.
* src/nsmenu.m ([EmacsTooltip moveTo:]): New method.
* src/nsselect.m (Fns_begin_drag): New parameter
`follow-tooltip'.
* src/nsterm.h (@interface EmacsWindow):
(EmacsTooltip): Update prototypes.
* src/nsterm.m ([EmacsWindow draggedImage:movedTo:]): Move any
tooltip to the right location.
([EmacsWindow beginDrag:forPasteboard...]): New parameter
`followTooltip'.
2022-06-09 Po Lu <luangruo@yahoo.com>
Note caveats of `follow-tooltip' with system tooltips
* lisp/mouse.el (mouse-drag-and-drop-region): Turn off system
tooltips inside.
* src/xfns.c (Fx_begin_drag): Say that follow-tooltip doesn't
work with system tooltips.
2022-06-09 Richard Hansen <rhansen@rhansen.org>
bindat: Improve str, strz documentation
* doc/lispref/processes.texi (Bindat Types): Expand the documentation
for the `str' and `strz' types to clarify expectations and explain
edge case behavior.
2022-06-09 Po Lu <luangruo@yahoo.com>
Implement `follow-tooltip' for DND on Haiku
* lisp/term/haiku-win.el (x-begin-drag): Implement
`follow-tooltip'.
* src/haikufns.c (Fx_show_tip): Record last dx and dy.
(syms_of_haikufns): New staticpros.
* src/haikuselect.c (haiku_unwind_drag_message): Clear new flag.
(Fhaiku_drag_message): New argument `follow-tooltip'. Set new
flag.
(haiku_dnd_compute_tip_xy): New function.
(haiku_note_drag_motion): Move tooltip if flag is true.
* src/haikuterm.c (haiku_read_socket): Don't generate help event
if mouse moves onto a tooltip during DND.
* src/haikuterm.h: Update prototypes.
2022-06-09 Jim Porter <jporterbugs@gmail.com>
Account for remapped faces in $COLUMNS and $LINES in Eshell
* src/window.h (window_body_unit): New enum...
(window_body_width): ... use it.
* src/window.c (window_body_unit_from_symbol): New function.
(window_body_height, window_body_width): Make PIXELWISE a
'window_body_unit'.
(window-body-height, window-body-width): Accept 'remap' for PIXELWISE.
(window-lines-pixel-dimensions, window_change_record_windows)
(run_window_change_functions, resize_frame_windows, grow_mini_window)
(shrink_mini_window, scroll-left, scroll-right): Update calls to
'window_body_height' and 'window_body_width'.
* src/indent.c (compute_motion): Update calls to 'window_body_width'.
* lisp/eshell/em-ls.el (eshell-ls-find-column-widths)
(eshell-ls-find-column-lengths): Use 'window-body-width'.
* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Use
'window-body-width' and 'window-body-height'.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/window-height)
(esh-var-test/window-width): Rename to...
(esh-var-test/lines-var, esh-var-test/columns-var): ... and update
expected value.
* doc/lispref/windows.texi (Window Sizes): Document new behavior of
PIXELWISE argument for 'window-body-width' and 'window-body-height'.
* etc/NEWS: Announce this change (bug#55696).
2022-06-09 Eli Zaretskii <eliz@gnu.org>
Revert "* src/comp.c (Fcomp_el_to_eln_filename): Update error message."
This reverts commit ec987e3e1786d06ffd306e5717b4d7fd118f05ac.
This change was installed on the emacs-28 branch instead.
2022-06-09 Juri Linkov <juri@linkov.net>
Allow C-x 4 4, C-x 5 5, C-x t t to handle commands that use switch-to-buffer
* lisp/window.el (display-buffer-override-next-command):
Temporarily set switch-to-buffer-obey-display-actions to t,
and revert back to the original value afterwards.
This allows other-window-prefix, other-frame-prefix, other-tab-prefix,
windmove-display-in-direction to override the default behavior of
commands that use switch-to-buffer.
https://lists.gnu.org/archive/html/emacs-devel/2022-06/msg00483.html
2022-06-09 Jeff Walsh <fejfighter@gmail.com>
* src/comp.c (Fcomp_el_to_eln_filename): Update error message.
2022-06-09 Jeff Walsh <fejfighter@gmail.com>
Update error message to reflect variable rename
* src/comp.c (Fcomp_el_to_eln_filename): Update error message. (Bug#55861)
2022-06-09 Po Lu <luangruo@yahoo.com>
Also show mouse DND tooltip contents during interprogram drag-and-drop
* doc/lispref/frames.texi (Drag and Drop): Document new
parameter to `x-begin-drag'.
* lisp/mouse.el (mouse-drag-and-drop-region): Don't hide tooltip
when initiating interprogram drag-and-drop.
* lisp/term/haiku-win.el (x-begin-drag):
* lisp/term/ns-win.el (x-begin-drag): Add stubs for new
parameter.
* src/xfns.c (Fx_begin_drag): New parameter `follow-tooltip'.
(Fx_show_tip, syms_of_xfns): Add records of the last dx and dy
given to `x-show-tip'.
* src/xterm.c (x_clear_dnd_monitors): New function.
(x_dnd_begin_drag_and_drop): Save monitor attributes list if
appropriate.
(x_dnd_compute_tip_xy, x_dnd_update_tooltip_position): New
function.
(x_dnd_update_state, handle_one_xevent): Update tooltip position
during DND mouse movement.
(syms_of_xterm): Update staticpros.
* src/xterm.h: Update prototypes.
2022-06-08 Po Lu <luangruo@yahoo.com>
Fix dnd-tests on builds without X
* test/lisp/dnd-tests.el (x-get-selection-internal): New
function declaration.
2022-06-08 Po Lu <luangruo@yahoo.com>
Ignore tooltip frames when looking for DND target
* src/xterm.c (x_dnd_get_target_window): When not using client
lists, look beneath any tooltip frame.
2022-06-08 Po Lu <luangruo@yahoo.com>
Make use of faster atom intern functions in xselect.c
* src/xselect.c (symbol_to_x_atom):
(x_atom_to_symbol): Use x_get_atom_name and
x_intern_cached_atom.
2022-06-08 Ken Brown <kbrown@cornell.edu>
Fix error reporting in process-async-https-with-delay
* test/src/process-tests.el (process-async-https-with-delay): Use
'plist-get' instead of 'assq' in testing for a connection error.
The 'status' variable is a plist, not an alist. (Bug#55849)
2022-06-08 Juri Linkov <juri@linkov.net>
* lisp/rect.el: Return correct positions of region-beginning/end (bug#55234)
(rectangle-mark-mode): Add advices for region-beginning and region-end.
(rectangle--region-beginning, rectangle--region-end): New advices.
(rectangle--extract-region): Let-bind rectangle-mark-mode around
region-beginning and region-end to use the original functions.
2022-06-08 Robert Pluim <rpluim@gmail.com>
Add more super and subscript characters to latin input methods
* lisp/leim/quail/latin-post.el ("latin-postfix", "latin-prefix"): Add
mssing super and subscript characters. (Bug#55722)
2022-06-08 Robert Pluim <rpluim@gmail.com>
Add fractions to latin-post input method
* lisp/leim/quail/latin-post.el ("latin-postfix"): Add fractions.
2022-06-08 Robert Pluim <rpluim@gmail.com>
Add more ways to enter trade mark and registered sign
* lisp/international/iso-transl.el (iso-transl-char-map): Add sequence
for TRADE MARK.
* lisp/leim/quail/latin-post.el ("latin-postfix"): Add REGISTERED SIGN
and TRADE MARK.
* lisp/leim/quail/latin-pre.el ("latin-prefix"): Add TRADE MARK.
2022-06-08 Po Lu <luangruo@yahoo.com>
Allow running some DND tests interactively
* src/xselect.c (x_get_local_selection): Respect new variable.
(syms_of_xselect): New variable
`x-treat-local-requests-remotely'.
* test/lisp/dnd-tests.el (x-begin-drag, gui-set-selection):
Don't redefine these functions under X.
(dnd-tests-verify-selection-data): Use
`x-get-selection-internal' under X.
(dnd-tests-extract-selection-data): New function.
(dnd-tests-begin-text-drag): Update accordingly.
(dnd-tests-begin-file-drag, dnd-tests-begin-drag-files):
Temporarily skip these tests under X.
2022-06-08 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Give ,@ a prefix syntax in elisp-mode"
This reverts commit d003848b5e3ad2dfbe84cc62b99776fdc6734325.
This leads to hangs in edebug-tests.
2022-06-08 Jim Porter <jporterbugs@gmail.com>
Don't split Eshell expansions by line when using split-subscript operator
* lisp/eshell/esh-var.el (eshell-apply-indices): Use
'eshell-convert-to-number' instead of 'eshell-convert'.
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/interp-convert-var-split-indices): Expand test
(bug#55838).
2022-06-08 Nicholas Vollmer <iarchivedmywholelife@gmail.com>
* doc/man/emacs.1.in: Add --init-directory.
* doc/man/emacs.1.in: Document --init-directory (bug#55839).
2022-06-08 Po Lu <luangruo@yahoo.com>
Simplify XDND toplevel freeing code
* src/xterm.c (x_free_dnd_toplevels): New function.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop): Record
an unwind function to free DND toplevels instead of doing that
manually everywhere.
2022-06-08 Manuel Giraud <manuel@ledu-giraud.fr>
Fix last-modified meaning in bookmark.el
* lisp/bookmark.el (bookmark-update-last-modified): New function
to update the last-modified field.
(bookmark-send-edited-annotation, bookmark-relocate)
(bookmark-rename): Use `bookmark-update-last-modified' in
annotations editing, relocation and renaming.
2022-06-08 Lars Ingebrigtsen <larsi@gnus.org>
icomplete-in-buffer doc fix
* lisp/icomplete.el (icomplete-in-buffer): dabbrev now uses
icomplete-in-buffer (bug#45764).
2022-06-08 Stefan Kangas <stefan@marxist.se>
* doc/misc/org.org: Remove spurious markup.
2022-06-08 Michael Albinus <michael.albinus@gmx.de>
Make Tramp version check more robust
* lisp/net/trampver.el (tramp-repository-branch)
(tramp-repository-version): Check for "git" executable.
2022-06-08 Michael Albinus <michael.albinus@gmx.de>
Factor out test configuration for remote files
* lisp/emacs-lisp/ert-x.el (tramp-methods)
(tramp-default-host-alist): Declare.
(ert-remote-temporary-file-directory): New defconst.
* test/README: Mention dnd-tests.el.
* test/lisp/autorevert-tests.el
(auto-revert-test-remote-temporary-file-directory): Remove.
Replace all uses by `ert-remote-temporary-file-directory'.
* test/lisp/dnd-tests.el (ert-x): Require.
(dnd-tests-temporary-file-directory): Remove. Replace all uses by
`ert-remote-temporary-file-directory'.
* test/lisp/filenotify-tests.el
(file-notify-test-remote-temporary-file-directory): Remove.
Replace all uses by `ert-remote-temporary-file-directory'.
* test/lisp/shadowfile-tests.el (ert-x): Require.
(shadow-test-remote-temporary-file-directory): Remove. Replace
all uses by `ert-remote-temporary-file-directory'.
* test/lisp/net/tramp-tests.el: Don't require ert.
(ert-remote-temporary-file-directory): Define if it doesn't exist.
(tramp-test-temporary-file-directory): Remove. Replace all uses
by `ert-remote-temporary-file-directory'.
2022-06-08 Mattias Engdegård <mattiase@acm.org>
Preserve doc string in `byte-compile` (bug#55830)
* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function):
Don't transpose doc string and interactive spec, which must come
in this order.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-function-attributes): New test.
2022-06-08 Po Lu <luangruo@yahoo.com>
Make responding to selection requests work inside popups
* src/xfns.c (Fx_file_dialog):
* src/xmenu.c (x_menu_wait_for_event, create_and_show_popup_menu)
(create_and_show_dialog, x_menu_show): Defer selection requests.
* src/xselect.c (x_get_foreign_selection)
(x_handle_selection_notify): Add some more info to selection
trace.
* src/xterm.c (x_defer_selection_requests): Make non-static.
(x_release_selection_requests_and_flush): New function.
(x_dnd_begin_drag_and_drop): Use DEFER_SELECTIONS instead.
(x_wait_for_cell_change): Fix initial value of rc for pushed
back events.
(handle_one_xevent): Allow GTK to respond to selections in its
windows too.
* src/xterm.h (DEFER_SELECTIONS): New slug of code.
2022-06-08 Po Lu <luangruo@yahoo.com>
Fix quitting in one go out of `mouse-drag-and-drop-region'
* src/xterm.c (x_dnd_begin_drag_and_drop): Make sure
handle_interrupt is called inside the nested event loop upon a
quit event.
2022-06-07 Po Lu <luangruo@yahoo.com>
Fix crash with outdated selection requests
* src/xselect.c (x_handle_selection_request): Don't store into
stack if it wasn't previously pushed.
2022-06-07 Po Lu <luangruo@yahoo.com>
Improve drag-and-drop tests
* lisp/dnd.el (dnd-begin-file-drag, dnd-begin-drag-files): Fix
type of `x-xdnd-username'.
* lisp/select.el (selection-converter-alist): Fix declaration of
_DT_NETFILE converter.
* test/lisp/dnd-tests.el (dnd-tests-verify-selection-data):
Handle "compound" selection converters.
(dnd-tests-parse-tt-netfile): New function.
(dnd-tests-begin-file-drag, dnd-tests-begin-drag-files): Verify
validity of file selection data.
2022-06-07 Po Lu <luangruo@yahoo.com>
More fixes to mouse event reporting during drag-and-drop
* src/xterm.c (x_dnd_begin_drag_and_drop): Don't reset
dpyinfo->grabbed when quitting.
(handle_one_xevent): Keep track of dpyinfo->grabbed as well
inside the drag-and-drop event loop.
2022-06-07 Dmitry Gutov <dgutov@yandex.ru>
pcomplete-parse-arguments: Fix last change
* lisp/pcomplete.el (pcomplete-parse-arguments):
Throw the previous value of 'pcomplete-stub' (a list) rather than
the newly constructed one (bug#50470).
2022-06-07 Juri Linkov <juri@linkov.net>
* doc/emacs/vc1-xtra.texi (Customizing VC): Remove deprecated Mtn.
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Give ,@ a prefix syntax in elisp-mode
* lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize):
Give ,@ a prefix syntax so that we can properly identify symbols
that follow it, i.e., ,@foo (bug#44418).
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Demote extended attribute errors in basic-save-buffer-2
* lisp/files.el (basic-save-buffer-2): Give demoted errors when
reading extended attributes that fail (bug#43723).
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
This is the first check-in after the loaddefs-gen.el rewrite.
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Remove Mtn from vc-handled-backends
* lisp/vc/vc-hooks.el (vc-handled-backends): Remove the deprecate
vc-mtn backend.
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Fix loaddefs-generate--rubric recorded name
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric): Fix
the name that's recorded in the file -- this is only used by
loaddefs-gen now, I think.
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Make artist-mode work in zoomed buffers
* lisp/textmodes/artist.el (artist-mouse-draw-continously):
(artist-mouse-draw-continously):
(artist-mouse-draw-poly):
(artist-mouse-draw-1point):
(artist-mouse-draw-2points):
(artist-mouse-draw-2points): Work better when the window is zoomed
(bug#46035).
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Allow posn-col-row to return data on a per-window basis
* doc/lispref/commands.texi (Accessing Mouse): Document it.
* lisp/subr.el (posn-col-row): Extend to use window data.
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Allow hooks to alter the process in prolog-ensure-process
* lisp/progmodes/prolog.el (prolog-ensure-process): Start the mode
after starting the process, so that the mode hook can talk to the
process (bug#46003).
2022-06-07 Stefan Monnier <monnier@iro.umontreal.ca>
find-func.el: Fix bug#41104
* lisp/emacs-lisp/find-func.el (find-function-advised-original): Look
at the actual function definition rather than
`advice--symbol-function` which sometimes returns only the advice.
* test/lisp/emacs-lisp/find-func-tests.el
(find-func-tests--find-library-verbose): Add test.
2022-06-07 Po Lu <luangruo@yahoo.com>
Add selection stuff to DND tests
* test/lisp/dnd-tests.el (dnd-tests-selection-table): New
defvar.
(gui-set-selection): Actually implement in a way that validates
the local value and stores it for future use.
(dnd-tests-verify-selection-data): New function.
(dnd-tests-begin-text-drag): Add tests for the contents of
various selections.
2022-06-07 Eli Zaretskii <eliz@gnu.org>
Fix debugging with GDB when a breakpoint has multiple locations
* lisp/progmodes/gdb-mi.el (gdb-breakpoints--add-breakpoint-row):
New function, extracted from 'gdb-breakpoints-list-handler-custom'.
Don't print "in <unknown>" for header-rows of breakpoints with
multiple locations that don't have a function name attached.
(gdb-breakpoints-list-handler-custom): Add to the breakpoint table
also any locations in multiple-location breakpoints, which are
supported since GDB 6.8.
2022-06-07 Po Lu <luangruo@yahoo.com>
Fix coding style of some Haiku files
* src/haiku_support.cc: (FrameResized):
(class EmacsView, AfterResize): Fix coding and initializer
style.
* src/haiku_support.h (struct haiku_resize_event): Rename
confusingly named fields.
* src/haikuterm.c (haiku_read_socket): Update accordingly.
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Simplify mode line for vc-print-root-log
* lisp/vc/vc.el (vc-print-root-log): Don't display "from <file>"
(bug#45007).
2022-06-07 Po Lu <luangruo@yahoo.com>
Fix more bugs with DND selection handling
* src/xterm.c (x_defer_selection_requests)
(x_release_selection_requests): New functions.
(x_dnd_begin_drag_and_drop): Use those functions to defer
selections instead. Fix error signalled when ownership of
XdndSelection is lost.
(handle_one_xevent): Likewise.
2022-06-07 Lars Ingebrigtsen <larsi@gnus.org>
Clarify highlight-changes-rotate-faces doc string
* lisp/hilit-chg.el (highlight-changes-rotate-faces): Doc string
clarification (bug#44150).
2022-06-07 Po Lu <luangruo@yahoo.com>
Remove mentions of GNOME MediaKeys from dbus documentation examples
* doc/misc/dbus.texi (Properties and Annotations):
* lisp/net/dbus.el (dbus-get-all-managed-objects): Remove
mentions of obsolete GNOME APIs from example text.
2022-06-07 Po Lu <luangruo@yahoo.com>
Improve compatibility with some clients of the Motif drop protocol
* lisp/select.el (x-dnd-targets-list): New defvar.
(xselect-convert-to-targets): Convert XdndSelection based on the
DND targets list.
* src/xfns.c (Fx_begin_drag): Pass new argument.
* src/xselect.c (struct x_selection_request): New struct.
(x_push_current_selection_request):
(x_pop_current_selection_request): New functions.
(x_selection_request_lisp_error, x_reply_selection_request)
(x_handle_selection_request, x_convert_selection)
(syms_of_xselect_for_pdumper): Correctly handle recursive
requests for MULTIPLE by maintaining a stack of selection
requests, converted selections, and other data.
* src/xterm.c (x_dnd_begin_drag_and_drop): New argument
`selection_target_list'. Bind it to the DND targets list.
(syms_of_xterm): New defvar and associated defsym.
* src/xterm.h: Update prototypes.
2022-06-07 Po Lu <luangruo@yahoo.com>
Add new drag-and-drop test
* test/lisp/dnd-tests.el (dnd-tests-get-local-file-uri): New
test.
2022-06-07 Po Lu <luangruo@yahoo.com>
Fix leak of event data on GTK+ 2.x
* src/xterm.c (handle_one_xevent): Fix goto XI_OTHER for
valuator motion events generated on scroll bars.
2022-06-06 Po Lu <luangruo@yahoo.com>
Update Haiku drag-and-drop code
* lisp/term/haiku-win.el (haiku-drag-and-drop): Don't allow
dropping on places other than the text area (it doesn't work).
Also respect mouse-yank-at-point.
2022-06-06 Po Lu <luangruo@yahoo.com>
Don't allow dropping on invalid drop sites
* lisp/x-dnd.el (x-dnd-drop-data): If dropping on something
other than the text area, don't set point.
(x-dnd-handle-xdnd, x-dnd-handle-motif): Don't pretend dropping
on the mode line is ok.
2022-06-06 Po Lu <luangruo@yahoo.com>
Don't display mouse face during mouse drag-and-drop
* lisp/mouse.el (mouse-drag-and-drop-region): Don't display
mouse face, since it leads to a lot of flicker.
2022-06-06 Po Lu <luangruo@yahoo.com>
Prevent crashes with very large Motif targets tables
* src/xterm.c (xm_setup_dnd_targets): Catch errors around
xm_write_targets_table lest we get a BadAlloc error.
2022-06-06 Po Lu <luangruo@yahoo.com>
Fix two crashes when a display connection is lost
This fixes errors caused by invalid error traps being left on
the error handler stack if an IO error causes a non-local exit
out of the protected code, and another crash caused by
delete_frame trying to read async input.
* src/eval.c (unwind_to_catch, push_handler_nosignal): Save and
restore the X error handler stack.
* src/lisp.h (struct handler): [HAVE_X_WINDOWS]: New field
`x_error_handler_depth'.
* src/xterm.c (struct x_error_message_stack): Make string a
regular string.
(x_unwind_errors_to): New function.
(x_error_catcher, x_catch_errors_with_handler)
(x_uncatch_errors_after_check, x_uncatch_errors): Update the
stack depth.
(x_check_errors): Stop manually unwinding since unwind_to_catch
now does that for us.
(x_had_errors_p, x_clear_errors): Update for new type of
`string'.
(x_connection_closed): Block input between just before
delete_frame to when the terminal is unlinked.
* src/xterm.h: Update prototypes.
2022-06-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix execute-extended-command help text for remapped commands
* lisp/simple.el (execute-extended-command): Don't provide
misleading help text for remapped commands (bug#23543).
2022-06-06 Stephen Berman <stephen.berman@gmx.net>
Allow using xref buttons in non-*Help* buffers
* lisp/help-mode.el (help-buffer): Allow using the xref buttons in
non-*Help* buffers (bug#8147) (but display the result in a *Help*
buffer).
2022-06-06 Lars Ingebrigtsen <larsi@gnus.org>
Make find-file-noselect not pick buffers with broken symlinks
* lisp/files.el (find-buffer-visiting): Improve doc string.
(find-file-noselect): Don't pick buffers with broken symlinks,
because that's too confusing (bug#41414).
2022-06-06 Lars Ingebrigtsen <larsi@gnus.org>
Improve scheme-mode syntax-rules indentation
* lisp/progmodes/scheme.el (syntax-rules): Indent syntax-rules
with a parameter better (bug#40869).
2022-06-06 Lars Ingebrigtsen <larsi@gnus.org>
Improve find-sibling-file error reporting
* lisp/files.el (find-sibling-file): Improve error reporting.
2022-06-06 Po Lu <luangruo@yahoo.com>
Update comments in X error handling code
* src/xterm.c (struct x_error_message_stack, x_error_message)
(x_error_catcher, x_catch_errors, x_had_errors_p)
(x_clear_errors): Long-overdue comment update. Describe the
fields of the error message stack, and the fact that
`x_error_message' is a stack, not a pointer to a string (which
has been true since 2006). Also describe the updated conditions
used to find an applicable error handler and to call
x_uncatch_errors_after_check.
2022-06-06 Po Lu <luangruo@yahoo.com>
Add drag-and-drop API tests
* test/lisp/dnd-tests.el: New file.
(dnd-tests-begin-text-drag):
(dnd-tests-begin-file-drag):
(dnd-tests-begin-drag-files): New tests.
2022-06-06 Po Lu <luangruo@yahoo.com>
Improve handling of remote files during drag-and-drop
* lisp/dnd.el (dnd-begin-drag-files): Don't fail if one remote
file couldn't be downloaded.
2022-06-06 Mattias Engdegård <mattiase@acm.org>
Test warning suppressions with lexical binding
* test/lisp/emacs-lisp/bytecomp-tests.el
(test-byte-comp-compile-and-load): Add lexical cookie to file being
compiled as part of the test.
(bytecomp-test--with-suppressed-warnings): Comment out the test
for suppressing warnings when attempting to let-bind `nil`,
as that (1) doesn't work and (2) is a silly thing to do anyway.
2022-06-06 Po Lu <luangruo@yahoo.com>
Fix several more issues with running Lisp during drag-and-drop
* src/xterm.c (handle_one_xevent): Fix _NET_WM_PING cycle again
and set mouse_moved flags during drag-and-drop so reading mouse
events from Lisp continues to work.
2022-06-06 Po Lu <luangruo@yahoo.com>
Signal an error XdndSelection was lost during drag-and-drop
* src/xselect.c (x_handle_selection_clear): Signal an error if
ownership of XdndSelection was lost during drag-and-drop.
2022-06-06 Po Lu <luangruo@yahoo.com>
Make mouse input work properly inside the debugger during DND
* src/xterm.c (x_dnd_begin_drag_and_drop): Set
`x_dnd_recursion_depth'.
(handle_one_xevent): If the recursive edit level is higher than
when DND started, handle mouse events normally.
2022-06-06 Stefan Monnier <monnier@iro.umontreal.ca>
cl-typep: Emit warning when using a type not known to be a type
`cl-typep` has used a heuristic that if there's a `<foo>-p` function,
then <foo> can be used as a type. This made sense in the past where
most types were not officially declared to be (cl-)types, but nowadays
this just encourages abuses such as using `cl-typecase` with
"types" like `fbound`. It's also a problem for EIEIO objects, where
for historical reasons `<foo>-p` tests if the object is of type
exactly `<foo>` whereas (cl-typep OBJ <foo>) should instead test
if OBJ is a *subtype* of `<foo>`.
So we change `cl-typep` to emit a warning whenever this "-p" heuristic
is used, to discourage abuses, encourage the use of explicit
`cl-deftype` declarations, and try and detect some misuses of
`<foo>-p` for EIEIO objects.
* lisp/emacs-lisp/eieio.el (defclass): Define as type not only at
run-time but also for the current compilation unit.
* lisp/emacs-lisp/eieio-core.el (class, eieio-object): Define as types.
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Don't abuse the
"-p" heuristic.
* lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies):
Add entries for frames, windows, markers, and overlays.
(cl-typep): Emit a warning when using a predicate that is not known to
correspond to a type.
* lisp/files.el (file-relative-name): Fix error that can trigger if
there's an(other) error between loading `files.el` and loading
`minibuffer.el`.
2022-06-05 Po Lu <luangruo@yahoo.com>
Rework X selections to make it safe to run the debugger inside converters
* src/keyboard.c (prev_kbd_event): Delete function.
(readable_events): Return 1 if
x_detect_pending_selection_requests returns true.
(kbd_buffer_unget_event): Also delete function, since nested
selection requests are really handled correctly.
(kbd_buffer_get_event): Handle events from the special X
deferred selection queue as well.
* src/keyboard.h: Update prototypes.
* src/xselect.c (struct selection_event_queue)
(selection_input_event_equal, x_queue_event)
(x_start_queuing_selection_requests)
(x_stop_queuing_selection_requests): Delete structs, since they
are no longer required.
(x_handle_selection_request, x_handle_selection_event): Allow
nested selection events.
* src/xterm.c (struct x_selection_request_event): New struct.
(x_handle_pending_selection_requests_1)
(x_handle_pending_selection_requests): Handle all events in the
new selection event queue.
(x_push_selection_request, x_detect_pending_selection_requests):
New functions.
(x_dnd_begin_drag_and_drop): Drain the selection queue here as
well.
(handle_one_xevent): When inside a nested event loop, just push
selections to that queue.
(XTread_socket): Allow reading X events if x_dnd_unwind_flag is
true, even though DND is in progress.
(x_delete_display): Delete pending selection events for the
display that is going away.
* src/xterm.h: Update prototypes.
2022-06-05 Stefan Monnier <monnier@iro.umontreal.ca>
pcomplete.el: Fix part of bug#50470
Try and handle the case where `pcomplete-parse-arguments-function`
directly returns a list of completions.
* lisp/pcomplete.el (pcomplete-parse-arguments): Don't modify the
buffer if we're not allowed to. Instead use the buffer's current
content as the "pattern to be completed" and return the list
of completions as is. Also, use `try-completions` to simplify the
previous code.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Add nohandle-guide images for tree-widget
These are copies of the guide.* files
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Re-re-fix previous describe-function change
* lisp/help-fns.el (describe-function): Put back binding removed
by mistake in previous change.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix key binding buffer issue in describe-function better
* lisp/help-fns.el (describe-function): Revert previous change here.
(describe-function-1): Just use describe-function-orig-buffer
instead of the key-buffer binding -- this will also make the
rendering results correct when hitting `g' and `l'.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Clarify syntax-ppss doc string
* lisp/emacs-lisp/syntax.el (syntax-ppss): Clarify doc string.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Simplify set-goal-column
* lisp/simple.el (set-goal-column): Simplify the code.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-h f' look up key bindings in the current buffer again
* lisp/help-fns.el (describe-function): Pass in the correct buffer
to look up key bindings in.
(describe-function-1): Use it.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Make the goal column work for the scrolling commands, too
* doc/emacs/basic.texi (Moving Point): Document it.
* lisp/simple.el (set-goal-column): Update doc string.
* lisp/window.el (scroll-up-command, scroll-down-command): Make
the goal column take effect for these commands, too (bug#17346).
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Move two more variables from autoload.el to loaddefs-gen.el
* lisp/emacs-lisp/loaddefs-gen.el (generated-autoload-file)
(generated-autoload-load-name): Move the remaining two autoload.el
variables used by loaddefs-gen.el from autoload.el.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Make finder/cus-dep scraping use generate-lisp-file functions
* lisp/finder.el (finder-compile-keywords):
* lisp/cus-dep.el (custom-make-dependencies): Use
generate-lisp-file functions directly instead of piggy-backing on
the autoload.el functions. (This is part of making autoload.el obsolete.)
2022-06-05 Stefan Kangas <stefan@marxist.se>
Don't generate separate autoload file for htmlfontify
* lisp/hfy-cmap.el: Update file local to no longer put htmlfontify
autoloads in htmlfontify-loaddefs.el.
* lisp/htmlfontify.el (htmlfontify-loaddefs): Don't require.
* test/lisp/htmlfontify-tests.el (htmlfontify-autoload): Delete
test (bug#52400).
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Rename generate-file to generate-lisp-file
* lisp/url/url-cookie.el (url-cookie-write-file):
* lisp/international/titdic-cnv.el (tit-process-header)
(miscdic-convert):
* lisp/international/ja-dic-cnv.el (skkdic-convert):
* lisp/international/emoji.el (emoji--generate-file):
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric):
* admin/unidata/unidata-gen.el (unidata-gen-file)
(unidata-gen-charprop): Adjust callers.
* lisp/emacs-lisp/generate-lisp-file.el: Renamed from
generate-file.el. Also rename some keyword parameters and require
a generator function.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Add convenience functions for generating Emacs Lisp files
* lisp/url/url-cookie.el (url-cookie-write-file):
* lisp/international/titdic-cnv.el (tit-process-header):
* lisp/international/ja-dic-cnv.el (skkdic-convert):
* lisp/international/emoji.el (emoji--generate-file):
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--rubric)
* admin/unidata/unidata-gen.el (unidata-gen-file)
(unidata-gen-charprop): Use the new functions.
* lisp/emacs-lisp/generate-file.el: New file to provide
convenience functions for generated files. It's not always
trivial to know which parts of the trailer that has to be
obfuscated to avoid not getting byte-compiled etc, and some parts
of the headers/trailers are usually forgotten when hand-coding
these.
2022-06-05 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add a fallback font for Tamil Supplement characters
* lisp/international/fontset.el (setup-default-fontset): Add
and entry for "Noto Sans Tamil Supplement". (Bug#55807)
2022-06-05 JD Smith <jdtsmith@gmail.com> (tiny change)
Make the Unicode tree widget prettier
* lisp/tree-widget.el (tree-widget-nohandle-guide): New widget:
"One small change is needed to accommodate this
style. `tree-widget-guide specifies a single vertical bar “guide”
widget. In the unicode tree, two separate vertical bars are needed
— one “plain” (│), and one which connects to the horizontal
“handle” preceding the node (├)."
(tree-widget--cursors):
(tree-widget):
(tree-widget-value-create): Use it.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Add new command find-sibling-file
* doc/emacs/files.texi (Visiting): Document it.
* lisp/files.el (file-expand-wildcards): Fix up the regexp expansion.
(find-sibling-rules, find-sibling-file): New user option and command.
(find-sibling-file--search): New helper function.
2022-06-05 Po Lu <luangruo@yahoo.com>
Fix file name encoding of Motif drop protocol file selections
* lisp/select.el (xselect-convert-to-filename):
(xselect-convert-to-dt-netfile): Encode in the file name coding
system instead of `raw-text-unix'.
2022-06-05 Lars Ingebrigtsen <larsi@gnus.org>
Extend file-expand-wildcards to allow regexps
* doc/lispref/files.texi (Contents of Directories): Document it.
* lisp/files.el (file-expand-wildcards): Extend to allow regexps.
* lisp/emacs-lisp/shortdoc.el (file): Expand the
file-expand-wildcards example.
2022-06-05 Eli Zaretskii <eliz@gnu.org>
Update documentation of 'aset' and 'store-substring'
* doc/lispref/strings.texi (Modifying Strings): Adjust to
implementation changes: it is possible for the modified string to
have fewer or more bytes than the original. Add recommendations
regarding unibyte vs multibyte strings and characters. (Bug#55801)
2022-06-05 Po Lu <luangruo@yahoo.com>
Fix drag-and-drop of files with multibyte filenames
* lisp/dired.el (dired-mouse-drag): Fix re-signalling of errors.
* lisp/select.el (xselect-convert-to-filename):
(xselect-convert-to-text-uri-list):
(xselect-convert-to-dt-netfile): Encode in raw-text-unix.
* src/xgselect.c (suppress_xg_select, release_xg_select): New
functions.
(xg_select): Respect xg_select suppression by delegating to
pselect.
* src/xgselect.h: Update prototypes.
* src/xterm.c (x_dnd_begin_drag_and_drop): Suppress xg_select
during the nested event loop.
(handle_one_xevent): Handle cases where hold_quit is nil inside
a selection event handler during DND.
2022-06-05 Eli Zaretskii <eliz@gnu.org>
Fix sorting in ls-lisp.el under -v
* lisp/ls-lisp.el (ls-lisp-version-lessp): Handle correctly the
case where strings begin with numerical parts. More faithful
implementation of the 'strverscmp' spec for fractional parts.
(Bug#55787)
* test/lisp/ls-lisp-tests.el (ls-lisp-test-bug55787): New test.
2022-06-05 Po Lu <luangruo@yahoo.com>
Fix bug#55779
* src/xterm.c (x_update_opaque_region): Don't make GTK reset the
opaque region if F is a child frame.
2022-06-05 Po Lu <luangruo@yahoo.com>
Better respect window manager stacking order
* src/xfns.c (x_frame_list_z_order, Fx_frame_list_z_order): Use
_NET_CLIENT_LIST_STACKING if supported.
* src/xterm.c (x_wm_supports_1): New function. Accept dpyinfo
instead of frame.
(x_wm_supports): Use that function instead.
* src/xterm.h: Update prototypes.
2022-06-05 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1b8719835a Update to Org 9.5.4
92c5faafd7 Clarify documentation of 'string-to-unibyte'
2848512654 ; * lisp/files.el (find-file): Avoid too short lines in do...
672f9f787f Improve keystrokes in doc strings in some find-file functions
ef5651cc77 Fix segfaults when starting on 80x26 TTY frames
bfa647972f ; Fix doc string of 'delete-selection-repeat-replace-region'
a95d46e00f Make it explicit that a couple of _s in lispref are unders...
5c74c25123 Remove from FAQ the MS-Windows info about BDF fonts
edb48646f2 Fix Display Property manual example
2022-06-04 Po Lu <luangruo@yahoo.com>
Fix positioning of non-system tooltips on GTK builds
* src/xfns.c (compute_tip_xy): Fix coding style.
* src/xterm.c (handle_one_xevent): Set tooltip size immediately
on GTK builds.
2022-06-04 Po Lu <luangruo@yahoo.com>
Adjust last change for GTK+ 2.x
* src/xterm.c (x_tooltip_window_to_frame): Fix build on GTK 2.x.
2022-06-04 Po Lu <luangruo@yahoo.com>
Make `mouse-position' work correctly with GTK tooltips
* src/xterm.c (x_tooltip_window_to_frame): New parameter
`unrelated_tooltip_p'.
(XTmouse_position): Pass that, and if it turns out to be true,
look beneath the tooltip window.
2022-06-04 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.4
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Make loaddefs-generate--parse-file more robust
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
Ensure that we don't have an autoload cookie on the first column
inside a string.
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Make skkdic-convert replacements literal
* lisp/international/ja-dic-cnv.el (skkdic-convert): The
replacement is literal and fixed-case. (The build on EMBA is
failing mysteriously with "Match data clobbered by buffer
modification hooks", so this is mainly a stab in the dark at
fixing that, but it's also generally correct.)
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Make vc-mtn obsolete
* lisp/obsolete/vc-mtn.el: Make obsolete (bug#6513).
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix failing shortdoc test
* lisp/emacs-lisp/shortdoc.el (string): Each example section is
supposed to contain only examples of using the function in
question (as policed by the FAILED shortdoc-examples test).
2022-06-04 Po Lu <luangruo@yahoo.com>
Fix error during DND from both Emacs and GTK at the same time
* src/xterm.c (x_dnd_get_target_window): Make mapping and
releasing the COW atomic. This is to fix a rare bug when
MPX (multi-pointer X) is in use and the user tries to drag
from both GTK and Emacs at the same time using multiple seats.
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Further raise-sexp doc string improvement
* lisp/emacs-lisp/lisp.el (raise-sexp): Fix the key binding syntax
in the doc string.
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Improve the raise-sexp doc string
* lisp/emacs-lisp/lisp.el (raise-sexp): Try to explain what the
command does (bug#55788).
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix warnings introduced by the lisp-mode-autoload-regexp change
* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): The package name bit
in ###;;;foo-autoload may be missing, so do a lax match (bug#55784).
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Add a face to \\= doc string escapes
* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Add a face to \\= doc
string escapes (bug#55783).
2022-06-04 Lars Ingebrigtsen <larsi@gnus.org>
Further notes about quotation marks in the manual
* doc/lispref/tips.texi (Documentation Tips): Note that we
previously recommended using single quotation marks (bug#55780).
2022-06-04 Po Lu <luangruo@yahoo.com>
Allow keyboard modifiers to control the action taken during dired DND
* doc/emacs/dired.texi (Misc Dired Features): Update
documentation.
* lisp/dired.el (dired-mouse-drag-files): Update defcustom for
new values.
(dired-mouse-drag): Recognize more values of
`dired-mouse-drag-files' and keyboard modifiers.
(dired-mouse-drag-files-map): Add C-down-mouse-1, M-down-mouse-1
and S-down-mouse-1.
2022-06-04 Michael Albinus <michael.albinus@gmx.de>
* lisp/emacs-lisp/shortdoc.el (string): Add `string-collate-lessp'.
2022-06-04 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Grantha script (bug#55782)
* lisp/language/indian.el ("Grantha"): New language environment.
Add composition rules for Grantha. Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Grantha.
* lisp/leim/quail/indian.el ("grantha"): New input method.
* etc/HELLO: Add two Grantha greetings.
* etc/NEWS: Announce the new language environment.
2022-06-04 Po Lu <luangruo@yahoo.com>
Fix file drag-and-drop on GNUstep
* src/nsselect.m (ns_decode_data_to_pasteboard): Convert URL to
path names when we're using NSFilenamesPboardType.
* src/nsterm.m: ([EmacsView performDragOperation:]): Handle
cases where plist is a string.
2022-06-04 Po Lu <luangruo@yahoo.com>
Support dragging multiple files on NS
This has to use a deprecated pasteboard type, since Emacs uses
the "old" (but not deprecated) dragImage: method for
drag-and-drop, which can't drop file URLs.
* lisp/term/ns-win.el (x-begin-drag): Update accordingly.
* src/nsselect.m (ns_decode_data_to_pasteboard):
(Fns_begin_drag): Allow files to be a list of filenames as well.
2022-06-04 Po Lu <luangruo@yahoo.com>
Fix splurious drag-mouse-1 events after NS drag-and-drop
* src/nsterm.m ([EmacsWindow beginDrag:...]): Clear
dpyinfo->grabbed.
2022-06-04 Po Lu <luangruo@yahoo.com>
Clear mouse face during drag-and-drop
* src/xterm.c (handle_one_xevent): Clear mouse face during drag
and drop, since note_mouse_highlight isn't called.
2022-06-04 Eli Zaretskii <eliz@gnu.org>
Clarify documentation of 'string-to-unibyte'
* doc/lispref/nonascii.texi (Converting Representations): Clarify
what 'string-to-unibyte' does. Reported by Richard Hansen
<rhansen@rhansen.org>. (Bug#55777)
2022-06-04 Eli Zaretskii <eliz@gnu.org>
Another attempt to void compiler warnings on macOS (bug#55595)
* configure.ac (WERROR_CFLAGS): Use "-Wno-unknown-pragmas" with
Clang.
2022-06-04 Po Lu <luangruo@yahoo.com>
Improve doc of `mouse-drag-mode-line-buffer'
* doc/emacs/frames.texi (Mouse Commands): Document
`mouse-drag-mode-line-buffer'.
* etc/NEWS: Explain where that option is supported.
* lisp/mouse.el (mouse-drag-mode-line-buffer): Likewise.
2022-06-04 Po Lu <luangruo@yahoo.com>
Make XTmouse_position faster during dragging with lots of frames
* src/xterm.c (x_tooltip_window_to_frame): New function.
(XTmouse_position): Use that to find tooltip frames underneath
the pointer instead.
2022-06-03 Po Lu <luangruo@yahoo.com>
Fix leak of toplevel data
* src/xterm.c (x_dnd_compute_toplevels): Make sure to free
`data'.
2022-06-03 Po Lu <luangruo@yahoo.com>
Fix leak of DND toplevels when return-frame is non-nil
* src/xterm.c (x_dnd_free_toplevels): Don't leak DND toplevels
if returning a frame.
(x_dnd_begin_drag_and_drop): Make this function reentrant from
the IO error handler.
2022-06-03 Dmitry Gutov <dgutov@yandex.ru>
Post-review additions
* lisp/progmodes/project.el (project-vc-include-untracked):
Add :version.
(project--vc-list-files): Use 'and' instead of 'when'.
2022-06-03 Jan Synáček <jan.synacek@gmail.com>
Add new user option project-vc-include-untracked
* doc/emacs/maintaining.texi (Projects): Document it.
* lisp/progmodes/project.el (project--vc-list-files): Use it.
2022-06-03 Dmitry Gutov <dgutov@yandex.ru>
project-query-replace-regexp: Filter out non-regular files
* lisp/progmodes/project.el (project-query-replace-regexp):
Filter out non-regular files (bug#55382).
2022-06-03 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp test
* test/lisp/net/tramp-tests.el (tramp-test31-signal-process):
Skip on MS Windows.
2022-06-03 Michael Albinus <michael.albinus@gmx.de>
Add remote file functions to shortdoc
* lisp/net/tramp-integration.el (shortdoc-add-function)
(shortdoc--groups): Declare.
(shortdoc): Configure shortdoc.el to recognize file name functions
for remote access.
2022-06-03 Po Lu <luangruo@yahoo.com>
Fix dired drag and drop actions
* lisp/dired.el (dired-mouse-drag): Make `link' values work
again.
2022-06-03 Po Lu <luangruo@yahoo.com>
Handle dragging multiple files on Haiku
* lisp/term/haiku-win.el (haiku-dnd-selection-converters)
(haiku-dnd-convert-file-name, x-begin-drag): Handle vector
values of selection data.
2022-06-03 Po Lu <luangruo@yahoo.com>
Allow dragging multiple files from a Dired buffer
* doc/lispref/frames.texi (Drag and Drop): Document new function
`dnd-begin-drag-files'.
* lisp/dired.el (dired-mouse-drag-files): Update doc string.
(dired-map-over-marks): Accept a new value of ARG `marked',
meaning to not fall back to the current file if no marks were
found.
(dired-mouse-drag): Handle marked files in an intuitive way.
* lisp/dnd.el (dnd-last-dragged-remote-file): Allow list values
as well.
(dnd-remove-last-dragged-remote-file): Handle list values.
(dnd-begin-file-drag): Fix file name expansion.
(dnd-begin-drag-files): New function.
* lisp/select.el (xselect-convert-to-filename): Handle mutiple
files
(a vector of file names):.
2022-06-03 Lars Ingebrigtsen <larsi@gnus.org>
Don't issue warnings for Unicode quotes for now
* lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-style-warn):
Remove warning for "Unicode quotes" for now (bug#55780).
2022-06-03 Lars Ingebrigtsen <larsi@gnus.org>
Revert the `...' documentation back to actual usage
* doc/lispref/tips.texi (Documentation Tips): Document how `...'
is really used now (bug#55780). ... is not really used in the
Emacs sources.
2022-06-03 Mattias Engdegård <mattiase@acm.org>
Let ?\LF signal an error (bug#55738)
As suggested by Stefan Monnier.
* src/lread.c (read_escape):
Signal an error for ?\LF since it cannot reasonably be intended.
* test/src/lread-tests.el (lread-escaped-lf): Update test.
* etc/NEWS: Announce.
2022-06-03 Mattias Engdegård <mattiase@acm.org>
Fix wrong value in idlwave-comment-indent-char
* lisp/progmodes/idlwave.el (idlwave-comment-indent-char):
Use a space since that is clearly what was meant.
?\ at the end of a line (ie, ?\LF) never was well-defined and produced
-1 most of the time, but will soon raise an error (bug#55738).
This doesn't matter much becaue this variable is unused.
2022-06-03 Po Lu <luangruo@yahoo.com>
Add new user option `mouse-drag-mode-line-buffer'
* etc/NEWS: Announce new option. Also add missing entries for
an earlier change.
* lisp/mouse.el (mouse-drag-mode-line-buffer): New user option.
(mouse-drag-mode-line): Implement that option.
2022-06-03 Po Lu <luangruo@yahoo.com>
Add easier-to-use interfaces for initiating drag-and-drop
The previous interface required that users know intricacies of
the data types used to transfer data on each platform Emacs
supports.
* doc/lispref/frames.texi (Drag and Drop): Document new
functions.
* lisp/dired.el (dired-last-dragged-remote-file)
(dired-remove-last-dragged-local-file): Delete functions.
(dired-mouse-drag): Use `dnd-begin-file-drag'.
* lisp/dnd.el (dnd-last-dragged-remote-file)
(dnd-remove-last-dragged-remote-file): New variables and
functions.
(dnd-begin-text-drag, dnd-begin-file-drag): New functions.
* src/xterm.c (x_dnd_begin_drag_and_drop): Add porting note.
2022-06-02 Lars Ingebrigtsen <larsi@gnus.org>
Add a new user option battery-update-functions
* doc/emacs/display.texi (Optional Mode Line): Document it.
* lisp/battery.el (battery-update-functions): New user option
(bug#55770).
(battery-update): Use it.
2022-06-02 Lars Ingebrigtsen <larsi@gnus.org>
Remove window-max-characters-per-line
* doc/lispref/windows.texi (Window Sizes):
* doc/lispref/display.texi (Size of Displayed Text): Remove
documentation.
* lisp/fringe.el (fringe-mode): Point to the right function.
* lisp/window.el (window-char-pixel-width)
(window-char-pixel-height, window-max-characters-per-line): Remove
functions -- this was already added as window-max-chars-per-line.
* src/window.c (Fwindow_body_width): Adjust doc string.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix GTK build
* src/xterm.c (x_dnd_begin_drag_and_drop) [USE_GTK]: Adjust call
to x_dnd_free_toplevels as well.
2022-06-02 Po Lu <luangruo@yahoo.com>
Don't call XSelectInput on a dying display when cancelling drag-and-drop
* src/xterm.c (x_dnd_free_toplevels): New argument
`display_alive'.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(handle_one_xevent): Change calls to `x_dnd_free_toplevels'.
(x_connection_closed, x_delete_terminal): Set it to false.
2022-06-02 Lars Ingebrigtsen <larsi@gnus.org>
Make checkdoc-file-comments-engine match more ;;;### forms
* lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Use
the more general lisp-mode-autoload-regexp instead of
generate-autoload-cookie (i.e., also match ;;;###tramp-autoload).
2022-06-02 Lars Ingebrigtsen <larsi@gnus.org>
Make `M-x grep' work better with "git grep"
* lisp/progmodes/compile.el (compilation-start): Bind PAGER to ""
to avoid errors in output from "git grep" and similar commands
(bug#4359).
2022-06-02 Mattias Engdegård <mattiase@acm.org>
Make ?\LF generate 10, not -1 (bug#55738)
The old -1 value was an artefact of the reader implementation.
* src/lread.c (read_escape): Remove the `stringp` argument; assume
character literal syntax. Never return -1.
(read_string_literal): Handle string-specific escape semantics here
and simplify.
* test/src/lread-tests.el (lread-escaped-lf): New test.
2022-06-02 Mattias Engdegård <mattiase@acm.org>
* src/lread.c (skip_lazy_string): Fix uninitialised variable.
2022-06-02 Stefan Kangas <stefan@marxist.se>
* lisp/play/morse.el: Doc fixes.
2022-06-02 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
Improve keystrokes in doc strings in some find-file functions
* lisp/files.el (find-file):
(find-file-other-window):
(find-file-other-frame): Include the correct keymap so that
keystrokes are displayed better (bug#55761).
2022-06-02 Po Lu <luangruo@yahoo.com>
More gracefully handle errors during Motif drag window creation
* src/xterm.c (xm_drag_window_error_handler): Store whether or
not an error happened.
(xm_get_drag_window): Handle errors during XCreateWindow and
XChangeProperty without leaking anything.
(x_error_handler): Fix coding style.
2022-06-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix out-of-tree build problems with loaddefs.el
* lisp/Makefile.in ($(lisp)/loaddefs.el): Use the new function.
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Pass in
whether to inhibit a partial build (to make the code more general).
(loaddefs-generate--emacs-batch): Add a new function specially for
the Emacs build that has the special rules needed. (This also
fixes out-of-tree builds.)
loaddefs-generate-batch can be used in general for packages etc.
(loaddefs-generate-batch): Remove the special code for Emacs builds.
2022-06-02 Eli Zaretskii <eliz@gnu.org>
Fix segfaults when starting on 80x26 TTY frames
* src/dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Make
sure we have valid frame glyph matrices for the interactive
session. (Bug#55760)
(adjust_frame_glyphs): Add assertions for when we fail to allocate
valid frame glyph matrices for a TTY frame.
2022-06-02 Lars Ingebrigtsen <larsi@gnus.org>
Reinstate the Qload file name handler
* src/lread.c (Fload): Reinstate the Qload file name handler
(bug#12598). This makes loading non-ASCII elc.gz files work.
2022-06-02 Frédéric Giquel <frederic.giquel@laposte.net> (tiny change)
Use `read-process-output-max' when creating pipes on GNU/Linux
* src/process.c (syms_of_process): Note max size.
(create_process): Set the pipe size from `read-process-output-max'
(bug#55737).
2022-06-02 yilkalargaw <yilkalargawworkneh@gmail.com>
Fix usage of absolute :height in manoj-dark-theme
* etc/themes/manoj-dark-theme.el (manoj-dark): Avoid using
absolute heights (bug#55759).
2022-06-02 Lars Ingebrigtsen <larsi@gnus.org>
Speed up loaddefs-generate on slow disks
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Make file
update comparisons faster.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix rare crash when async input happens while creating xm drag window
* src/xterm.c (xm_get_drag_window): Work around XCloseDisplay
freezing upon being interrupted by a signal.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix macOS build
* src/nsterm.m (ns_mouse_position): Fix typos.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix potential NULL pointer dereference on NS
* src/nsterm.m (ns_mouse_position): Don't test f's tooltip-ness
if it's NULL.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix flickering tooltips with mouse DND without interprogram drag
* src/haikuterm.c (haiku_read_socket):
* src/nsterm.m (ns_mouse_position):
* src/xterm.c (XTmouse_position, handle_one_xevent): Apply
special tooltip treatment to `dropping' as well as
`drag-source'.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix tooltip frames leaking into mouse position on NS
* src/nsterm.m (ns_mouse_position): Avoid tooltip frames and
look underneath them when `drag-source'.
([EmacsView mouseDown:]):
([EmacsView mouseMoved:]): Ignore events from tip frames.
2022-06-02 Po Lu <luangruo@yahoo.com>
Handle dropping text/uri-list on Haiku
* lisp/term/haiku-win.el (window-system-initialization): Remove
extra whitespace.
(haiku-drag-and-drop): Handle "text/uri-list".
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix help-echo tooltips interfering with mouse drag-and-drop
* lisp/mouse.el (mouse-drag-and-drop-region): Disable
tooltip-mode while mouse drag-and-drop is in progress. Also
restore state correctly in some more cases.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix flicker during mouse DND on Haiku as well
* src/haikuterm.c (haiku_read_socket): Don't clear tooltips on
crossing if track-mouse is drag-source and the display is
grabbed.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix typos in last change
* src/xterm.c (handle_one_xevent): Fix typos.
2022-06-02 Po Lu <luangruo@yahoo.com>
Fix tooltips flickering on X during `mouse-drag-and-drop-region'
* src/xterm.c (x_get_window_below): New function.
(XTmouse_position): If track-mouse is drag-source and a window
is a tooltip, look below it.
(handle_one_xevent): Don't generate a nil help-echo event on
LeaveNotify if the display is grabbed and track-mouse is
drag-source.
2022-06-01 Richard Hansen <rhansen@rhansen.org>
bindat (strz): Fix wrong-type-argument error when unpacking
* lisp/emacs-lisp/bindat.el (strz): Fix (wrong-type-argument
number-or-marker-p nil) error when unpacking a strz with
unspecified (variable) length.
* test/lisp/emacs-lisp/bindat-tests.el (strz): Mark test as passing.
2022-06-01 Richard Hansen <rhansen@rhansen.org>
bindat (strz): Fix off-by-one bug in computed length
* lisp/emacs-lisp/bindat.el (strz): Include null terminator when
computing packed string length.
* test/lisp/emacs-lisp/bindat-tests.el (strz): Mark tests as passing.
2022-06-01 Po Lu <luangruo@yahoo.com>
Clean up Motif drag-and-drop code
* src/xterm.c (enum xm_drag_operation, enum xm_drag_action)
(enum xm_drag_reason, enum xm_drag_originator, enum xm_drag_style)
(enum xm_drop_site_status): Turn macros into enums.
(x_next_event_from_any_display): Fix initial value of rc.
2022-06-01 Po Lu <luangruo@yahoo.com>
Fix decoding of XdndStatus rectangles on 64-bit systems
* src/xterm.c (handle_one_xevent): Make data.l[2] and data.l[3]
unsigned.
2022-06-01 Mattias Engdegård <mattiase@acm.org>
Revert "Fix reader char escape bugs (bug#55738)"
This reverts commit c50718dcfa54293b695f8a3fa5cd4d77848ee084.
It may have caused bootstrap problems. Sorry about that.
2022-06-01 Juri Linkov <juri@linkov.net>
* lisp/simple.el (completion-setup-function): Use file-name-directory.
Replace file-name-as-directory with file-name-directory,
because file-name-as-directory returns a nonexistent dir
e.g. "/dir/prefix/" when completing "/dir/prefix".
OTOH, file-name-directory returns "/dir/" in such cases (bug#55743).
2022-06-01 Eli Zaretskii <eliz@gnu.org>
Avoid segfaults on MS-Windows when invoked with --version
* src/emacs.c (main): If invoked with --version, call
'init_bignum' before calling 'format-time-string', as that is
needed for safe manipulation of bignums in timefns.c.
2022-06-01 Mattias Engdegård <mattiase@acm.org>
Fix reader char escape bugs (bug#55738)
Make the character literal ?\LF (linefeed) generate 10, not -1.
Ensure that Control escape sequences in character literals are
idempotent: ?\C-\C-a and ?\^\^a mean the same thing as ?\C-a and ?\^a,
generating the control character with value 1. "\C-\C-a" no longer
signals an error.
* src/lread.c (read_escape): Make nonrecursive and only combine
the base char with modifiers at the end, creating control chars
if applicable. Remove the `stringp` argument; assume character
literal syntax. Never return -1.
(read_string_literal): Handle string-specific escape semantics here
and simplify.
* test/src/lread-tests.el (lread-misc-2): New test.
2022-06-01 Michael Albinus <michael.albinus@gmx.de>
Make files-tests.el more robust
* test/lisp/files-tests.el (files-tests--with-temp-non-special)
(files-tests--with-temp-non-special-and-file-name-handler): Make
it more robust wrt parallel test jobs. (Bug#55706)
2022-06-01 Visuwesh <visuweshm@gmail.com>
delete-selection-mode: Add user option to delete temporary regions only
* lisp/delsel.el (delete-selection-temporary-region): Add new
user option.
(delete-selection-pre-hook): Respect it.
* doc/emacs/mark.texi (Using Region): Document the new user option.
* etc/NEWS: Announce the new user option. (bug#55692)
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Make it explicit that a couple of _s in lispref are underscores
* doc/lispref/strings.texi (Custom Format Strings):
* doc/lispref/control.texi (pcase Macro): Make it explicit that
it's an underscore (bug#55742).
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Add a comment to lisp/Makefile.in
* lisp/Makefile.in: Add FIXME comment.
2022-06-01 Manuel Giraud <manuel@ledu-giraud.fr>
Place bookmarks without last-modified at the end
* lisp/bookmark.el (bookmark-sort-flag): Typo fix in doc string.
(bookmark-maybe-sort-alist): Fix sorting when there's no last
modified.
2022-06-01 Po Lu <luangruo@yahoo.com>
Improve documentation of Lisp-level drag-and-drop features
* doc/lispref/frames.texi (Drag and Drop): Don't conflate X
Windows specific implementation details with general
drag-and-drop functionality, document what `dnd-protocol-alist'
actually means, and improve documentation on DND data types.
2022-06-01 Stefan Kangas <stefan@marxist.se>
Make XEmacs compat code in gamegrid.el obsolete
* lisp/play/gamegrid.el (gamegrid-make-glyph): Warn on using obsolete
XEmacs style glyph. (This is currently unused in the Emacs tree.)
(gamegrid-make-image-from-vector): Make obsolete.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that loaddefs-gen.elc is build before loaddefs.el is generated
* lisp/Makefile.in ($(lisp)/loaddefs.el): Make loaddefs.el depend
on loaddefs-gen.elc to ensure that it's built.
2022-06-01 Po Lu <luangruo@yahoo.com>
Minor fixes to x_next_event_from_any_display
* src/xterm.c (x_next_event_from_any_display): Don't call
XPending unless there is input to be read on the connection, and
don't call ConnectionNumber twice.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix up the loaddefs-gen updating logic
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only do the
updating logic if we're really updating.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix loaddefs generation"
This reverts commit 28358db93007456a1e0a6d9118823d4ddea4ba39.
This has been fixed in a different way.
2022-06-01 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Hanifi Rohingya script (bug#55745)
* lisp/language/misc-lang.el ("Hanifi Rohingya"):
New language environment.
Add composition rules for Hanifi Rohingya.
Add sample text and input method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Hanifi Rohingya.
* lisp/leim/quail/misc-lang.el ("hanifi-rohingya"):
New input method.
* etc/HELLO: Add a Hanifi Rohingya greeting.
* etc/NEWS: Announce the new language environment.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Start the org -> texi conversion while doing byte compilation
* lisp/Makefile.in (MAIN_FIRST): Compile stuff needed for org ->
texi generation.
(all): Add org-manuals.
(org-manuals): Start org -> texi conversion while we're doing byte
compilation to make things more parallel. This shaves off about
ten seconds of a "make -j8" build.
2022-06-01 Protesilaos Stavrou <info@protesilaos.com>
Update modus-themes to their latest version
* admin/MAINTAINERS: Update link to the Git repository of the
modus-themes; point to the new mailing list; include command for
sending a bug report.
* doc/misc/modus-themes.org (Install from the archives): Minor
rewording.
(Dealing with byte compilation errors): Clarify that occasional bugs
are not always a fault of the themes.
(Custom hl-todo colors): Add note about package.:(Full support for
packages or face groups, Indirectly covered packages): Update lists of
supported packages.
(Note on avy hints): Remove obsolete node.
(Note on git-gutter in Doom Emacs): Note problem with custom bitmaps,
which is not the fault of the themes.
(Note on display-fill-column-indicator-mode): Show how to use a
thicker indicator.:(Why are colors mostly variants of blue, magenta,
cyan?): Minor rewording.
(Sources of the themes): Update official theme sources.
(Issues you can help with)
(Patches require copyright assignment to the FSF): Update the
information on potential contributions.
(Acknowledgements): Update list of contributors in the form of code or
ideas/feedback.
(Meta, Other notes about the project): Rename section and include more
links to development-related blog posts.
* etc/themes/modus-themes.el (seq): Stop requiring 'seq'.
(modus-themes--version): Use internal variable for the themes'
version.
(modus-themes-operandi-colors, modus-themes-vivendi-colors): Make
minor tweaks to the color palettes.
(modus-themes-variable-pitch): Remove obsolete symbol from doc string.
(modus-themes--alist-or-seq): Update function to not rely on 'seq'.
(modus-themes--current-theme): Make stylistic tweaks.
(modus-themes--markup): Use correct order of inheritance for faces.
(modus-themes--paren, modus-themes--heading)
(modus-themes--agenda-structure, modus-themes--agenda-date)
(modus-themes--agenda-habit, modus-themes--mode-line-attrs)
(modus-themes--mode-line-padded-box, modus-themes--button): Update to
use 'modus-themes--property-lookup' instead of the previous function
that depended on 'seq'.
(modus-themes--diff): Make it combine as expected with the user option
'modus-themes-deuteranopia'.
(modus-themes-faces): Update list of faces.
(modus-themes-custom-variables): Expand support for face rotation in
'highlight-changes'.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump version number to 2.4.1.
Release notes: <https://protesilaos.com/codelog/2022-06-01-modus-themes-2-4-0/>.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how loaddefs-gen decides whether to do a full update
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Do a
complete build more often to avoid problems with going from old
loaddefs.el files to new ones.
2022-06-01 Po Lu <luangruo@yahoo.com>
Fix Motif DND return value upon transfer failure
* src/xterm.c (handle_one_xevent): Make XmTRANSFER_FAILURE clear
DND action.
2022-06-01 Po Lu <luangruo@yahoo.com>
Fix loaddefs generation
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Prevent
one kind of string match error.
2022-06-01 Po Lu <luangruo@yahoo.com>
Adjust last change to Haiku as well
* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Add
text/uri-list.
(haiku-dnd-convert-text-uri-list): New function.
(x-begin-drag): Handle alternative data specified in selection
local values.
2022-06-01 Po Lu <luangruo@yahoo.com>
Clean up text/uri-list mess inside the Dired drag-and-drop code
* doc/lispref/frames.texi (Window System Selections):
* etc/NEWS: Document new changes to `gui-get-selection'.
* lisp/dired.el (dired-mouse-drag): Specify text/uri-list value
explicitly.
* lisp/select.el (gui-set-selection): Update doc string.
(xselect-convert-to-text-uri-list): Update to handle either a
single URL (as a string) or a vector of URLs, instead of file
names.
(xselect-uri-list-available-p): Likewise.
* src/xselect.c (x_get_local_selection): Look in tem's text
properties (if it is a string) for a local value before using
tem itself.
2022-06-01 Po Lu <luangruo@yahoo.com>
Fix hangs when explicitly moving frames with input blocked
* src/xterm.c (x_check_expected_move): Fix indent.
(x_sync_with_move): Use pselect to wait the 0.5 seconds instead
of wait_reading_process_output if input is blocked.
2022-06-01 Po Lu <luangruo@yahoo.com>
Implement `allow-same-frame' for NS drag-and-drop
* lisp/term/ns-win.el (x-begin-drag): Implement
`allow-same-frame'.
* src/nsselect.m (Fns_begin_drag): New parameter
`allow-same-frame'.
* src/nsterm.h (@interface EmacsWindow): Update prototypes.
* src/nsterm.m ([EmacsView draggingEntered:]):
([EmacsView prepareForDragOperation:]):
([EmacsView performDragOperation:]): Respect new parameter.
([EmacsWindow beginDrag:forPasteboard:withMode:returnFrameTo:]):
Likewise.
2022-06-01 Po Lu <luangruo@yahoo.com>
Fix creation of menu items without help text on Haiku
* src/haiku_support.cc (EmacsMenuItem): Don't mistakenly assume
help is non-NULL.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Tweak MAIN_FIRST/ja-dic compilation
* lisp/Makefile.in (MAIN_FIRST): ja-dic-utl isn't used in the
conversion process, to don't compile it early.
2022-06-01 Po Lu <luangruo@yahoo.com>
Fix pselect usage mistakes
* src/xterm.c (x_next_event_from_any_display):
(x_wait_for_cell_change): Fix calls to pselect and tests against
return value.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Don't do OKURI-NASI until the conversion files have been compiled
* lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el
file, too.
2022-06-01 Lars Ingebrigtsen <larsi@gnus.org>
Compile ja-dic files to speed OKURI-NASI up
* lisp/Makefile.in (MAIN_FIRST): Also compile ja-dic utils to
speed generation up.
2022-06-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-05-18 19:45:52 UTC.
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Ensure byte compilation of the ja-dic.el file
* lisp/Makefile.in (generate-ja-dic): Byte-compile the ja-dic.el
file, too.
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Reshuffle the generation of the OKURO-NASI entries to speed up build
* leim/Makefile.in (all): Remove the ja-dic target from all -- we
don't need this file generated before we generate the .elc files.
(generate-ja-dic): Add new target.
* lisp/Makefile.in (.PHONY, generate-ja-dic): Add new target.
(all): Make all depend on the new generate-ja-dic target so that
the OKURO-NASI entries are computed while the .elc files are
compiled. On a AMD Ryzen 9 5950X 16-Core Processor this brings
compilation time on a "make -j32 bootstrap" down from 1m52s to 1m34s.
2022-05-31 Po Lu <luangruo@yahoo.com>
Fix the GTK build
* src/xterm.c (x_wait_for_cell_change): Don't initialize rfds
on GTK.
2022-05-31 Po Lu <luangruo@yahoo.com>
Improve x_wait_for_cell_change
* src/xterm.c (x_wait_for_cell_change): Keep processing events
while still XPending.
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Note changes in ;;;### parsing
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix the loaddefs updating logic
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Fix the
logic of updating -- we update per loaddefs file.
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix yank-in-context--transform after recent reversion
* lisp/simple.el (yank-in-context--transform): Fix call to
comment-region-default-1 after recent reverted patch.
2022-05-31 Manuel Giraud <manuel@ledu-giraud.fr>
Add a last-modified field when a bookmark is set
* test/lisp/bookmark-tests.el (bookmark-tests-make-record)
(bookmark-tests-make-record-list, bookmark-tests-set): fix tests
to not consider last-modified in bookmark equality.
* lisp/bookmark.el (bookmark-make-record-default): add a
last-modified field.
(bookmark-sort-flag): add the 'last-modified choice.
(bookmark-get-last-modified): new function to get last-modified
bookmark field.
(bookmark-maybe-sort-alist): sort in last-modified first order.
(bookmark-completing-read): use `bookmark-maybe-sort-alist'.
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Allow commenting out white space lines in latex-mode"
This reverts commit 0870ebb3cbfcb097d85eea5eacaf992dd88ed204.
This was the wrong way to try to fix this -- see bug#55716.
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Make partial loaddefs updates work again
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Only update
the loaddefs section for the files that have changed. This makes
"git pull" (when few/no Lisp files have changed much faster).
2022-05-31 Juri Linkov <juri@linkov.net>
Fix handling of windows/buffers for non-nil completion-auto-select (bug#55712)
* lisp/minibuffer.el (completion--in-region-1): When completion-auto-select
is `second-tab', call switch-to-completions outside of `with-current-buffer'.
For the case of completion-auto-select customized to t,
move switch-to-completions from completion-setup-function
where it was called inside of with-current-buffer-window.
* lisp/simple.el (completion-setup-function): Move switch-to-completions
for completion-auto-select=t to completion--in-region-1 where it's
handled together with the case of `second-tab'.
(next-completion): Add check for the minibuffer to support in-buffer
inline completions.
2022-05-31 Eli Zaretskii <eliz@gnu.org>
Remove unused w32-* variables
* src/w32fns.c (syms_of_w32fns) <w32-bdf-filename-alist>
<w32-strict-fontnames>: Remove unused variables.
2022-05-31 Eli Zaretskii <eliz@gnu.org>
Remove from FAQ the MS-Windows info about BDF fonts
* doc/misc/efaq.texi (How to add fonts): Remove the MS-Windows
specific steps, as BDF fonts are no longer supported on
MS-Windows. (Bug#55740)
2022-05-31 Lars Ingebrigtsen <larsi@gnus.org>
Speed up generation of loaddefs files
* doc/lispref/loading.texi (Autoload, Autoload by Prefix): Refer
to loaddefs-generate instead of update-file-autoloads.
* lisp/Makefile.in (LOADDEFS): Remove, because all the loaddefs
files are created in one go now.
(COMPILE_FIRST): Add loaddefs-gen/radix-tree, and drop autoload.
($(lisp)/loaddefs.el): Use loaddefs-gen.
(MH_E_DIR, $(TRAMP_DIR)/tramp-loaddefs.el)
($(MH_E_DIR)/mh-loaddefs.el, $(CAL_DIR)/cal-loaddefs.el)
($(CAL_DIR)/diary-loaddefs.el, $(CAL_DIR)/hol-loaddefs.el): Remove.
* lisp/generic-x.el: Inhibit computing prefixes, because the
namespace here is all wonky.
* lisp/w32-fns.el (w32-batch-update-autoloads): Removed -- unused
function.
* lisp/calendar/holidays.el ("holiday-loaddefs"): Renamed from
hol-loaddefs to have a more regular name.
* lisp/cedet/ede/proj-elisp.el (ede-emacs-cedet-autogen-compiler):
Refer to loaddefs-gen instead of autoload.
* lisp/emacs-lisp/autoload.el (make-autoload, autoload-rubric)
(autoload-insert-section-header): Made into aliases of
loaddefs-gen functions.
(autoload--make-defs-autoload): Ditto.
(autoload-ignored-definitions, autoload-compute-prefixes): Moved
to loaddefs-gen.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-autoload-regexp): New
constant.
(lisp-fdefs, lisp-mode-variables, lisp-outline-level): Use it to
recognize all ;;;###autoload forms.
* lisp/emacs-lisp/loaddefs-gen.el: New file.
* lisp/emacs-lisp/package.el: Use loaddefs-generate instead of
make-directory-autoloads.
* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-faulty-bzr-autoloads):
Use loaddefs instead of autoloads.
2022-05-31 Po Lu <luangruo@yahoo.com>
Convert FILE_NAME to refs on Haiku instead of text/uri-list
* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Use
more appropriate target for file names.
(haiku-dnd-convert-uri-list): Delete function.
(haiku-dnd-convert-file-name): New function. Also handle remote
file names.
2022-05-31 Po Lu <luangruo@yahoo.com>
Add missing part of recent changes to NS DND support
* lisp/term/ns-win.el (x-begin-drag): Implement `return-frame'
argument.
2022-05-31 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Makasar and Lontara scripts (bug#55734)
* lisp/language/indonesian.el ("Makasar") ("Buginese"):
New language environment. Add composition rules for Makasar
and Lontara. Add sample texts and input methods.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Makasar and Buginese.
* lisp/leim/quail/indonesian.el ("makasar") ("lontara"):
New input methods.
* etc/HELLO: Add Makasar and Buginese greetings.
* etc/NEWS: Announce the new language environments.
2022-05-31 Po Lu <luangruo@yahoo.com>
Slightly optimize x_check_errors as well
* src/xterm.c (x_check_errors): Don't sync if no requests were
made since the error trap was installed.
2022-05-31 Stefan Kangas <stefan@marxist.se>
* lisp/play/handwrite.el: Minor doc fixes.
2022-05-31 Antonio Ruiz <antonioruiz.math@gmail.com> (tiny change)
Make handwrite.el printing use more of the ps-print setup
* lisp/play/handwrite.el (handwrite): Allow ps-lpr-printer to be
computed at runtime (bug#55733).
2022-05-31 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
Fix Display Property manual example
* doc/lispref/display.texi (Display Property): Fix syntax of
example (bug#55736).
2022-05-31 Po Lu <luangruo@yahoo.com>
Fix replying to _NET_WM_PING during drag-and-drop
* src/xterm.c (handle_one_xevent): Test client window against
root window instead of using nonstandard event mask.
2022-05-31 Po Lu <luangruo@yahoo.com>
Implement `return-frame' for DND on NS
* src/nsselect.m (Fns_begin_drag): New argument `return-frame'.
(syms_of_nsselect): New defsym.
* src/nsterm.h (EmacsWindow): New fields.
* src/nsterm.m (ns_read_socket): Split parts off to
ns_read_socket_1.
(ns_read_socket_1): New function.
(ns_flush_display): Use that function instead.
([EmacsWindow beginDrag:forPasteboard:]): Update for
return-frame.
2022-05-31 Po Lu <luangruo@yahoo.com>
Fix autorelease pool "straddling" during DND on NS
* src/nsterm.m (ns_mouse_position): Implement `drag-source'
on NS.
([EmacsView draggingUpdated:]): Add autorelease pool around
callbacks.
([EmacsWindow beginDrag:forPasteboard:]): Block input around
dragImage.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 in x_get_current_wm_state
* src/xterm.c (x_get_current_wm_state): When lint checking,
initialize reply_data to a non-null dummy value instead of to a
null one. This pacifies GCC 12 -Wanalyzer-null-dereference.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 in dump_queue_enqueue
* src/pdumper.c (dump_queue_enqueue): Use BASE_EQ, not EQ.
This pacifies GCC 12 -Wanalyzer-null-dereference.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Be more robust if doc file is corrupted
* src/doc.c (Fsnarf_documentation): Dont dump core on a corrupted
doc file. Problem found by GCC 12 -Wanalyzer-null-argument.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 in Fmove_overlay
* src/buffer.c (Fmove_overlay): Use BASE_EQ, not EQ.
This pacifies GCC 12 -Wanalyzer-null-dereference.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 in Fx_show_tip
* src/xfns.c (Fx_show_tip): Use BASE_EQ, not EQ.
This pacifies GCC 12 -Wanalyzer-null-dereference.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 in xrdb.c
* src/xrdb.c (x_get_resource): Simply assign the return value.
This pacifies GCC 12 -Wanalyzer-use-of-uninitialized-value.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 false positive in ccl.c
* src/ccl.c: Suppress -Wanalyzer-use-of-uninitialized-value
in GCC 12 or later.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Simplify CHAR_TABLE_REF_ASCII
* src/lisp.h (CHAR_TABLE_REF_ASCII): Refactor as a straightforward
for-loop. Redo an if-then-else to be an (!if)-else-then as this
is a bit cleaner, and it also works around GCC bug 105755.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Avoid undefined behavior in detect_coding routines
* src/coding.c (detect_coding): Always initialize all
components of detect_info, so that detect_coding_utf_8 etc.
do not have undefined behavior when they read detect_info.checked.
This bug is not likely to cause problems on real systems.
Problem found by GCC 12 -fanalyzer.
(detect_coding_system): Use consistent style with detect_coding
initialization.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 -fanalyzer in x_popup_menu_1
* src/menu.c (x_popup_menu_1): Rework to avoid unnecessary
initialization and test. This also pacifies GCC 12.
2022-05-31 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 -Wanalyzer-use-of-uninitialized-value
* lib-src/etags.c (readline_internal): Do not copy a pointer to
freed storage, as that has undefined behavior even if the pointer
is not dereferenced.
(relative_filename): Avoid a backward scan by remembering where
the last slash was. This is a bit faster, and pacifies a GCC
false alarm.
2022-05-31 Po Lu <luangruo@yahoo.com>
Fix crashes displaying menu help text on NS
* src/nsterm.m (ns_flush_display): Run event loop manually,
avoiding a double free of an autorelease pool.
2022-05-31 Po Lu <luangruo@yahoo.com>
Fix processing of DND events on GTK
* src/xterm.c (x_dnd_begin_drag_and_drop): Clear `current_count'
and `current_hold_quit' after calling gtk_main_iteration.
2022-05-30 Po Lu <luangruo@yahoo.com>
Fix unused variables on GTK
* src/xterm.c (x_wait_for_cell_change): Fix unused variables
on GTK builds.
2022-05-30 Po Lu <luangruo@yahoo.com>
Fix initialization of `hold_quit' during DND
* src/xterm.c (x_dnd_begin_drag_and_drop): Use `EVENT_INIT'
instead of just setting type to NO_EVENT.
2022-05-30 Po Lu <luangruo@yahoo.com>
Prevent events from being lost waiting for selections on GTK
* src/xterm.c (x_wait_for_cell_change): Use GTK to iterate the
main loop so events reach the toolkit.
2022-05-30 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-05-30 Eli Zaretskii <eliz@gnu.org>
Fix 'debug-timer-check' on MS-Windows
* src/w32proc.c (w32_raise): New function.
* src/atimer.c (raise) [WINDOWSNT]: Redirect to 'w32_raise'.
2022-05-30 Juri Linkov <juri@linkov.net>
* lisp/progmodes/project.el: Improve file-reading history and default values.
(project-find-file): Use relative file name of the
currently visited file as an alternative default value.
(project-find-file-in, project-find-dir): Use 'file-name-history' (bug#55267).
2022-05-30 Mattias Engdegård <mattiase@acm.org>
Nonrecursive Lisp reader (bug#55676)
Restructure the reader to be nonrecursive so that it is not limited by
the C stack or crashes Emacs when reading deeply nested data.
This also improves performance.
A few minor bugs were fixed:
- (a .{NBSP}b) where {NBSP} is a non-breaking space (U+00A0) is now
the dotted pair (a . b), not the 3-element list (a \. b), since U+00A0
is treated as whitespace everywhere else.
- #_ with no symbol following is now equivalent to ## (empty interned
symbol), not #: (empty uninterned symbol).
* src/alloc.c (garbage_collect): Call mark_lread.
* src/lread.c (readevalloop): Use read0 instead of read_list.
(stackbufsize): Increase to 1024, now that read0 isn't recursive.
(invalid_radix_integer): Buffer overflow check.
(read1, read_list, read_vector): Remove.
(read_char_literal, read_string_literal)
(hash_table_from_plist, record_from_list, vector_from_rev_list)
(bytecode_from_rev_list, char_table_from_rev_list)
(sub_char_table_from_rev_list, string_props_from_rev_list)
(read_bool_vector, skip_lazy_string, symbol_char_span)
(skip_space_and_comments)
(enum read_entry_type, struct read_stack_entry, struct read_stack)
(rdstack, mark_lread, read_stack_top, read_stack_pop)
(read_stack_empty_p, grow_read_stack, read_stack_push): New.
(read0): Rewrite to be nonrecursive.
* test/src/lread-tests.el (lread-deeply-nested, lread-misc): New tests.
2022-05-30 Mattias Engdegård <mattiase@acm.org>
Fix atimer setting and overdue expiration (bug#55628)
* src/atimer.c (set_alarm): If the atimer has already expired, signal
it right away instead of postponing it further. Previously this could
occur repeatedly, blocking atimers indefinitely.
Also only use `alarm` as fallback if `setitimer` is unavailable, not
both at the same time (which makes no sense, and they both typically
use the same mechanism behind the curtains).
* test/src/eval-tests.el (eval-tests/funcall-with-delayed-message):
New test, verifying proper functioning of funcall-with-delayed-message
which also serves as test for this bug (which also caused
debug-timer-check to fail, but that test is only run when Emacs is
built with enable-checking).
2022-05-30 Eli Zaretskii <eliz@gnu.org>
Add more subscript and superscript characters to "C-x 8"
* lisp/international/iso-transl.el (iso-transl-char-map): Add more
numerical superscript and subscript characters. (Bug#55722)
2022-05-30 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Rejang script (bug#55718)
* lisp/language/indonesian.el ("Rejang"): New language environment.
Add composition rules for Rejang. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Rejang.
* lisp/leim/quail/indonesian.el ("rejang"): New input method.
* etc/HELLO: Add a Rejang greeting.
* etc/NEWS: Announce the new language environment.
2022-05-30 Po Lu <luangruo@yahoo.com>
Get rid of `defvar-keymap' in flymake.el
* lisp/progmodes/flymake.el (flymake-mode-map)
(flymake-diagnostics-buffer-mode-map): Stop using
`defvar-keymap', since Flymake only requires Emacs 26.1.
2022-05-30 Po Lu <luangruo@yahoo.com>
Fix `dnd-indicate-insertion-point' on Mac OS
* lisp/term/ns-win.el (ns-handle-drag-motion): Remove debugging
code.
* src/nsterm.m ([EmacsView draggingUpdated:]): Redisplay here
instead.
2022-05-30 Po Lu <luangruo@yahoo.com>
Update frame positions on Haiku after changing Z group
* src/haiku_support.cc (EmacsScreenChangeMonitor): Fix comment.
* src/haikufns.c (haiku_set_z_group): Ask for a position update,
since changing the Z group might change the feel of the window.
2022-05-30 Po Lu <luangruo@yahoo.com>
Fix cursor flushing inside minibuffers on NS
* src/nsterm.m (EV_TRAILER): Fix coding style.
(ns_flush_display): New function.
(ns_redisplay_interface): Register `flush_display'.
2022-05-30 Po Lu <luangruo@yahoo.com>
Fix hangs when x-get-selection is called inside a popup menu
* src/xselect.c (wait_for_property_change):
(x_get_foreign_selection): Use `x_wait_for_cell_change' if input
is blocked. (bug#22214)
* src/xterm.c (x_wait_for_cell_change): New function.
* src/xterm.h: Update prototypes.
2022-05-30 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1b7b69e764 Some Tramp cleanup on MS Windows
2022-05-29 Po Lu <luangruo@yahoo.com>
Try to implement `dnd-indicate-insertion-point' on macOS
* lisp/term/ns-win.el (ns-handle-drag-motion): New function.
* src/nsterm.m ([EmacsView draggingUpdated:]): Call that
function instead.
(syms_of_nsterm): Clean up old style defvars and add new
defvar for the DND drag function.
2022-05-29 Po Lu <luangruo@yahoo.com>
Further clean up DND target handling
* src/xfns.c (Fx_begin_drag): Alloca target list.
* src/xterm.c (x_set_dnd_targets): Copy the given targets list.
(x_dnd_begin_drag_and_drop): Record freeing the targets list on
the specpdl.
(handle_one_xevent, x_dnd_cleanup_drag_and_drop)
(x_connection_closed, x_delete_terminal): Stop calling
`x_set_dnd_targets' manually to free the targets list.
2022-05-29 Po Lu <luangruo@yahoo.com>
Fix crash when loading Postscript images
* src/xterm.c (handle_one_xevent): Catch errors around
`x_kill_gs_process'.
2022-05-29 Po Lu <luangruo@yahoo.com>
Use XDrawPoint to clear relief rect corners
* xterm.c (x_clear_point): New function.
(x_draw_relief_rect): Use that instead.
2022-05-29 Paul Eggert <eggert@cs.ucla.edu>
Document decoded-time-string issue on 6-elt args
* lisp/simple.el: Document problematic use of decoded-time-dst on
6-element args.
2022-05-29 Paul Eggert <eggert@cs.ucla.edu>
ISO 8601 strings sans "Z" dont specify DST flag
* lisp/calendar/iso8601.el (iso8601--zone-dst): New function.
(iso8601-parse, iso8601-parse-time): Use it.
(iso8601--decoded-time): Default dst to -1, not nil.
* test/lisp/calendar/iso8601-tests.el (test-iso8601-combined)
(standard-test-time-of-day-zone): Adjust to new behavior.
2022-05-29 Paul Eggert <eggert@cs.ucla.edu>
Doc fix for dst flag
* doc/lispref/os.texi (Time Conversion): Note Common Lisp dst differs.
2022-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/shell.el (shell): Fix last change
Wrap the file-name prompt within `with-connection-local-variables` as
it was before the previous change.
While at it, make sure we set the `default-directory` of
the actual shell buffer after querying the user.
2022-05-29 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Batak script (bug #55694)
* lisp/language/indonesian.el ("Batak"): New language environment.
Add composition rules for Batak. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Batak.
* lisp/leim/quail/indonesian.el ("batak"): New input method.
Rename TITLE of balinese, javanese and sundanese in
("quail-define-package").
* etc/HELLO: Add a Batak greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-29 Lars Ingebrigtsen <larsi@gnus.org>
Fix hfy-etags-cmd type
* lisp/htmlfontify.el (hfy-etags-cmd): Fix the type -- this
variable usually ends up being nil.
2022-05-29 Daniel Martín <mardani29@yahoo.es>
Fix reference to help-enable-variable-value-editing
* lisp/help-mode.el (help-mode): Fix docstring to reference the
correct variable name.
* lisp/ldefs-boot.el (help-mode): Ditto (bug#55705).
2022-05-29 Po Lu <luangruo@yahoo.com>
* etc/tutorials/TUTORIAL.cn (INSTALLING PACKAGES): Translate
from English.
2022-05-29 Michael Albinus <michael.albinus@gmx.de>
Some Tramp cleanup on MS Windows
* lisp/net/tramp.el (tramp-restricted-shell-hosts-alist): Do not add
localhost when `tramp-encoding-shell' is a POSIX shell.
* test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process):
Skip on MS Windows.
2022-05-29 Mattias Engdegård <mattiase@acm.org>
Traverse record literals in byte-compile--first-symbol-with-pos
* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos):
Traverse record literals as well as vectors. Either is rather
pointless but there were some strong feelings about it.
2022-05-29 Po Lu <luangruo@yahoo.com>
* admin/alloc-colors.c: Fix missing declaration.
2022-05-29 Manuel Giraud <manuel@ledu-giraud.fr>
Make `count-words' count sentences.
* lisp/textmodes/paragraphs.el (count-sentences): New function.
* lisp/simple.el (count-words--format): Update format for showing
sentences.
(count-words): Also count sentences.
* lisp/simple.el (count-words):
* etc/NEWS:
* doc/emacs/basic.texi (Position Info): Update documentation for
sentence counting.
2022-05-29 Po Lu <luangruo@yahoo.com>
Keep display mm width and height up to date after changes
* src/xfns.c (Fx_display_mm_width, Fx_display_mm_height): Use
new fields if they are set.
* src/xterm.c (handle_one_xevent): Set new fields on RRNotify if
the screen is correct.
* src/xterm.h (struct x_display_info): New fields
`screen_mm_width', `screen_mm_height'.
2022-05-29 Po Lu <luangruo@yahoo.com>
Make DND target list lifecycle a little clearer
* src/xfns.c (Fx_begin_drag): Pass target atoms and ntargets to
x_dnd_begin_drag_and_drop instead.
* src/xterm.c (x_set_dnd_targets): Make static.
(x_clear_dnd_targets): Delete function.
(x_dnd_begin_drag_and_drop): Adjust to set targets here instead.
* src/xterm.h: Update prototypes.
2022-05-29 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f9ee83bfb9 do_switch_frame: before leaving mini-window, check other (...
908e2e09d0 Fix commands used to produce on-line HTML docs
fff770fb97 Fix a bad cross-reference in elisp.pdf
ebea3415b0 Fix documentation of 'string-pad'
2022-05-28 Po Lu <luangruo@yahoo.com>
Fix pending window changes in haiku_set_window_size
* src/haikuterm.c (haiku_set_window_size): Wait for
FRAME_RESIZED events, then call `do_pending_window_change'.
(haiku_read_socket): Allow waiting for FRAME_RESIZED events.
2022-05-28 Po Lu <luangruo@yahoo.com>
Improve error trapping on X
* xterm.c (x_uncatch_errors, x_had_errors_p): Don't sync if no
request was made since the error trap was installed.
2022-05-28 kobarity <kobarity@gmail.com>
Fix Python Hideshow problem with backslash escaped newlines
* lisp/progmodes/python.el (python-rx)
(python-nav-beginning-of-defun-regexp): Allow
python-nav-*-defun to handle backslash escaped newlines
(bug#55690).
2022-05-28 Visuwesh <visuweshm@gmail.com>
pp--insert-lisp: Don't bug out on certain forms at beginning of buffer
* pp.el (pp--insert): Check if point is in beginning of buffer before
calling `looking-back' (bug#55677).
2022-05-28 Stefan Monnier <monnier@iro.umontreal.ca>
with-connection-local-variables: Avoid code duplication
Move the bulk of the code of `with-connection-local-variables` into
a separate function, which both avoids duplicating that code but also
avoids duplicating the code passed as the body of
a `with-connection-local-variables`. Also makes it easier to
debug the code, or change the implementation of
`with-connection-local-variables` without having to recompile all
the users.
* lisp/files-x.el (with-connection-local-variables-1): New function,
extracted from `with-connection-local-variables`.
(with-connection-local-variables): Use it.
2022-05-28 Alan Mackenzie <acm@muc.de>
do_switch_frame: before leaving mini-window, check other (mru) window is live
This fixes bug#55684. There, with a minibuffer-only frame at start up,
Emacs tried to switch to this frame, whose selected window was the
mini-window. There is no other active window in this frame, so the
attempt to swith to another window failed.
* src/frame.c (do_switch_frame): On switching to a frame whose selected
window is as above, before selecting the most recently used window, check
this ostensible window is an actual live window. Otherwise leave the
mini-window selected.
2022-05-28 Eli Zaretskii <eliz@gnu.org>
Fix commands used to produce on-line HTML docs
* admin/admin.el (manual-meta-string): Only include the first
line, and move the rest...
(manual-links-string): ...to this new string.
(manual-html-fix-headers): Don't remove the '<meta name=' elements
produced by makeinfo, especially not the 'name="viewport"' one,
which is essential for viewing the docs on mobile devices.
Reported by "Facundo Lander via RT" <webmasters-comment@gnu.org>,
see gnu.org ticket #1840138.
2022-05-28 Valenoern <valenoern@distributary.network> (tiny change)
Support html template tag in shr
* lisp/net/shr.el: Add shr-tag-template as a dummy tag.
2022-05-28 Lars Ingebrigtsen <larsi@gnus.org>
Fix native-comp of trampolines after previous change
* lisp/emacs-lisp/comp.el (comp--native-compile): Don't delete the
explicitly specified output file, just temp files.
2022-05-28 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Sundanese script (bug#55686)
* lisp/language/indonesian.el ("Sundanese"): New language environment.
Add composition rules for Sundanese. Add sample text and input
method.
Improve composition rules for Balinese and Javanese.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Sundanese.
* lisp/leim/quail/indonesian.el ("sundanese"): New input method.
* etc/HELLO: Add a Sundanese greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-28 Eli Zaretskii <eliz@gnu.org>
Fix a bad cross-reference in elisp.pdf
* doc/lispref/control.texi (pcase Macro): Fix a conditional
cross-reference (bug#55689).
2022-05-28 Po Lu <luangruo@yahoo.com>
Fix dired drag-and-drop for certain Motif programs
* lisp/dired.el (dired-mouse-drag): Announce _DT_NETFILE in
targets list as well.
* lisp/select.el (xselect--encode-string): New arg
`prefer-string-to-c-string'.
(xselect-convert-to-filename): Convert to TEXT instead of
C_STRING, but use STRING if the type would otherwise be
C_STRING.
(xselect-dt-netfile-available-p, xselect-tt-net-file)
(xselect-convert-to-dt-netfile): New functions.
(selection-converter-alist): New selection converter.
2022-05-28 Eli Zaretskii <eliz@gnu.org>
Fix documentation of 'string-pad'
* doc/lispref/strings.texi (Creating Strings): Fix description of
'string-pad'. (Bug#55688)
2022-05-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d3cde28b03 Fix more occurrences of renamed kmacro-keymap command
bd5c95a90d Mention "unspecified-fg" and "unspecified-bg" in some doc ...
2022-05-28 Po Lu <luangruo@yahoo.com>
Add more cursor bitmaps on Haiku
* src/haikufns.c (cursor_bitmaps_for_id): Add hourglass cursor.
2022-05-27 Po Lu <luangruo@yahoo.com>
Improve documentation on what callers of `x-begin-drag' should do
* doc/lispref/frames.texi (Drag and Drop):
* src/xfns.c (Fx_begin_drag): Improve documentation of how the
chosen action should be performed.
2022-05-27 Po Lu <luangruo@yahoo.com>
Improve documentation of `x-begin-drag'
* src/xfns.c (Fx_begin_drag): Fix typos and improve wording.
2022-05-27 Po Lu <luangruo@yahoo.com>
Improve safety of various DND callbacks
* src/xterm.c (x_dnd_begin_drag_and_drop): Restore selection
events if DND is no longer in progress and don't call
x-dnd-movement-function.
2022-05-27 Po Lu <luangruo@yahoo.com>
Fix frame destruction issues and misuse of x_get_atom_name
* src/frame.c (delete_frame): Prevent deleting the dnd frame
while waiting for finish as well.
* src/xselect.c (Fx_get_atom_name): Clean up code and fix
uninitialized use of need_sync.
* src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop)
(handle_one_xevent): Clean up usage of x_get_atom_name.
(x_get_atom_name): Accept NULL for need_sync.
* src/xterm.h: Update declarations.
2022-05-27 Po Lu <luangruo@yahoo.com>
Fix build on earlier versions of Mac OS X
* src/nsselect.m (ns_decode_data_to_pasteboard): Respect
NS_USE_NSPasteboardTypeFileUrl.
2022-05-27 Po Lu <luangruo@yahoo.com>
Add file dragging support to NS port
* lisp/dired.el (dired-mouse-drag-files): Document that
`dired-mouse-drag-files' now works on NS.
* lisp/term/ns-win.el (x-begin-drag): Handle FILE_NAME.
* src/nsselect.m (ns_decode_data_to_pasteboard): Handle file URL
type.
(ns_lisp_to_pasteboard, Fns_begin_drag): Handle new type `file'.
2022-05-27 Po Lu <luangruo@yahoo.com>
Improve DND documentation
* doc/lispref/frames.texi (Drag and Drop):
* src/xfns.c (Fx_begin_drag): Document that x-begin-drag may
return immediately if no mouse buttons are held down.
2022-05-27 Po Lu <luangruo@yahoo.com>
Fix x_dnd_movement_frame detection on GTK builds
* src/xterm.c (x_dnd_begin_drag_and_drop): Make sure movement
frame is on the correct display.
2022-05-27 Paul Eggert <eggert@cs.ucla.edu>
Remove stray decl of nonexistent var
* src/lisp.h (symbols_with_pos_enabled): Remove decl.
2022-05-27 Paul Eggert <eggert@cs.ucla.edu>
decoded-time-set-defaults now leaves DST alone
* lisp/calendar/time-date.el (decoded-time-set-defaults):
Dont mess with decoded-time-dst (Bug#55635).
2022-05-27 Paul Eggert <eggert@cs.ucla.edu>
Fix unlikely null pointer dereference
* src/xselect.c (Fx_get_atom_name): Fix unlikely core dump when
build_string is called on a null pointer. Found by GCC -fanalyzer.
2022-05-27 Paul Eggert <eggert@cs.ucla.edu>
Add ATTRIBUTE_DEALLOC to extern functions
This can help static checking. Its not as important for static
functions, where GCC can figure this stuff out own its own.
* src/sysstdio.h (emacs_fopen): Add ATTRIBUTE_DEALLOC (fclose, 1).
* src/tparam.h (tparam): Add ATTRIBUTE_DEALLOC_FREE.
Include stdlib.h so that free is declared.
* src/xterm.h (x_get_atom_name): Add ATTRIBUTE_DEALLOC_FREE.
2022-05-27 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -Wsuggest-attribute-malloc
* src/xterm.h (x_get_atom_name): Add ATTRIBUTE_MALLOC.
2022-05-27 Juri Linkov <juri@linkov.net>
Fix navigation in the *Completions* buffer and enable more tests (bug#54374)
* lisp/ido.el: Use first-completion instead of next-completion.
* lisp/minibuffer.el (completion--insert): Put completion--string
text property on prefix and suffix as well.
* lisp/simple.el (first-completion, last-completion): New commands.
(next-completion): Rewrite to fix many bugs reported in
bug#54374, bug#55289, bug#55430.
(choose-completion): Use the text property completion--string that
allows to select a completion when point is on its prefix or suffix.
(switch-to-completions): Use first-completion instead of next-completion,
and last-completion instead of previous-completion.
* test/lisp/minibuffer-tests.el (completion-auto-select-test)
(completion-auto-wrap-test, completions-header-format-test)
(completions-affixation-navigation-test): Uncomment fixed lines.
2022-05-27 Eli Zaretskii <eliz@gnu.org>
Extend 'C-x 8 =' to produce characters with macron
* lisp/international/iso-transl.el (iso-transl-char-map): Add
several new sequences for characters with macron. (Bug#55668)
2022-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/shell.el (shell): Query shell file name from `interactive`
This avoids the use of the brittle `called-interactively-p`
and makes it easier to start a shell buffer running another shell than
your usual one.
2022-05-27 Eli Zaretskii <eliz@gnu.org>
Improve font selection on MS-Windows
The Arial Unicode MS font claims in its USB (Unicode Subset
Bitfields) values support for several scripts for which it
doesn't actually have glyphs. This sometimes caused Emacs to
decide to use Arial Unicode MS for some script, only to
discover later that there are no glyphs for that script's
characters. This change fixes the USB values according to
actual font coverage, as determined by BabelMap.
* src/w32font.c (add_font_entity_to_list): Fix USB values of Arial
Unicode MS font according to its actual coverage of scripts.
2022-05-27 Lars Ingebrigtsen <larsi@gnus.org>
Make make-decoded-time use -1 for dst unless given
* lisp/calendar/time-date.el (make-decoded-time): DST -1 is the
value for "doesn't know", not nil (bug#55635).
2022-05-27 Lars Ingebrigtsen <larsi@gnus.org>
Make package-update-all also refresh the list
* lisp/emacs-lisp/package.el (package-update-all): Also refresh
package list.
2022-05-27 Po Lu <luangruo@yahoo.com>
Fix GNUstep build
* src/nsterm.h (NSPasteboardNameGeneral): Fix definition.
2022-05-27 Po Lu <luangruo@yahoo.com>
Fix NS drag and drop on macOS
* lisp/term/ns-win.el (gui-backend-set-selection):
* src/nsselect.m (Fns_begin_drag): Fix deprecation warnings and
selection/value mixup.
2022-05-27 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into x-window-xwidget
2022-05-27 Po Lu <luangruo@yahoo.com>
Implement some drag and drop functions on NS
* lisp/term/ns-win.el (ns-selection-exists-p):
(gui-backend-set-selection):
(x-begin-drag): New functions and selection types.
* src/nsfns.m (Fns_get_resource):
(Fns_set_resource):
(Fx_server_max_request_size): Fix coding style.
* src/nsselect.m (ns_decode_data_to_pasteboard):
(ns_lisp_to_pasteboard):
(ns_dnd_action_to_operation):
(ns_dnd_action_from_operation):
(Fns_begin_drag): New functions.
(syms_of_nsselect): New subrs.
* src/nsterm.h (EmacsWindow): New fields and messages.
(NSPasteboardNameGeneral): New define.
* src/nsterm.m ([EmacsView mouseDown:]): Store last mouse event.
([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Clear that event.
([EmacsWindow dealloc]): Free last mouse event.
2022-05-27 Stefan Kangas <stefan@marxist.se>
* lisp/progmodes/asm-mode.el: Minor doc fixes.
2022-05-27 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in some progmodes
* lisp/progmodes/asm-mode.el (asm-mode-map):
* lisp/progmodes/bug-reference.el (bug-reference-map):
* lisp/progmodes/erts-mode.el (erts-mode-map):
* lisp/progmodes/flymake.el (flymake-mode-map)
(flymake-diagnostics-buffer-mode-map):
* lisp/progmodes/icon.el (icon-mode-map):
* lisp/progmodes/js.el (js-mode-map):
* lisp/progmodes/m4-mode.el (m4-mode-map):
* lisp/progmodes/mixal-mode.el (mixal-mode-map):
* lisp/progmodes/scheme.el (scheme-mode-map): Prefer defvar-keymap.
2022-05-27 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler warning about x-pointer-invisible
* lisp/avoid.el (x-pointer-invisible): Declare to silence
byte-compiler.
2022-05-27 Juri Linkov <juri@linkov.net>
Fix more occurrences of renamed kmacro-keymap command
* doc/emacs/kmacro.texi (Basic Keyboard Macro): Fix documentation
after recent kmacro-redisplay command name change.
2022-05-27 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Javanese script (bug#55667)
* lisp/language/indonesian.el ("Javanese"): New language environment.
Add composition rules for Javanese. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars):
Support Javanese.
* lisp/leim/quail/indonesian.el ("javanese"): New input method.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-27 Po Lu <luangruo@yahoo.com>
* etc/PROBLEMS: Document problems with PGTK input methods.
2022-05-27 Po Lu <luangruo@yahoo.com>
Update comments in some X code
* src/xterm.c (x_parse_color): Update comment.
(syms_of_xterm): Add new debugging option too.
2022-05-27 Eli Zaretskii <eliz@gnu.org>
Mention "unspecified-fg" and "unspecified-bg" in some doc strings
* lisp/faces.el (face-foreground, face-background)
(foreground-color-at-point, background-color-at-point):
* lisp/color.el (color-name-to-rgb): Mention "unspecified-fg" and
"unspecified-bg" pseudo-colors on TTY frames. (Bug#55623)
2022-05-27 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9283508fb2 Fix format specifiers in tramp-adb.el
a9f17ccce3 ; Fix some doc typos and minor language issues
2022-05-26 Po Lu <luangruo@yahoo.com>
Fix XI scroll valuator reset on X Toolkit builds
* src/xterm.c (handle_one_xevent): Reset valuators on XI_Leave
if leave->event is an edit widget as well.
2022-05-26 Po Lu <luangruo@yahoo.com>
Improve lookup efficiency of color cache and prevent leaking
* src/xterm.c (x_parse_color): Move recently used colors to the
start of the cache and free unused entries when there are too
many.
(x_term_init, x_delete_display): Initialize and free new fields.
* src/xterm.h (struct x_display_info): New field
`color_names_length'.
2022-05-26 Po Lu <luangruo@yahoo.com>
Handle allocation errors when creating menu items on Haiku
* src/haiku_support.cc (class EmacsMenuItem): Don't abort on
failed strdup.
2022-05-26 Po Lu <luangruo@yahoo.com>
Fix longjmp/siglongjmp mixup
* src/xterm.c (xm_drag_window_io_error_handler)
(x_dnd_io_error_handler): Use `siglongjmp'. Reported by Ken
Brown <kbrown@cornell.edu>.
2022-05-26 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-05-26 Stefan Monnier <monnier@iro.umontreal.ca>
package-activate-all: Use the quickstart more conservatively
* lisp/emacs-lisp/package.el (package-activate-all): Don't use the
quickstart file if some packages have already been activated.
2022-05-26 Sam Steingold <sds@gnu.org>
Avoid duplicates in `package-activated-list'
* lisp/emacs-lisp/package.el (package-quickstart-refresh): Calling
`package-activate-all' twice leads to duplicates in
`package-activated-list' - avoid that.
2022-05-26 Juri Linkov <juri@linkov.net>
Test suite for Completions UI (bug#54374)
* test/lisp/minibuffer-tests.el (completing-read-with-minibuffer-setup):
New macro based on xdisp-tests--in-minibuffer.
(completion-auto-help-test, completion-auto-select-test)
(completion-auto-wrap-test, completions-header-format-test)
(completions-affixation-navigation-test): New tests.
2022-05-26 Stefan Monnier <monnier@iro.umontreal.ca>
eval.c: New functions `defvar-1` and `defconst-1` (bug#55156)
The bytecode interpreter can't directly call special forms, so
the byte-compiler usually converts special forms into some sequence of
byte codes (basically, providing a duplicate definition of the special
form). There are still two exceptions to this: `defconst` and `defvar`,
where the compiler instead generates a convoluted chunk of code like:
(funcall '(lambda (x) (defvar <sym> x <doc>)) <value>)
where the quote makes sure we keep the function non-compiled, so as
to end up running the special form at run time.
Get rid of this workaround by introducing `defvar-1` and `defconst-1`
which provide a *functional* interface to the functionality of the
corresponding special form.
* src/eval.c (defvar, Fdefvar_1, Fdefconst_1): New functions, extracted from
`Fdefvar` and `Fdefconst`.
(Fdefvar, Fdefconst): Use them.
(syms_of_eval): `defsubr` the new functions.
* lisp/emacs-lisp/bytecomp.el (byte-compile-tmp-var): Delete const.
(byte-compile-defvar): Simplify using the new functions.
* doc/lispref/variables.texi (Defining Variables): Adjust the doc of
`defvar` to reflect the actual semantics implemented.
2022-05-26 Stefan Monnier <monnier@iro.umontreal.ca>
* test/lisp/files-resources/compile-utf8.el: Use lexical-binding
* etc/themes/leuven-dark-theme.el: Use lexical-binding
2022-05-26 Hayden Shenk <hayden.shenk@zetier.com> (tiny change)
Fix format specifiers in tramp-adb.el
* lisp/net/tramp-adb.el (tramp-adb-get-device): Fix format
specifiers for port. (Bug#55651)
2022-05-26 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Balinese script (bug#55648)
* lisp/language/indonesian.el ("Balinese"): New language environment.
Add composition rules for Balinese. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Balinese.
* lisp/leim/quail/indonesian.el ("balinese"): New input method.
* lisp/loadup.el: Preload lisp/language/indonesian.el.
* etc/HELLO: Add a Balinese greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-26 Mattias Engdegård <mattiase@acm.org>
Faster and less recursive byte-compile--first-symbol-with-pos
* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos)
(byte-compile--warning-source-offset):
Remove recursion for cdr-traversal of lists, and optimise (bug#55414).
2022-05-26 Po Lu <luangruo@yahoo.com>
Handle alternate actions for Motif drop targets
* src/xterm.c (xm_side_effect_from_action): Handle
`XdndActionAsk'.
(xm_operations_from_actions): New function.
(xm_send_top_level_leave_message, x_dnd_cleanup_drag_and_drop)
(x_dnd_update_state, handle_one_xevent, x_connection_closed):
Use those actions when building a side effect.
(x_dnd_begin_drag_and_drop): Keep track of the set of
alternative drag-and-drop actions.
2022-05-26 Lars Ingebrigtsen <larsi@gnus.org>
Make comp--native-compile delete the temp file it creates
* lisp/emacs-lisp/comp.el (comp--native-compile): Delete the
temporary files we create (bug#55611).
2022-05-26 Lars Ingebrigtsen <larsi@gnus.org>
Make memory-report not bug out with symbols with positions
* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1):
Don't bug out when there are symbols with positions.
2022-05-26 Po Lu <luangruo@yahoo.com>
Fix the `x_trace_wire' option
* src/xterm.c (x_trace_wire):
(x_term_init): Fix debugging code for modern C and Xlib.
2022-05-26 Po Lu <luangruo@yahoo.com>
Use x_get_atom_name for some more things
* src/xterm.c (x_dnd_send_unsupported_drop, x_dnd_send_drop):
Use x_get_atom_name instead of XGetAtomName.
2022-05-25 Po Lu <luangruo@yahoo.com>
* src/xselect.c (Fx_register_dnd_atom): Use x_intern_cached_atom.
2022-05-25 Po Lu <luangruo@yahoo.com>
Make X error checking more asynchronous
This makes some operations (such as x-get-atom-name and
x-change-window-property) up to 2600x faster by avoiding calls
to XSync when setting up an error handler, and when checking for
or uncatching errors if all requests were already processed.
* src/xterm.c (X_COMPARE_SERIALS): New macro.
(struct x_error_message_stack): Add new field `first_request'.
(x_find_error_handler): New function.
(x_error_catcher): New parameter `stack'. Use it instead.
(x_catch_errors_with_handler): Keep a record of the next
protocol request serial inside the stack entry.
(x_uncatch_errors, x_check_errors, x_had_errors_p, x_clear_errors)
(x_error_handler): Avoid XSync if all requests were processed by
the X server and look for the error handler matching the display
and request serial when processing errors.
2022-05-25 Po Lu <luangruo@yahoo.com>
Improve x_get_atom_name for some predefined atoms
* src/xterm.c (x_get_atom_name): Handle XSETTINGS and cm atoms.
2022-05-25 Po Lu <luangruo@yahoo.com>
Fix 32-bit warnings again
* src/print.c (struct print_stack_entry): Make
u.list.tortoise_idx intmax_t.
2022-05-25 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Limbu script (bug#55621)
* lisp/language/indian.el ("Limbu"): New language environment.
Add composition rules for Limbu. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Limbu.
* lisp/leim/quail/indian.el ("limbu"): New input method.
* etc/HELLO: Add a Limbu greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-25 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
86b49d5865 ; * etc/NEWS: Announce changes in 'desktop-kill'. (Bug#55...
d5ccf2621a ; Fix last change
f1c1fd7184 Improve documentation of mail-user-agent.
b05d1e9b98 ; * lisp/desktop.el: Update the commentary. (Bug#55560)
139bfa1a08 More fixes in abbrev.el doc strings
d80dea6036 Add note about Tramp completion to completion-styles doc s...
9e7c0cf57d Remove mention of removed nnimap-nov-is-evil variable
90aae0bca2 Improve documentation strings and prompts in abbrev.el
dfa3e6f424 Restore the Fselect_window call in gui_consider_frame_title.
de35e9728f Advise against settings in the MS-Windows system registry
3ffa3d3403 ; Minor addition to make-tarball.txt
7dc026f9ea Fix kmacro-keymap binding after previous change
4f0fd54bc4 Add glossary entries for "interactively"
af1c05a3c4 Fix the name of a kmacro command.
# Conflicts:
# etc/NEWS
# lisp/abbrev.el
2022-05-25 Juri Linkov <juri@linkov.net>
* lisp/subr.el (insert-for-yank): Add nil to run-hook-wrapped to keep looping.
2022-05-25 Po Lu <luangruo@yahoo.com>
Lower the roundtrip overhead of x-get-atom-name by 50% for common atoms
* src/xselect.c (Fx_get_atom_name):
* src/xterm.c (x_dnd_begin_drag_and_drop): Use that instead. Don't
sync to handle errors if using `x_get_atom_name' resulted in no
protocol request being made.
(x_get_atom_name): New function.
* src/xterm.h: Update prototypes.
2022-05-25 Lars Ingebrigtsen <larsi@gnus.org>
Make yank-transform-functions into defvar
* doc/lispref/text.texi (Yanking): Adjust.
* lisp/simple.el (yank-transform-functions): Make into defvar
because it's not that useful as a user option.
2022-05-25 Jim Porter <jporterbugs@gmail.com>
Reset 'eshell-in-pipeline-p' when interpolating commands
* lisp/eshell/esh-cmd.el (eshell-subcommand-bindings)
(eshell-command-to-value): Set 'eshell-in-pipeline-p' to nil.
* test/lisp/eshell/eshell-tests.el
(eshell-test/subcommand-reset-in-pipeline)
(eshell-test/lisp-reset-in-pipeline): New tests (bug#55620).
2022-05-25 Paul W. Rankin <pwr@bydasein.com>
Change variable which-func-unknown to "n/a"
* lisp/progmodes/which-func.el (which-func-unknown): Change string
displayed in mode-line from "???" to "n/a"; the former appears to
indicate an error whereas the latter is more indicative that the
current function is not known.
2022-05-25 Po Lu <luangruo@yahoo.com>
Add more predefined atoms for the benefit of DND code
* src/xterm.c (x_intern_cached_atom): Handle `CARDINAL' and
`WINDOW' as well.
2022-05-25 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap in url/*.el
* lisp/url/url-cookie.el (url-cookie-mode-map):
* lisp/url/url-dired.el (url-dired-minor-mode-map): Prefer
defvar-keymap.
2022-05-25 Stefan Kangas <stefan@marxist.se>
Remove some ancient Emacs compat code
* lisp/url/url-util.el (url-percentage): Remove Emacs 19 compat
code.
* lisp/erc/erc-backend.el (erc-server-coding-system):
* lisp/gnus/mm-util.el (mm-iso-8859-x-to-15-table): Remove Emacs
19 compat code; coding-system-p is fboundp.
* lisp/progmodes/cfengine.el (cfengine-fill-paragraph): Remove Emacs
21 compat code.
2022-05-25 Po Lu <luangruo@yahoo.com>
Improve atom interning in `x-change-window-property'
* src/xfns.c (Fx_change_window_property): Improve doc string and
use `x_intern_cached_atom'.
* src/xterm.c (x_intern_cached_atom): New argument
`predefined_only'. All callers changed.
* src/xterm.h: Update prototypes.
2022-05-24 Po Lu <luangruo@yahoo.com>
Fix cursor color adjustment on Haiku
* src/haikufns.c (haiku_set_foreground_color): Maybe set cursor
color correctly if it was equal to the old foreground color.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Don't have edebug bug out if C-x is rebound
* lisp/emacs-lisp/edebug.el (edebug-global-prefix): Don't bug out
if C-x has been rebound (bug#55607).
2022-05-24 Po Lu <luangruo@yahoo.com>
Add more atoms that don't need a roundtrip to intern
* src/xterm.c (x_intern_cached_atom): Handle dpyinfo atoms that
depend on the screen number and common selection atoms.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Update edebug comments
* lisp/emacs-lisp/edebug.el: Update function name in comments
(bug#55607).
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix ert-run-tests-batch-and-exit doc string typo
* lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Fix doc
string typo.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Autoload package-update-all
* lisp/emacs-lisp/package.el (package-update-all): Autoload and
tweak querying so that -f works.
2022-05-24 Po Lu <luangruo@yahoo.com>
Fix compilation on GTK when Xrandr is not present
* src/xterm.c (x_term_init): Make term always present on GTK.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix comp-mvar doc string quoting
* lisp/emacs-lisp/comp.el (comp-mvar): Fix quoting of symbol in
doc string.
2022-05-24 Mattias Engdegård <mattiase@acm.org>
Remove f90-mode regexp ambiguity (bug#17222)
* lisp/progmodes/f90.el (f90-font-lock-keywords-2):
Modify regexp to be better-behaved.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Don't use `format-message' to make doc strings in erc-backend
* lisp/erc/erc-backend.el (define-erc-response-handler): Use
`format' here instead of `format-message' since Emacs will expand
the doc string later when the user asks for help about the symbols
defined.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix a byte compilation warning in electric.el
* lisp/electric.el (electric-quote-mode): Quote a naked character.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Make byte compilation warn about wrong quoting in doc strings
* lisp/emacs-lisp/bytecomp.el
(byte-compile-docstring-length-warn): Made into obsolete alias.
(byte-compile-docstring-style-warn): Also warn about other
stylistic issues.
(byte-compile-file-form-autoload, byte-compile-file-form-defvar)
(byte-compile-file-form-defvar-function, byte-compile-lambda)
(byte-compile-defvar, byte-compile-file-form-defalias): Adjust callers.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix the final divergent single quote usages in doc strings
* lisp/view.el (view-mode-map):
* lisp/repeat.el (repeat-is-really-this-command):
* lisp/help.el (substitute-command-keys):
* lisp/electric.el (electric-quote-mode):
* lisp/cedet/srecode/texi.el (srecode-texi-texify-docstring):
* lisp/cedet/semantic/sort.el
(semantic-orphaned-member-metaparent-type): Audit usages of single
quotes in doc strings.
2022-05-24 Alan Mackenzie <acm@muc.de>
CC Mode: Fix interplay between string fences and electric-pair-mode.
This is an amendment to the fix for bug #55230.
* lisp/progmodes/cc-defs.el: (c-with-string-fences): Add an edebug spec.
* lisp/progmodes/cc-cmds.el: (c-electric-pound, c-electric-brace)
(c-electric-slash, c-electric-star, c-electric-semi&comma, c-electric-colon)
(c-electric-lt-gt, c-electric-paren): Put the final
c--call-post-self-insert-hook-more-safely outside of the functions'
c-with-string-fences.
(c-electric-brace, c-electric-lt-gt, c-electric-paren): Put the calls to
electric-pair-post-self-insert-function outside of c-with-string-fences.
2022-05-24 Stefan Monnier <monnier@iro.umontreal.ca>
Make `yank-transform-functions` a proper hook
* lisp/subr.el (insert-for-yank): Use `run-hook-wrapped` to run
`yank-transform-functions`.
* lisp/simple.el (yank-transform-functions): Adjust accordingly.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix issue with nativecomp tests leaving files behind in /tmp
* test/src/comp-tests.el (comp-deftest): Ensure that no files are left
behind (bug#55611).
2022-05-24 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Buhid and Tagbanwa scripts (bug#55610)
* lisp/language/philippine.el ("Buhid"): New language environment.
("Tagbanwa"): New language environment.
Add input methods for Buhid and Tagbanwa.
Add sample text for Tagbanwa.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Buhid and Tagbanwa.
* lisp/leim/quail/philippine.el ("buhid"): New input method.
("tagbanwa"): New input method.
* etc/HELLO: Add a Tagbanwa greeting.
* etc/NEWS: Announce the new language environments and their
input methods.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Clean up a test file in /tmp
* test/src/buffer-tests.el (test-restore-buffer-modified-p): Clean
up autosave file in /tmp.
2022-05-24 Po Lu <luangruo@yahoo.com>
Add more error checking to some X functions
* src/xfns.c (Fx_change_window_property, Fx_delete_window_property)
(Fx_window_property, Fx_window_property_attributes): Check for
errors in case the window is invalid. Also use better function
for interning prop names.
* src/xterm.c (struct x_atom_ref): New structure.
(x_atom_refs): New list. Extract from x_term_init.
(x_intern_cached_atom): New function. Use it in several places
to avoid interning common atoms.
(x_term_init): Adjust accordingly.
* src/xterm.h: Update prototypes.
2022-05-24 Po Lu <luangruo@yahoo.com>
Prevent errors when Lisp code asks for props of invalid windows
* src/xfns.c (Fx_window_property):
(Fx_window_property_attributes): Catch X errors.
2022-05-24 Po Lu <luangruo@yahoo.com>
Handle invalid NEWS files during describe-function
* src/help-fns.el (help-fns--first-release): Don't error if
searching for a heading fails.
2022-05-24 Jim Porter <jporterbugs@gmail.com>
Keep subcommands in pipelines from clobbering the head/tail processes
* lisp/eshell/esh-cmd.el (eshell-execute-pipeline): Use 'make-symbol'
for headproc and tailproc.
(eshell-do-pipelines, eshell-do-pipelines-synchronously): Adapt to the
above.
* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-subcommand)
(eshell-test/pipe-subcommand-with-pipe): New test.
* doc/misc/eshell.texi (Bugs and ideas): Remove item about piping to
process from loop; this commit fixes it (bug#55590).
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Tweak remapping fix for set-transient-map
* lisp/subr.el (set-transient-map): The remapping doesn't have to
be in this map.
2022-05-24 Štěpán Němec <stepnem@gmail.com>
Add elisp-eldoc-var-docstring-with-value function
* lisp/progmodes/elisp-mode.el
(elisp-eldoc-var-docstring-with-value): New function (bug#55096).
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Make the nativecomp test eln directory more reliably be removed
* lisp/startup.el (startup-redirect-eln-cache, normal-top-level):
Don't create the nativecomp directory here, because this led to
brittle deletions of the directory -- there would be several
instances of the directory left over after a test run.
* lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit): Create
the nativecomp directory.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Further audits of single quotes in Lisp doc strings
* test/manual/etags/el-src/emacs/lisp/progmodes/etags.el
(tags-apropos-additional-actions):
* lisp/window.el (delete-window-choose-selected):
* lisp/vc/ediff-merg.el (ediff-combination-pattern):
* lisp/vc/diff.el (diff-no-select):
* lisp/tab-bar.el (tab-bar-new-tab-choice):
* lisp/simple.el (next-error-message-highlight):
(backward-delete-char-untabify):
* lisp/ses.el (ses-jump-cell-name-function):
* lisp/org/org.el (org-latex-to-html-convert-command):
* lisp/org/org-agenda.el (org-agenda-sorting-strategy):
* lisp/net/tramp.el (tramp-default-file-modes):
* lisp/net/newst-treeview.el
(newsticker-treeview-use-feed-name-from-url-list-in-treeview):
* lisp/net/eww.el (eww-auto-rename-buffer):
* lisp/mwheel.el (mouse-wheel-scroll-amount):
* lisp/mail/rmail.el (rmail-re-abbrevs):
* lisp/info.el (Info-history-forward-menu):
* lisp/gnus/nnselect.el (nnselect-retrieve-headers-override-function):
* lisp/gnus/gnus-start.el (gnus-subscribe-hierarchical-interactive):
* lisp/fringe.el (fboundp):
* lisp/eshell/esh-var.el (eshell-variable-aliases-list):
* lisp/emacs-lisp/checkdoc.el (checkdoc-column-zero-backslash-before-paren):
* lisp/dired-aux.el (dired-confirm-shell-command):
* lisp/calendar/calendar.el (calendar-time-zone-style):
* lisp/ansi-color.el (ansi-color-faces-vector):
(ansi-color-names-vector): Audit use of various single quotes in
Lisp doc strings.
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Audit symbol quoting in Lisp doc strings
* lisp/vc/vc-svn.el (vc-svn-dir-status-files):
* lisp/so-long.el (so-long-mode-maintain-preserved-variables):
* lisp/help-fns.el (help-fns--most-relevant-active-keymap):
* lisp/gnus/nnselect.el (nnselect-get-artlist):
(nnselect-store-artlist):
* lisp/forms.el (forms-enumerate):
* lisp/ffap.el (ffap-string-at-point):
* lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias):
Audit symbol quoting in Lisp doc strings.
2022-05-24 Michael Albinus <michael.albinus@gmx.de>
Add ".epub" to Tramp archive file suffixes.
* doc/misc/tramp.texi (Archive file names):
* lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".epub".
2022-05-24 Lars Ingebrigtsen <larsi@gnus.org>
Audit quoting symbols in C doc strings
* test/manual/etags/c-src/emacs/src/keyboard.c (Frecursive_edit):
* src/xfns.c (syms_of_xfns):
* src/xdisp.c (Fwindow_text_pixel_size):
(syms_of_xdisp):
* src/w32notify.c (Fw32notify_add_watch):
(Fw32notify_add_watch):
* src/frame.c (Fframe_child_frame_border_width):
* src/comp.c (Fcomp__subr_signature):
* src/alloc.c (Fgarbage_collect):
* lib-src/make-docfile.c (scan_c_stream): Audit quoting symbols in C
doc strings.
2022-05-24 Po Lu <luangruo@yahoo.com>
Allow the user to fix `x-mouse-click-focus-ignore-position' on some systems
* src/xterm.c (handle_one_xevent): Apply that variable instead.
(syms_of_xterm): Update doc string and add new option to adjust
the focus click timeout.
2022-05-24 Po Lu <luangruo@yahoo.com>
Fix use of wrong event structure handling XI_Enter events
* src/xterm.c (handle_one_xevent): Use `enter' instead of `xev'
to set the mouse click timeout.
2022-05-23 Po Lu <luangruo@yahoo.com>
* src/nsmenu.m (ns_menu_show): Use SAFE_ALLOCA.
2022-05-23 Po Lu <luangruo@yahoo.com>
Minor fixes to cursor color handling on Haiku
* src/haikufns.c (haiku_decode_color): New function.
(haiku_set_foreground_color, haiku_set_background_color)
(haiku_set_cursor_color, haiku_set_mouse_color): Use that
function to decode colors instead. Also set cursor GC
foreground when setting background color.
* src/haikuterm.c (haiku_merge_cursor_foreground): Fix color
equality test.
2022-05-23 Po Lu <luangruo@yahoo.com>
Only send fallback MONITORS_CHANGED_EVENT when dimensions really changed
* src/xterm.c (handle_one_xevent): Test that root window
configure width and height are not the same as the previously
recorded ones.
2022-05-23 Eli Zaretskii <eliz@gnu.org>
Avoid compiler warnings on macOS (bug#55595)
* configure.ac: Don't use -Wunknown-pragmas with Clang.
* src/comp.c (load_comp_unit): Avoid Clang compilation warning.
2022-05-23 Mattias Engdegård <mattiase@acm.org>
Less wrong printed circular list tail index (bug#55395)
When printing a circular list and `print-circle` is nil, use a
somewhat more meaningful ". #N" tail index. The previous method for
calculating that index was based on Floyd circularity detection being
used so it had been broken ever since the change to Brent's algorithm.
The new index is correct with respect to the start of the list itself
which is what it used to be before being completely broken.
It does not take into account the nesting depth of the list context.
* src/print.c (struct print_stack_entry, print_object):
Keep track of the tortoise index (which is cheap) instead of trying
to derive it from the printed element index.
* test/src/print-tests.el (print-test-rho, print-circular):
New test.
2022-05-23 Eli Zaretskii <eliz@gnu.org>
* src/w32menu.c (w32_menu_show): Use SAFE_ALLOCA. (Bug#55068)
2022-05-23 Eli Zaretskii <eliz@gnu.org>
Fix saveplace.el when desktop.el restores non-ASCII buffers
* lisp/saveplace.el (load-save-place-alist-from-file): Bind
'coding-system-for-read' to nil, so that the 'coding:' cookie in
the save-place file takes effect. (Bug#55592)
2022-05-23 Tino Calancha <tino.calancha@gmail.com>
zap-to-char: Fix interactive specification
* lisp/simple.el (zap-to-char): Include t in the list.
2022-05-23 Po Lu <luangruo@yahoo.com>
Adapt last change to Haiku as well
* src/haikumenu.c (digest_menu_items, haiku_menu_show): Use
SAFE_ALLOCA for various temporary buffers.
2022-05-23 Po Lu <luangruo@yahoo.com>
Fix stack overflows with large popup menus
* src/xmenu.c (x_menu_show): Allocate various stacks with
SAFE_ALLOCA.
2022-05-23 Po Lu <luangruo@yahoo.com>
Fix default child-frame-border-width on PGTK
* src/pgtkfns.c (Fx_create_frame): Make default
`child-frame-border-width' nil. (bug#55588)
2022-05-23 Lars Ingebrigtsen <larsi@gnus.org>
Improve command-error-function discoverability
* lisp/subr.el (error, user-error): Point to command-error-function.
* src/keyboard.c (syms_of_keyboard): Add an example (bug#40750).
2022-05-23 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Hanunoo script (bug#55581)
* lisp/language/philippine.el ("Hanunoo"): New language environment.
Add composition rules for Hanunoo. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Hanunoo.
* lisp/leim/quail/philippine.el ("hanunoo"): New input method.
* etc/HELLO: Add a Hanunoo greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-23 Lars Ingebrigtsen <larsi@gnus.org>
Make remapped keys work in set-transient-map
* lisp/subr.el (set-transient-map): Make remapped keys work in
transient maps (bug#40096).
2022-05-23 Po Lu <luangruo@yahoo.com>
Fix coding style of recent change
* src/emacs.c (main): Fix coding style by putting the = operator
on the right row.
2022-05-23 Po Lu <luangruo@yahoo.com>
Implement monitor change functions on Haiku
* src/haiku_io.c (haiku_len): Handle new event type.
* src/haiku_support.cc (class EmacsScreenChangeMonitor): New
class.
(class Emacs, Emacs): Create new screen change monitor.
(DispatchMessage): Update fullscreen state if the screen
changed.
(SetFullscreen): Don't punt if fullscreen mode is identical.
* src/haiku_support.h (enum haiku_event_type): New event
`SCREEN_CHANGE_EVENT'.
(struct haiku_screen_changed_event): New struct.
* src/haikuterm.c (haiku_read_socket): Handle new event.
2022-05-23 Lars Ingebrigtsen <larsi@gnus.org>
Make `d' in Dired skip dot files
* lisp/dired.el (dired-mark): Skip dot files (bug#38729). This
makes `C-u 10 d' (etc) consistent with marking the next ten lines
with the mouse and then hitting `d'.
2022-05-23 Lars Ingebrigtsen <larsi@gnus.org>
Include development data in --version output
* src/emacs.c (main): Include development into in --version output
(bug#38657).
2022-05-23 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (switch-to-buffer-other-tab): Use pop-to-buffer (bug#55582).
Replace display-buffer with pop-to-buffer that sets the current buffer
explicitly.
2022-05-23 Lars Ingebrigtsen <larsi@gnus.org>
Allow extending 'save-some-buffers'
* lisp/abbrev.el (abbrev--possibly-save): Separated out from
`save-some-buffers'.
(save-some-buffers-functions): Add to the save function.
* lisp/files.el (save-some-buffers-functions): New variable.
(save-some-buffers): Use it.
(save-buffers-kill-emacs): Also use it to see if we have something
to save (bug#55579).
2022-05-23 Lars Ingebrigtsen <larsi@gnus.org>
Make bootstrap remove more generated files
* Makefile.in (bootstrap-clean): Remove lisp/leim/ja-dic/.
2022-05-23 Lars Ingebrigtsen <larsi@gnus.org>
Make bootstrap remove the native-lisp/ directory
* Makefile.in (bootstrap-clean): Remove the native-lisp/ directory.
2022-05-23 Po Lu <luangruo@yahoo.com>
Minor fixes to PGTK child frames
* src/gtkutil.c (xg_check_special_colors): Handle child frames
correctly.
* src/pgtkfns.c (pgtk_set_child_frame_border_width): Synchronize
code from X. (bug#55588)
* src/pgtkmenu.c (pgtk_menu_show, pgtk_dialog_show): Allow in
child frames. There are no problems here.
* src/pgtkterm.c (pgtk_mouse_position): Clean up coding style.
2022-05-22 Po Lu <luangruo@yahoo.com>
Implement monitor change functions on GNUstep
* src/nsfns.m (Fns_display_monitor_attributes_list): Fix coding
style.
* src/nsterm.m (nstrace_leave, nstrace_restore_global_trace_state)
(nstrace_fullscreen_type_name): Fix coding style.
(ns_displays_reconfigured, ns_term_init): Make a record of the
previous display attributes list and avoid storing duplicate
events.
([EmacsApp init]): Listen for
NSApplicationDidChangeScreenParametersNotification.
([EmacsApp updateMonitors:]): New method.
(syms_of_nsterm): New staticpro.
2022-05-22 Po Lu <luangruo@yahoo.com>
Handle screen size changes if the RandR library isn't available
* src/xterm.c (handle_one_xevent): [!HAVE_XRANDR]: Store
MONITORS_CHANGED_EVENT upon root window reconfiguration.
2022-05-22 Po Lu <luangruo@yahoo.com>
Fix `gui-backend-selection-owner-p' on Haiku
* src/haiku_select.cc (be_update_clipboard_count): New function.
(be_set_clipboard_data): Update clipboard counts.
(BClipboard_owns_clipboard, clipboard_owner_p)
(BClipboard_owns_primary, primary_owner_p)
(BClipboard_owns_secondary, secondary_owner_p): Rename functions
somewhat.
(be_clipboard_owner_p): New function.
* src/haikuselect.c (Fhaiku_selection_put)
(Fhaiku_selection_owner_p): Update selection counts as well.
* src/haikuselect.h: Update prototypes.
2022-05-22 Po Lu <luangruo@yahoo.com>
Use GDK for handling monitor changes when built with GTK
* src/xterm.c (x_monitors_changed_cb): New function.
(handle_one_xevent): Don't handle RRNotify and
RRScreenChangeNotify on GTK.
(x_term_init): Connect to GdkScreen::monitors-changed instead of
selecting for RRNotify events.
(mark_xterm): Also mark `last_monitor_attributes_list' on GTK.
* src/xterm.h (struct x_display_info): Enable
`last_monitor_attributes_list' on GTK builds as well.
2022-05-22 F. Jason Park <jp@neverwas.me>
Recognize DCC SSEND when receiving files in erc-dcc
* lisp/erc/erc-dcc.el (erc-dcc-open-network-stream): Use TLS
for new connections when :secure flag is set.
(erc-dcc-do-GET-command): Set secure flag when user explicitly passes
an "-s" option.
(erc-dcc-do-LIST-command): Show an "s" to indicate a secure connection
when applicable.
(erc-dcc-query-handler-alist): Add extra items for "SSEND", etc.
(erc-dcc-handle-ctcp-send): Set secure flag when a leading "S" appears
in the command type.
2022-05-22 F. Jason Park <jp@neverwas.me>
Accommodate nonstandard turbo file senders in erc-dcc
* lisp/erc/erc-dcc.el (erc-dcc-list): Document optional :turbo item.
(erc-message-english-dcc-list-{head,line,item}): Adjust format strings
to make room for "(T)" turbo indicator.
(erc-dcc-do-GET-command): Optionally set :turbo in `erc-dcc-list'
entry when passed "-t" in the "/DCC GET" slash command. Also add
switch to command line in front-matter Commentary, but refrain from
publicizing further because our implementation is only defensive and
only for receiving.
(erc-dcc-do-LIST): Print message with new format specifier for turbo
status.
(erc-dcc-ctcp-query-send-regexp): Account for T- and S-prefixed
commands. Receiving from an SSEND-capable sender will be added in a
subsequent commit.
(erc-dcc-handle-ctcp-send): Set :turbo item in `erc-dcc-list' member
when new match group is nonempty.
(erc-dcc--X-send-final-turbo-ack): New internal variable and potential
future option for extreme corner cases involving maverick turbo
senders, like WeeChat, who don't use the TSEND command variant.
(erc-dcc-get-filter): Don't send when turbo is active.
* test/lisp/erc/erc-dcc-tests.el: Add new file.
(Bug#54458)
2022-05-22 F. Jason Park <jp@neverwas.me>
Allow matching against string values in erc-dcc-member
* lisp/erc/erc-dcc.el (erc-dcc-member): Be more tolerant in the
catch-all case by testing for equality instead of identity.
(erc-dcc-do-GET-command): Pass file name when querying
`erc-dcc-member'. (Bug#54458)
2022-05-22 F. Jason Park <jp@neverwas.me>
Don't send reports in erc-dcc-get-filter when nested
* lisp/erc/erc-dcc.el (erc-dcc-get-filter): Don't bother sending a
"received so far" receipt if another attempt is still ongoing.
(Bug#54458)
2022-05-22 F. Jason Park <jp@neverwas.me>
Summarize failed transfers in erc-dcc
* lisp/erc/erc-dcc.el (erc-dcc-get-sentinel): Display error when total
byte count received is lower than expected.
(erc-message-english-dcc-get-failed): Add `dcc-get-failed' to the
English messages catalog.
(erc-dcc-get-file): Tweak initialization of `erc-dcc-entry-data'.
(Bug#54458)
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/cedet/semantic/fw.el: Fix typo
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
mode-local: Revert the deprecation of buffer-local overrides
Obviously, I did not understand how the <foo>--install-parser was invoked.
Revert "mode-local: Deprecate buffer-local overrides"
Revert "semantic-install-function-overrides: Declare obsolete"
Revert "wisent.el: Prefer `define-mode-local-override`"
This reverts commits 91bc24c46768aab4a851c87edaea05c7476ff779,
d2e0d1452b976a51579cf044257326850804c562, and
3294ad44ebcd024b4ada68d00bedca33acc52de6.
2022-05-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix bytecomp-test--with-suppressed-warnings test
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-test--with-suppressed-warnings): Adjust test to change
in warning message.
2022-05-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous warning suppression change
* lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn)
(byte-compile-subr-wrong-args):
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
* lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
The `wrong-args' warning is really called `callargs'.
2022-05-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warning in semantic-install-function-overrides
* lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
Suppress message about wrong number of arguments.
2022-05-22 Lars Ingebrigtsen <larsi@gnus.org>
Allow suppressing messages about the wrong number of arguments
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Add
`wrong-args'.
* lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn)
(byte-compile-subr-wrong-args): Allow suppressing wrong number of
arguments.
2022-05-22 Juri Linkov <juri@linkov.net>
Enable keys M-down, M-up, M-RET for in-buffer completion
* lisp/minibuffer.el (completion-in-region-mode-map): Add keybindings M-<up>
for minibuffer-previous-completion, M-<down> for minibuffer-next-completion,
M-RET for minibuffer-choose-completion.
(completion-in-region-mode): Set buffer-local
'minibuffer-completion-auto-choose' to nil.
(minibuffer-next-completion): Get the value of
'minibuffer-completion-auto-choose' from the minibuffer.
(minibuffer-previous-completion): Simplify by delegating to
'minibuffer-next-completion'.
* doc/emacs/programs.texi (Symbol Completion): Add description of keys
M-down, M-up, M-RET.
https://lists.gnu.org/archive/html/emacs-devel/2022-05/msg00916.html
2022-05-22 Alan Mackenzie <acm@muc.de>
CC Mode: Restore string fence properties at each relevant external entry point
This fixes bug #55230.
* lisp/progmodes/cc-defs.el (c-string-fences-set-flag, c-with-string-fences):
New variable and macro.
* lisp/progmodes/cc-mode.el (c-called-from-text-property-change-p): Add
remove-text-properties to the list of accepted functions.
(c-clear-string-fences, c-restore-string-fences): Surround the functions'
innards with c-save-buffer-state to prevent text property changes causing
change functions to be called.
(c-before-change, c-after-change, c-font-lock-fontify-region): Replace the
explicit calls to c-restore-string-fences and c-clear-string-fences with
invocations of the new macro c-with-string-fences.
* lisp/progmodes/cc-awk.el (c-awk-extend-and-syntax-tablify-region)
(c-awk-end-of-defun)
* lisp/progmodes/cc-cmds.el (c-show-syntactic-information)
(c-electric-backspace, c-hungry-delete-backwards, c-electric-delete-forward)
(c-hungry-delete-forward, c-electric-pound, c-electric-brace)
(c-electric-slash, c-electric-star, c-electric-semi&comma, c-electric-colon)
(c-electric-lt-gt, c-electric-paren, c-beginning-of-defun, c-end-of-defun)
(c-display-defun-name, c-mark-function, c-beginning-of-statement)
(c-end-of-statement, c-indent-command, c-indent-exp, c-indent-defun)
(c-indent-line-or-region, c-fill-paragraph, c-indent-new-comment-line)
(c-context-line-break)
* lisp/progmodes/cc-guess.el (c-guess-region-no-install): These are all
"boundary" functions to CC Mode. Surround each by c-with-string-fences.
2022-05-22 kobarity <kobarity@gmail.com>
Don't font-lock invalid invalid class/function names
* lisp/progmodes/python.el (python-font-lock-keywords-level-1):
Don't font-lock invalid invalid class/function names (bug#55573).
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
mode-local: Deprecate buffer-local overrides
* lisp/cedet/mode-local.el (mode-local-bind): Make all args mandatory.
Deprecate the use of a nil `mode` argument.
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
semantic-install-function-overrides: Declare obsolete
* lisp/cedet/semantic/fw.el (semantic-install-function-overrides):
Declare obsolete.
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
wisent.el: Prefer `define-mode-local-override`
* lisp/cedet/semantic/wisent.el (wisent--parse-stream): Rename from
`wisent-parse-stream` and mark the old name obsolete.
(semantic-parse-stream): Override with `define-mode-local-override`.
* lisp/cedet/semantic/wisent/grammar.el
(semantic-grammar-setupcode-builder): Don't override
`semantic-parse-stream` manually here via
`semantic-install-function-overrides`.
* lisp/cedet/semantic/grm-wy-boot.el: Refresh.
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
wisent/grammar.el: Prefer `define-mode-local-override`
* lisp/cedet/semantic/wisent/grammar.el
(semantic-grammar-parsetable-builder, semantic-grammar-setupcode-builder):
Override with `define-mode-local-override`.
(wisent-grammar-mode): Don't override them with
`semantic-install-function-overrides`.
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
cedet/html.el: Prefer `define-mode-local-override`
* lisp/cedet/semantic/html.el (semantic-tag-components): Override via
`define-mode-local-override`.
(semantic-default-html-setup): Don't override via
`semantic-install-function-overrides`.
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
bovine/grammar.el: Prefer `define-mode-local-override`
* lisp/cedet/semantic/bovine/grammar.el
(semantic-grammar-parsetable-builder, semantic-grammar-setupcode-builder):
Override with `define-mode-local-override`.
(bovine-grammar-mode): Don't override them with
`semantic-install-function-overrides`.
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
cedet/texi.el: prefer `define-mode-local-override`
* lisp/cedet/semantic/texi.el (semantic-parse-region)
(semantic-parse-changes): Override with `define-mode-local-override`.
(semantic-default-texi-setup): Don't override them with
`semantic-install-function-overrides`.
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
comp.el: Cosmetic changes
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Tweak code.
(comp-run-async-workers): Don't set `buffer-read-only` directly.
(native--compile-async): Fix misuse of "path".
2022-05-22 Stefan Monnier <monnier@iro.umontreal.ca>
Run `minibuffer-exit-hook` in the right buffer
* src/minibuf.c (run_exit_minibuf_hook): Take the minibuffer as arg
and run the hook in that buffer.
(read_minibuf): Adjust accordingly.
2022-05-22 Michael Albinus <michael.albinus@gmx.de>
* lisp/window.el (display-buffer-avoid-small-windows): Fix :type.
2022-05-22 Po Lu <luangruo@yahoo.com>
Clean up Haiku code
* src/haiku_support.cc (movement_locker, class EmacsWindow)
(MouseMoved): Delete `movement_locker' and associated hack,
since it's superseeded by some code in haiku_read_socket.
(key_map, key_chars, dpy_color_space, popup_track_message)
(alert_popup_value, grab_view, grab_view_locker)
(drag_and_drop_in_progress): Write comments and fix
initializers.
* src/haikuterm.c (haiku_read_socket): Update comment.
2022-05-22 kobarity <kobarity@gmail.com>
Fix two typos in comments in python.el
* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration): Fix typos in
comments (bug#55557).
2022-05-22 Damien Cassou <damien@cassou.me>
Fix submit-emacs-patch
submit-emacs-patch creates a new message and immediately inserts new
lines without first moving the point to the message body. This
doesn't work with notmuch (and its notmuch-user-agent symbol) because
the point starts in the headers and nothing in Emacs specifies that
the mua should move point to the body automatically.
* lisp/mail/emacsbug.el (submit-emacs-patch): Make sure point is in
the body before inserting new lines (bug#55571).
2022-05-22 Lele Gaifax <lele@metapensiero.it>
Properly indent Python PEP634 match/case blocks
Python 3.10 introduced the "structural pattern matching" syntax, and
commit 139042eb8629e6fd49b2c3002a8fc4d1aabd174d told font-lock about the
new keywords. This adds them also as block-start statements, to enable
proper indentation of such blocks.
* lisp/progmodes/python.el (python-rx): Add "match" and "case" as
block-start keywords.
* test/lisp/progmodes/python-tests.el (python-indent-after-match-block,
python-indent-after-case-block): New tests to verify indentation of
"match" and "case" blocks (bug#55572).
2022-05-22 Po Lu <luangruo@yahoo.com>
Implement `display-monitors-changed-functions' on MS Windows
* src/w32term.c (w32_read_socket): Handle WM_DISPLAYCHANGE by
sending monitor change events.
2022-05-22 Damien Cassou <damien@cassou.me>
Improve documentation of mail-user-agent.
* doc/emacs/sending.texi (Mail Methods):
* lisp/simple.el (mail-user-agent): Mention additional options
of non-bundled MUA. (Bug#5569)
2022-05-22 Po Lu <luangruo@yahoo.com>
Fix uninitialized use of xm drag receiver data
* src/xterm.c (xm_read_drag_receiver_info): Just return if the
protocol is invalid. Reported by Jashank Jeremy
<jashank@rulingia.com.au>.
2022-05-22 Po Lu <luangruo@yahoo.com>
Fix build with --enable-check-lisp-object-type
* src/xterm.c (handle_one_xevent): Fix use of Fequal. Reported
by Jashank Jeremy <jashank@rulingia.com.au>.
2022-05-22 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Tagalog script
* lisp/language/philippine.el ("Tagalog"): New language environment.
Add composition rules for Tagalog. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Tagalog.
* lisp/leim/quail/philippine.el ("tagalog"): New input method.
* lisp/loadup.el: Preload lisp/language/philippine.el.
* etc/HELLO: Add a Tagalog greeting.
* etc/NEWS: Announce the new language environment and its
input method.
(Bug#55529)
2022-05-22 Po Lu <luangruo@yahoo.com>
Fix use-after-free in x_destroy_window
* src/xterm.c (x_destroy_window): Fix use after free of the
dpyinfo.
2022-05-22 Po Lu <luangruo@yahoo.com>
Fix focus redirection to/from surrogate minibuffer frames on Haiku
* src/haikuterm.c (haiku_get_focus_frame): New function.
(haiku_create_terminal): Register new hook.
2022-05-21 Po Lu <luangruo@yahoo.com>
Fix GNUstep build
* src/nsfns.m (ns_implicitly_set_icon_type): Don't use UTType if
GNUstep.
2022-05-21 Po Lu <luangruo@yahoo.com>
Fix compiler warnings on Mac OS X 10.12
* configure.ac: Check for Mac OS X 12 and link with
UniformTypeIdentifiers.framework.
* src/nsfns.m (IOMasterPort): Define to `IOMainPort' on Mac OS X
12.
(ns_implicitly_set_icon_type, Fns_read_file_name):
* src/nsxwidget.m: ([XwWebView
initWithFrame:configuration:xwidget:]): Fix uses of obsolete
things.
2022-05-21 Po Lu <luangruo@yahoo.com>
Set display size upon RRScreenChangeNotify
* src/xterm.c (handle_one_xevent): Handle RRScreenChangeNotify
correctly.
2022-05-21 Po Lu <luangruo@yahoo.com>
Don't unnecessarily call monitor change functions
* src/xterm.c (handle_one_xevent): If monitor attributes didn't
change, don't send monitor change event.
(x_term_init, mark_xterm): Mark and init new field.
* src/xterm.h (struct x_display_info): New field
`last_monitor_attributes_list'.
2022-05-21 Eli Zaretskii <eliz@gnu.org>
More fixes in abbrev.el doc strings
* lisp/abbrev.el (inverse-add-global-abbrev, inverse-add-mode-abbrev):
Document the effect of negative ARG. (Bug#55527)
2022-05-21 Michael Albinus <michael.albinus@gmx.de>
Some cleanups in tramp-tests.el
* test/lisp/net/tramp-tests.el (tramp-fuse-remove-hidden-files): Declare.
(tramp-test16-directory-files)
(tramp-test16-file-expand-wildcards)
(tramp-test26-file-name-completion, tramp--test-check-files): Use it.
(tramp--test-check-files): Delete directory recursively.
(tramp-test43-file-system-info): Make test more robust.
2022-05-21 kobarity <kobarity@gmail.com>
Fix recently introduced Python font lock breakage of chained assignments
* lisp/progmodes/python.el (python-font-lock-assignment-matcher):
Fix fontification of chained assignments (bug#54992).
2022-05-21 Michael Albinus <michael.albinus@gmx.de>
Merge from origin/emacs-28
f836ed098f Some minor Tramp fixes
2022-05-21 Lars Ingebrigtsen <larsi@gnus.org>
Add new hooks when enabling and disabling themes
* lisp/custom.el (enable-theme-hook, disable-theme-hook): New
hooks (bug#37802).
(enable-theme, disable-theme): Call them.
2022-05-21 Lars Ingebrigtsen <larsi@gnus.org>
Add note about Tramp completion to completion-styles doc string
* lisp/minibuffer.el (completion-styles): Add note about Tramp
completion (bug#37954).
2022-05-21 Arash Esbati <arash@gnu.org>
Remove mention of removed nnimap-nov-is-evil variable
* doc/misc/gnus.texi (Slow/Expensive Connection): Remove mention
of removed nnimap-nov-is-evil variable (bug#55556).
2022-05-21 Tino Calancha <tino.calancha@gmail.com>
zap-to-char: case sensitive for upper-case characters
In interactive calls, behave case-sensitively if the given char
is an upper-case character. Same for zap-up-to-char (Bug#54804).
This is analog to what the user-level incremental search feature does.
* lisp/misc.el (zap-up-to-char): Add an optional arg INTERACTIVE.
Perform a case-sensitive search when INTERACTIVE is non-nil and
CHAR is an upper-case character.
* lisp/simple.el (zap-to-char): Same.
* etc/NEWS (Editing Changes in Emacs 29.1): Announce this change.
* test/lisp/misc-tests.el (misc-test-zap-up-to-char): Add test cases.
* test/lisp/simple-tests.el (with-zap-to-char-test): Add helper macro.
(simple-tests-zap-to-char): Add a test.
2022-05-21 Po Lu <luangruo@yahoo.com>
Improve doc for `display-monitors-changed-functions'
* doc/lispref/frames.texi (Multiple Terminals): Describe how to
retrieve the new monitor configuration inside
`display-monitor-attributes-list'.
2022-05-21 Eli Zaretskii <eliz@gnu.org>
Improve documentation strings and prompts in abbrev.el
* lisp/abbrev.el (abbrev-file-name, only-global-abbrevs)
(copy-abbrev-table, insert-abbrevs, list-abbrevs)
(abbrev-table-name, edit-abbrevs, define-abbrevs)
(read-abbrev-file, quietly-read-abbrev-file, write-abbrev-file)
(abbrev-edit-save-to-file, abbrev-edit-save-buffer)
(add-mode-abbrev, add-global-abbrev, inverse-add-mode-abbrev)
(inverse-add-global-abbrev, abbrev-prefix-mark)
(expand-region-abbrevs, abbrev-table-get, abbrev-table-put)
(abbrev-get, abbrev-minor-mode-table-alist, abbrevs-changed)
(abbrev-all-caps, last-abbrev-text, last-abbrev-location)
(clear-abbrev-table, define-abbrev, define-global-abbrev)
(define-mode-abbrev, abbrev--active-tables, abbrev--symbol)
(abbrev-symbol, abbrev-expansion, abbrev-insert)
(abbrev-expand-function, abbrev--suggest-above-threshold)
(abbrev--suggest-saved-recommendations)
(abbrev--suggest-shortest-abbrev, abbrev--suggest-get-totals)
(insert-abbrev-table-description, define-abbrev-table)
(abbrev-table-menu): Fix doc strings: wording, punctuation,
clarity.
(add-abbrev, inverse-add-abbrev): Improve the prompt text.
(Bug#55527)
2022-05-21 Po Lu <luangruo@yahoo.com>
Fix compiler warnings in printer code on 32-bit systems
* print.c (enum print_entry_type, struct print_stack_entry):
Clean up coding style.
(struct print_stack): Make print_stack_entry.list.idx intmax_t,
like it was before the nonrecursive printing was installed.
Also clarify what "Brent cycle detection" means in the comments.
2022-05-21 Po Lu <luangruo@yahoo.com>
Compute frame workareas on Haiku
* lisp/frame.el (display-monitor-attributes-list): Implement
specially on Haiku as well.
* src/haiku_support.cc (get_zoom_rect): New function. Extract
CalculateZoomRect here.
(class EmacsWindow, SetFullscreen): Use that instead of
CalculateZoomRect.
(be_get_explicit_workarea): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (Fhaiku_display_monitor_attributes_list): New
function.
(syms_of_haikufns): Register new subr.
2022-05-20 Po Lu <luangruo@yahoo.com>
Implement monitor change hooks on NS
This hasn't been tested with anything more complicated than
removing an emulated monitor.
* nsterm.m (ns_displays_reconfigured): New function.
(ns_term_init): Register display reconfiguration callbacks.
2022-05-20 Po Lu <luangruo@yahoo.com>
Call XRRUpdateConfiguration when the root window geometry changes
* src/xterm.c (handle_one_xevent): Call XRRUpdateConfiguration
on RRScreenChangeNotify and upon ConfigureNotify events for the
root window.
2022-05-20 Po Lu <luangruo@yahoo.com>
Implement `display-monitors-changed-hook' on PGTK
* src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground):
Pacify GCC 12.
(pgtk_monitors_changed_cb): New function.
(pgtk_term_init): Attach new signal handler.
2022-05-20 Po Lu <luangruo@yahoo.com>
Add a hook run upon monitor configuration changes
* doc/lispref/frames.texi (Multiple Terminals): Document new
hook `display-monitors-changed-functions'.
* etc/NEWS: Announce new abnormal hook.
* src/keyboard.c (kbd_buffer_get_event): Handle
MONITORS_CHANGED_EVENT.
(syms_of_keyboard): New hook and defsyms.
* src/termhooks.h (enum event_kind): Add new event
`MONITORS_CHANGED_EVENT'.
* src/xterm.c (handle_one_xevent): Handle RRNotify and
RRScreenChangeNotify events.
(x_term_init): Select for RRScreenChange, RRCrtcChange and
RROutputChange.
* src/xterm.h (struct x_display_info): Improve RandR version
detection.
2022-05-20 Alan Mackenzie <acm@muc.de>
Restore the Fselect_window call in gui_consider_frame_title.
This fixes bug #55412. The call to Fselect_window was removed on 2021-03-21
in the commit "Prevent open minibuffers getting lost when their frame gets
deleted". This call is actually needed to determine current elements of the
pertinent window and frame when these are used in the frame title.
* src/frame.c (do_switch_frame): When the selected window in the target frame
is the mini-window, switch away from this window unless there is a valid
minibuffer there.
* src/frame.h (struct frame): Add an incidental comment about the element
selected_window.
* src/minibuf.c (move_minibuffers_onto_frame): No longer set the selected
window of the source frame. This action is now performed later, on returning
to that frame, in do_switch_frame when needed (see above).
* src/xdisp.c (gui_consider_frame_title): Replace the Fselect_window call and
associated ancillary settings.
2022-05-20 Stefan Kangas <stefan@marxist.se>
Remove compat code; assume imenu.el exists
* lisp/progmodes/antlr-mode.el (antlr-mode):
* lisp/progmodes/cperl-mode.el (cperl-menu):
* lisp/progmodes/f90.el (f90-mode-map):
* lisp/progmodes/fortran.el (fortran-menu):
* lisp/speedbar.el (speedbar-use-imenu-flag): Remove compat code;
assume imenu.el exists.
2022-05-20 Eli Zaretskii <eliz@gnu.org>
Advise against settings in the MS-Windows system registry
* doc/emacs/cmdargs.texi (MS-Windows Registry): Advise against
setting environment variables in the system registry. (Bug#16429)
2022-05-20 Po Lu <luangruo@yahoo.com>
Check for allocation errors when setting XdndActionDescription
* src/xterm.c (x_dnd_begin_drag_and_drop): Check for BadAlloc
when setting action descriptions.
2022-05-20 Eli Zaretskii <eliz@gnu.org>
Document 'enriched-toggle-markup'
* etc/enriched.txt: Document the new 'enriched-toggle-markup'
command. (Bug#33855)
2022-05-20 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option display-buffer-avoid-small-windows
* doc/lispref/windows.texi (Choosing Window Options): Document it.
* lisp/window.el (display-buffer-avoid-small-windows): New user
option (bug#10186).
(get-lru-window): Use it.
2022-05-20 Lars Ingebrigtsen <larsi@gnus.org>
Clarify select-active-regions doc string
* src/keyboard.c (syms_of_keyboard): Clarify doc string (bug#29889).
2022-05-20 Po Lu <luangruo@yahoo.com>
Fix race conditions processing zoom events on Haiku
* src/haiku_support.cc (Zoom):
* src/haiku_support.h (struct haiku_zoom_event): Include the
current fullscreen mode in the event.
* src/haikuterm.c (haiku_read_socket): Use that instead of the
current frame's fullscreen mode.
2022-05-20 Lars Ingebrigtsen <larsi@gnus.org>
Re-fix previous `&' dired change
* lisp/dired-aux.el (dired-shell-stuff-it): Re-fix the previous
change -- the &wait was in the wrong place (bug#36331).
2022-05-20 Philip Kaludercic <philipk@posteo.net>
Add option to kill a shell buffer when the process ends
* shell.el (shell-kill-buffer-on-quit): Add new option (bug#55426).
(shell): Respect 'shell-kill-buffer-on-quit'.
* NEWS: Mention 'shell-kill-buffer-on-quit'.
2022-05-20 Po Lu <luangruo@yahoo.com>
Fix NS port warnings with GCC 12
* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground):
Clear s->char2b after function returns.
2022-05-20 Po Lu <luangruo@yahoo.com>
Remove flickering when toggling between different fullscreen states on Haiku
* src/haiku_support.cc (FrameMoved): Don't allow moving the
frame along the "filled" axis when fullwidth or fullheight.
(ClearFullscreen): New argument `mode'. Return the previous
rect but don't revert the frame to it if the target mode is not
NONE.
(SetFullscreen): Use rect provided by ClearFullscreen instead.
2022-05-19 Po Lu <luangruo@yahoo.com>
Minor cleanups to X drag-and-drop code
* src/xterm.c (struct x_client_list_window): Write comments
describing the meaning of each field.
(XM_DRAG_PROTOCOL_VERSION, xm_setup_dnd_targets)
(xm_setup_drag_info, xm_read_drag_receiver_info)
(x_dnd_compute_toplevels): Don't hard-code the supported Motif
protocol version.
2022-05-19 Po Lu <luangruo@yahoo.com>
Implement `cross-disabled-images' on Haiku
* src/haiku_draw_support.cc (be_draw_cross_on_pixmap_1)
(be_draw_cross_on_pixmap): New functions.
* src/haiku_support.h: Update prototypes.
* src/image.c (image_pixmap_draw_cross, image_disable_image):
Implement drawing cross on Haiku.
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Rename compare-window-configurations and update doc
* doc/lispref/windows.texi (Window Configurations): Update name.
* lisp/strokes.el (strokes-window-configuration-changed-p):
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Update
callers and references.
* lisp/subr.el (compare-window-configurations): Make into obsolete
alias.
* src/window.c (Fwindow_configuration_equal_p): Rename (bug#14964).
2022-05-19 Theodor Thornhill <theo@thornhill.no>
Fix typo and argument in treesit-beginning-of-defun, etc
* lisp/treesit.el (treesit-beginning-of-defun, treesit-end-of-defun):
Fix typo, add shield for argument.
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Don't have the tutorial ask to save if we haven't moved
* lisp/tutorial.el (tutorial--save-on-kill): Don't ask if the user
hasn't moved point (bug#37326).
(help-with-tutorial): Set the start point.
2022-05-19 Po Lu <luangruo@yahoo.com>
Implement more data type conversions for Haiku selections
* src/haikuselect.c (haiku_message_to_lisp):
(lisp_to_type_code):
(haiku_lisp_to_message):
(Fhaiku_drag_message): Recognize `double' and `float' types.
(syms_of_haikuselect): New defsyms.
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix font-locking of (defun foo (function ...))
* lisp/emacs-lisp/lisp-mode.el (lisp--el-funcall-position-p):
Don't colorize the `function' in (defun foo (function ...)) as a
special form (bug#37074).
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Make diff--font-lock-prettify do less if we don't have a left fringe
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Don't remove
insert/deletions from the buffer if we don't have a left fringe
(bug#37019).
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Add a new command 'yank-in-context'
* lisp/simple.el (escaped-string-quote): New variable.
(yank-in-context): New command.
(yank-in-context--transform): Helper function.
* lisp/progmodes/sh-script.el (sh-mode): Set up an
escaped-string-quote function.
* lisp/progmodes/sql.el (sql-mode): Define escaped-string-quote.
2022-05-19 Po Lu <luangruo@yahoo.com>
Fix session management detection of the first X display
* src/xterm.c (x_term_init): Check that there is no other
display in the chain instead of testing the terminal ID.
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Clarify yank-transform-functions doc string
* lisp/simple.el (yank-transform-functions): Clarify calling
convention.
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Make completion in emacs-lisp-mode intern fewer symbols
* lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Don't
intern the string before point just to check whether we're looking
at `ignore-error' (bug#55491).
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Make `&' in dired be more consistent wrt. user input
* lisp/dired-aux.el (dired-do-async-shell-command): Mention that
commands here don't accept input.
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Add new command 'enriched-toggle-markup'
* lisp/textmodes/enriched.el (enriched-toggle-markup): New command
(bug#33855).
2022-05-19 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option 'yank-transform-functions'
* doc/lispref/text.texi (Yanking): Mention it.
(Yanking): Document it.
* lisp/simple.el (yank-transform-functions): New user option.
(yank): Mention it.
* lisp/subr.el (insert-for-yank): Use it.
2022-05-19 Eli Zaretskii <eliz@gnu.org>
Provide Oriya language-environment alongside Odia
* lisp/language/indian.el ("Oriya"): Add another name for the Odia
language-environment. (Bug#55493)
2022-05-19 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Rename Oriya to Odia, and more
Due to "The Orissa (Alteration of Name) Act, 2011"
(https://legislative.gov.in/sites/default/files/A2011-15.pdf)
Oriya has been renamed to Odia.
* lisp/language/indian.el (set-language-info-alist): Rename
Oriya to Odia. Improve Oriya composition rules.
* lisp/leim/quail/indian.el ("odia"): New input method.
* lisp/erc/erc-lang.el: Obsolete the iso-638-languages variable
(which was a typo) and replace it with iso-639-1-languages.
* etc/HELLO: Rename Oriya to Odia.
Replace the old Odia greeting with the new one.
Add a Hindi greeting separate from the Devanagari one.
(Bug#55493)
2022-05-19 Po Lu <luangruo@yahoo.com>
Whitelist some incorrectly labeled "color" fonts under Xft
* etc/PROBLEMS: Document problem with fonts incorrectly labeled
as color fonts under Xft.
* src/ftfont.c (xft_color_font_whitelisted_p): New function.
(ftfont_spec_pattern, ftfont_list): Respect whitelisting of
"color" fonts under Xft.
* src/xftfont.c (syms_of_xftfont): New variable
`xft-color-font-whitelist'.
2022-05-19 Po Lu <luangruo@yahoo.com>
Fix tooltip buffer flipping inside popup menus
* src/xterm.c (x_flip_and_flush): Don't ignore if
`inhibit-redisplay' but F is a tooltip frame. (bug#55519)
2022-05-19 Po Lu <luangruo@yahoo.com>
Fix error handling when allowing touch events
* src/xterm.c (handle_one_xevent): Catch errors correctly when
linking touch points.
2022-05-19 João Távora <joaotavora@gmail.com>
Don't ignore flymake-no-changes-timeout
Also per https://github.com/joaotavora/eglot/issues/957.
Only actually and eagerly report LSP diagnotics if the user has
Flymake starting automatically on a timer (flymake-no-changes-timeout
is a number).
By contrast, if flymake-no-changes-timeout is nil, the user starts the
diagnostic collection process on-demand via 'M-x flymake-start'.
Since the control of such collection is impossible with LSP, we should
just hold on to whatever diagnostics we have (which are presumably
up-to-date) until the next invocation of 'eglot-flymake-backend'.
For now, this doesn't affect Flymake "list-only" diagnostics. Those
are reported via the 'flymake-list-only-diagonstics' variable and
are always communicated immediately to it.
* eglot.el: (eglot-handle-notification
textDocument/publishDiagnostics): Consult flymake-no-changes-timeout.
Suggested-by: Jim Davis <jim.jd.davis@gmail.com>
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/508
2022-05-19 Eli Zaretskii <eliz@gnu.org>
Fix Flymake diagnostics reporting in non-UTF-8 locales
* lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile)
(elisp-flymake--batch-compile-for-flymake): Bind I/O encoding to
UTF-8, instead of relying on the locale's defaults. This is
needed because ELisp files use UTF-8 by default, but Flymake
doesn't know about that, since it isn't specific to ELisp.
2022-05-19 Po Lu <luangruo@yahoo.com>
Fix specifying terminal names to some functions on Haiku
* src/haikufns.c (haiku_display_info_for_name): Implement
correctly.
2022-05-19 Po Lu <luangruo@yahoo.com>
Satisfy Valgrind when iconifying frames
* src/xterm.c (x_iconify_frame): Set the rest of data in the
WM_CHANGE_STATE message to 0 instead of leaving it
uninitialized.
2022-05-18 Po Lu <luangruo@yahoo.com>
Fix race conditions processing frame fullscreen state on Haiku
* doc/lispref/frames.texi (Size Parameters): Remove note saying
Haiku doesn't support `fullwidth' and `fullboth'.
* src/haiku_support.cc (subset_windows, class EmacsWindow)
(Unparent, ParentTo): Stop calling old fullscreen functions.
(ClearFullscreen, FullscreenRectForMode, SetFullscreen): New
functions. Completely rewrite old zoom and fullscreen handling
code.
(Zoom): Send a ZOOM_EVENT and don't actually zoom.
(BWindow_zoom, EmacsWindow_make_fullscreen, EmacsWindow_unzoom):
Delete functions.
(be_set_window_fullscreen_mode): New function.
* src/haiku_support.h (struct haiku_zoom_event): Remove
`zoomed_p' parameter.
(enum haiku_fullscreen_mode): New enum. Update prototypes.
* src/haikufns.c (Fx_display_pixel_height): Return height
instead of width.
* src/haikuterm.c (haiku_make_fullscreen_consistent)
(haiku_read_socket, haiku_fullscreen): Adjust to always set zoom
and fullscreen in the main thread instead of the UI threads.
* src/haikuterm.h (struct haiku_output): Remove flag `zoomed_p'
and add field `fullscreen_mode'.
2022-05-18 Po Lu <luangruo@yahoo.com>
Respond to changes to the size of the root window
* src/xterm.c (x_display_pixel_height, x_display_pixel_width):
Move here instead.
(handle_one_xevent): Handle ConfigureNotify for the root window.
(x_term_init): Select for structure events on the root window.
* src/xterm.h (struct x_display_info): New fields `screen_width'
and `screen_height'.
(x_display_pixel_height, x_display_pixel_width): Make
prototypes.
2022-05-18 Stefan Kangas <stefan@marxist.se>
Delete entry on SPC completes file names from FAQ
* doc/misc/efaq.texi (SPC no longer completes file names): Delete
node: this is about a change that took place over 15 years ago and is
not likely to be a FAQ these days.
2022-05-18 Stefan Kangas <stefan@marxist.se>
Don't refer to obsolete Ultrix support in FAQ
* doc/misc/efaq.texi (Meta key does not work in xterm): Delete
reference to Ultrix; that platform support was removed in Emacs 23.1.
2022-05-18 Paul Eggert <eggert@day>
Avoid formatting twice in flymake
* lisp/progmodes/flymake.el (flymake-error): Don't format a
message twice, as that can translate quotes we don't want
translated.
2022-05-18 Augusto Stoffel <arstoffel@gmail.com>
Fix last change in minibuffer-lazy-highlight-setup
* lisp/isearch.el (minibuffer-lazy-highlight-setup): Apply advices
buffer-locally.
2022-05-18 Lars Ingebrigtsen <larsi@gnus.org>
Add a new display-buffer-full-frame display action
* doc/lispref/windows.texi (Buffer Display Action Functions):
Document it.
* lisp/window.el (display-buffer-full-frame): New display action
(bug#34169).
(display-buffer--action-function-custom-type): Add.
(display-buffer): Mention it.
2022-05-18 Lars Ingebrigtsen <larsi@gnus.org>
Mention next-error-function in flymake-mode doc string
* lisp/progmodes/flymake.el (flymake-mode): Note that you can set
next-error-function (bug#32322).
2022-05-18 Po Lu <luangruo@yahoo.com>
Implement gamma-correction on Haiku
* src/dispextern.h: Add `gamma_correct' prototype on Haiku as
well.
* src/haikufns.c (gamma_correct): New function.
* src/haikuterm.c (haiku_defined_color): Gamma-correct colors if
their pixels are being allocated.
2022-05-18 Lars Ingebrigtsen <larsi@gnus.org>
Improve previous apropos-documentation-check-elc-file change
* lisp/apropos.el (apropos-documentation-check-elc-file): Add
comment to explain what's going on and expand to lisp-directory
(bug#55492).
2022-05-18 Alan Mackenzie <acm@muc.de>
Fix M-x compile-defun when an interactive form is (list ...)
This is for when lexical-binding is nil. The problem fixed was M-x
compile-defun leaving symbols with position in the compiled function's arglist
and interactive form. This fixes bug #55323. Also ensure the doc string is
correctly stripped when lexical-binding is t.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): For a (list ...)
interactive form when lexical-binding is nil, strip the positions from the
symbols in the form. Also strip the position from the symbols in the arglist.
(byte-compile-make-closure): (Twice) strip symbols from positions in the doc
string expression. Add comments.
2022-05-18 Martin Rudalics <rudalics@gmx.at>
Clean up and simplify 'quit-restore-window' code
* lisp/window.el (window--quit-restore-select-window): New internal
name for 'quit-restore-select-window'.
(quit-restore-window): Use 'window--quit-restore-select-window'
instead of 'quit-restore-select-window'. Simplify code.
2022-05-18 Mattias Engdegård <mattiase@acm.org>
Make printing mostly non-recursive (bug#55481)
Introduce explicit stacks for traversing common data types during
printing: conses, vectors, records, byte-code, hash-tables and
char-tables, all previously traversed using recursion in C. This
greatly reduces the risk of crashing Emacs from C stack overflow
when printing deeply nested data.
* src/print.c (Fprinc, print, PRINT_CIRCLE_CANDIDATE_P):
Special-case Fprinc with a plain string argument to eliminate the need
for keeping track of print_depth during the preprocessing phase.
This also improves performance.
(struct print_pp_entry, struct print_pp_stack, ppstack)
(grow_pp_stack, pp_stack_push_value, pp_stack_push_values)
(pp_stack_empty_p, pp_stack_pop):
New stack for preprocessing.
(print_preprocess):
Make mostly nonrecursive, except for string properties.
(enum print_entry_type, struct print_stack_entry)
(struct print_stack, prstack, grow_print_stack)
(print_stack_push, print_stack_push_vector):
New stack for printing.
(print_vectorlike, print_object):
Make mostly nonrecursive, except for string properties and some less
heavily used types.
* test/src/print-tests.el (print-deeply-nested):
New test.
2022-05-18 Po Lu <luangruo@yahoo.com>
Avoid dismissing GTK+ popup menus upon wheel movement
* src/xterm.c (handle_one_xevent): Don't forward XI button
events for wheel buttons to GTK+ when a popup menu is active.
2022-05-18 Po Lu <luangruo@yahoo.com>
Fix race conditions when calculating Haiku frame geometry
* src/haiku_support.cc (be_lock_window, be_unlock_window): New
functions.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (frame_geometry): Lock window before asking for
its dimensions and frame.
2022-05-17 Po Lu <luangruo@yahoo.com>
Don't allow moving fullscreen frames on Haiku
* src/haikuterm.c (haiku_set_window_size): Fix typo in comment.
(haiku_set_offset): Prevent offset from changing in fullboth
frames.
2022-05-17 Po Lu <luangruo@yahoo.com>
Fix a crash when an X connection is dropped in some situations
* src/xterm.c (x_flip_and_flush): Don't try to flush if
`inhibit-redisplay' is t.
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix apropos-documentation with universal argument
* lisp/apropos.el (apropos-documentation-check-elc-file): Look up
.elc files in the load path (and don't bug out on deleted .elc
files) (bug#55492).
2022-05-17 Stefan Kangas <stefan@marxist.se>
Recommend Wikipedia over Usenet in FAQ
* doc/misc/efaq.texi (Origin of the term Emacs): Recommend
Wikipedia over Usenet to find out more about TECO.
2022-05-17 Stefan Kangas <stefan@marxist.se>
Remove some ancient Emacs compat code
* lisp/cedet/mode-local.el (mode-local-describe-bindings-1):
* lisp/cedet/semantic/senator.el (senator-copy-tag-to-register):
* lisp/gnus/nnrss.el (nnrss-opml-export):
* lisp/net/newst-backend.el (newsticker-opml-export):
* lisp/textmodes/reftex.el (reftex-mode-menu):
* lisp/woman.el (woman-menu): Remove some ancient Emacs compat code.
2022-05-17 Matthias Meulien <orontee@gmail.com>
Update comment about comint-osc-handlers
* lisp/comint.el: Update comment about comint-osc-handlers.
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Allow running several commands in compilation-start
* lisp/progmodes/compile.el (compilation-start): Allow not erasing
the contents of the buffer (bug#28892).
2022-05-17 Protesilaos Stavrou <info@protesilaos.com>
Use better word for "buffer" in Greek TUTORIAL (bug#55332)
* TUTORIAL.el_GR: Replace all instances of "αποσβεστήρας" with the
more accurate "ενταμιευτής".
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix bogus future history entries for `M-x grep'
* lisp/net/mailcap.el (mailcap-file-default-commands): If we have
no matching MIME types, don't iterate over (nil) (bug#27236).
This fixes things like:
(mailcap-file-default-commands '("grep --color=auto -nH --null '' "))
=> ("/usr/bin/emacs -nw")
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix kmacro-keymap binding after previous change
* lisp/kmacro.el (kmacro-keymap): Fix binding after
kmacro-redisplay command name change.
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Explain more about jit-lock-mode calling conventions
* lisp/jit-lock.el (jit-lock-mode): Explicitly explain ARG
(bug#55451).
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Add glossary entries for "interactively"
* doc/emacs/glossary.texi (Glossary): Mention "interactively" and
how it relates to the "command" concept (bug#55461).
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix pp-emacs-lisp-code printing of cons cells
* lisp/emacs-lisp/pp.el (pp--insert-lisp): Fix printing of cons
cells (bug#55478).
2022-05-17 Robert Pluim <rpluim@gmail.com>
Correct cycle-spacing-actions type
* lisp/simple.el (cycle-spacing-actions): Fix type for predefined
action with fixed numeric arg case.
2022-05-17 Robert Pluim <rpluim@gmail.com>
Clarify 'cycle-spacing-actions' docstring
* lisp/simple.el (cycle-spacing-actions): Clarify docstring.
2022-05-17 Po Lu <luangruo@yahoo.com>
Avoid race conditions when computing real frame positions on Haiku
* src/haiku_support.cc (DispatchMessage): Accept
SEND_MOVE_FRAME_EVENT.
(class EmacsWindow, FrameMoved): Include decorator frame in
MOVE_EVENT events.
(be_send_move_frame_event): New function.
* src/haiku_support.h (struct haiku_move_event): Include
decorator dimensions. Update prototypes.
* src/haikufns.c (haiku_update_after_decoration_change): Ask for
a move frame event and don't do anything if configury is not yet
complete.
* src/haikuterm.c (haiku_read_socket): Adjust accordingly.
2022-05-17 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Modi script
* lisp/language/indian.el ("Modi"): New language environment.
Add composition rules for Modi. Add sample text and input
method.
Add sample text to various scripts.
Rename Punjabi to Gurmukhi.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Modi.
* lisp/leim/quail/indian.el ("modi"): New input method.
(Bug#55439)
* etc/HELLO: Add a Modi greeting.
Rename Hindi to Devanagari.
Add a Gurmukhi greeting.
Replace Odia greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-17 Eli Zaretskii <eliz@gnu.org>
Fix the name of a kmacro command.
* lisp/kmacro.el (kmacro-redisplay): Rename from
'kdb-macro-redisplay' (which was wrong and included a typo).
* etc/NEWS: Announce the change. (Bug#55471)
2022-05-17 Alan Mackenzie <acm@muc.de>
CC Mode: Correct a rare error in the state cache
* lisp/progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache): Do
not record a position in a macro as the starting position in
c-state-brace-pair-desert. Instead record the position at the beginning of
that macro.
2022-05-17 Alan Mackenzie <acm@muc.de>
Correct indentation of opening brace in xdisp.c, which isn't at start of defun
* xdisp.c (calc_pixel_width_or_height): indent the opening brace of a
substatement correctly. It's previous position, in column 0, caused
indentation errors in C Mode.
2022-05-17 Po Lu <luangruo@yahoo.com>
Fix unused function warning on X
* src/xsettings.c (xg_settings_key_valid_p): Surround with
HAVE_PGTK and HAVE_GSETTINGS.
2022-05-17 Pieter van Prooijen <pieter.van.prooijen@teloden.nl>
Fix font options compilation with gsettings disabled
* src/xsettings.c (xsettings_get_font_options): Return a font_options
even if gsettings is not enabled.
2022-05-17 Po Lu <luangruo@yahoo.com>
Rewrite Haiku frame geometry code to handle decorator frames
* doc/lispref/frames.texi (Frame Layout): Document changes to
Haiku frame layout.
* src/haiku_support.cc (class EmacsWindow, MoveToIncludingFrame)
(EmacsMoveTo, MakeFullscreen): Move to an offset including the
decorator frames.
(be_get_window_decorator_dimensions):
(be_get_window_decorator_frame): New functions.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_update_after_decoration_change): New
function.
(haiku_create_frame, haiku_set_undecorated)
(haiku_set_override_redirect): Call that function.
(frame_geometry): Actually calculate frame geometry based on
decorator and frame sizes.
* src/haikuterm.c (haiku_coords_from_parent): Use frame width
instead.
(haiku_read_socket): Set left and top positions based on
decorator width and height.
* src/haikuterm.h (struct haiku_output): New field `frame_x' and
`frame_y'.
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix package-quickstart breakage
* lisp/emacs-lisp/package.el (package-quickstart-refresh): Work
around syntax-ppss now clobbering match data (but it's not clear
whether that's supposed to be allowed) (bug#55447).
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Improve Finternal__define_uninitialized_variable erroring
* src/eval.c (Finternal__define_uninitialized_variable): Say what
symbol we're bugging out on for easier debugging.
2022-05-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix edebug-tests test failure after prin1 change
* lisp/emacs-lisp/ert-x.el (ert--make-print-advice): Fix test
failures in edebug-tests.
2022-05-17 Michael Albinus <michael.albinus@gmx.de>
Some minor Tramp fixes
* lisp/net/tramp-cmds.el (tramp-list-tramp-buffers)
(tramp-list-remote-buffers): Add ;;;###tramp-autoload cookie.
* lisp/net/tramp-fuse.el (tramp-fuse-remove-hidden-files): New defvar.
(tramp-fuse-remove-hidden-files): Use it.
* lisp/net/tramp-gvfs.el (tramp-gvfs-handler-askquestion):
Keep regression tests running.
2022-05-16 Po Lu <luangruo@yahoo.com>
Remove extra EmacsPopUpMenu class
* src/haiku_support.cc (class EmacsPopUpMenu): Delete class that
does nothing.
(BPopUpMenu_new): Use BPopUpMenu directly.
(BMenu_add_title): Clean up coding style.
2022-05-16 Po Lu <luangruo@yahoo.com>
Add more cursor bitmaps on Haiku
* src/haikufns.c (cursor_bitmaps_for_id): Add vertd, horizd and
hand bitmaps.
2022-05-16 Po Lu <luangruo@yahoo.com>
Let XTread_socket read events for all non-DND displays
* src/xterm.c (XTread_socket): Allow reading events from
displays other than the DND display during drag-and-drop.
2022-05-16 Po Lu <luangruo@yahoo.com>
Fix byte swapping of some drag-and-drop messages
* src/xterm.c (SWAPCARD16, SWAPCARD32): Actually swap the data
instead of just calling bswap_32/bswap_16.
2022-05-16 Po Lu <luangruo@yahoo.com>
Fix detection of wheel movement during drag-and-drop
* src/xterm.c (x_dnd_send_position): Don't treat Button8 as the
mouse wheel.
2022-05-16 kobarity <kobarity@gmail.com>
Fix Python highlighting of some assignment statements
* lisp/progmodes/python.el (python-rx): Limit not-simple-operator
to a single line (bug#51362).
2022-05-16 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option compilation-hidden-output
* doc/emacs/building.texi (Compilation Mode): Document it.
* lisp/progmodes/compile.el (compilation-hidden-output): New user
option.
(compilation-filter): Use it.
(compilation--hide-output): New function.
2022-05-16 Lars Ingebrigtsen <larsi@gnus.org>
Don't expose Vprint_variable_mapping to Lisp
* src/print.c: Don't expose Vprint_variable_mapping to the Lisp
world, because it really should be immutable.
(print_create_variable_mapping): Initialization moved here from
syms_of_print.
(print_bind_overrides): Call it.
(syms_of_print): Protect the mapping variable.
2022-05-16 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Make TAB work in makefile mode when transient mark mode is on"
This reverts commit a4c96147d1875d359db8d7fda3489954046a5db8.
This change made hitting RET after an assignment insert a TAB character
(bug#55446).
2022-05-16 Lars Ingebrigtsen <larsi@gnus.org>
Improve newsticker file name handling and printing
* lisp/net/newst-backend.el (newsticker--images-dir)
(newsticker--icons-dir, newsticker--cache-dir): Don't use concat
to construct file names.
(newsticker-download-images, newsticker-download-enclosures): Ditto.
(newsticker--cache-save-feed): Bind print-level etc when printing.
* lisp/net/newst-treeview.el (newsticker-treeview-save): Ditto.
This patch was mostly written by mailj2@protonmail.com, but was then
rewritten by me, and has some contributions from Xavier Capaldi (which
doesn't need copyright assignment).
2022-05-16 Po Lu <luangruo@yahoo.com>
Document recent tooltip changes on NS
* doc/emacs/frames.texi (Tooltips):
* etc/NEWS: Announce that non-system tooltips are now available
on Nextstep.
2022-05-16 Po Lu <luangruo@yahoo.com>
Improve error checking in `haiku-roster-launch'
* src/haikuselect.c (Fhaiku_roster_launch): Signal error if
FILE-OR-TYPE doesn't exist or ARGS does not apply.
2022-05-16 Tassilo Horn <tsdh@gnu.org>
Improve cycle-spacing and bind it to M-SPC by default
* lisp/bindings.el (esc-map): Bind M-SPC to cycle-spacing instead of
just-one-space.
* lisp/simple.el (delete-space--internal): New function.
(delete-horizontal-space): Use it.
(delete-all-space): New command.
(just-one-space): Implement on its own instead of calling
cycle-spacing with a special flag.
(cycle-spacing--context): Make it a plist instead of a list. Adapt
docstring accordingly.
(cycle-spacing-actions): New user option.
(cycle-spacing): Rewrite so that it performs the actions in
cycle-spacing-actions instead of the hard-coded ones.
* doc/emacs/killing.texi (characters): Mention and add a variable
index entry for cycle-spacing-actions.
* etc/NEWS: Document that M-SPC is now cycle-spacing instead of
just-one-space.
2022-05-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f928330fa8 Update to Org 9.5.3-6-gef41f3
007bf9a34c Hide temporary FUSE files in Tramp
5dbaddc729 ; Fix some typos
2022-05-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
48201ce8de ; * lisp/electric.el (electric-indent-mode): Fix a typo.
2022-05-15 Po Lu <luangruo@yahoo.com>
Improve safety of handling unsupported drop events on X
* src/keyboard.c (kbd_buffer_get_event):
* src/xterm.c (handle_one_xevent): Check that the event frame is
still live after calling arbitrary Lisp code.
2022-05-15 Po Lu <luangruo@yahoo.com>
Clean up Haiku code after file panel changes
* src/haiku_support.cc:
* src/haiku_support.h: Stop including pthread.h and specpdl_ref.
* src/haikumenu.c (run_menu_bar_help_event): Ignore invalid help
events instead of aborting.
2022-05-15 Po Lu <luangruo@yahoo.com>
Handle pointer axes changing along with scroll valuators
* xterm.c (x_get_scroll_valuator_delta): Set valuator_return to
NULL if no valuator was found.
(handle_one_xevent): Assume pointer axes might've changed if no
scroll valuator was found but valuators were set when handling
motion events.
2022-05-15 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.3-6-gef41f3
2022-05-15 Stefan Kangas <stefan@marxist.se>
Minor clarification of package-update-all docstring
* lisp/emacs-lisp/package.el (package-update-all): Clarify
docstring slightly. (Bug#55408)
2022-05-15 Augusto Stoffel <arstoffel@gmail.com>
Make minibuffer lazy highlight setup buffer-local where appropriate
* lisp/isearch.el (minibuffer-lazy-highlight-setup): Modify hooks
buffer-locally, so that recursive minibuffers are not affected by the
special behavior of lazy-highlight. Also make
'isearch-filter-predicate' buffer-local, so that isearch in the
minibuffer is not affected by the region filter (bug#55110).
2022-05-15 Simen Heggestøyl <simenheg@runbox.com>
Recognize some more SCSS selectors
* lisp/textmodes/css-mode.el (css--selector-regexp): Recognize some
more SCSS selectors.
* test/lisp/textmodes/css-mode-resources/scss-selectors.txt: Add tests
for them.
2022-05-15 Simen Heggestøyl <simenheg@runbox.com>
Fix warning suppression in (S)CSS mode tests
* test/lisp/textmodes/css-mode-tests.el (css-mode-test-selectors)
(scss-mode-test-selectors): Fix warning suppression.
2022-05-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix native-comp type of prin1-to-string
* lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix type
of prin1-to-string.
2022-05-15 Lars Ingebrigtsen <larsi@gnus.org>
Adjust more prin1-to-string callers
* src/w32.c (check_windows_init_file):
* src/comp.c (Lisp_Object):
(emit_lisp_obj_reloc_lval):
(emit_lisp_obj_rval):
(emit_mvar_rval):
(emit_limple_insn):
(emit_static_object): Adjust prin1-to-string callers.
2022-05-15 Lars Ingebrigtsen <larsi@gnus.org>
Add OVERRIDES argument to prin1/prin1-to-string
* doc/lispref/streams.texi (Output Functions): Document it.
(Output Overrides): New node.
* src/process.c (Faccept_process_output):
* src/print.c (debug_print, print_error_message):
* src/pdumper.c (print_paths_to_root_1, decode_emacs_reloc):
* src/lread.c (readevalloop):
* src/eval.c (internal_lisp_condition_case):
* src/editfns.c (styled_format): Adjust prin1/prin1-to-string
callers.
* src/print.c (Fprin1): Take an OVERRIDES parameter.
(print_bind_overrides, print_bind_all_defaults): New functions.
(Fprin1_to_string): Take an OVERRIDES parameter.
2022-05-15 Michael Albinus <michael.albinus@gmx.de>
Hide temporary FUSE files in Tramp
* lisp/net/tramp-fuse.el (tramp-fuse-remove-hidden-files): New defsubst.
(tramp-fuse-handle-directory-files)
(tramp-fuse-handle-file-name-all-completions): Use it.
2022-05-15 Po Lu <luangruo@yahoo.com>
Make Haiku stipple display slightly faster
* src/haikuterm.c (haiku_draw_stipple_background): Draw tiled
bitmap to end of stipple instead of the end of the frame.
2022-05-15 Lars Ingebrigtsen <larsi@gnus.org>
Don't freeze Emacs on colour codes in sccs-mode
* lisp/textmodes/css-mode.el (css--font-lock-keywords): Don't
freeze Emacs on #ffffff #ffffff, and be more strict in parsing
selectors (bug#53203).
2022-05-15 Simen Heggestøyl <simenheg@runbox.com>
Update CSS Multi-column Layout Module properties
* lisp/textmodes/css-mode.el (css-property-alist): Update CSS
Multi-column Layout Module properties.
2022-05-15 Simen Heggestøyl <simenheg@runbox.com>
Update CSS Box Alignment Module properties
* lisp/textmodes/css-mode.el (css-property-alist): Update properties.
2022-05-15 Simen Heggestøyl <simenheg@runbox.com>
Add `all` to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist): Add new property
`all` from the CSS Cascading and Inheritance Level 3 module.
2022-05-15 Po Lu <luangruo@yahoo.com>
Fix use of more invalid keys in PGTK GSettings code
* src/xsettings.c (apply_gsettings_font_hinting):
(apply_gsettings_font_rgba_order): Test for key existence before
using it.
2022-05-15 Po Lu <luangruo@yahoo.com>
Improve return value of `haiku-roster-launch'
* src/haikuselect.c (Fhaiku_roster_launch): Return
`already-running' if no PID is available since the target
application is already running.
(syms_of_haikuselect): New defsym.
2022-05-15 Po Lu <luangruo@yahoo.com>
Simplify Haiku cursor management code
* src/haiku_support.cc (BCursor_create_default)
(BCursor_create_modeline, BCursor_from_id, BCursor_create_i_beam)
(BCursor_create_progress_cursor, BCursor_create_grab)
(BCursor_delete): Delete specialized cursor creation functions.
(be_delete_cursor, be_create_cursor_from_id): New functions.
(BView_set_view_cursor): Fix coding style.
* src/haiku_support.h (enum haiku_cursor): Add all cursor IDs.
* src/haikufns.c (haiku_free_custom_cursors):
(haiku_set_mouse_color):
* src/haikuterm.c (haiku_term_init): Adjust accordingly.
2022-05-15 Eli Zaretskii <eliz@gnu.org>
Fix database related to some scripts
* lisp/international/fontset.el (script-representative-chars): Add
tai-le and tai-lue scripts.
(otf-script-alist): Fix the name of tai-le.
* src/w32font.c (syms_of_w32font): Fix typos in some script symbol
names.
2022-05-15 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Syloti Nagri script
* lisp/language/indian.el ("Syloti Nagri"): New language environment.
Add composition rules for Syloti Nagri. Add sample text and input
method.
Improve composition rules for Kaithi, Tirhuta, Sharada and Siddham.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Syloti Nagri.
* lisp/leim/quail/indian.el ("syloti-nagri"): New input method.
* etc/HELLO: Add two Syloti Nagri greetings.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-15 Visuwesh <visuweshm@gmail.com>
describe-keymap: Suggest symbol at point
* lisp/help-fns.el (describe-keymap): Suggest symbol at point
if it is a keymap. (Bug#55393)
* etc/NEWS: Announce change in behavior of 'describe-keymap'.
2022-05-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
8370caa835 ; * lisp/electric.el (electric-indent-mode): Clarify doc (...
2022-05-14 Po Lu <luangruo@yahoo.com>
Allocate some buffers used during event handling safely
* src/xterm.c (handle_one_xevent): Allocate string lookup and
device disable data safely since they can potentially become
very large.
2022-05-14 Po Lu <luangruo@yahoo.com>
Prevent crashes trying to access nonexistent key
* src/xsettings.c (xg_settings_key_valid_p): New function.
(apply_gsettings_font_antialias): Test that `font-aliasing' is
actually available. (bug#55416)
2022-05-14 Po Lu <luangruo@yahoo.com>
Fix scroll event translation for legacy button events
* src/xterm.c (handle_one_xevent): Don't treat emulated Button8
as a wheel event.
2022-05-14 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code for display-graphic-p
* lisp/dframe.el (dframe-have-timer-flag):
* lisp/emacs-lisp/chart.el (chart-face-pixmap-list):
* lisp/speedbar.el (speedbar-easymenu-definition-base): Remove
XEmacs compat code; assume display-graphic-p is fboundp.
* lisp/progmodes/cperl-mode.el (cperl-tags-hier-init): Remove XEmacs
compat code.
2022-05-14 Stefan Kangas <stefan@marxist.se>
Delete some compat code for very old Emacs versions
* lisp/apropos.el (apropos-local-value):
* lisp/ido.el (ido-buffer-internal):
* lisp/leim/quail/ipa.el (ipa-x-sampa-prepend-to-keymap-entry):
* lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
* lisp/speedbar.el (speedbar-create-tag-hierarchy): Delete compat code
for very old versions of Emacs.
* lisp/gnus/nnmail.el (nnmail-fancy-expiry-target): Avoid using
obsolete name.
2022-05-14 Stefan Monnier <monnier@iro.umontreal.ca>
src/lisp.h (FOR_EACH_TAIL_SAFE): Typo
2022-05-14 Eli Zaretskii <eliz@gnu.org>
Make 'check-declare-directory' more portable
* lisp/emacs-lisp/check-declare.el (check-declare-directory): Use
'directory-files-recursively' instead of running Find and Grep in
a subprocess. (Bug#55386)
2022-05-14 Stefan Kangas <stefan@marxist.se>
Drop ancient OEmacs support from vcursor.el
* lisp/vcursor.el (vcursor-bind-keys, vcursor-key-bindings)
(vcursor-other-window): Drop OEmacs support. OEmacs was "a
version of GNU Emacs V19.19" that worked "under plain MSDOS,
Windows, or DESQview/X".
2022-05-14 Stefan Kangas <stefan@marxist.se>
Remove Emacs 22 compat code from htmlfontify.el
* lisp/htmlfontify.el (hfy-prop-invisible-p): Redefine as obsolete
function alias for invisible-p. Update all callers.
2022-05-14 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from org-mode
* lisp/org/org-clock.el (org-clock-select-task): Remove XEmacs
compat code.
2022-05-14 Po Lu <luangruo@yahoo.com>
Minor fixes for popup dialogs on macOS
* nsmenu.m (pop_down_menu): Restore old hack for macOS.
([EmacsDialogPanel initWithTitle:isQuestion:]): Set command
title correctly.
2022-05-14 Po Lu <luangruo@yahoo.com>
Fix processing of dialog box items on NS
* src/nsmenu.m (pop_down_menu): Remove old hack and discard menu
items.
(ns_popup_dialog):
([EmacsDialogPanel initWithContentRect:styleMask:backing:defer:]):
([EmacsDialogPanel windowShouldClose:]):
([EmacsDialogPanel dealloc]):
([EmacsDialogPanel processdialog:]):
([EmacsDialogPanel addButton:value:row:]):
([EmacsDialogPanel addString:row:]):
([EmacsDialogPanel clicked:]):
([EmacsDialogPanel initFromContents:isQuestion:]):
([EmacsDialogPanel timeouthandler:]):
([EmacsDialogPanel runDialogAt:]): Use the regular menu item
machinery to parse dialog items instead of the incorrect ad-hoc
code used previously.
* src/nsterm.h: Update prototypes.
2022-05-14 Po Lu <luangruo@yahoo.com>
Avoid unsafe alloca when looking up toplevels
* src/xterm.c (x_dnd_compute_toplevels): Use SAFE_ALLOCA, since
alloca isn't safe when there are lots of toplevels or the window
manager is broken.
2022-05-14 Eli Zaretskii <eliz@gnu.org>
Fix undigest-tests on MS-Windows
* lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Accept a new
keyword argument :coding CODING to use as the encoding when
writing initial text to the temporary file.
* test/lisp/mail/undigest-tests.el (rmail-undigest-test-rfc934-digest)
(rmail-undigest-test-rfc1153-digest-strict)
(rmail-undigest-test-rfc1153-less-strict-digest)
(rmail-undigest-test-rfc1153-sloppy-digest)
(rmail-undigest-test-rfc1521-mime-digest)
(rmail-undigest-test-multipart-mixed-digest): Force the temporary
mbox files to have Unix-style EOL format.
2022-05-14 Martin Rudalics <rudalics@gmx.at>
2022-05-14 Martin Rudalics <rudalics@gmx.at>
* lisp/window.el (quit-restore-select-window): New function.
(quit-restore-window): Call 'quit-restore-select-window' to avoid
selecting inactive minibuffer window (Bug#55403).
2022-05-14 Po Lu <luangruo@yahoo.com>
Try to restore valuator values when a device is enabled
* src/xterm.c (struct xi_known_valuator): New struct.
(xi_populate_device_from_info): Figure out all the values of the
valuators and set the scroll valuators's current_value to it.
2022-05-14 Po Lu <luangruo@yahoo.com>
Better fix for disappearing menu items on NS
* src/frame.c (delete_frame): Revert last change.
* src/nsmenu.m (free_frame_menubar): Only free if that frame's
menu bar is actually being displayed.
(ns_update_menubar): Note the last frame to have updated the
menu bar.
2022-05-14 Po Lu <luangruo@yahoo.com>
Add more cursor bitmaps on Haiku
* src/haikufns.c (cursor_bitmaps): Register new cursor bitmaps.
* src/haikugui.h (hand_ptr_bits, hand_ptrmask_bits)
(horizd_ptr_bits, horizd_ptrmask_bits, vertd_ptr_bits)
(vertd_ptrmask_bits, hourglass_bits, hourglass_mask_bits): New
cursor bitmaps.
2022-05-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a769cbfcfb Fix lexical-binding fallout in vhdl-mode.el
2022-05-14 Po Lu <luangruo@yahoo.com>
Work around deleting tooltip frames clearing menubars on NS
* src/frame.c (delete_frame): Update menu bars if a tooltip
frame was deleted on NS.
2022-05-13 Po Lu <luangruo@yahoo.com>
Implement non-system tooltips on NS
* src/nsfns.m (unwind_create_frame): Return Lisp_Object like on
X.
(do_unwind_create_frame): New function.
(Fx_create_frame): Adjust accordingly.
(compute_tip_xy): Fix coding style.
(unwind_create_tip_frame, ns_create_tip_frame): New functions.
(x_hide_tip, Fx_show_tip, Fx_hide_tip): Create and hide actual
tooltip frames.
(syms_of_nsfns): New defvar `x-max-tooltip-size' and staticpros.
* src/nsterm.m (ns_set_window_size): Clean up coding style.
([EmacsWindow initWithEmacsFrame:]):
([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Handle
tooltip frames.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Put help-fns--compiler-macro last in the *Help* buffer
* lisp/help-fns.el (help-fns-describe-function-functions): Make
help-fns--compiler-macro the last entry (because it's not the most
interesting information).
2022-05-13 Po Lu <luangruo@yahoo.com>
Fix display class of tooltip frames on Haiku
* haikufns.c (haiku_create_tip_frame): Set up frame display
class.
(syms_of_haikufns): New symbols `mono', `grayscale' and `color'.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Restore `with-help-window' return code
* lisp/help.el (help--window-setup): Return the correct thing.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Improve the *Help* output for compiler macros and the like
* doc/lispref/functions.texi (Advice and Byte Code): New node.
* lisp/help-fns.el (help-fns--compiler-macro): Also output data on
other byte compilation things, and link to the manual (bug#23264).
2022-05-13 Po Lu <luangruo@yahoo.com>
Reenable frame sync for child frames after they're unparented
* src/xfns.c (x_set_parent_frame, Fx_create_frame): Use correct
boolean constants.
* src/xterm.c (handle_one_xevent): Enable frame synchronization
upon receiving a sync request event.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Tweak querying in package-update-all
* lisp/emacs-lisp/package.el (package-update-all): Reverse the
QUERY logic to make calling more regular.
2022-05-13 Yuan Fu <casouri@gmail.com>
Extract out treesit-search-forward
* lisp/treesit.el (treesit-search-forward, treesit-search-beginning,
treesit-search-end): New functions.
(treesit-traverse-defun): Remove function.
(treesit-beginning-of-defun, treesit-end-of-defun): Replace
'treesit-traverse-defun' with 'treesit-search-forward' and fiends.
* test/src/treesit-tests.el: Add reminder for tests.
2022-05-13 Yuan Fu <casouri@gmail.com>
* lisp/treesit.el (treesit-node-at): Add check for nil node.
2022-05-13 Yuan Fu <casouri@gmail.com>
Add defun navigation
* lisp/treesit.el (treesit-defun-query): New variable.
(treesit-traverse-defun, treesit-beginning-of-defun,
treesit-end-of-defun): New functions.
* test/src/treesit-tests.el: Add reminders for tests.
2022-05-13 Yuan Fu <casouri@gmail.com>
New node traversal functions
* lisp/treesit.el (treesit-traverse-parent): New alias.
(treesit-traverse-depth-first, treesit--traverse-breadth-first-1,
treesit-traverse-breadth-first, treesit-next-sibling-or-up,
treesit-traverse-forward-depth-first): New functions.
* test/src/treesit-tests.el (treesit-node-supplemental): Add reminders
for tests.
2022-05-13 Yuan Fu <casouri@gmail.com>
Redefine treesit-node-at
The old 'treesit-node-at' becomes 'treesit-node-on'. The new
'treesit-node-at' has slightly different semantics. Now
'treesit-node-on' gets the smallest node covering a range and
'treesit-node-at' gets the smallest node after a position.
The reason of change can be found in the docstring of
'treesit-node-on' (the BEWARE part): its result can be sometimes
surprising/unexpected.
* doc/lispref/parsing.texi (Retrieving Node): Update manual.
* lisp/treesit.el (treesit-node-at): Change to new definition.
(treesit-node-on): Inherits the old definition of
'treesit-node-at'. Parameter END is now mandatory.
(treesit-language-at, treesit-node-field-name): Use the new '-on'
function.
(treesit-font-lock-fontify-region, treesit-simple-indent-presets,
treesit-indent): Use the new '-at' function.
* test/src/treesit-tests.el (treesit-node-supplemental): Update tests.
2022-05-13 Stefan Kangas <stefan@marxist.se>
Use ert-with-temp-file in undigest-tests.el
* test/lisp/mail/undigest-tests.el (ert-x): Require.
(rmail-undigest-test-rfc934-digest)
(rmail-undigest-test-rfc1153-digest-strict)
(rmail-undigest-test-rfc1153-less-strict-digest)
(rmail-undigest-test-rfc1153-sloppy-digest)
(rmail-undigest-test-rfc1521-mime-digest)
(rmail-undigest-test-multipart-mixed-digest): Use ert-with-temp-file.
2022-05-13 Stefan Kangas <stefan@marxist.se>
Don't use obsolete yow library
* lisp/erc/erc.el (erc-quit-reason-zippy, erc-part-reason-zippy):
Don't use obsolete yow library.
2022-05-13 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from flyspell.el
* lisp/textmodes/flyspell.el (flyspell-display-next-corrections):
Remove XEmacs compat code.
2022-05-13 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from org-mode
* lisp/org/ol-eww.el (org-eww-copy-for-org-mode):
* lisp/org/ol-w3m.el (org-w3m-copy-for-org-mode):
* lisp/org/org-refile.el (org-refile):
* lisp/org/org.el (org-change-tag-in-region): Remove XEmacs compat
code.
2022-05-13 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from eudc-bob.el
* lisp/net/eudc-bob.el (eudc-bob-can-display-inline-images): Make
into obsolete alias for display-graphic-p. Update all callers.
(eudc-bob-display-jpeg): Remove XEmacs compat code.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Add new minor mode `header-line-indent-mode'
This is mostly factored out from tabulated-list.el (with bugs fixed).
* doc/lispref/modes.texi (Header Lines): Document it.
* lisp/display-line-numbers.el (header-line-indent): New variable.
(header-line-indent--line-number-width)
(header-line-indent--watch-line-number-width)
(header-line-indent--window-scroll-function): New helper functions.
(header-line-indent-mode): New minor mode.
* lisp/display-line-numbers.el (header-line-indent-width): New
variable.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-line-number-width)
(tabulated-list-watch-line-number-width)
(tabulated-list-window-scroll-function): Make into obsolete aliases.
(tabulated-list-mode): Use 'header-line-indent-mode'.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
Adjust the header line format and computation.
* src/buffer.c (syms_of_buffer): Mention header-line-indent-mode.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Revert mistaken change in help-mode-setup
* lisp/help-mode.el (help-mode-setup): Revert mistakenly applied
change from cd87a5c7a.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Don't overwrite variables set by callback in help--window-setup
* lisp/help.el (help--window-setup): Initialize the buffer in the
correct order to avoid resetting variables set by the callback.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Don't clear out local variables in `with-help-window'
* lisp/help-mode.el (help-mode-setup): Declare obsolete.
(help-mode-finish): Ditto.
* lisp/help.el (with-help-window): Don't be a wrapper around
`with-temp-buffer-window', because that made the macro big and
difficult to understand.
(help--window-setup): Implement the relevant bits from
`with-temp-buffer-window'. Also don't clear out local variables,
because that makes things like `text-scale-mode' not work (bug#25979).
2022-05-13 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/lispref/help.texi (Keys in Documentation): Typo in last change
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow substitute-command-keys to include menus in \{...} output
* doc/lispref/help.texi (Keys in Documentation): Document it.
* lisp/help.el (substitute-command-keys): Add an argument to
include menus in the \{...-map} output (bug#24236).
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Include the number of dependencies in the install prompt
* lisp/emacs-lisp/package.el (package-menu--list-to-prompt): Add
the info to the prompt (bug#23346).
(package--dependencies): New function.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow calling package-update-all from the command line
* lisp/emacs-lisp/package.el (package-update-all): Allow calling from
the command line with -f package-update-all without any queries.
2022-05-13 Pieter van Prooijen <pieter.van.prooijen@teloden.nl>
Use gsettings font rendering entries for pgtk builds
If present, apply the gsettings font hinting and antialiasing
entries when creating a font in cairo. Do this at
initialization and when the entries change, re-rendering the
frames.
* src/ftcrfont.c (ftcrfont_open): Use the font_options derived
from gsettings when opening a font.
(ftcrfont_cached_font_ok): Report a cached font as invalid if
its font options differ from the current options inside
gsettings.
* src/xsettings.c (apply_gsettings_font_hinting)
(apply_gsettings_font_alias, apply_gsettings_font_rgba_order):
Convert the settings from GSettings to the cairo_font_options_t
object.
(init_gsettings, something_changed_gsettingsCB): Invoke the
apply functions if the relevant settings changed.
(store_font_options_changed): Store an event to re-render the
fonts.
(xsetting_get_font_options)
* src/xsettings.h (xsettings_get_font_options): New function.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Add a provide in epa-ks
* lisp/epa-ks.el (epa-ks): Add a provide (bug#55388).
2022-05-13 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from pascal.el
* lisp/progmodes/pascal.el (pascal-outline-map): Remove XEmacs compat
code.
2022-05-13 Stefan Kangas <stefan@marxist.se>
* lisp/language/thai-util.el (thai-word-mode-map): Prefer defvar-keymap.
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix dabbrev expansion after recent file-name buffer addition
* lisp/dabbrev.el (dabbrev--find-expansion): Remove the now-dead
file name buffer from dabbrev--friend-buffer-list, so that we
don't trip over the killed buffer later (bug introduced in 2d0085f756).
2022-05-13 Lars Ingebrigtsen <larsi@gnus.org>
Make imenu-flush-cache into a function
* doc/emacs/programs.texi (Imenu): Remove documentation.
* lisp/imenu.el (imenu-flush-cache): Make into a function, since
this isn't supposed to be used interactively.
2022-05-13 Eli Zaretskii <eliz@gnu.org>
Fix lexical-binding fallout in vhdl-mode.el
* lisp/progmodes/vhdl-mode.el (arch-alist, pack-alist)
(file-alist, unit-alist, rule-alist): Defvar them, since vhdl-aput
expects them to be dynamically bound. (Bug#55389)
(vhdl-speedbar-insert-hierarchy): Rename the PACK-ALIST argument
to PACKAGE-ALIST, to avoid shadowing the global variable.
2022-05-13 Po Lu <luangruo@yahoo.com>
Allow changing the face used for text and frame colors in tooltips
* etc/NEWS: Announce new arguments to `tooltip-show'.
* lisp/tooltip.el (tooltip-show): Accept new arguments
`text-face' and `frame-face'. Use them to display text and
determine the foreground, background and border colors of the
tooltip frame respectively.
2022-05-13 Po Lu <luangruo@yahoo.com>
Rely solely on device scaling for fonts on PGTK
* src/pgtkterm.c (pgtk_get_text_scaling_factor): Delete
function.
(pgtk_term_init): Stop multiplying dpi by text scale.
(bug#55394)
2022-05-13 Po Lu <luangruo@yahoo.com>
Fix display of image reliefs for tab bars on NS
* src/nsterm.m (ns_draw_image_relief): New function.
Synchronize code with X.
(ns_dumpglyphs_image): Use that function instead, as on X.
2022-05-13 Po Lu <luangruo@yahoo.com>
Minor cleanups to PGTK code
* src/pgtkterm.c (pgtk_text_scaling_factor): Rename to
`pgtk_get_text_scaling_factor', clean up coding style, and fix
leak of GSettings object.
(pgtk_term_init): Clean up coding style and fix scroll
increments.
2022-05-13 Po Lu <luangruo@yahoo.com>
Improve test for empty help-echo on NS menu bar items
* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Also check
if idx is valid.
2022-05-13 Po Lu <luangruo@yahoo.com>
Display help-echo for popup menus on NS
* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Display
help echo for ordinary popup menus as well.
2022-05-13 Po Lu <luangruo@yahoo.com>
Fix extraneous quit events processing GTK native input inside popups
* src/gtkutil.c (xg_widget_key_press_event_cb): Return
immediately if a popup is active.
* src/xterm.c (x_filter_event): Clear `xg_pending_quit_event' if
a popup is active.
2022-05-13 Po Lu <luangruo@yahoo.com>
Add more cursor bitmaps on Haiku
* src/haikufns.c (cursor_bitmaps, cursor_bitmaps_for_id):
Register crosshair and xterm cursors.
* src/haikugui.h (cross_ptr_bits, cross_ptrmask_bits)
(ibeam_ptr_bits, ibeam_ptrmask_bits): New cursor bitmaps.
2022-05-13 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f03c5d81bd Fix ControlPath quoting in Tramp
2022-05-13 Po Lu <luangruo@yahoo.com>
Fix disabling frame synchronization on child frames
* src/xfns.c (Fx_create_frame): Disable GTK 3's own frame
synchronization on child frames, since the CM doesn't send
synchronization events to them.
2022-05-13 Po Lu <luangruo@yahoo.com>
Allow setting cursor colors for custom cursors on Haiku
* src/haikufns.c: (struct user_cursor_bitmap_info):
(cursor_bitmaps): Fix hotspot for left arrow pointer.
(cursor_bitmaps_for_id): New array.
(haiku_set_mouse_color): If a color was specified, consult
`cursor_bitmaps_for_id' for user-specified cursors.
2022-05-12 Po Lu <luangruo@yahoo.com>
Allow actually setting cursor colors on Haiku
* src/haiku_support.cc (be_create_pixmap_cursor): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_create_frame): Change default cursor
color to "font-color".
(haiku_create_tip_frame): Likewise.
(struct user_cursor_bitmap_info): New struct.
(cursor_bitmaps): New list of bitmaps corresponding to cursors.
(haiku_create_colored_cursor): New function.
(haiku_free_custom_cursors): Set current cursor to the default
cursor before freeing the original value.
(haiku_set_mouse_color): Actually recolor cursors based on
built-in bitmaps.
* src/haikuterm.c (haiku_defined_color): Clean up coding style.
2022-05-12 Po Lu <luangruo@yahoo.com>
Fix quitting during drag-and-drop when GTK native input is on
* src/xterm.c (x_dnd_begin_drag_and_drop): Also look in
`xg_pending_quit_event' when GTK native input is on.
2022-05-12 Paul Eggert <eggert@cs.ucla.edu>
Update from gnulib
2022-05-12 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC 12 in default developer build
This lets ./configure; make work on Fedora 36 x86-64 from a Git
checkout without generating false-alarm warnings.
* lib-src/etags.c (main): There appeared to be false alarm with
GCC 12. However, the code was wrong anyway, as it mishandled file
names containing "'" so fix that bug. This pacifies GCC.
(mercury_decl): Omit tests s + pos != NULL that were apparently
intended to be s[pos] != '\0' but which were miscoded to always
be true and which were mostly not needed anyway. In one place,
though, a test was needed, so fix that by using strchr instead.
* src/alloc.c (lisp_free) [!GC_MALLOC_CHECK]:
* src/term.c (Fsuspend_tty): Dont look at a pointer after freeing
it, even just to test it for equality with some other pointer, as
this has undefined behavior in C and GCC 12 diagnoses this.
* src/dbusbind.c (xd_read_message_1): Rework the code a bit
so that it has fewer tests. This pacifies GCC 12 which was
complaining incorrectly about dereferencing a null pointer.
* src/intervals.c (copy_properties): Remove an eassume that should
no longer be needed even to pacify older GCCs, due to ...
* src/intervals.h (split_interval_left): ... this addition of
ATTRIBUTE_RETURNS_NONNULL to pacify a GCC 12 warning about
dereferencing a null pointer.
* src/regex-emacs.c (EXTEND_BUFFER): Use negative values rather
than auxiliary booleans to indicate null pointers. This pacifies
GCC 12 false alarms about using uninitialized variables.
* src/xdisp.c (clear_position): New function.
(append_space_for_newline, extend_face_to_end_of_line):
Use it to work around false alarms from GCC 12.
(display_and_set_cursor): Add an UNINIT to pacify GCC 12.
* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
Defend against hypothetical bad code elsewhere;
this also pacifies GCC 12.
(x_term_init): Use fixed-size auto array rather than alloca,
as the array is small; this also pacifies GCC 12.
2022-05-12 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option 'sh-indent-statement-after-and'
* lisp/progmodes/sh-script.el (sh-indent-statement-after-and): New
user option (bug#22645).
(sh-smie-sh-rules): Use it.
2022-05-12 Michael Albinus <michael.albinus@gmx.de>
Fix ControlPath quoting in Tramp
* lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options):
Adapt docstring. Do not quote ControlPath. Reported by Daniel
Kessler <kesslerd@umich.edu>.
2022-05-12 Po Lu <luangruo@yahoo.com>
Remove unused RIF method
* src/haikuterm.c (haiku_update_window_end): Delete function.
(haiku_redisplay_interface): Remove RIF method.
2022-05-12 Lars Ingebrigtsen <larsi@gnus.org>
Make prompt read-only in inferior-scheme-mode
* lisp/cmuscheme.el (inferior-scheme-mode): Make the prompt
read-only to be more consistent with other inferior modes
(bug#21118).
2022-05-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix retrieving images that contain ) characters in shr
* lisp/net/shr.el (shr-save-contents, shr-get-image-data): Don't call.
(shr-encode-url): Make obsolete. (This function makes no sense.)
(shr-tag-img): Don't call.
2022-05-12 Lars Ingebrigtsen <larsi@gnus.org>
Improve url-http debugging
* lisp/url/url-http.el (url-http-parse-headers): Output the
headers we receive in the debug output.
* lisp/url/url-vars.el (url-extensions-header): Remove useless header.
2022-05-12 Po Lu <luangruo@yahoo.com>
Fix build on Mac OS X 10.11
* src/nsterm.h (NSButtonTypeMomentaryPushIn): New define.
2022-05-12 Stefan Kangas <stefan@marxist.se>
* lisp/array.el (array-mode-map): Prefer defvar-keymap.
2022-05-12 Po Lu <luangruo@yahoo.com>
Fix searching the bitmap file path on Haiku
* src/image.c (image_create_bitmap_from_file): [HAVE_HAIKU]:
Look for the bitmap inside `x-bitmap-file-path' as well.
2022-05-12 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp's write-region
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Use `tramp-handle-write-region'.
(tramp-sudoedit-handle-write-region): Remove.
* lisp/net/tramp.el (tramp-skeleton-write-region):
Set extended attributes.
2022-05-12 Po Lu <luangruo@yahoo.com>
Fix merging of anonymous faces with an `:extend' property on unexec
* src/emacs.c (main): Unconditionally call `init_xfaces'.
* src/lisp.h: Enable `init_xfaces' on unexec builds too.
* src/xfaces.c (init_xfaces): Move fix for bug#34226 into
pdumper-specific section leaving the initialization of
`face_attr_sym' intact.
2022-05-12 Po Lu <luangruo@yahoo.com>
Improve mouse dragging
* lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip):
Respect foreground and background parameters.
(mouse-drag-and-drop-region): Enable fine grained tracking.
2022-05-12 Po Lu <luangruo@yahoo.com>
Make cursor display on Haiku consistent with X
* src/haikuterm.c (haiku_draw_image_glyph_string): Merge cursor
foregrounds correctly.
(haiku_draw_hollow_cursor, haiku_draw_bar_cursor): New
functions. Port code from X.
(haiku_draw_window_cursor): Port code from X so bar cursors on
top of images are treated right.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix cperl-file-style defcustom type
* lisp/progmodes/cperl-mode.el (cperl-file-style): Fix the type.
2022-05-11 Po Lu <luangruo@yahoo.com>
Clean up Haiku display opening code
* src/haikufns.c (Fx_open_connection):
(Fhaiku_frame_list_z_order): Improve error messages and fix
coding style.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Add new command 'imenu-flush-cache'
* lisp/imenu.el (imenu-flush-cache): New command (bug#20589).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
New command 'package-update-all'
* lisp/emacs-lisp/package.el (package-update-all): New function
(bug#19146).
(package--updateable-packages): Factored out...
(package-update): ... from here.
2022-05-11 Po Lu <luangruo@yahoo.com>
Port some stuff to XCB to avoid confusing Xlib behavior
* src/xterm.c (x_set_frame_alpha, handle_one_xevent): Port
retrieving the opacity property to XCB.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option switch-to-prev-buffer-skip-regexp
* doc/lispref/windows.texi (Window History): Document it.
* lisp/window.el (switch-to-prev-buffer-skip): Mention it.
(switch-to-prev-buffer-skip-regexp): New user option (bug#19070).
(switch-to-prev-buffer-skip-p): Use it.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Bind TAB in indent-rigidly-map as a convenience
* lisp/indent.el (indent-rigidly): Mention it.
(indent-rigidly-map): Bind TAB so that `C-x TAB TAB...' does the
logical thing.
2022-05-11 Po Lu <luangruo@yahoo.com>
Only handle SelectionRequest events from the DND display during DND
* src/xterm.c (handle_one_xevent): Handle only SelectionRequest
events from the DND frame's display via hold_quit.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Make message load eudc-capf more lazily
* lisp/gnus/message.el (eudc-capf): Remove require, because all
the relevant eudc-capf functions are autoloaded, apparently.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Make anchored regexps work in image-dired-mark-tagged-files
* lisp/image-dired.el (image-dired-mark-tagged-files): Make
anchored regexps work (bug#55375).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix non-variable widgets in the 'H' command in Cus-mode
* lisp/cus-edit.el (custom-mode-map):
(custom-commands): Adjust.
(custom-toggle-hide-all-widgets): Rename and work for all widget
types, not just variables.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Adjust restore-buffer-modified-p autosaved logic
* doc/lispref/buffers.texi (Buffer Modification): Adjust
documentation.
* src/buffer.c (Frestore_buffer_modified_p): Fix up the logic
around `autosaved': It means "the buffer is modified, and also
autosaved".
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Make C-u M-x apropos-user-option include buttons
* lisp/apropos.el (apropos-user-option): Include buttons in the
output always (bug#55376).
(apropos-print-doc): Don't insert three spaces in the
non-apropos-multi-type case.
2022-05-11 Stefan Monnier <monnier@iro.umontreal.ca>
(byte-compile-eval): Avoid some false positive "noruntime" warnings
* lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Loosen the check
before refraining from adding a function to noruntime.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix regression in edmacro-finish-edit when parsing "none"
* lisp/edmacro.el (edmacro-finish-edit): Use `kbd' here because
we're comparing the result to a string (bug#55372).
2022-05-11 Paul Eggert <eggert@cs.ucla.edu>
functionp doc improvement
* doc/lispref/eval.texi, doc/lispref/functions.texi, src/eval.c:
Document functionp a bit more carefully. It can return t
on non-functions.
2022-05-11 Tino Calancha <tino.calancha@gmail.com>
char-uppercase-p: New predicate
Return non-nil if its argument is an uppercase character.
Suggested in Bug#54804.
* lisp/subr.el (char-uppercase-p): New defun.
* etc/NEWS (Lisp Changes in Emacs 29.1): Announce it
* doc/lispref/display.texi (Size of Displayed Text): Document it.
* test/lisp/subr-tests.el (test-char-uppercase-p): Add a test.
2022-05-11 Michael Albinus <michael.albinus@gmx.de>
Improve handling of `tramp-set-file-uid-gid'
* lisp/net/tramp.el (tramp-skeleton-write-region):
Call `tramp-set-file-uid-gid' properly.
(tramp-set-file-uid-gid): Handle also `tramp-crypt-file-name-handler'.
* test/lisp/net/tramp-tests.el (tramp-test27-load): Adapt test.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Clarify precedence rules in Active Display Table manual node
* doc/lispref/display.texi (Active Display Table): Say what "takes
precedence" means here (bug#18546).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Allow giving switches to the program in `M-x term'
* lisp/term.el (term, ansi-term): Allow giving switches to the
program (bug#18105).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous cperl-file-style change
* lisp/progmodes/cperl-mode.el (cperl--set-file-style): New function.
(cperl-mode): Add it to hack-local-variables-hook to really set
the cperl style.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option 'cperl-file-style'
* lisp/progmodes/cperl-mode.el (cperl-file-style): New user option
(bug#17948).
(cperl-mode): Mention it.
(cperl-style-alist): Mention it.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix fontification of multi-line declarations in f90-mode
* lisp/progmodes/f90.el (f90-font-lock-keywords-2): Fontify
multi-line declarations (bug#17222).
2022-05-11 Stefan Kangas <stefan@marxist.se>
* etc/NEWS: Improve some entries.
* lisp/net/browse-url.el (browse-url-button-map): Prefer defvar-keymap.
* lisp/scroll-lock.el (scroll-lock-mode-map): Prefer defvar-keymap.
* lisp/iimage.el (iimage-mode-map): Prefer defvar-keymap.
* lisp/calendar/diary-lib.el (diary-mode-map): Prefer defvar-keymap.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Add grep-files-aliases entry for .am files
* lisp/progmodes/grep.el (grep-files-aliases): Add an alias for
.am files (bug#16921).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Make recent nicknames erc change more backwards-compatible
* lisp/erc/erc-button.el (erc-button-add-buttons): Make the
nicknames change more backwards-compatible (bug#16271).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Add new command 'vc-dir-mark-by-regexp'
* doc/emacs/maintaining.texi (VC Directory Commands): Document it.
* lisp/vc/vc-dir.el (vc-dir-mode-map): Bind it to `%'.
(vc-dir-mark-by-regexp): New command (bug#16460).
2022-05-11 Po Lu <luangruo@yahoo.com>
Add support for changing pointer types on Haiku
* doc/lispref/frames.texi (Pointer Shape): Document that the
pointer shape can now be changed on some window systems other
than X.
* lisp/term/haiku-win.el (x-pointer-X-cursor, x-pointer-arrow)
(x-pointer-bottom-left-corner, x-pointer-bottom-right-corner)
(x-pointer-bottom-side, x-pointer-clock, x-pointer-cross)
(x-pointer-cross-reverse, x-pointer-crosshair)
(x-pointer-diamond-cross, x-pointer-hand1, x-pointer-hand2)
(x-pointer-left-side, x-pointer-right-side)
(x-pointer-sb-down-arrow, x-pointer-sb-left-arrow)
(x-pointer-sb-right-arrow, x-pointer-sb-up-arrow, x-pointer-target)
(x-pointer-top-left-corner, x-pointer-top-right-corner)
(x-pointer-top-side, x-pointer-watch, x-pointer-invisible): New
pointer constants.
* src/haiku_support.cc (BCursor_from_id): Accept int instead of
enum.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_create_frame): Stop manually assigning
cursors and set default value of the mouse color property.
(haiku_free_frame_resources): Free custom cursors too.
(struct user_cursor_info, INIT_USER_CURSOR): New struct.
(haiku_free_custom_cursors): New function.
(haiku_set_mouse_color): New param handler.
(haiku_frame_parm_handlers): Add param handler.
(syms_of_haikufns): New cursor shape variables from X.
* src/haikuterm.h: Update prototypes.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warning in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gud-go): Fix compilation warning
introduced by previous change.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Bind gud-go and allow the prefix to enter arguments
* lisp/progmodes/gdb-mi.el (gdb): Bind gud-go to `C-c C-v' and
allow a prefix to enter arguments (bug#10106).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Don't signal errors in check-declare-directory
* lisp/emacs-lisp/check-declare.el (check-declare-directory): Don't
bug out if we don't find any files with declare-function:(bug#55354)
because this is a predicate function, and that's inconvenient.
2022-05-11 Yoav Marco <yoavm448@gmail.com> (tiny change)
(sqlite-mode--column-names): Suppport nested parens
* lisp/sqlite-mode.el (sqlite-mode--column-names): Make parsing
more resilient (bug#55363).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Add meta navigation keys to outline-minor-mode-cycle-map"
This reverts commit 2e949031160d769bbac941c064b825a5c578afc5.
These key bindings are too intrusive.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Don't try to toggle untogglable widgets in custom-toggle-hide-all-variables
* lisp/cus-edit.el (custom-toggle-hide-all-variables): Only toggle
the widgets that can be toggled.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Warn about quoted symbols in defcustom choice/other forms
* lisp/emacs-lisp/bytecomp.el
(byte-compile--suspicious-defcustom-choice): New function (bug#16271).
(byte-compile-nogroup-warn): Use it to warn about forms like
(choice (const :tag "foo" 'bar)).
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Use `nicknames' instead if `'nicknames' in erc-button-alist
* lisp/erc/erc-button.el (erc-button-alist): Use "nicknames"
instead of "'nicknames" to enable automatic syntax checking
(bug#16271).
(erc-button-add-buttons): Adjust usage.
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-05-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix more defcustom :type errors
* lisp/vc/vc-src.el (vc-src-master-templates):
* lisp/vc/vc-rcs.el (vc-rcs-master-templates): Remove quote
characters inserted by mistake.
2022-05-11 Mattias Engdegård <mattiase@acm.org>
Remedy ineffective backslashes and fix regexps
* lisp/info.el (Info-read-node-name-2): Double backslash for intended
escaping effect.
* lisp/term.el (term-send-function-key): Remove redundant `+`.
* lisp/leim/quail/indian.el:
* lisp/simple.el (scratch-buffer, get-scratch-buffer-create):
Remove ineffective backslashes.
2022-05-11 Mattias Engdegård <mattiase@acm.org>
* src/lisp.h (FOR_EACH_TAIL_INTERNAL): Faster node comparison.
2022-05-11 Po Lu <luangruo@yahoo.com>
Fix mouse pointer avoidance in some configurations
* lisp/avoid.el (mouse-avoidance-random-shape): Ignore invisible
pointer.
(mouse-avoidance-ignore-p): Adjust for interprogram DND.
* lisp/term/x-win.el (x-pointer-invisible): Make value larger
than the maximum possible glyph.
* src/xfns.c (x_set_mouse_color): Use function that handles
`x-pointer-invisible' too.
* src/xterm.c (x_create_font_cursor): New function. Handle
invisible cursors.
* src/xterm.h: Update prototypes.
2022-05-11 Juri Linkov <juri@linkov.net>
* lisp/textmodes/string-edit.el: Improvements for pop-to-buffer (bug#33007)
* lisp/textmodes/string-edit.el (string-edit): Use pop-to-buffer
with fit-window-to-buffer after the buffer is filled with text.
(string-edit-done, string-edit-abort): Use (quit-window 'kill).
2022-05-11 Po Lu <luangruo@yahoo.com>
Make Haiku event buffer non-static
* src/haikuterm.c (haiku_read_socket): Don't make `buf' static
in case thread yielding happens inside.
2022-05-11 Po Lu <luangruo@yahoo.com>
Fix event memory leak on Haiku
* src/haikuterm.c (haiku_read_socket): Allocate event buffer on
the stack.
2022-05-10 Po Lu <luangruo@yahoo.com>
Fix frame invalidation on Haiku
* src/haiku_support.cc (FlipBuffers): Only set view bitmap if it
actually changed.
* src/haikuterm.c (haiku_clip_to_string_exactly)
(haiku_draw_window_cursor, haiku_draw_fringe_bitmap): Fix region
invalidation.
2022-05-10 Po Lu <luangruo@yahoo.com>
Try to preserve font styles in the Haiku font dialog
* haiku_support.cc (class EmacsFontSelectionDialog)
(UpdateStylesForIndex): If a style was previously selected and
exists in the new family as well, select it after adding the new
items.
2022-05-10 Po Lu <luangruo@yahoo.com>
Make reliefs on Haiku more like X
* src/haikuterm.c (haiku_draw_relief_rect): Use frame background
(normal GC) for corners.
2022-05-10 Po Lu <luangruo@yahoo.com>
Clean up some MAYBE_UNUSED functions
* src/xterm.c (x_clear_area1): Wrap in the conditions where it
will actually be used.
2022-05-10 Paul Eggert <eggert@cs.ucla.edu>
* src/eval.c (Ffunctionp): Clarify "function" in doc string.
* src/floatfns.c: Update comment.
2022-05-10 Paul Eggert <eggert@cs.ucla.edu>
Port libm configure-time test to Solaris 11.4
* configure.ac (LIB_MATH): Check all the math.h functions
that Emacs uses, not just sqrt (Bug#55294).
2022-05-10 Alexander Adolf <alexander.adolf@condition-alpha.com>
EUDC: Add completion-at-point support
* lisp/net/eudc-capf.el: New file.
* lisp/gnus/message.el (message-mode): Add `eudc-capf-complete' to
`completion-at-point-functions' when a `message-mode' buffer is
created.
* doc/misc/eudc.texi (Inline Query Expansion): Add a new subsection,
describing the new `completion-at-point' mechanism in `message-mode'.
* etc/NEWS (EUDC): Describe the new `completion-at-point' method.
2022-05-10 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Siddham script
* lisp/language/indian.el ("Siddham"): New language environment.
Add composition rules for Siddham. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Siddham.
* lisp/leim/quail/indian.el ("siddham"): New input method.
* etc/HELLO: Add a Siddham greeting.
* etc/NEWS: Announce the new language environment and its
input method. (Bug#55350)
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix some quoting problems in defcustom :type
* lisp/progmodes/gdb-mi.el
(gdb-restore-window-configuration-after-quit):
* lisp/gnus/gnus.el (large-newsgroup-initial):
* lisp/eshell/em-hist.el (eshell-hist-ignoredups): Fix invalid
quoting in :type.
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Add new command to toggle hiding all widgets in a Customize buffer
* lisp/cus-edit.el (custom-commands): Add menu entry.
(custom-toggle-hide-all-variables): New command (bug#15748).
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Use fields on log-edit headers (which changes `C-a' behaviour)
* lisp/vc/log-edit.el (log-edit-insert-message-template): Fieldify
headers so that `C-a' takes us to the start of the string, not the
line (bug#15645).
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Make ispell-region/buffer push the mark of the final word
* lisp/textmodes/ispell.el (ispell-region): Push the mark of the
final location.
(ispell-process-line): Change the return value to include the
position of the final word.
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix markup in read-number doc string
* lisp/subr.el (read-number): Fix markup for the letter.
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Allow packages to alter menu entries in the Buffers menu
* lisp/menu-bar.el (menu-bar-update-buffers): Use it.
(menu-bar-buffers-menu-command-entries): Put the entries into the
defvar so that packages can modify it (bug#14244).
2022-05-10 Po Lu <luangruo@yahoo.com>
Improve display of relief rectangles on NS
* src/nsterm.m (ns_draw_relief): Respect cursor color and draw
corners like X.
2022-05-10 Po Lu <luangruo@yahoo.com>
Respect `alpha-background' drawing relief corners
* src/xterm.c (x_draw_relief_rect): Respect background alpha for
corner rects.
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Make `apropos-variable' include values in output
* lisp/apropos.el (apropos-print): Include variable values in the
output (bug#13842).
2022-05-10 Po Lu <luangruo@yahoo.com>
Fix display of depressed buttons
* src/xterm.c (x_draw_relief_rect): Fix typo.
2022-05-10 Po Lu <luangruo@yahoo.com>
Improve relief rect handling on Haiku
* haikuterm.c (haiku_calculate_relief_colors): Calculate
backgrounds for image glyphs like on X.
(haiku_draw_relief_rect): Remove extra parameter.
(haiku_draw_string_box, haiku_draw_image_relief): Adjust
accordingly.
2022-05-10 Po Lu <luangruo@yahoo.com>
Fix X11 relief background clearning when hwidth is larger than vwidth
* src/xterm.c (x_fill_triangle, x_make_point, x_inside_rect_p):
New functions.
(x_draw_relief_rect): Complete rewrite. Use more sensible
primitives.
2022-05-10 Po Lu <luangruo@yahoo.com>
Improve display of reliefs on NS
* src/nsfont.m (nsfont_draw): Don't compensate for left box
twice.
* src/nsterm.m (ns_draw_relief): Draw outer edges of box like on
X.
2022-05-10 Po Lu <luangruo@yahoo.com>
Handle deletion of opacity property too
* src/xterm.c (handle_one_xevent): Clear `alpha' frame parameter
when opacity prop is gone or invalid.
2022-05-10 Po Lu <luangruo@yahoo.com>
Work around some broken programs when reading opacity prop
* src/xterm.c (handle_one_xevent): Accept some other types that
property is set to by thoughtless programs.
2022-05-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix bibtex-map-entries regression at bobp
* lisp/textmodes/bibtex.el (bibtex-map-entries): Fix regression
introduced by c32e8b33f (bug#55342) -- don't fail when the first
entry is at bobp.
2022-05-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
7b4bdf7b9b Remove the AUCTeX subsection from MS-Windows FAQ
d2a5631552 Update AUCTeX FAQ entry
177718bc6d Update string-to-number documentation to bignum Emacs
74cc3b525f Fix doc string references to tags-loop-continue
2022-05-10 Po Lu <luangruo@yahoo.com>
Simplify Haiku selection code
* src/haiku_select.cc (get_clipboard_object): New function.
(BClipboard_find_data, BClipboard_get_targets, BClipboard_set_data)
(BClipboard_find_system_data)
(BClipboard_find_primary_selection_data)
(BClipboard_find_secondary_selection_data)
(BClipboard_set_system_data, BClipboard_set_primary_selection_data)
(BClipboard_set_secondary_selection_data, BClipboard_free_data)
(BClipboard_system_targets, BClipboard_primary_targets)
(BClipboard_secondary_targets): Delete functions.
(be_find_clipboard_data_1, be_set_clipboard_data_1)
(be_get_clipboard_targets_1, be_find_clipboard_data)
(be_set_clipboard_data, be_get_clipboard_targets): New
functions.
(be_lock_clipboard_message, be_unlock_clipboard): Use
`get_clipboard_object' to get clipboard from ID.
* src/haikuselect.c (haiku_get_clipboard_name): New function.
(Fhaiku_selection_data, Fhaiku_selection_put)
(Fhaiku_selection_owner_p): Adjust to use new simplified
functions.
* src/haikuselect.h: Update prototypes.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Add more compilation-auto-jump-to-first-error options
* doc/emacs/building.texi (Compilation Mode): Document it.
* lisp/progmodes/compile.el
(compilation-auto-jump-to-first-error): Extend type.
(compilation--file-known-p): New function.
(compilation-auto-jump): Use it to support the new values
(bug#8228).
(compilation-find-file-1): Factored out into own function.
(compilation-find-file): Factored out from here.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Make dabbrev use the buffer's file name as a source for completions
* lisp/dabbrev.el (dabbrev--find-expansion): Include the buffer's
file name in the completions (bug#8163).
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Make imenu find defalias entries
* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression):
Also find defalias (bug#7855).
2022-05-09 Po Lu <luangruo@yahoo.com>
Simplify XDND code
* src/xfns.c (Fx_begin_drag): Use SAFE_ALLOCA_STRING and encode
strings in the right coding system.
2022-05-09 Sean Whitton <spwhitton@spwhitton.name>
Factor out *scratch* initialization
* lisp/simple.el (get-scratch-buffer-create): New function, factored
out of scratch-buffer, and additionally clearing the modification flag
and calling substitute-command-keys (bug#55257).
(scratch-buffer):
* lisp/server.el (server-execute):
* lisp/startup.el (normal-no-mouse-startup-screen, command-line-1):
* lisp/window.el (last-buffer, window-normalize-buffer-to-switch-to):
* src/buffer.c (Fother_buffer, other_buffer_safely): Use it.
(syms_of_buffer): Add Qget_scratch_buffer_create.
* lisp/startup.el (startup--get-buffer-create-scratch): Delete
now-unused function.
* doc/lispref/os.texi (Summary: Sequence of Actions at Startup):
* NEWS (Incompatible changes in Emacs 29.1): Document the change.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS entries for recent autosaved buffer modification status
* doc/lispref/buffers.texi (Buffer Modification): Note 'autosaved'
value.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Reimplement recent with-silent-modifications auto-save changes
* doc/lispref/buffers.texi (Buffer Modification): Document
buffer-modified-p returning `autosaved'.
* lisp/subr.el (with-silent-modifications): Use
restore-buffer-modified-p instead of altering the buffer modiff
(since this has other side effects like not updating after async
`display' changes.
* src/buffer.c (Fbuffer_modified_p): Allow returning whether the
buffer has been autosaved after changes.
(Frestore_buffer_modified_p): Allow adjusting whether the buffer
has been autosaved after changes.
* src/fileio.c (Fdo_auto_save): Refill the doc string.
2022-05-09 Andrea Corallo <akrl@sdf.org>
Fix syntax descriptor comparison in python-indent-region
* lisp/progmodes/python.el (python-indent-region): Compare raw
syntax descriptors with equal (bug#45328) (because comparing them with
eq will always be false).
2022-05-09 Po Lu <luangruo@yahoo.com>
Update alpha frame parameter when the window manager changes it
* src/xfns.c (x_set_alpha): New function. Set
`alpha_identical_p' flag.
(x_frame_parm_handlers): Use it to handle `alpha' instead.
* src/xterm.c (x_set_frame_alpha): Make tests against current
alpha safer.
(handle_one_xevent): Set frame alpha when alpha property
changes.
* src/xterm.h (struct x_output): New flag `alpha_identical_p'.
2022-05-09 Yuan Fu <casouri@gmail.com>
Fix compilation warnings
* src/treesit.c: Add static keywords, remove unused variables, add
const qualifier.
2022-05-09 Yuan Fu <casouri@gmail.com>
Remove call to nconc to improve performance
* src/treesit.c (struct capture_range): New struct.
(ts_predicate_capture_name_to_text, ts_predicate_equal,
ts_predicate_match, ts_eval_predicates): Replace capture list with
capture_range.
(Ftreesit_query_capture): Remove call to nconc.
2022-05-09 Theodor Thornhill <theo@thornhill.no>
Use format string instead of concat
* eglot.el (eglot-handle-notification): Because diagnostics code can
be integer or string, and integer fails the sequencep test, use format
to create this string.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/948
2022-05-09 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Sharada script
* lisp/language/indian.el ("Sharada"): New language environment.
Add composition rules for Sharada. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Sharada.
* lisp/leim/quail/indian.el ("sharada"): New input method.
* etc/HELLO: Add a Sharada greeting.
* etc/NEWS: Announce the new language environment and its
input method. (Bug#55328)
2022-05-09 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp tests
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-file):
Handle compressed files.
* lisp/net/tramp.el (tramp-skeleton-write-region):
Handle encrypted VISIT file.
(tramp-get-process-attributes): Add backward compatibility.
* test/lisp/net/tramp-tests.el (with-connection-local-variables):
Declare.
(auto-save-file-name-transforms): Don't declare.
(ert-resource-directory-format)
(ert-resource-directory-trim-left-regexp)
(ert-resource-directory-trim-right-regexp, ert-resource-directory)
(ert-resource-file): Define if they don't exist.
(tramp-test10-write-region-file-precious-flag)
(tramp-test10-write-region-other-file-name-handler)
(tramp-test31-interrupt-process, tramp-test31-signal-process)
(tramp--test-async-shell-command)
(tramp-test34-connection-local-variables)
(tramp-test39-make-lock-file-name)
(tramp-test39-detect-external-change): Extend tests.
2022-05-09 Eli Zaretskii <eliz@gnu.org>
Remove the AUCTeX subsection from MS-Windows FAQ
* doc/misc/efaq-w32.texi (AUCTeX): Remove the subsection, it is no
longer useful. (Bug#55330)
2022-05-09 Protesilaos Stavrou <info@protesilaos.com>
Shorten note about didactic space in TUTORIAL.el_GR (bug#55332)
2022-05-09 Po Lu <luangruo@yahoo.com>
* src/haikuterm.c (haiku_draw_fringe_bitmap): Set stipple flag.
2022-05-09 Po Lu <luangruo@yahoo.com>
Fix reading faces with a default value that is a symbol
* lisp/faces.el (read-face-name): Don't try to intern face if it
is already a symbol.
2022-05-09 Po Lu <luangruo@yahoo.com>
Fix scroll optimizations being enabled for some rows with stipples
* src/dispnew.c (update_text_area): New parameter `partial_p'.
Set it if not enough glyphs were drawn to determine if a row
doesn't have a stipple.
(update_window_line): Preserve current_row->stipple_p in that
case, after making the desired row current.
* src/xterm.c (x_draw_fringe_bitmap): Set row->stipple.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Make ediff-show-diff-output work better on unsaved buffers
* lisp/vc/ediff-util.el (ediff-show-diff-output): Make the `D'
command work on unsaved buffers without a prefix (bug#45016).
2022-05-09 João Távora <joaotavora@gmail.com>
Allow non-interactive use of eldoc-doc-buffer
* lisp/emacs-lisp/eldoc.el (eldoc-doc-buffer): Allow
non-interactive use.
(Version): Bump minor.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Copy edits for the regexp sections in the manuals
* doc/lispref/searching.texi (Regexp Backslash):
* doc/emacs/search.texi (Regexps, Regexp Backslash): Copy edits
from Jay Bingham (bug#41970).
2022-05-09 Po Lu <luangruo@yahoo.com>
Respect display scale factor drawing underwaves on Haiku
* src/haikuterm.c (haiku_get_scale_factor): New function.
(haiku_draw_underwave): Apply said factor.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Add meta navigation keys to outline-minor-mode-cycle-map
* lisp/outline.el (outline-minor-mode-cycle-map): Add meta
navigate keys (bug#41129).
2022-05-09 Arash Esbati <arash@gnu.org>
Update AUCTeX FAQ entry
* doc/misc/efaq-w32.texi (AUCTeX): AUCTeX project isn't providing
pre-compiled versions for Windows anymore (bug#55330).
2022-05-09 Vladimir Nikishkin <for.emacs-table.el-environment-patch_2022-05-09@lockywolf.net>
Add new user option table-latex-environment
* lisp/textmodes/table.el (table-latex-environment): New user
option (bug#55333).
(table--generate-source-prologue): Use it.
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Update string-to-number documentation to bignum Emacs
* doc/lispref/strings.texi (String Conversion): string-to-number
no longer converts integers to floating point numbers (bug#55334).
2022-05-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix doc string references to tags-loop-continue
* lisp/vc/vc-dir.el (vc-dir-search, vc-dir-query-replace-regexp):
Fix reference to obsolete tags-loop-continue (bug#55311).
2022-05-09 Po Lu <luangruo@yahoo.com>
Fix file-based launching on Haiku
* src/haikuselect.c (Fhaiku_roster_launch): Canonicalize file
names before using them.
2022-05-09 Po Lu <luangruo@yahoo.com>
Use default external browser by default on Haiku
* lisp/net/browse-url.el (browse-url-default-browser): Use that
by default on Haiku.
(browse-url-default-haiku-browser): New function.
* src/haiku_support.cc (be_roster_launch):
* src/haiku_support.h: New function. Update prototypes.
* src/haikuselect.c (haiku_message_to_lisp): Encode and decode
files correctly.
(haiku_lisp_to_message): Encode and decode files correctly.
(Fhaiku_roster_launch): New function.
(syms_of_haikuselect): Update defsubrs.
2022-05-09 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1d012e0a62 Linux console: don't translate ESC TAB to `backtab' in inp...
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix stipple bitmap caching on Haiku
* src/image.c (image_create_bitmap_from_file): Set file name on
the bitmap rec on Haiku.
2022-05-08 Po Lu <luangruo@yahoo.com>
Allow disabling Motif drag protocol
* lisp/cus-start.el (standard): Add new variable.
* src/xterm.c (x_dnd_update_state, handle_one_xevent): Respect
new variable.
(syms_of_xterm): New variable `x-dnd-disable-motif-drag'.
2022-05-08 Po Lu <luangruo@yahoo.com>
Allow precision-scrolling nonselected windows when the minibuffer is resized
* doc/lispref/windows.texi (Vertical Scrolling): Document new
`preserve-vscroll-p' parameter of `set-window-vscroll'.
* etc/NEWS: Announce new parameter.
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
(pixel-scroll-precision-scroll-up-page): Use that parameter when
setting the vscroll.
* src/window.c (window_scroll_pixel_based, Fset_window_vscroll):
Adjust for new parameter.
* src/window.h (struct window): New flag `preserve_vscroll_p'.
* src/xdisp.c (redisplay_window): Preserve the vscroll inside
force_start on frozen windows with that flag set. (bug#55312)
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix race conditions in handling of unsupported drops on X
* lisp/x-dnd.el (x-dnd-handle-unsupported-drop): Adjust for new
parameters.
* src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr):
Export variables.
(kbd_buffer_get_event): Ignore already handled unsupported
drops.
* src/keyboard.h: Update prototypes.
* src/termhooks.h (enum event_kind): Document meaning of
`modifiers' in UNSUPPORTED_DROP_EVENTs.
* src/xterm.c (x_dnd_send_unsupported_drop): Set event modifiers
to current level.
(x_toggle_visible_pointer): Fix fixes fallback.
(x_dnd_begin_drag_and_drop): Handle UNSUPPORTED_DROP_EVENTs
already in the keyboard buffer before starting DND.
(syms_of_xterm): Give timestamp to unsupported drop function.
* src/xterm.h: Update prototypes.
2022-05-08 João Távora <joaotavora@gmail.com>
Fix egregious thinko in eglot--uri-to-path
One shouldn't unhex the URI before parsing it. Just consider a
filename with a # character in it. The character is encoded as C%23,
after unhexing the file name becomes.
/tmp/C#/Program.cs
Now, parsing this as the URL will fail completely as the # mean
"anchor" in URLs.
* eglot.el (eglot--uri-to-path): Fix thinko.
2022-05-08 João Távora <joaotavora@gmail.com>
Consider diagnostic.code when generating flymake diagnostics
Not sure this will please everybody, can almost guess someone is going
to ask for a custom switch.
Instead this info (and the source) should be passed on to Flymake.
That's where the custom switch for controlling formatting of
diagnostic messages should exist. But that's too much work right now.
* eglot.el (eglot-handle-notification): Consider Diagnostic.code.
2022-05-08 Sean Whitton <spwhitton@spwhitton.name>
remember-notes: Use pop-to-buffer-same-window not switch-to-buffer
* lisp/textmodes/remember.el (remember-notes): Use
pop-to-buffer-same-window rather than switch-to-buffer, to allow
customization via display-buffer-alist.
2022-05-08 Juri Linkov <juri@linkov.net>
Minor documentation improvements for completions commands and options
* doc/emacs/mini.texi (Completion Commands): Mention prefix argument
of choose-completion.
(Completion Options): Improve documentation of completions-format
and completions-sort.
2022-05-08 Protesilaos Stavrou <info@protesilaos.com>
Add Greek translation of the tutorial
* etc/tutorials/TUTORIAL.el_GR: Add tutorial in Greek. It is a
faithful translation of the TUTORIAL.
* etc/tutorials/TUTORIAL.translators (Author): Mention myself as
the author and the maintainer.
* etc/NEWS: Announce it. (Bug#55314)
* lisp/language/greek.el (set-language-info-alist): Link to the
tutorial and include sample text.
2022-05-08 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Tirhuta script
* lisp/language/indian.el ("Tirhuta"): New language environment.
Add composition rules for Tirhuta. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Tirhuta.
* lisp/leim/quail/indian.el ("tirhuta"): New input method.
* etc/HELLO: Add a Tirhuta greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-08 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/oclosure.el (oclosure-define): Fix empty case
2022-05-08 Lars Ingebrigtsen <larsi@gnus.org>
Don't hang on trying to rename FIFOs between file systems
* src/fileio.c (Frename_file): Don't hang on trying to move FIFOs
(bug#34069).
2022-05-08 Visuwesh <visuweshm@gmail.com>
dired-do-query-replace-regexp doc string fix
* lisp/dired-aux.el (dired-do-query-replace-regexp): Refer
'fileloop-continue' instead of the obsolete command
'tags-loop-continue'. (Bug#55311)
(cherry picked from commit 4c505203f9171886f47638779326e257a95a1d79)
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix display of fringes with stipples on X
* src/xterm.c (x_draw_fringe_bitmap): Set fill style and use
fill function correctly.
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix display of fringes with stipples on Haiku
* haikuterm.c (haiku_after_update_window_line): Fix coding
style.
(haiku_draw_fringe_bitmap): Handle display of stipples if
present.
2022-05-08 Alan Mackenzie <acm@muc.de>
CC Mode: Fix bug in c-parse-state. Fixes bug #55181.
* lisp/progmodes/cc-engine.el (c-state-cache-lower-good-pos): When in a
literal, return the start of that literal as a "good pos", not the parameter
POS.
2022-05-08 Po Lu <luangruo@yahoo.com>
Set stipple flag on PGTK as well
* pgtkterm.c (pgtk_draw_glyph_string_background):
(pgtk_draw_glyph_string): Set stipple flag on string row.
(pgtk_draw_fringe_bitmap):
(pgtk_defined_color): Fix coding style.
2022-05-08 Lars Ingebrigtsen <larsi@gnus.org>
Allow term-mode to send function keys to the underlying shell
* lisp/term.el (term-bind-function-keys): New user option.
(term-raw-map): Bind f keys.
(term-send-function-key): Send the function key to the underlying
shell (bug#29920).
2022-05-08 Po Lu <luangruo@yahoo.com>
Set stipple flags on Haiku as well
* src/haikuterm.c (haiku_draw_glyph_string): Set stipple flag
where stipples are actually drawn. (This is different from X.)
2022-05-08 Po Lu <luangruo@yahoo.com>
Disable scrolling optimizations when a stipple is present
* src/dispextern.h (struct glyph_row): New field `stippled_p'.
We cannot just use the contents of the glyph row, since it has
to be set in `gui_clear_end_of_line' and is more convenient to
set inside the various draw_glyph_string functions.
* src/dispnew.c (scrolling_window): Disable if a row in the
current matrix has the stipple_p flag set.
* src/xdisp.c (gui_clear_end_of_line):
* src/xterm.c (x_draw_image_glyph_string)
(x_draw_stretch_glyph_string, x_draw_glyph_string): Set
`stipple_p' if a stipple pattern was drawn.
2022-05-08 Alan Mackenzie <acm@muc.de>
Linux console: don't translate ESC TAB to `backtab' in input-decode-map.
This translation happened after the terminfo entry for <shift>TAB in the linux
section was changed to kcbt=\E^I in ncurses version 6.3.
* lisp/term/linux.el (terminal-init-linux): Add a define-key form to remove
the entry for "\e\t" from input-decode-map.
* etc/PROBLEMS: Add a new section under "character terminals" about S-TAB
wrongly doing the same thing as M-TAB, giving tips about amending the Linux
keyboard layout.
2022-05-08 Visuwesh <visuweshm@gmail.com>
dired-do-query-replace-regexp doc string fix
* lisp/dired-aux.el (dired-do-query-replace-regexp): Refer
'fileloop-continue' instead of the obsolete command
'tags-loop-continue'.
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix crashes on ordinary menus on macOS
* src/nsmenu.m ([EmacsMenu runMenuAt:forFrame:keymaps:]): Fix
coding style.
([EmacsMenu menu:willHighlightItem:]): Ignore if this is a
context menu.
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix bug in `pixel-scroll-precision-mode' on nonselected windows
* src/window.c (Fset_window_vscroll): Mark window for redisplay.
(bug#55299)
2022-05-08 Michael Albinus <michael.albinus@gmx.de>
Handle changed scp protocol in Tramp
* lisp/net/tramp-sh.el (tramp-scp-force-scp-protocol): New defvar.
(tramp-scp-force-scp-protocol): New defun.
(tramp-do-copy-or-rename-file-out-of-band): Use it.
(tramp-scp-direct-remote-copying, tramp-methods) <scp, scpx>: Use "%z".
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
2022-05-08 Po Lu <luangruo@yahoo.com>
Improve handling of invisible cursor alloc failures
* src/xterm.c (x_toggle_visible_pointer): Use Xfixes if cursor
allocation really fails. This happens when the X server has a
limit on the number of cursors that can be created.
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix file-based stipple on NS
* src/image.c (image_create_bitmap_from_file) [HAVE_NS]: Fix
loading XBM data from file.
2022-05-08 Eli Zaretskii <eliz@gnu.org>
Fix selection dialog display on MS-Windows
* src/w32fns.c (w32_wnd_proc) <WM_PAINT>: Update the frame from
the back buffer when double-buffering is in effect and a selection
dialog is open.
(w32_dialog_in_progress): Indicate to 'w32_wnd_proc' that a
selection dialog is open. (Bug#55208)
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix display of hollow box cursor on NS
* src/nsterm.m (ns_draw_window_cursor): Fix verbatim
translations from X.
2022-05-08 Po Lu <luangruo@yahoo.com>
Fix setting stipple via `set-face-stipple'
* lisp/faces.el (face-valid-attribute-values): Return results
for `:stipple' in correct format.
2022-05-08 Po Lu <luangruo@yahoo.com>
Implement stipples for stretch glyphs
* src/haikuterm.c (haiku_draw_stipple_background): Accept new
arguments for specifying the color explicitly. All callers
changed.
(haiku_draw_stretch_glyph_string): Draw stipple correctly.
(haiku_draw_glyph_string): Handle stipple correctly when drawing
neighbors.
2022-05-08 Po Lu <luangruo@yahoo.com>
Fully implement stipples for text on Haiku
* src/haikufont.c (haikufont_draw): Use
`haiku_draw_background_rect' instead.
* src/haikuterm.c (haiku_draw_plain_background): Change
arguments to accept rect manually.
(haiku_get_bitmap): Delete function.
(haiku_get_bitmap_rec): New function.
(haiku_draw_stipple_background): Accept rect instead of box
sizes.
(haiku_draw_background_rect): New function.
(haiku_maybe_draw_background): Use that instead.
(haiku_draw_image_glyph_string): Add notice.
(haiku_draw_glyph_string): Set `stippled_p' correctly.
* src/haikuterm.h (struct haiku_bitmap_record): New fields for
keeping track of stipple state.
* src/image.c (image_create_bitmap_from_data)
(image_create_bitmap_from_file, free_bitmap_record): Free and
set them accordingly.
2022-05-07 Po Lu <luangruo@yahoo.com>
Implement bitmap loading for faces on Haiku
Stipples don't completely work yet.
* lisp/faces.el (face-valid-attribute-values): Enable `:stipple'
on Haiku.
* src/haiku_draw_support.cc (BView_DrawBitmap)
(BView_DrawBitmapWithEraseOp, BView_DrawMask): Don't push and
pop states.
(BView_DrawBitmapTiled): New function.
* src/haiku_support.cc (BBitmap_import_mono_bits): Delete
function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (get_string_resource): Fix coding style.
(haiku_get_bitmap, haiku_draw_stipple_background): Implement
partially.
(haiku_set_scroll_bar_default_width)
(haiku_set_scroll_bar_default_height, haiku_scroll_bar_create)
(haiku_set_horizontal_scroll_bar, haiku_set_vertical_scroll_bar)
(haiku_create_terminal, haiku_scroll_bar_remove): Fix coding
style.
* src/image.c (image_create_bitmap_from_data)
(image_create_bitmap_from_file): Implement on Haiku.
2022-05-07 Po Lu <luangruo@yahoo.com>
Use correct event structures to fetch time on XI2
* src/xterm.c (handle_one_xevent): Don't use generic `xi_event'
to access the event time.
2022-05-07 Paul Eggert <eggert@cs.ucla.edu>
* src/fns.c: Fix IDs in comments to match code.
2022-05-07 Eli Zaretskii <eliz@gnu.org>
Fix Bengali composition rules
* lisp/language/indian.el (bengali-composable-pattern): Fix
composition rules for U+09F0 and U+09FE. Patch from
समीर सिंह Sameer Singh <lumarzeli30@gmail.com>. (Bug#55303)
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Make 'delete-process' into a command
* doc/lispref/processes.texi (Deleting Processes): Document
missing PROCESS value.
* src/process.c (Fdelete_process): Allow calling interactively
(bug#10107).
2022-05-07 Eli Zaretskii <eliz@gnu.org>
Improve Devanagari character composition rules
* lisp/language/indian.el (devanagari-composable-pattern): Add
rules for Vedic accents. Suggested by Madhu <enometh@meer.net>.
2022-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
(dabbrev-completion): Fix bug#45768
Make `dabbrev-completion` go through `completion-at-point` so that
it interacts correctly with Icomplete. Export a new
`completion-capf` function while we're at it, since it can be useful
elsewhere.
* lisp/dabbrev.el (dabbrev-capf): New function,
extracted from `dabbrev-completion`.
(dabbrev-completion): Use it.
2022-05-07 Po Lu <luangruo@yahoo.com>
Clean up some variables in the Haiku code
* src/haikuterm.c: Add comments to some variables and clean up
initializers.
* src/haikuterm.h (haiku_frame_param_handlers): Move here
instead.
2022-05-07 समीर सिंह Sameer Singh <lumarzeli30@gmail.com>
Add support for the Kaithi script
* lisp/language/indian.el ("Kaithi"): New language environment.
Add composition rules for Kaithi. Add sample text and input
method.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Kaithi.
* lisp/leim/quail/indian.el ("kaithi"): New input method.
* etc/HELLO: Add a Kaithi greeting.
* etc/NEWS: Announce the new language environment and its
input method.
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Explain better what the interactive prefix does in scroll-down/up
* lisp/window.el (scroll-up-command, scroll-down-command):
* lisp/image-mode.el (image-scroll-up, image-scroll-down):
Actually explain what the interactive prefix does (bug#44503).
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Document the `x' DWIM action in the manual
* doc/emacs/package.texi (Package Menu): Mention the DWIM action
of the `x' command.
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Remove tar-mode dabbrev-ignored-buffer-modes
* lisp/dabbrev.el (dabbrev-ignored-buffer-modes): Remove tar-mode
from the default, because it isn't really a binary mode.
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Make `x' in package-menu-mode more DWIM
* lisp/emacs-lisp/package.el (package-menu-mode): Make the doc
string more helpful.
(package-menu-execute): Make `x' when no files are installed DWIM.
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Improve inferior-python-mode scroll behaviour
* lisp/progmodes/python.el (inferior-python-mode): Use
scroll-convervatively instead of trying to do this with a comint
filter (which produces flickering) (bug#31115).
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warnings in newer subr tests
* test/lisp/subr-tests.el (test-local-set-state): Fix compilation
warnings.
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Allow dabbrev to ignore binary buffers
* doc/emacs/abbrevs.texi (Dynamic Abbrevs): Document it.
* lisp/dabbrev.el (dabbrev-ignored-buffer-names)
(dabbrev-ignored-buffer-regexps): Link to it.
(dabbrev-ignored-buffer-modes): New user option (bug#19392).
(dabbrev--filter-buffer-modes): New function.
(dabbrev--select-buffers, dabbrev--make-friend-buffer-list): Use it.
2022-05-07 Po Lu <luangruo@yahoo.com>
Fix mouse face dismissal in some widget popups
* src/xterm.c (handle_one_xevent): Accept XINotifyUngrab as
well.
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Allow inhibiting linkification in *Help* buffers
* doc/lispref/help.texi (Keys in Documentation): Document it.
lisp/help-mode.el (help-make-xrefs): Implement a new \+ syntax to
inhibit buttonification.
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Make the icomplete-in-buffer doc string document more
* lisp/icomplete.el (icomplete-in-buffer): Note what this variable
does and doesn't do (bug#45768).
2022-05-07 Lars Ingebrigtsen <larsi@gnus.org>
Avoid having font locking triggering unnecessary auto-saving
* lisp/subr.el (with-silent-modifications): Use it to restore the
ticks (bug#11303).
* src/buffer.c (Finternal__set_buffer_modified_tick): New function.
2022-05-07 Po Lu <luangruo@yahoo.com>
Cache color lookup failures as well
* src/xterm.c (x_parse_color): Cache color lookup failures too.
* src/xterm.h (struct color_name_cache_entry): New field
`valid'.
2022-05-07 Yuan Fu <casouri@gmail.com>
Add tree-sitter intergration
* configure.ac (HAVE_TREE_SITTER, TREE_SITTER_OBJ): New variables.
(DYNAMIC_LIB_SUFFIX): new variable, I copied code from MODULES_SUFFIX
so the diff looks this way.
* doc/lispref/elisp.texi (Top): Add tree-sitter manual.
* doc/lispref/modes.texi (Font Lock Mode): mention tree-sitter.
(Parser-based Font Lock): New section.
(Auto-Indentation): Mention tree-sitter.
(Parser-based Indentation): New section.
* doc/lispref/parsing.texi (Parsing Program Source): New chapter.
* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add
treesit-parser and treesit-node type.
* lisp/treesit.el: New file.
* src/Makefile.in (TREE_SITTER_LIBS, TREE_SITTER_FLAGS,
TREE_SITTER_OBJ): New variables.
* src/alloc.c:
(cleanup_vector): Add cleanup code for treesit-parser and
treesit-node.
* src/casefiddle.c (casify_region): Notify tree-sitter parser of
buffer change.
* src/data.c (Ftype_of): Add treesit-parser and treesit-node type
(Qtreesit_parser, Qtreesit_node): New symbol.
* src/emacs.c (main): Add symbols in treesit.c.
* src/eval.c (define_error): Move the function to here.
* src/insdel.c (insert_1_both, insert_from_string_1, insert_from_gap,
insert_from_buffer_1, replace_range, del_range_2): Notify tree-sitter
parser of buffer change.
* src/json.c (define_error): Move this function out.
* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add treesit-parser and
treesit-node.
* src/lread.c (Vdynamic_library_suffixes): New variable.
* src/print.c (print_vectorlike): Add code for printing
treesit-parser and treesit-node.
* src/treesit.c: New file.
* src/treesit.h: New file.
* test/src/treesit-tests.el: New file.
2022-05-07 Po Lu <luangruo@yahoo.com>
Fix 32-bit Haiku build
* src/haiku_support.cc (MessageReceived): Fix type of
`old_what'.
2022-05-07 Po Lu <luangruo@yahoo.com>
Implement `sticky' frame parameter on Haiku
* src/haiku_support.cc (BWindow_set_sticky): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_set_sticky, haiku_frame_parm_handlers):
New frame param handler.
2022-05-07 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
afdf72eeb2 Fix bug#55274
5bfac7c774 Provide reference for OTF tags in the ELisp manual
2022-05-06 Po Lu <luangruo@yahoo.com>
Fix race conditions in the Haiku file dialog
* src/haiku_support.cc (current_file_panel_port): Delete
variable.
(class EmacsWindow, MessageReceived): Stop handling file panel
events here.
(class EmacsFilePanelCallbackLooper): New class.
(be_popup_file_dialog): Use a separate looper to handle file
panel events.
2022-05-06 Po Lu <luangruo@yahoo.com>
Fix freezes with some oddball menus
* src/xmenu.c (x_activate_menubar): Clear flag if dispatching
the event failed.
* src/xterm.c (handle_one_xevent): Check for sensitive
CascadeButton instead of row column type.
2022-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
(icomplete-exhibit): Fix use in-buffer
Also prefer #' to quote function names and remove redundant :group args.
* lisp/icomplete.el (icomplete-exhibit): Don't presume the completion
field ends at `point-max`.
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Make elisp-mode-syntax-propertize tighter to reflect syntax
* lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize): ?\N
and #s are case sensitive, so don't case-fold. (And adjust regexps.)
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Make down-list signal an error if called inside a string
* lisp/emacs-lisp/lisp.el (down-list): Signal an error inside a
string (bug#5588).
2022-05-06 Juri Linkov <juri@linkov.net>
Add char-folding of double quotes in isearch-fold-quotes-mode (bug#24510)
* lisp/isearch.el (isearch-fold-quotes-mode): Add char-folding of
double quotation marks.
* test/lisp/subr-tests.el (test-local-set-state): Test values
after setting state.
2022-05-06 Eric Abrahamsen <eric@ericabrahamsen.net>
Fix handling of IMAP search strings
* lisp/gnus/gnus-search.el (gnus-search-imap-handle-string): This was
a misunderstanding of what `multibyte-string-p' means. The check was
actually supposed to be whether the string was non-ascii or not.
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Further log-view-file-next fix-ups
* doc/emacs/maintaining.texi (VC Change Log): Remove the entries
for commands now removed from most VCs.
* lisp/vc/log-view.el (log-view-mode-menu): Disable menu entries
(bug#14531).
2022-05-06 Eric Abrahamsen <eric@ericabrahamsen.net>
Don't force Gnus cache usage in nnvirtual
* lisp/gnus/nnvirtual.el (nnvirtual-retrieve-headers): We're not sure
why this was happening, but it shouldn't be necessary. Simply calling
`gnus-retrieve-headers' directly will use the cache if the user has
configured it.
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix forward-sexp for Unicode names in Emacs Lisp mode
* lisp/progmodes/elisp-mode.el (elisp-mode-syntax-propertize):
Make forward-sexp work for Unicode character names (bug#23354).
2022-05-06 Noam Postavsky <npostavs@gmail.com>
Handle elisp #-syntax better in Emacs Lisp mode
* elisp-mode.el (elisp-mode-syntax-propertize): New function.
(emacs-lisp-mode): Set it as syntax-propertize-function (bug#15998).
2022-05-06 Michael Albinus <michael.albinus@gmx.de>
Fix bug#55274
* lisp/dired-aux.el (dired-do-compress-to): Use `file-local-name'
for shell out-file. (Bug#55274)
2022-05-06 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/smie.el (smie-auto-fill): Fix bug#19342
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Respect help-window-keep-selected in shortdoc buttons
* lisp/help-fns.el (help-fns--mention-shortdoc-groups): Respect
help-window-keep-selected.
* lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): Allow
reusing the window.
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Move buffer-local-set-state to subr because it's used at runtime
* lisp/subr.el (buffer-local-set-state)
(buffer-local-set-state--get, buffer-local-restore-state): Moved
from easy-mmode.el because they have to be available run-time.
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Make compilation-parse-errors more resilient
* lisp/progmodes/compile.el (compilation-parse-errors): Be more
resilient in the presence of regexp alist not being completely set
up (bug#55282).
2022-05-06 Po Lu <luangruo@yahoo.com>
Improve font specs generated by the Haiku font dialog
* src/haikufont.c (Fx_select_font): Use `nil' instead of
`unspecified' to be consistent with other font dialogs.
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix inhibiting reading the user init file with "emacs -x"
* lisp/startup.el (command-line): Really inhibit loading the user
init file with "emacs -x".
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Remove the P/N/M-p/M-n bindings from the general log-view map
* lisp/vc/log-view.el (log-view-mode-map): Remove the P/N/M-p/M-n
bindings (that are only usable in some VCs).
* lisp/vc/vc-sccs.el (vc-sccs-log-view-mode):
* lisp/vc/vc-rcs.el (vc-rcs-log-view-mode):
* lisp/vc/vc-cvs.el (vc-cvs-log-view-mode): New modes that bind
the P/N/M-p/M-n commands (bug#14531).
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Don't override search-default-mode set by user in info/help
* lisp/info.el (Info-mode):
* lisp/help-mode.el (help-mode): Don't override isearch mode set
by the user.
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Char-fold quotation characters in *info* and *Help*
* lisp/info.el (Info-mode):
* lisp/help-mode.el (help-mode): Use it.
* lisp/isearch.el (isearch-fold-quotes-mode): New minor mode
(bug#24510).
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Autoload the buffer-local-set* things
* lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state--get)
(buffer-local-restore-state): Autoload. Perhaps it would be
better to move these functions to subr.el or something...
2022-05-06 Lars Ingebrigtsen <larsi@gnus.org>
Add new helper macros for minor modes to restore variables
* doc/lispref/modes.texi (Defining Minor Modes): Document it.
* lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state): New macro.
(buffer-local-set-state--get): Helper function.
(buffer-local-restore-state): New function.
* lisp/textmodes/word-wrap-mode.el (word-wrap-whitespace-mode):
Use it to simplify code.
2022-05-06 Michael Albinus <michael.albinus@gmx.de>
Fix thinko in tramp-skeleton-write-region
* lisp/net/tramp.el (tramp-skeleton-write-region): Fix typos.
Flush cache in time. (Bug#55247)
(tramp-handle-lock-file): Suppress messages in `write-region'.
2022-05-06 Po Lu <luangruo@yahoo.com>
Fix calculation of display resolution on Haiku
* src/haiku_support.cc (BScreen_px_dim): Rename to
`be_get_screen_dimensions'.
(BScreen_res): Rename to `be_get_display_resolution' and fix
resolution computation.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (compute_tip_xy, Fx_display_pixel_width)
(Fx_display_pixel_height, Fx_display_mm_height)
(Fx_display_mm_width): Update accordingly.
* src/haikuterm.c (haiku_term_init): Likewise.
2022-05-06 Eli Zaretskii <eliz@gnu.org>
Provide reference for OTF tags in the ELisp manual
* doc/lispref/display.texi (Low-Level Font): Provide the canonical
reference URL for OTF tags.
2022-05-06 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
69c56cbe6e ; * src/w32notify.c: Fix a typo in a comment.
3b9e60ba2f ; * src/window.c (Fset_window_start): Mention the effect o...
2022-05-06 Po Lu <luangruo@yahoo.com>
Fix more problems with display of composite glyph strings on Haiku
* src/haikuterm.c
(haiku_draw_composite_glyph_string_foreground): Fix pen size of
placeholder rectangle.
2022-05-05 Po Lu <luangruo@yahoo.com>
Fix mouse face persisting inside Lucid menus on XI2
* src/xmenu.c (create_and_show_popup_menu): Call `x_mouse_leave'
on Lucid as well when the input extension is being used.
* src/xterm.c (x_mouse_leave): Enable on Lucid XI2 builds.
* src/xterm.h: Update prototypes.
2022-05-05 Po Lu <luangruo@yahoo.com>
* lwlib/lwlib.c (lw_separator_p): Fix empty strings being separators.
2022-05-05 Po Lu <luangruo@yahoo.com>
Fix menu dismissal problems on Xt builds with XI2
* src/xmenu.c (prepare_for_entry_into_toolkit_menu)
(leave_toolkit_menu): New functions.
(create_and_show_popup_menu): Replace some of the grab logic
with resetting the XI event mask instead.
2022-05-05 Po Lu <luangruo@yahoo.com>
Fix more issues with DND state on multiple displays
* src/xterm.c (handle_one_xevent): Don't update DND state on the
wrong display.
2022-05-05 Po Lu <luangruo@yahoo.com>
Improve safety of DND when Emacs is connected to multiple displays
* src/xterm.c (x_dnd_begin_drag_and_drop): Don't check movement
frame unless we know it comes from the right display.
2022-05-05 Paul Eggert <eggert@cs.ucla.edu>
Gnulib update via admin/merge-gnulib
2022-05-05 James N. V. Cash <james.nvc@gmail.com>
* lisp/emacs-lisp/crm.el: Set completion-list-insert-choice-function.
* lisp/emacs-lisp/crm.el (completing-read-multiple): Set buffer-local
completion-list-insert-choice-function that handles string values of args.
https://lists.gnu.org/archive/html/emacs-devel/2022-05/msg00017.html
2022-05-05 Juri Linkov <juri@linkov.net>
* lisp/desktop.el: Enable tab-bar-mode after restoring frames with a tab bar.
(desktop-restore-frameset): Enable tab-bar-mode when a restored frame
contains the frame parameter tab-bar-lines (bug#55070).
2022-05-05 Paul Eggert <eggert@cs.ucla.edu>
timestamp doc minor improvements
* doc/lispref/os.texi (Time of Day, Time Conversion)
(Time Calculations): Fix some confusion about decoded times,
timestamps, and time values. Exclude floating-point infinities
and NaNs from timestamps, as the code doesnt always follow
IEEE-754 rules for them and whatever the code does, doesnt matter
for timestamps anyway.
2022-05-05 Glenn Morris <rgm@gnu.org>
* doc/emacs/misc.texi (Interactive Shell): Fix paren typo.
2022-05-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix a mistaken test case in test-undo-region
* test/lisp/simple-tests.el (test-undo-region): Fix failing cases
(bug#21523) -- the crossing-region case shouldn't be included,
either.
2022-05-05 Lars Ingebrigtsen <larsi@gnus.org>
Advertise OSC directory tracking more
* doc/emacs/misc.texi (Interactive Shell): Document OSC directory
tracking more.
* lisp/shell.el (shell-dirtrack-mode): Link to the OSC directory
tracking function.
2022-05-05 Po Lu <luangruo@yahoo.com>
Set GC line width on more GCs
* src/xterm.c (x_set_cursor_gc, x_set_mouse_face_gc)
(x_draw_bar_cursor): Make created scratch GCs have a line-width
of 1.
2022-05-05 Lars Ingebrigtsen <larsi@gnus.org>
Sort completions in Info references/menu correctly
* lisp/info.el (Info-follow-reference): Sort completions in the
order they appear in the buffer (bug#54175).
(Info-menu-update): Ditto.
2022-05-05 Lars Ingebrigtsen <larsi@gnus.org>
Be more resilient towards errors during error handling
* src/print.c (print_error_message): Avoid infinite recursion if
`substitute-command-keys' bugs out (bug#55269).
2022-05-05 Philip Kaludercic <philipk@posteo.net>
Avoid resizing mini buffer when displaying page numbers
* doc-view.el (doc-view-goto-page): Do not insert a newline at the end
of the "current info" if not necessary.
2022-05-05 Lars Ingebrigtsen <larsi@gnus.org>
Describe kmacro registers better
* lisp/kmacro.el (register-val-describe): Allow describing macros
that contain mouse events (bug#55266).
2022-05-05 Po Lu <luangruo@yahoo.com>
Speed up opening fonts on Haiku
* src/font.h (font_property_index): Note that some font drivers
use the extra data in a font entity to store driver-specific
information.
* src/haiku_font_support.cc (BFont_find): Set font indices.
(be_open_font_at_index): New function.
(BFont_open_pattern): Clean up coding style.
* src/haiku_support.h (enum haiku_font_specification)
(struct haiku_font_pattern): New fields and specifications for
indices.
* src/haikufont.c (haikufont_pattern_to_entity, haikufont_open):
Use indices to open fonts if available in the extra data.
2022-05-05 Po Lu <luangruo@yahoo.com>
Fix font weight reporting on macOS
* src/macfont.m (macfont_store_descriptor_attributes): Fix
numeric values for the addition of `medium'.
* src/nsterm.m (ns_font_desc_to_font_spec): Adjust accordingly.
(ns_create_font_panel_buttons): Try to fix button width.
2022-05-05 Po Lu <luangruo@yahoo.com>
Improve appearance of macOS font panel buttons
* src/nsterm.m (ns_create_font_panel_buttons):
([EmacsView noteUserCancelledSelection]): New functions.
([EmacsView showFontPanel]): Use those buttons instead.
2022-05-05 Michael Albinus <michael.albinus@gmx.de>
Add Tramp test
* test/lisp/net/tramp-tests.el (tar-mode): Require.
(tramp-test10-write-region-other-file-name-handler): New test.
(tramp-test31-interrupt-process, tramp-test31-signal-process):
Tag them :unstable unconditionally.
* test/lisp/net/tramp-resources/foo.tar.gz: New resource file.
2022-05-05 Po Lu <luangruo@yahoo.com>
Fix min size reporting of style pane in Haiku font dialogs
* src/haiku_support.cc (class DualLayoutView):
(MinSize): Implement correctly with both views.
2022-05-05 Po Lu <luangruo@yahoo.com>
Use bswap_32 and bswap_16 in Motif DND code
* src/xterm.c (SWAPCARD32, SAPCARD16): Use glibc/gnulib
byte-swapping functions if checking is disabled.
2022-05-05 Po Lu <luangruo@yahoo.com>
Take size into account when previewing fonts on Haiku
* src/haiku_support.cc (MessageReceived): Decode size sent and
handle `UPDATE_PREVIEW_DIALOG' message.
(UpdatePreview): Add current size.
(EmacsFontSelectionDialog): Assign correct modification messages
to the size entry.
2022-05-04 Po Lu <luangruo@yahoo.com>
Allow displaying font preview on Haiku
* src/haiku_support.cc (class EmacsFontPreviewDialog)
(class DualLayoutView): New classes.
(class EmacsFontSelectionDialog): Add field for preview,
checkbox and layout view.
(MessageReceived): Handle new font preview messages.
(EmacsFontSelectionDialog): New constructor.
(FrameResized): Resize the layout view instead.
2022-05-04 Po Lu <luangruo@yahoo.com>
Fix device reporting from scroll bar events on X
* src/xterm.c (x_scroll_bar_handle_click): New argument
`device'.
(handle_one_xevent): Set it appropriately as long as required.
2022-05-04 dickmao <dick.r.chiang@gmail.com>
Transcription error
* lisp/gnus/gnus-topic.el (gnus-topic-display-missing-topic):
Indent.
(gnus-topic-update-topic-line): Insert missing fourth argument.
2022-05-04 Sean Whitton <spwhitton@spwhitton.name>
Revert "server-execute: Initialize the *scratch* buffer"
This reverts commit f2d2fe6fc8ef0b6087c4a8a69d05a4e521b23047.
To be replaced with factoring out *scratch* buffer initialization.
2022-05-04 Glenn Morris <rgm@gnu.org>
Stop esh-var-tests leaving temp files behind
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/quoted-interp-temp-cmd): Don't leave temporary files.
2022-05-04 Eric Abrahamsen <eric@ericabrahamsen.net>
Remove bogus mode check from gnus topic update functions
* lisp/gnus/gnus-topic.el (gnus-topic-update-topics-containing-group):
(gnus-topic-update-topic): These functions originally checked to see
if we were in group mode, but later that check was changed to
'gnus-topic-mode, which never passes because 'gnus-topic-mode isn't a
major mode. Revert to checking for 'gnus-group-mode, and use
`derived-mode-p' while we're at it.
2022-05-04 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Use pixel-based alignment (bug#55207)
* lisp/tab-bar.el (tab-bar-format-align-right): Use string-pixel-width
on the string with tab-bar face to get the width in pixels to align.
(tab-bar-format-global): Remove string-trim-right to keep padding-right.
2022-05-04 Basil L. Contovounesios <contovob@tcd.ie>
Remove unused lexvar in subr-x-tests.el
* test/lisp/emacs-lisp/subr-x-tests.el
(test-with-buffer-unmodified-if-unchanged): Pacify unused lexvar
byte-compiler warning. Simplify slightly and reindent.
2022-05-04 Glenn Morris <rgm@gnu.org>
* src/xterm.c (handle_one_xevent): Fix int/Lisp_Object mix-up.
2022-05-04 Robert Pluim <rpluim@gmail.com>
* etc/NEWS: Improve some NEWS entries
2022-05-04 Robert Pluim <rpluim@gmail.com>
* doc/emacs/killing.texi: Fix typos
* doc/emacs/killing.texi (Clipboard): Fix wording in description of
'save-interprogram-paste-before-kill'. Ensure the reference to
"Yanking Media" is not split over two lines.
2022-05-04 Eli Zaretskii <eliz@gnu.org>
Fix restoring desktop from TTY-saved sessions
* lisp/frameset.el (frameset-restore): Don't override/fix position
of the restored frames for which we have geometry information
saved by a past GUI session. (Bug#55070)
2022-05-04 Po Lu <luangruo@yahoo.com>
Turn on XInput 2 support by default
The support doesn't interfere with compatibility, since Emacs
built with XInput 2 support transparently falls back to Core
Input when a suitable version of the input extension is not
available. It also matured much sooner than expected, so
enabling this by default will lead to new features being
available to more users.
* INSTALL:
* configure.ac:
* etc/NEWS: Enable XInput 2 support by default.
2022-05-04 Eli Zaretskii <eliz@gnu.org>
Clarify the doc string of 'with-buffer-unmodified-if-unchanged'
* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
Describe better what is meant by "buffer changes". (Bug#4587)
2022-05-04 Po Lu <luangruo@yahoo.com>
Remove unused variable in Haiku selection code
* src/haiku_select.cc (selection_state_flag):
* src/haikuselect.h: Remove variable.
2022-05-04 Eli Zaretskii <eliz@gnu.org>
Fix 'bidi-class' property of unassigned codepoints
* admin/unidata/unidata-gen.el (unidata-file-alist): Update the
default values of 'bidi-class' according to the latest Unicode
Standard.
* admin/notes/unicode: Mention possible changes in
DerivedBidiClass.txt that need to be reflected in unidata-gen.el.
* lisp/international/characters.el (#xfb50, #xfdf0): Fix the
Arabic block characters. (Bug#55256)
2022-05-04 Lars Ingebrigtsen <larsi@gnus.org>
Flush the tool bar cache on all terminals when adding new entries
* lisp/tool-bar.el (tool-bar--flush-cache): Flush the cache for
the current tool bar on all terminals.
2022-05-04 Po Lu <luangruo@yahoo.com>
Correctly encode and decode filenames on NS
* src/nsfns.m (Fns_read_file_name): Run dir through ENCODE_FILE
and fname through DECODE_FILE.
2022-05-04 Po Lu <luangruo@yahoo.com>
Fix file name encoding on Haiku file dialogs
* src/haikufns.c (Fhaiku_read_file_name): Use ENCODE_FILE and
DECODE_FILE correctly.
2022-05-04 Po Lu <luangruo@yahoo.com>
Set initial size in the Haiku font dialog
* src/haiku_support.cc (class EmacsFontSelectionDialog)
(EmacsFontSelectionDialog): New argument `initial_size'.
(be_select_font): Likewise.
* src/haiku_support.h: Update prototypes.
* src/haikufont.c (Fx_select_font): Set font dialog size to the
pixel size of the current font.
2022-05-03 Po Lu <luangruo@yahoo.com>
Encode and decode filenames correctly on Haiku
* src/haikufns.c (Fhaiku_read_file_name): Decode file names
correctly.
2022-05-03 Po Lu <luangruo@yahoo.com>
Clean up Haiku file panel code
* lisp/term/haiku-win.el (x-file-dialog): Fix nil values of
`default-filename'.
* src/haiku_io.c (haiku_len): Remove `FILE_PANEL_EVENT'.
(record_c_unwind_protect_from_cxx, c_specpdl_idx_from_cxx)
(c_unbind_to_nil_from_cxx): Delete functions.
* src/haiku_support.cc (MessageReceived): Write pointer to
buffer to file panel port instead.
(struct popup_file_dialog_data): Delete strict.
(unwind_popup_file_dialog): Delete functions.
(be_popup_file_dialog): Accept a pointer to
`process_pending_signals' and run nested event loop as usual.
* src/haiku_support.h (enum haiku_event_type): Remove
`FILE_PANEL_EVENT'.
(struct haiku_file_panel_event): Delete struct.
* src/haikufns.c (unwind_popup): Delete function.
(Fhaiku_read_file_name): Update and quit on invalid filename.
* src/haikuterm.c (struct unhandled_event): Delete struct.
(haiku_read_socket): Remove "unhandled events".
2022-05-03 Po Lu <luangruo@yahoo.com>
* src/haikufns.c (haiku_create_frame): Improve default border width.
2022-05-03 Sean Whitton <spwhitton@spwhitton.name>
server-execute: Initialize the *scratch* buffer
* lisp/server.el: Require subr-x when compiling.
(server-execute): Initialize the *scratch* buffer in the same way that
the scratch-buffer command does, for consistency.
2022-05-03 Po Lu <luangruo@yahoo.com>
Fix display of placeholder composite string on Haiku
* src/haikuterm.c
(haiku_draw_composite_glyph_string_foreground): Correct
translation of XDrawRectangle.
2022-05-03 Po Lu <luangruo@yahoo.com>
Fix event mask and source indication of _NET_WM_STATE messages
* src/xselect.c (x_send_client_event): Make static.
* src/xterm.c (set_wm_state): Send event with correct mask and
source indication set.
* src/xterm.h: Update prototypes.
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make some recently added tests actually run
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make with-buffer-unmodified-if-unchanged more efficient
* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
Make more efficient.
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make with-buffer-unmodified-if-unchanged more resilient
* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
Make more resilient.
2022-05-03 Stefan Monnier <monnier@iro.umontreal.ca>
with-buffer-unmodified-if-unchanged: Tweak the implementation
* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
Skip the hash if the buffer was not modified at all.
Use `restore-buffer-modified-p`.
Also mention that it's imperative that the current buffer is preserved.
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS entry about incompatible sorting command behaviors
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make sorting not change buffer modification status always
* lisp/sort.el (sort-subr): Don't mark buffer modified if the
sorting didn't change anything (bug#4587).
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Add new macro with-buffer-unmodified-if-unchanged
* lisp/emacs-lisp/subr-x.el (with-buffer-unmodified-if-unchanged):
New macro.
* lisp/textmodes/fill.el (fill-paragraph): Macro code copied from
here. Adjust and use the macro.
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix thinko in recent tool bar caching logic
* lisp/tool-bar.el (tool-bar--cache-key): New function.
(tool-bar--flush-cache, tool-bar-make-keymap): Use it.
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make tool bar caching more sensible
* lisp/tool-bar.el (tool-bar-keymap-cache): Make into a non-weak
EQ hash table, which should be faster and not lose the contents
after a GC (bug#43397).
(tool-bar--flush-cache, tool-bar-make-keymap): Use the terminal
only as the key.
(tool-bar-local-item, tool-bar-local-item-from-menu): Flush the
cache after altering the tool bar.
2022-05-03 Eli Zaretskii <eliz@gnu.org>
Allow desktop to restore frames and windows on TTY frames
* lisp/frameset.el (frameset-persistent-filter-alist): Add 'top',
'left', 'bottom', and 'right' to frame parameters that are shelved
and unshelved when switching from GUI to TTY frames and vice
versa.
(frameset--restore-frame): Accept two optional arguments DX and
DY, and offset by them each frame restored from TTY desktop, to
make such restored frames more prominently visible. Force such
frames to be visible on GUI display, since the visibility
parameter is meaningless for TTY frames.
(frameset-restore): Pass DX and DY offsets to
'frameset--restore-frame', when restoring TTY frames on GUI
display.
* lisp/desktop.el (desktop-restore-frameset): Pass the
:force-onscreen argument of 'frameset-restore' as nil when
restoring frames on text-mode display.
(desktop-restore-forces-onscreen): Document that this option has
no real effect on restoring frames on text-mode display.
(desktop-restoring-frameset-p): Allow restoring frames in non-GUI
sessions, but disallow that when the selected frame is the
daemon's initial frame. (Bug#55070)
2022-05-03 Jim Porter <jporterbugs@gmail.com>
Improve the behavior of concatenating parts of Eshell arguments
Previously, concatenating a list to a string would first convert the
list to a string. Now, the string is concatenated with the last
element of the list.
* lisp/eshell/esh-util.el (eshell-to-flat-string): Make obsolete.
* lisp/eshell/esh-arg.el (eshell-concat, eshell-concat-1): New
functions.
(eshell-resolve-current-argument): Use 'eshell-concat'.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-concat-cmd):
Add check for concatenation of multiline output of subcommands.
(esh-var-test/quoted-interp-concat-cmd): New test.
* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-13): Use
'eshell-concat'.
* doc/misc/eshell.texi (Expansion): Document this behavior.
* etc/NEWS: Announce the change (bug#55236).
2022-05-03 Jim Porter <jporterbugs@gmail.com>
Return a list of numbers if all lines of an Eshell subcommand are numeric
* lisp/eshell/esh-util.el (eshell-convertible-to-number-p)
(eshell-convert-to-number): New functions...
(eshell-convert): ... use them.
* test/lisp/eshell/esh-var-tests.el
(esh-var-test/interp-convert-cmd-string-newline): Add checks for
numeric output.
* doc/misc/eshell.texi (Dollars Expansion): Document the new behavior.
* etc/NEWS: Announce the change (bug#55236).
2022-05-03 Jim Porter <jporterbugs@gmail.com>
Eshell variable expansion should always return strings inside quotes
This is closer in behavior to regular shells, and gives Eshell users
greater flexibility in how variables are expanded.
* lisp/eshell/esh-util.el (eshell-convert): Add TO-STRING argument.
* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Add MODIFIER-P
argument and adjust how 'eshell-convert' and 'eshell-apply-indices'
are called.
(eshell-get-variable, eshell-apply-indices): Add QUOTED argument.
* test/lisp/eshell/esh-var-tests.el (eshell-test-value): New defvar.
(esh-var-test/interp-convert-var-number)
(esh-var-test/interp-convert-var-split-indices)
(esh-var-test/interp-convert-quoted-var-number)
(esh-var-test/interp-convert-quoted-var-split-indices)
(esh-var-test/interp-convert-cmd-string-newline)
(esh-var-test/interp-convert-cmd-multiline)
(esh-var-test/interp-convert-cmd-number)
(esh-var-test/interp-convert-cmd-split-indices)
(esh-var-test/quoted-interp-convert-var-number)
(esh-var-test/quoted-interp-convert-var-split-indices)
(esh-var-test/quoted-interp-convert-quoted-var-number)
(esh-var-test/quoted-interp-convert-quoted-var-split-indices)
(esh-var-test/quoted-interp-convert-cmd-string-newline)
(esh-var-test/quoted-interp-convert-cmd-multiline)
(esh-var-test/quoted-interp-convert-cmd-number)
(esh-var-test/quoted-interp-convert-cmd-split-indices): New tests.
* doc/misc/eshell.texi (Arguments): Expand this section, and document
the new behavior.
(Dollars Expansion): Provide more detail about '$(lisp)' and
'${command}' forms.
* etc/NEWS (Eshell): Announce this change (bug#55236).
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make adding things to the tool bar show up on next redisplay
* lisp/tool-bar.el (tool-bar--flush-cache): New function.
(tool-bar-add-item): Flush the cache (bug#43397).
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Add new command 'package-update'
* doc/emacs/package.texi (Package Installation): Mention it.
* lisp/emacs-lisp/package.el (package-update): New command
(bug#18790).
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix key-parse problem with C-x ( ... sequences
* lisp/keymap.el (key-parse): Move the read-kbd-macro compat code
from here...
* lisp/subr.el (kbd): ... to here. (And fix the logic, too.)
This allows `key-parse' to have a less puzzling result while
maintaining backwards compatibility (bug#38775).
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make TAB work in makefile mode when transient mark mode is on
* lisp/progmodes/make-mode.el (makefile-mode): Insert a tab
instead of removing it (bug#37087).
2022-05-03 Michael Albinus <michael.albinus@gmx.de>
Handle file name handler in write-region's VISIT arg
* lisp/net/tramp.el (tramp-skeleton-delete-directory): Move up.
(tramp-skeleton-write-region): New defmacro. Handle also file
name handler in VISIT. (Bug#55166)
(tramp-handle-write-region):
* lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
* lisp/net/tramp-sh.el (tramp-sh-handle-write-region):
* lisp/net/tramp-smb.el (tramp-smb-handle-write-region):
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): Use it.
2022-05-03 Filipp Gunbin <fgunbin@fastmail.fm>
Rewrite sql-interactive-remove-continuation-prompt
* lisp/progmodes/sql.el (sql-starts-with-prompt-re): Remove.
(sql-ends-with-prompt-re): Remove
(sql-interactive-remove-continuation-prompt): Delete prompts from
anywhere in the process output, not just at the beginning of current
string. Streamline logic, describe it in docstring.
* test/lisp/progmodes/sql-tests.el: Add tests
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Make more buttons in *Help* respect `help-window-keep-selected'
* lisp/help-mode.el (help-function-cmacro, help-variable-def)
(help-face-def): Also respect `help-window-keep-selected' like the
other commands.
2022-05-03 rbrtb <104695105+rbrtb@users.noreply.github.com> (tiny change)
Ensure exit-function of eglot-c-at-point runs on exact match
When the completion is exact match, exit-function should still run.
Say one is using auto-imports feature of pyright. One types foo, and
triggers the completion. There are two candidates: foo and foo_bar. If
one chooses foo, the status would be 'exact' instead of 'finished', thus
exit-function is not executed, foo is not auto-imported.
* eglot.el (eglot-completion-at-point): Consider 'exact status.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/941
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Further mm-base64-line-p bug fixes
* lisp/gnus/mm-bodies.el (mm-base64-line-p): Fix parsing error
introduced by d90f54d.
2022-05-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix mm-base64-line-p logic
* lisp/gnus/mm-bodies.el (mm-base64-line-p): Don't claim that an
empty line is base64.
2022-05-03 Po Lu <luangruo@yahoo.com>
* src/haiku_support.cc (DrawContent): Use right UI color.
2022-05-03 Po Lu <luangruo@yahoo.com>
Make menu bar help text work on macOS as well
* lisp/tooltip.el (tooltip-show-help): Resort to displaying
messages in the echo area on NS.
* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Call
`show_help_echo' instead of storing an event into the keyboard
buffer.
2022-05-03 Po Lu <luangruo@yahoo.com>
Fix default font in macOS font dialogs
* src/nsterm.m ([EmacsView noteUserSelectedFont]): Use current
font if none was selected.
2022-05-03 Po Lu <luangruo@yahoo.com>
Fix some font parsing problems on NS
* src/nsterm.m (ns_font_desc_to_font_spec): Fix processing of
condensed width.
2022-05-03 Po Lu <luangruo@yahoo.com>
Handle GraphicsExpose events on scroll bars
* src/xterm.c (x_scroll_bar_expose): Handle GraphicsExpose
events.
(handle_one_xevent): Give graphics exposures to scroll bars.
2022-05-02 Po Lu <luangruo@yahoo.com>
Make sure rectangles are drawn correctly on X
* src/xfaces.c (prepare_face_for_display): Always use line-width
of 1.
* src/xfns.c (x_make_gc): Likewise.
* src/xterm.c (x_scroll_bar_expose): Comment out obsolete code.
2022-05-02 Po Lu <luangruo@yahoo.com>
Fix glyphless glyph display on Haiku
* src/haikuterm.c
(haiku_draw_glyphless_glyph_string_foreground): Fix rectangle
width.
2022-05-02 Po Lu <luangruo@yahoo.com>
Fix font matching of "Fira Code Retina" and "Fira Code Regular" on Haiku
* src/haiku_font_support.cc (font_family_style_matches_p): Don't
allow matches on fonts with an adstyle if none was specified in
the input pattern.
2022-05-02 Glenn Morris <rgm@gnu.org>
Don't leave temp files behind from undigest-tests
Sadly the "temp" in with-temp-file refers to a buffer, not a file.
* test/lisp/mail/undigest-tests.el (rmail-undigest-test-rfc934-digest)
(rmail-undigest-test-rfc1153-digest-strict)
(rmail-undigest-test-rfc1153-less-strict-digest)
(rmail-undigest-test-rfc1153-sloppy-digest)
(rmail-undigest-test-rfc1521-mime-digest)
(rmail-undigest-test-multipart-mixed-digest):
Delete temporary files at end.
2022-05-02 Po Lu <luangruo@yahoo.com>
Clean up X11 double buffering code
This fixes several latent bugs where code went down the path
with double buffering enabled when it wasn't, and vice versa.
* src/xfns.c (x_set_inhibit_double_buffering): Improve
commentary and only define when HAVE_XDBE.
(x_mark_frame_dirty): Only set buffer flip flag when HAVE_XDBE.
(initial_set_up_x_back_buffer): Clean up coding style and remove
unnecessary block_input pair.
(Fx_double_buffered_p): Always return nil if !HAVE_XDBE.
(x_frame_parm_handlers): Don't set double buffering handler if
!HAVE_XDBE.
* src/xftfont.c (xftfont_drop_xrender_surfaces, xftfont_driver):
Only define when XDBE is available.
* src/xterm.c (x_drop_xrender_surfaces): Likewise.
(x_clear_window): Don't test double buffering flags when
!HAVE_XDBE.
(show_back_buffer): Only define when HAVE_XDBE.
(x_flip_and_flush): Don't try to flip when !HAVE_XDBE.
(XTframe_up_to_date): Likewise.
(XTbuffer_flipping_unblocked_hook): Only define when Xdbe is
available.
(x_clear_area): Don't test double buffering flags when Xdbe is
not available.
(flush_dirty_back_buffer_on): Don't define if there's no DBE.
(handle_one_xevent, x_create_terminal): Likewise.
* src/xterm.h (FRAME_X_DRAWABLE): Fix coding style.
2022-05-02 Eli Zaretskii <eliz@gnu.org>
Fix punctuation in the Eshell manual
* doc/misc/eshell.texi (Argument Predication and Modification):
Fix whitespace.
2022-05-02 Arash Esbati <arash@gnu.org>
Load multiple bibliographies with multibib package
* lisp/textmodes/reftex-parse.el (reftex-using-biblatex-p):
Recognize 'multibib' which allows multiple bibliography loading
macro calls.
(reftex-locate-bibliography-files): Prevent possible duplications
in bibliography database files.
2022-05-02 Po Lu <luangruo@yahoo.com>
Wait for events from all displays in Xm dialogs even on XI2
* src/xfns.c (Fx_file_dialog): Always process events from all
displays.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Make the eval-in-debug error message prettier in non-recursive errors
* lisp/emacs-lisp/debug.el (debugger-eval-expression): Make the
error message (when recursive debugging is off) prettier.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Make non-recursive error messages in edebug prettier
* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Make the
error message (when recursive debugging is off) prettier.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix eldoc interaction with `when' and `unless'
* lisp/subr.el (when, unless): Remove the (fn...) bits from the
doc string, because the advertised calling convention is correct
the way it is (bug#27229). This also makes eldoc highlight the
arguments correctly.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Add a command to recreate the *scratch* buffer
* doc/emacs/building.texi (Lisp Interaction): Mention it.
* lisp/simple.el (scratch-buffer): New command.
2022-05-02 Stefan Kangas <stefankangas@gmail.com>
Fix handling double-click-time nil or t
* lisp/mouse.el (mouse-double-click-time): New function to always
return a number for `double-click-time'.
* lisp/emulation/viper-mous.el (viper-multiclick-timeout):
* lisp/foldout.el (foldout-mouse-swallow-events):
* lisp/help.el (help--read-key-sequence):
* lisp/org/org-mouse.el (org-mouse-show-context-menu): Use
'mouse-double-click-time' instead of 'double-click-time'.
* src/keyboard.c (syms_of_keyboard): Mention
'mouse-double-click-time' in doc string of 'double-click-time'.
* test/lisp/mouse-tests.el (mouse-test-mouse-double-click-time):
New test.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Re-fix Gcc header tokenization in Gnus
* lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Split the Gcc header
on commas, but allow group names to contain spaces (bug#55217).
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Allow reusing the *Help* window with `i'/`s/ commands
* doc/emacs/help.texi (Help): Document it.
* lisp/help-mode.el (help-function-def--button-function): Use it.
* lisp/help-mode.el (help-goto-info): Use it.
* lisp/help.el (help-window-select): Mention it.
(help-window-keep-selected): New user option (bug#9054).
* lisp/info-look.el (info-lookup-symbol):
(info-lookup): Allow keeping the same window.
2022-05-02 Po Lu <luangruo@yahoo.com>
Fix inconsistencies in Haiku font selection dialog
* src/haiku_font_support.cc (font_family_style_matches_p): Fix
coding style.
* src/haikufont.c (haikufont_pattern_from_object): Set slant and
width using correct object.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Allow show-paren to show matching parentheses inside comments
* lisp/paren.el (show-paren--default): Improve blinking when
inside a comment (bug#5410).
2022-05-02 Po Lu <luangruo@yahoo.com>
Fix handling of some weights in the Haiku font driver
* src/haiku_font_support.cc (font_style_to_flags):
* src/haiku_support.h (enum haiku_font_weight):
* src/haikufont.c (haikufont_weight_to_lisp)
(haikufont_lisp_to_weight): Make `ultralight' and `extralight'
mean the same thing.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Use xref-goto-xref as the xref mouse binding
* lisp/progmodes/xref.el (xref--button-map): Keep the
xref-goto-xref binding instead of select-and-show to be more
similar to grep buffers.
2022-05-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix the OMIT-NULLS + "" case in string-lines
* lisp/subr.el (string-lines): Respect OMIT-NULLS when given an
empty string.
2022-05-02 Po Lu <luangruo@yahoo.com>
Improve font dialog on macOS
* src/nsterm.m ([EmacsView changeFont:]): Don't exit loop here
on macOS.
([EmacsView noteUserSelectedFont]): New function.
([EmacsView showFontPanel]): Add explicit "OK" button on macOS.
2022-05-02 Po Lu <luangruo@yahoo.com>
Default to currently selected font in Haiku font dialogs
* src/haiku_font_support.cc (be_find_font_indices): New
function.
* src/haiku_support.cc (class EmacsFontSelectionDialog)
(UpdateStylesForIndex, EmacsFontSelectionDialog): Allow
specifying an initial font family and style.
(be_select_font): New parameters `initial_family' and
`initial_style'.
* src/haiku_support.h: Update prototypes.
* src/haikufont.c (haikufont_lisp_to_weight)
(haikufont_lisp_to_slant, haikufont_lisp_to_width): Handle
`regular'.
(haikufont_pattern_from_object): New function.
(haikufont_spec_or_entity_to_pattern): Fix coding style.
(Fx_select_font): Compute indices based on currently selected
font.
(syms_of_haikufont): New defsyms.
2022-05-02 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/gnus/gnus-util.el (gnus-byte-compile): Use `lexical-binding`
2022-05-01 Po Lu <luangruo@yahoo.com>
Fix race conditions with async input in some Haiku dialogs
* src/haikufns.c (Fhaiku_save_session_reply):
* src/haikufont.c (Fx_select_font): Block sigio around system
calls.
2022-05-01 Po Lu <luangruo@yahoo.com>
Fix the macOS build
* src/nsterm.m (ns_font_desc_to_font_spec, syms_of_nsterm):
Define missing symbols that are only on GNUstep.
2022-05-01 Po Lu <luangruo@yahoo.com>
Make the NS font dialog return more correct values
* src/nsfns.m (Fx_select_font): Update doc string.
* src/nsterm.m (ns_font_desc_to_font_spec): New
function.
([EmacsView showFontPanel]): Return selected font as a
font spec instead.
2022-05-01 Po Lu <luangruo@yahoo.com>
Fix devices staying disabled in some cases
* src/xterm.c (handle_one_xevent): Process queued disables
before handling an XIDeviceEnabled situation.
2022-05-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix string-lines return for ""
* lisp/subr.el (string-lines): Return the correct result on ""
(bug#55213).
2022-05-01 Lars Ingebrigtsen <larsi@gnus.org>
Change string-lines semantics slightly
* lisp/subr.el (string-lines): Change the semantics slightly --
don't return an empty string for a trailing newline.
2022-05-01 Jim Porter <jporterbugs@gmail.com>
Handle escaped characters in Eshell special references (e.g. buffers)
* lisp/eshell/esh-arg.el (eshell-parse-special-reference): Unescape
escaped characters.
* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell): Restore
current buffer after evaluating BODY.
* test/lisp/eshell/eshell-tests.el (eshell-test/redirect-buffer)
(eshell-test/redirect-buffer-escaped): New tests (bug#55204).
2022-05-01 Jim Porter <jporterbugs@gmail.com>
Handle escaped characters in Eshell argument predicates/modifiers
* lisp/eshell/em-pred.el (eshell-get-delimited-modifier-argument):
Unescape escaped characters.
* test/lisp/eshell/em-pred-tests.el (em-pred-test/predicate-escaping):
New test (bug#55204).
2022-05-01 Jim Porter <jporterbugs@gmail.com>
Use a common set of string delimiters for all Eshell predicates/modifiers
* lisp/eshell/em-pred.el (eshell-pred-delimiter-pairs): New variable.
(eshell-get-comparison-modifier-argument)
(eshell-get-numeric-modifier-argument)
(eshell-get-delimited-modifier-argument): New functions...
(eshell-pred-user-or-group, eshell-pred-file-time)
(eshell-pred-file-links, eshell-pred-file-size)
(eshell-pred-substitute, eshell-join-memebers, eshell-split-members):
... and use them here.
(eshell-include-members): Pass 'mod-char' and use
'eshell-get-delimited-modifier-argument'.
(eshell-pred-file-type, eshell-pred-file-mode): Use 'when-let'.
(eshell-modifier-alist): Pass modifier char to
'eshell-include-members'.
* test/lisp/eshell/em-pred-tests.el
(em-pred-test/predicate-delimiters): New test.
(em-pred-test/predicate-uid, em-pred-test/predicate-gid,
em-pred-test/modifier-include, em-pred-test/modifier-exclude): Remove
cases covered by 'em-pred-test/predicate-delimiters'.
(em-pred-test/modifier-substitute): Add test cases for new delimiter
styles.
* doc/misc/eshell.texi (Argument Predication and Modification):
Explain how string parameters are delimited.
(Argument Modifiers): Document some special delimiter behavior with
the 's/PATTERN/REPLACE/' modifier (bug#55204).
* etc/NEWS: Announce this change, and move the
'eshell-eval-using-options' entry to the Eshell section.
2022-05-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/minibuffer.el (completion--replace): Fix bug#55205
2022-05-01 Po Lu <luangruo@yahoo.com>
Replace NS code that implemented font panels in a different way
* doc/emacs/macos.texi (Mac / GNUstep Events): Document removal
of `ns-change-font' event. The font panels are now implemented
normally, via `x-select-font'.
* lisp/term/common-win.el (x-setup-function-keys): Likewise.
* lisp/term/ns-win.el (global-map, ns-popup-font-panel): Remove.
(x-select-font, mouse-set-font, ns-input-font):
(ns-input-fontsize): Remove.
(ns-respond-to-change-font): Delete function.
* src/nsfns.m (Fns_popup_font_panel): Delete function.
(Fx_select_font): New function.
(syms_of_nsfns): Update subrs.
* src/nsterm.h (@interface EmacsView):
* src/nsterm.m (ns_select_1): New function.
(ns_select): Wrap around that instead.
([EmacsView changeFont:]): Exit nested event loop
([EmacsView showFontPanel:]): New function.
2022-05-01 Lars Ingebrigtsen <larsi@gnus.org>
Don't enter the debugger from *Backtrace* or edebug on eval errors
* doc/lispref/debugging.texi (Error Debugging): Document it.
* doc/lispref/edebug.texi (Edebug Eval): Mention it.
* lisp/emacs-lisp/debug.el (debug-allow-recursive-debug): New user
option (bug#36145).
(debugger-eval-expression): Use it.
* lisp/emacs-lisp/edebug.el (edebug-eval-expression): Ditto.
This patch is based on a patch by Noam Postavsky.
2022-05-01 Lars Ingebrigtsen <larsi@gnus.org>
Correct Using Debugger lispref node
* doc/lispref/debugging.texi (Using Debugger): Make documentation
reflect reality (bug#36145).
2022-05-01 Lars Ingebrigtsen <larsi@gnus.org>
Make scroll-other-window respect target window remappings
* lisp/window.el (scroll-other-window, scroll-other-window-down):
Moved from window.c and change implementation so that they respect
command remappings in the target window (bug#20236).
2022-05-01 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'malloc-trim'
* src/alloc.c (Fmalloc_trim): Fix the doc string.
* etc/NEWS: Document which systems support 'malloc-trim'.
2022-05-01 Lars Ingebrigtsen <larsi@gnus.org>
Add new function `malloc-trim'
* configure.ac (PGTK_LIBS): Check for malloc_trim.
* src/alloc.c (Fmalloc_trim): Add new function (bug#45200).
2022-05-01 Po Lu <luangruo@yahoo.com>
Fix specifying zero as a size for fonts on Haiku
* src/haiku_support.cc (MessageReceived): Set `size_specified'
correctly.
2022-05-01 Po Lu <luangruo@yahoo.com>
Improve display of Haiku font dialog
* src/haiku_support.cc (EmacsFontSelectionDialog)
(class EmacsFontSelectionDialog, FrameResized): Set minimum size
based on individual view dimensions and add label to size
control.
(BWindow_set_min_size): Delete function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_update_size_hints): Stop setting min
size, since that doesn't work correctly on Haiku.
2022-05-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix the mm-decode-content-transfer-encoding overflow better
* lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding):
Use it.
(mm-base64-line-p): New function.
2022-05-01 Po Lu <luangruo@yahoo.com>
* lisp/menu-bar.el (menu-bar-search-menu): Remove extra separator.
2022-05-01 Eli Zaretskii <eliz@gnu.org>
Document 'help-window-select'
* etc/NEWS:
* doc/emacs/help.texi (Apropos, Help): Document
'help-window-select'; improve indexing. (Bug#46034)
2022-05-01 Po Lu <luangruo@yahoo.com>
Allow specifying font size in the Haiku font selection dialog
* src/haiku_support.cc (struct font_selection_dialog_message):
New fields `size' and `size_specified'.
(class EmacsFontSelectionDialog): New `size_entry' control.
(MessageReceived): Set size from that control if available.
(EmacsFontSelectionDialog): Initialize that control.
(FrameResized): Handle layout for that control.
(be_select_font): New field `size'.
* src/haiku_support.h: Update prototypes.
* src/haikufont.c (Fx_select_font): Populate font spec with
size.
2022-05-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-04-30 19:52:14 UTC.
2022-04-30 Po Lu <luangruo@yahoo.com>
Allow quitting inside font selection dialogs on Haiku
* src/haiku_support.cc (WaitForChoice): Accept new function for
checking quit flag.
(be_select_font): Pass that function.
* src/haiku_support.h: Update prototypes.
* src/haikufont.c (haikufont_should_quit_popup): New function.
(Fx_select_font): Give said function to `be_select_font'.
2022-04-30 Po Lu <luangruo@yahoo.com>
Allow invoking fonts in the Haiku font dialog
* src/haiku_support.cc (MessageReceived): Handle invocations.
(EmacsFontSelectionDialog): Set style panel invocation message.
2022-04-30 Po Lu <luangruo@yahoo.com>
Improvements to the Haiku font dialog
* src/haiku_support.cc (class EmacsFontSelectionDialog)
(EmacsFontSelectionDialog, FrameResized): Fix colors and respect
monospace only.
(be_select_font): New parameter `allow_monospace_only'.
* src/haiku_support.h: Update prototype.
* src/haikufont.c (Fx_select_font): Respect
`exclude-proportional'.
2022-04-30 Po Lu <luangruo@yahoo.com>
Also fix some compiler warnings in xterm.c that didn't show up
* src/xterm.c (x_dnd_begin_drag_and_drop): Don't define unused
variable on GTK builds.
2022-04-30 Po Lu <luangruo@yahoo.com>
Fix the GTK build
* src/xterm.c (x_dnd_begin_drag_and_drop): Let GTK handle events
again.
2022-04-30 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_dnd_begin_drag_and_drop): Fix typo.
2022-04-30 Po Lu <luangruo@yahoo.com>
Fix processing events from multiple displays during DND
* src/xterm.c (x_next_event_from_any_display): New function.
Only used on no-toolkit builds.
(x_dnd_begin_drag_and_drop): Compute correct dpyinfo for
handle_one_xevent.
2022-04-30 Po Lu <luangruo@yahoo.com>
Clean up X Windows tooltip code
* src/xfns.c (x_hide_tip): Remove "bloodcurdling hack".
* src/xterm.c (handle_one_xevent): Add a better version here
instead. The code is unlikely to be hit as well, since tooltip
frames are typically deleted, not just hidden.
2022-04-30 Po Lu <luangruo@yahoo.com>
Implement font selection dialog on Haiku
* src/haiku_font_support.cc (font_style_to_flags): Handle style
allocation failures.
(be_font_style_to_flags): New function.
* src/haiku_support.cc (struct font_selection_dialog_message):
New struct.
(class EmacsFontSelectionDialog): New class.
(be_select_font): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufont.c (Fx_select_font): New function.
(syms_of_haikufont): Define new subr.
2022-04-30 Basil L. Contovounesios <contovob@tcd.ie>
Fix failing image test on nox builds
* test/lisp/image-tests.el (image-supported-file-p/built-in): Skip
test in --without-x builds.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Make `M-x apropos' respect help-window-select
* lisp/apropos.el (apropos-print): Respect help-window-select.
(apropos): Mention it (bug#46034).
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Make load-path-shadows-mode a special mode
* lisp/emacs-lisp/shadow.el (load-path-shadows-mode): Make the
mode inherit from special-mode so that the `q' command works.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation-max-output-line-length type
* lisp/progmodes/compile.el (compilation-max-output-line-length):
Fix the type.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Avoid regexp overflow in mm-decode-content-transfer-encoding
* lisp/gnus/mm-bodies.el (mm-decode-content-transfer-encoding):
The base64 may be huge, so avoid backtracking (bug#55195).
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix Vx_show_tooltip_timeout in ns build, too
* src/nsfns.m (Fx_show_tip): Respect Vx_show_tooltip_timeout here,
too.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation after recent x-show-tooltip-timeout changes
* src/dispnew.c (syms_of_display): Move x-show-tooltip-timeout to
a common file to avoid breaking other systems.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Remove the "retro" Gnus/Message tool bars
* doc/misc/gnus.texi (Gravatars): Remove documentation.
* lisp/gnus/gmm-utils.el (gmm-tool-bar-style): Obsoleted.
* lisp/gnus/gnus-group.el (gnus-group-tool-bar): Use the "Gnome"
definition.
(gnus-group-tool-bar-gnome, gnus-group-tool-bar-retro)
(gnus-group-tool-bar-zap-list): Obsolete.
* lisp/gnus/gnus-sum.el (gnus-summary-tool-bar): Use the "Gnome"
definition.
(gnus-summary-tool-bar-gnome, gnus-summary-tool-bar-retro)
(gnus-summary-tool-bar-zap-list): Obsolete.
* lisp/gnus/message.el (message-tool-bar): Use the "Gnome"
definition.
(message-tool-bar-gnome, message-tool-bar-retro)
(message-tool-bar-zap-list): Obsolete.
2022-04-30 Andreas Schwab <schwab@linux-m68k.org>
* lisp/gnus/deuglify.el (gnus-article-outlook-rearrange-citation): Add autoload cookie.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Use x-show-tooltip-timeout in all the implementations
* src/haikufns.c (Fx_show_tip): Use the timeout variable.
* src/pgtkfns.c (Fx_show_tip): Ditto.
* src/w32fns.c (Fx_show_tip): Ditto.
* src/xfns.c (Fx_show_tip): Doc fix.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Don't hard code the default x-show-tip timeout
* src/xfns.c (Fx_show_tip): Use it.
(syms_of_xfns): Add a new x-show-tooltip-timeout variable
(bug#23341).
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Move the when-let family of macros to subr.el
* lisp/subr.el (internal--build-binding)
(internal--build-bindings): Moved from subr-x.el and rewritten to
not use the threading macro.
(if-let*, when-let*, and-let*, if-let, when-let): Moved from
subr-x.el. This avoids breaking the build every time somebody
uses these macros in functions that end up being called during
bootstrap.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Avoid using if-let in subr.el
* lisp/subr.el (string-lines): Avoid using if-let (from subr-x) in
subr (bug#55194).
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Make the xref--button-map more regular
* lisp/progmodes/xref.el (xref--button-map): Remove the mouse-1
binding (bug#35353).
2022-04-30 Jin Choi <jsc@alum.mit.edu> (tiny change)
Make Python evaluation work more reliably
* lisp/progmodes/python.el (python-shell-buffer-substring): Make
more regions valid Python code (bug#55174).
2022-04-30 Po Lu <luangruo@yahoo.com>
Fix some cases of flicker on MS Windows
* src/w32term.c (w32_read_socket): Fix typo in check before
flipping buffers.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Truncate output from grep
* doc/emacs/building.texi (Compilation): Document it.
* lisp/progmodes/compile.el (compilation-max-output-line-length):
New user option (bug#44983).
(compilation-filter): Use it.
(compilation--insert-abbreviated-line): New function.
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Make grep-mode-font-lock-keywords more efficient
* lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Make the
regexp less greedy so that long lines don't take forever to
font-lock (bug#44983).
2022-04-30 Lars Ingebrigtsen <larsi@gnus.org>
Add a KEEP-NEWLINES argument to string-lines
* doc/lispref/strings.texi (Creating Strings): Document it.
* lisp/subr.el (string-lines): Add a KEEP-NEWLINES argument.
2022-04-30 Po Lu <luangruo@yahoo.com>
Fix display updating inside the minibuffer on MS Windows
* src/minibuf.c (read_minibuf): Call `w32_flip_buffers_if_dirty'
after changing the cursor position and redisplaying instead of
`flush_frame'. (bug#55193)
* src/w32term.c (w32_flip_buffers_if_dirty): New function.
* src/w32term.h: Update prototypes.
2022-04-30 Po Lu <luangruo@yahoo.com>
Avoid server roundtrip on wheel events from scroll bars on XI2
* src/xterm.c (handle_one_xevent): Translate coordinates for
scroll bars correctly when handling XI2 wheel events.
2022-04-30 Po Lu <luangruo@yahoo.com>
* admin/CPP-DEFINES: Update for new features.
2022-04-30 Po Lu <luangruo@yahoo.com>
Process editres events not for frames correctly
* src/xterm.c (handle_one_xevent): Dispatch Editres events to
interested widgets.
2022-04-30 Po Lu <luangruo@yahoo.com>
Adjustments to double buffering on MS Windows
* src/w32fns.c (w32_set_inhibit_double_buffering): Add comment
describing double buffering.
(w32_wnd_proc): Respect `w32-disable-double-buffering'.
(globals_of_w32fns): New variable
`w32-disable-double-buffering'.
* src/w32term.c (w32_show_back_buffer): Return immediately if
double buffering is disabled on the frame.
(w32_scroll_run): Use old scrolling code if
`w32-disable-double-buffering' is enabled.
(w32_scroll_bar_clear): Document why we don't clear scroll bars
when double buffering is enabled.
(w32_read_socket): Respect `w32-disable-double-buffering' and
clean up some code.
* src/w32xfns.c (get_frame_dc): Respect
`w32-disable-double-buffering'.
2022-04-30 Eli Zaretskii <eliz@gnu.org>
Fix use of kp-decimal in 'vhdl-stutter-mode'
* lisp/progmodes/vhdl-mode.el (vhdl-electric-period): Avoid
signaling an error when the user presses the kp-decimal key on the
numeric pad in 'vhdl-stutter-mode'. (Bug#55079)
2022-04-30 Po Lu <luangruo@yahoo.com>
Handle exposure in the widget's expose proc on X
* src/widget.c (emacsFrameClassRec): Don't inherit expose proc.
(get_default_char_pixel_size):
(pixel_to_char_size):
(char_to_pixel_size):
(round_size_to_char):
(EmacsFrameInitialize):
(EmacsFrameRealize):
(EmacsFrameResize): Clean up coding style.
(EmacsFrameExpose): New function. Expose the frame here to
satisfy the toolkit when it calls the expose proc by hand.
* src/xterm.c (handle_one_xevent): Handle exposure through the
widget instead.
2022-04-30 Po Lu <luangruo@yahoo.com>
Fix releasing the mouse on top of the tool bar on MS Windows
* src/w32term.c (w32_read_socket): Don't handle tool bar clicks
specially for button up events if no tool bar item was
previously pressed.
2022-04-29 Po Lu <luangruo@yahoo.com>
Fix palette freeing on MS Windows with double buffering
* src/w32term.c (w32_release_paint_buffer): Also release target
DC palette.
2022-04-29 Po Lu <luangruo@yahoo.com>
Implement double buffering on MS Windows
* etc/NEWS: Announce changes.
* src/w32fns.c (w32_set_inhibit_double_buffering): New function.
(w32_wnd_proc):
(Fx_create_frame):
(w32_create_tip_frame): Set `inhibit-double-buffering' parameter.
(w32_frame_parm_handlers): Add new handler.
* src/w32term.c (w32_show_back_buffer):
(w32_release_paint_buffer): New functions.
(w32_frame_up_to_date): Show back buffer if applicable.
(w32_buffer_flipping_unblocked_hook): New hook.
(w32_scroll_run): Use BitBlt to scroll instead of window
scrolling functions.
(w32_scroll_bar_clear): Don't clear scroll bars when double
buffered.
(w32_read_socket): Flip buffers after reading input events in
some cases.
(w32_free_frame_resources): Free back buffer.
(w32_create_terminal): Add new hook.
* src/w32term.h (struct w32_output): New fields for handling
back buffers.
* src/w32xfns.c (select_palette): Fix indentation.
(get_frame_dc, release_frame_dc): Return back buffer when
appropriate and set dirty flag.
2022-04-29 Po Lu <luangruo@yahoo.com>
Prevent cursors from being set on tooltip frames on Haiku
* src/haikuterm.c (haiku_show_hourglass, haiku_hide_hourglass)
(haiku_define_frame_cursor, haiku_toggle_invisible_pointer):
Ignore tooltip frames. Otherwise, the cursor changes every time
a tooltip is mapped.
2022-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
debug-early: Print bytecode in a more manageable way
* lisp/emacs-lisp/debug-early.el (debug-early-backtrace):
Escape newlines to and bytecodes to make backtraces slightly more
readable. Use `cl-prin1` when available.
2022-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add `symbol-with-pos`
2022-04-29 Po Lu <luangruo@yahoo.com>
Fix focus reversion of Motif menus on XI2
* src/xmenu.c (create_and_show_popup_menu): Stop setting input
focus on the menu window.
2022-04-29 Po Lu <luangruo@yahoo.com>
Fix mouse face bugs on Motif
* src/xterm.c (handle_one_xevent): Fix handling LeaveNotify
events from Motif menus.
2022-04-29 Po Lu <luangruo@yahoo.com>
Check display when handling XdndFinished events
* src/xterm.c (handle_one_xevent): Check that the display is
actually the one we want before finishing DND.
2022-04-29 Stefan Monnier <monnier@iro.umontreal.ca>
CL types: Accept both `byte-code-function` and `compiled-function`
`type-of` returns `compiled-function` for bytecode functions, but the
predicate for those objects is called `byte-code-function-p`,
So accept both `compiled-function` and `byte-code-function` as type
names for those objects.
* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types):
Add `byte-code-function`.
* lisp/emacs-lisp/cl-macs.el (byte-code-function, compiled-function, subr):
New types.
2022-04-29 Juri Linkov <juri@linkov.net>
* test/lisp/replace-tests.el (query-replace-tests): Add more tests (bug#54733)
(perform-replace-tests): New tests.
(perform-replace--run-tests): New function.
(perform-replace-tests): New test function.
2022-04-29 Lars Ingebrigtsen <larsi@gnus.org>
Simplify window-char-pixel-* code slightly
* lisp/window.el (window-char-pixel-width)
(window-char-pixel-height): Simplify code slightly.
2022-04-29 Lars Ingebrigtsen <larsi@gnus.org>
Explain effects of setting a zero-width fringe
* lisp/fringe.el (fringe-mode): Not non-obvious effects of setting
a fringe to zero width.
2022-04-29 Titus von der Malsburg <malsburg@posteo.de>
Add new functions for computing character metrics for windows
* doc/lispref/display.texi (Size of Displayed Text): Document the
char functions.
* doc/lispref/windows.texi (Window Sizes): Document
window-max-characters-per-line.
* lisp/window.el (window-char-pixel-width)
(window-char-pixel-height)
(window-max-characters-per-line): New functions (bug#19395).
2022-04-29 Pip Cet <pipcet@gmail.com>
Make timer_check even more resilient
* src/keyboard.c (timer_check): Inhibit atimers while making the
copy of the timer list (bug#21380). This prevents an extremely
unlikely segfault.
2022-04-29 Lars Ingebrigtsen <larsi@gnus.org>
Avoid binding mouse-1 in xref when mouse-1 doesn't follow links
* lisp/progmodes/xref.el (xref--button-map): Avoid binding mouse-1
when `mouse-1-click-follows-link' is nil (bug#35353).
2022-04-29 Po Lu <luangruo@yahoo.com>
Fix colorspace calculations on Haiku
* src/haiku_support.cc (be_get_display_planes)
(be_get_display_color_cells): Handle grayscale basic colorspaces
correctly.
(be_is_display_grayscale): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_set_no_accept_focus, haiku_iconify_frame)
(Fxw_display_color_p, Fxw_color_values, Fx_display_grayscale_p):
Actually handle grayscale colorspaces.
(Fx_display_pixel_width, Fx_display_pixel_height)
(Fx_display_mm_height, Fx_display_mm_width): Clean up coding
style.
(Fx_display_visual_class): Handle grayscale colorspaces.
(syms_of_haikufns): New defsyms.
2022-04-29 Lars Ingebrigtsen <larsi@gnus.org>
Add helper function to remove title bar when maximizing frames
* lisp/frame.el (toggle-frame-maximized): Mention it.
(frame-hide-title-bar-when-maximized): New function (bug#31968).
Adapted from code by Jonathan Kyle Mitchell.
* src/window.c (syms_of_window): Mention it.
2022-04-29 Po Lu <luangruo@yahoo.com>
Handle IO errors when creating Motif drag window
* src/xterm.c (xm_drag_window_io_error_handler): New function.
(xm_get_drag_window): Use that as the IO error handler when the
temporary display is open.
2022-04-29 Po Lu <luangruo@yahoo.com>
Fix file name selection conversion on Haiku
* lisp/term/haiku-win.el (haiku-normal-selection-encoders):
Register new encoder.
(haiku-select-encode-file-name): New function.
2022-04-28 Po Lu <luangruo@yahoo.com>
Remove some unneeded tests from the X double buffering code
* src/xterm.c (x_flip_and_flush): Fix coding style.
(flush_dirty_back_buffer_on): Avoid testing for impossible
situations.
2022-04-28 Po Lu <luangruo@yahoo.com>
Cancel DND correctly during display disconnect on a different display
* src/xterm.c (x_dnd_io_error_handler): New function.
(x_connection_closed): Send the messages to cancel DND if a
different display was disconnected.
2022-04-28 Po Lu <luangruo@yahoo.com>
* src/xterm.c (XTflash): Check return value of pselect.
2022-04-28 Eugene Ha <eha@posteo.de> (tiny change)
Find libgccjit.dylib on Homebrew Macos
* configure.ac: Also find libggcjit on Homebrew (bug#55173).
2022-04-28 Paul Eggert <eggert@cs.ucla.edu>
Pacify byte compiler etc. on org-compat, org-macs
Byte-compiler problem reported by Lars Ingebrigtsen in:
https://lists.gnu.org/r/emacs-devel/2022-04/msg01256.html
* lisp/org/org-compat.el (org-at-table.el-p):
Now declared in org-table, not org.
(org-string-collate-lessp): Define the ersatz
org-string-collate-lessp with the same API as the primary form, to
pacify check-declare-file when run on org-macs.
* lisp/org/org-macs.el (org-time-convert-to-integer): Declare.
2022-04-28 Paul Eggert <eggert@cs.ucla.edu>
Change current-time back to list form
Change current-time and related functions back to using the
traditional list form. Also, add a new boolean variable
current-time-list that lets people try out (TICKS . HZ) form,
with the goal of smoothing the transition.
* src/timefns.c (CURRENT_TIME_LIST): Change default back to true.
(current-time-list): New boolean Lisp variable, which defaults to
CURRENT_TIME_LIST. All uses of CURRENT_TIME_LIST changed to
use current_time_list, and all documentation changed.
2022-04-28 Paul Eggert <eggert@cs.ucla.edu>
Document \807 etc. in raw byte display
* doc/emacs/display.texi (Display Custom): Mention potential
confusion in raw byte display.
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Kill off more Gnus buffers on Gnus exit
* lisp/gnus/gnus.el (gnus-kill-buffer): Make into function;
there's no reason this should be a macro.
* lisp/gnus/nntp.el (nntp-make-process-buffer): Ensure that we
kill these buffers on Gnus exit (bug#55167).
2022-04-28 Sam Steingold <sds@gnu.org>
Add Sefirot to Omer counting
* lisp/calendar/cal-hebrew.el (diary-hebrew-omer-sefirot): New variable.
(diary-hebrew-omer): Use it to show the sefirot.
2022-04-28 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
# Conflicts:
# lisp/progmodes/xref.el
2022-04-28 Stefan Kangas <stefan@marxist.se>
Add tests for image-supported-file-p
* test/lisp/image-tests.el (image-type-from-file-name): Suppress
obsoletion warnings for test.
(image-supported-file-p/built-in)
(image-supported-file-p/optional)
(image-supported-file-p/unsupported-returns-nil): New tests.
2022-04-28 Stefan Kangas <stefan@marxist.se>
* lisp/finder.el (finder-mode-map): Use defvar-keymap.
2022-04-28 Eli Zaretskii <eliz@gnu.org>
Improve documentation of font- and face-related attribute functions
* lisp/faces.el (face-attribute):
* src/xfaces.c (Fx_family_fonts):
* src/font.c (Ffont_get, Ffont_put): Improve and clarify the doc
strings.
* doc/lispref/display.texi (Low-Level Font): Document the :type
attribute of a font. Improve documentation of 'font-get' and
'font-put'.
(Attribute Functions): Add cross-reference to the description of
face attributes.
2022-04-28 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/nadvice.el: Fix bug#55149
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Allow inserting and selecting binary blobs from sqlite
* doc/lispref/text.texi (Database): Document how to insert binary
data.
* src/sqlite.c (bind_values): Bind BLOB columns correctly (bug#54591).
2022-04-28 Po Lu <luangruo@yahoo.com>
Simplify buffer flipping code on Haiku
* src/haikuterm.c (flush_dirty_back_buffers): Delete function.
(haiku_flush_dirty_back_buffer_on): New function.
(haiku_read_socket): Use that instead of looping over each frame
at the end.
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Document dired-keep-marker-copy more
* doc/emacs/dired.texi (Operating on Files): Mention
dired-keep-marker-copy.
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Improve dired-do-copy doc string
* lisp/dired-aux.el (dired-do-copy): Mention the
`dired-keep-marker-copy' variable in the doc string (bug#21746).
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Document the non-effect of narrowing on get-text-property
* doc/lispref/text.texi (Examining Properties): Document
surprising non-effect of narrowing (bug#16413).
* src/textprop.c (Ftext_properties_at, Fget_text_property):
Mention narrowing.
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Add comment to linum-mode about being old
* lisp/linum.el (linum-mode): Link to display-line-numbers-mode
(bug#34639).
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Fix `g' in *grep* after `A' in Dired
* lisp/dired-aux.el (dired-do-find-regexp): Allow `g' to work in
the resulting grep buffer by not being destructive (bug#55157).
2022-04-28 Lars Ingebrigtsen <larsi@gnus.org>
Fix another help-fns--insert-menu-bindings parsing problem
* lisp/help-fns.el (help-fns--insert-menu-bindings): Fix keymap
traversal when elements are symbols.
2022-04-28 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_term_init): Fix the non-GTK3 XI2 build.
2022-04-28 Michael Albinus <michael.albinus@gmx.de>
Revert previous change in test/Makefile.in
* test/Makefile.in (test_template): Revert previous change, it isn't needed.
2022-04-28 Eli Zaretskii <eliz@gnu.org>
Fix handling of proportional fonts on MS-Windows
* src/xfaces.c (Fx_family_fonts): Consider fonts whose :spacing
value is numeric, but still indicates that they are proportional,
to be proportional.
* lisp/textmodes/artist.el (artist-mode): Fix test for monospaced
fonts.
2022-04-28 Po Lu <luangruo@yahoo.com>
Fix GTK build
* src/xrdb.c (x_load_resources): Fix definitions of `helv'.
2022-04-27 Po Lu <luangruo@yahoo.com>
Stop overriding default Motif colors with our own
* src/xrdb.c (x_load_resources): Instead of specifying the Motif
defaults manually, let Motif set them itself. This makes
palettes provided by color servers work again.
2022-04-27 Po Lu <luangruo@yahoo.com>
Handle display disconnects during DND
* src/xterm.c (handle_one_xevent): Keep track of the display the
drop target is on during DND finish.
(x_connection_closed, x_delete_terminal): Handle display
disconnects during DND correctly.
2022-04-27 Po Lu <luangruo@yahoo.com>
Fix target display checks during Motif DND
* src/xterm.c (handle_one_xevent): Check that the Motif DND
completion message is actually from the right display before
proceeding.
2022-04-27 Stefan Monnier <monnier@iro.umontreal.ca>
src/xdisp.c: Use same test in `redisplay_window` and `prepare_menu_bars`
This consolidates the test made in those two functions so as to make
sure they agree whether a window needs to be redisplayed.
At the same time, change this test so it uses the window's point
rather than the buffer's point when comparing to `w->last_point`.
* src/xdisp.c (needs_no_redisplay): New function, extracted from
`redisplay_window`.
(redisplay_window, prepare_menu_bars): Use it.
* src/window.c (window_point): New function, extracted from `Fwindow_point`.
(Fwindow_point): Use it.
* src/window.h (window_point): Declare it.
2022-04-27 Sean Whitton <spwhitton@spwhitton.name>
New user option 'calc-kill-line-numbering'
* lisp/calc/calc.el (calc-kill-line-numbering): New defcustom.
* lisp/calc/calc-yank.el (calc-kill): Unless calc-kill-line-numbering
is non-nil, do not include line numbering in copied text (bug#55133).
* etc/NEWS:
* doc/misc/calc.texi (Killing from the Stack): Document the change.
2022-04-27 Alan Mackenzie <acm@muc.de>
CC Mode: "linux" style: set indent-tabs-mode to t
* lisp/progmodes/cc-styles.el (c-style-alist): Add the setting of
indent-tabs-mode to "linux" style.
2022-04-27 Michael Albinus <michael.albinus@gmx.de>
Improve tramp-test46-read-password
* test/lisp/net/tramp-tests.el (tramp-test46-read-password): Add a
further check.
2022-04-27 Eli Zaretskii <eliz@gnu.org>
Emulate 'clock' for MS-Windows
* src/w32.c (sys_clock): New function. (Bug#44674)
* nt/inc/ms-w32.h (clock): Redirect to sys_clock.
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-M-x' use the original value of print-length while evalling
* lisp/progmodes/elisp-mode.el (elisp--eval-defun): Eval the form
with the original values of print-level and print-length
(bug#135).
2022-04-27 Ken Brown <kbrown@cornell.edu>
Implement system_process_attributes on Cygwin
* src/sysdep.c (system_process_attributes) [CYGWIN]: Implement,
using the /proc filesystem. The code is identical to the
GNU/Linux code except for the 'ttname' attribute. (Bug#55153)
* etc/NEWS: Mention the change.
2022-04-27 Stefan Monnier <monnier@iro.umontreal.ca>
Add new function current-cpu-time
* doc/lispref/os.texi (Time of Day): Document it.
* src/timefns.c (Fcurrent_cpu_time): New function (bug#44674).
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Change parameter order for string-edit functions
* lisp/textmodes/string-edit.el (string-edit)
(read-string-from-buffer): Rework the function arguments so that
they're more similar to `read-string'. Rename symbols throughout
the file from help-text to prompt.
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Add autoload cookies to string-edit
* lisp/textmodes/string-edit.el (string-edit)
(read-string-from-buffer): Autoload.
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Fix some typos in the recent holidays change
* lisp/calendar/holidays.el (holiday-available-holiday-lists): Fix
typos.
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Give better error message in dired-toggle-read-only on nonexisting dirs
* lisp/dired.el (dired-toggle-read-only): Refuse to edit
non-existent directories (bug#23276).
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Rename holiday-lists to holiday-available-holyday-lists
* lisp/calendar/holidays.el (holiday-available-holyday-lists):
Give holiday-lists a better name.
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Separate out the holiday lists into its own function
* lisp/calendar/holidays.el (holiday-lists): Separated out into
its own function so that it can be altered (bug#55140).
(list-holidays): Use it.
2022-04-27 Michael Albinus <michael.albinus@gmx.de>
Make test/Makefile more robust
* test/Makefile.in (test_template): Do not fails if corresponding
source file doesn't exist.
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Add an instruction header line to string-edit
* lisp/textmodes/string-edit.el (string-edit): Add a header line
with instructions.
2022-04-27 Lars Ingebrigtsen <larsi@gnus.org>
Make isearch respond to 'mouse-yank-at-point'
* doc/emacs/killing.texi (Secondary Selection): Document it.
* lisp/isearch.el (isearch-mouse-2): Make isearch respond to
mouse-yank-at-point (bug#7787).
* lisp/mouse.el (mouse-yank-at-point): Mention it.
2022-04-27 Tomasz Hołubowicz <45176912+alternateved@users.noreply.github.com> (tiny change)
Add out-of-box support for purescript lsp server
* eglot.el (eglot-server-programs): Support purescript lsp.
* README.md: Update.
* NEWS.md: Update.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/905
2022-04-27 Po Lu <luangruo@yahoo.com>
Cleanups to PGTK code
* src/pgtkfns.c (pgtk_explicitly_set_name, pgtk_set_tab_bar_lines)
(pgtk_change_tab_bar_height, pgtk_set_child_frame_border_width)
(pgtk_set_internal_border_width, pgtk_set_cursor_type)
(pgtk_set_mouse_color, pgtk_set_override_redirect, xg_set_icon)
(pgtk_frame_parm_handlers, Fpgtk_set_monitor_scale_factor)
(pgtk_set_scroll_bar_default_width, pgtk_get_focus_frame)
(pgtk_hide_tip, Fx_show_tip, Fx_hide_tip, frame_geometry)
(syms_of_pgtkfns): Clean up coding style and delete incorrect
comments that mostly duplicate what is in xfns.c, and fix
comment coding style. Also rename functions from `x_' to
`pgtk_'.
* src/pgtkterm.c (pgtk_setup_relief_colors): Fix relief caching
with new flag.
(pgtk_draw_relief_rect, flip_cr_context, pgtk_wait_for_map_event)
(pgtk_make_frame_visible, pgtk_make_frame_invisible)
(pgtk_set_parent_frame, pgtk_draw_glyph_string_foreground)
(pgtk_draw_composite_glyph_string_foreground)
(pgtk_draw_glyphless_glyph_string_foreground)
(pgtk_set_clip_rectangles, pgtk_draw_glyph_string_bg_rect)
(pgtk_draw_image_foreground, pgtk_draw_image_glyph_string)
(pgtk_draw_stretch_glyph_string, pgtk_draw_glyph_string)
(pgtk_copy_bits, pgtk_bitmap_icon, pgtk_define_fringe_bitmap)
(pgtk_show_hourglass, pgtk_flash, pgtk_send_scroll_bar_event)
(pgtk_free_pixmap, set_opacity_recursively, frame_highlight)
(frame_unhighlight, pgtk_toggle_invisible_pointer)
(pgtk_create_terminal, pgtk_window_is_of_frame_recursive)
(pgtk_window_is_of_frame, pgtk_any_window_to_frame)
(pgtk_handle_draw, size_allocate, pgtk_enqueue_string)
(key_press_event, motion_notify_event): Fix coding style and
some minor bugs.
* src/pgtkterm.h (struct pgtk_output): New field for tracking
relief color status, update prototypes.
2022-04-27 João Távora <joaotavora@gmail.com>
Ensure non-null :settings param in didchangeconfiguration notif
* eglot.el (eglot-signal-didChangeConfiguration): Use eglot--{}
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/936
2022-04-27 Po Lu <luangruo@yahoo.com>
Remove some unnecessary code
* src/haiku_support.cc (class EmacsView, AfterResize)
(SetUpDoubleBuffering): Remove `cspace' field since it's always
RGBA32.
2022-04-27 Juri Linkov <juri@linkov.net>
* lisp/help-fns.el (help-fns--insert-menu-bindings): Don't highlight heading.
2022-04-27 Paul Eggert <eggert@cs.ucla.edu>
Use org-time-convert-to-integer instead of by hand
* lisp/org/org-macs.el (org-file-newer-than-p):
Dont assume list-format timestamps, by using
org-time-convert-to-integer instead of doing it by hand.
2022-04-27 Po Lu <luangruo@yahoo.com>
Fix quitting application from the Deskbar on Haiku
* lisp/term/haiku-win.el (handle-save-session): Kill Emacs
afterwards.
2022-04-27 Po Lu <luangruo@yahoo.com>
Add simple session management support to Haiku
* lisp/term/common-win.el (emacs-save-session-functions): Move
from x-win.el to common-win.el.
* lisp/term/haiku-win.el (haiku-save-session-reply)
(emacs-session-save, handle-save-session): New functions.
* lisp/term/x-win.el (emacs-save-session-functions): Delete.
* src/haiku_font_support.cc (font_style_to_flags):
* src/haiku_support.h (enum haiku_font_weight): Turn weight
macros into enum.
(struct haiku_font_pattern): Likewise.
(struct haiku_session_manager_reply): New struct.
* src/haiku_io.c (haiku_io_init): Create sm port.
* src/haiku_support.cc (QuitRequested): Wait for reply from sm
port.
* src/haikufns.c (Fhaiku_save_session_reply): New function.
(syms_of_haikufns): Define new subr.
* src/haikuterm.c (haiku_read_socket): Send session management
events.
(haiku_term_init): Check new port.
2022-04-27 Paul Eggert <eggert@cs.ucla.edu>
Avoid change to desktop file format
* lisp/desktop.el (desktop--get-file-modtime): New function.
(desktop-save, desktop-read): Use it.
2022-04-26 Paul Eggert <eggert@cs.ucla.edu>
Be more compatible with older desktops
* lisp/desktop.el (desktop-save): When comparing timestamps use
time-equal-p instead of equal.
2022-04-26 Po Lu <luangruo@yahoo.com>
Clean up pointer blanking code
* src/xterm.c (XTtoggle_invisible_pointer): Dispatch to correct
function directly.
(x_probe_xfixes_extension): Return directly based on dpyinfo.
(xfixes_toggle_visible_pointer): Make conditional on
`HAVE_XFIXES'.
(make_invisible_cursor): Initialize `c' correctly.
(x_toggle_visible_pointer): Handle cursor allocation failures.
(x_free_frame_resources): Dispatch with
XTtoggle_visible_pointer.
(x_setup_pointer_blanking): Delete function.
(x_term_init): Initialize blank cursor here instead.
* src/xterm.h (struct x_display_info): New field
`fixes_pointer_blanking'.
2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
nadvice.el: Auto-generate the doc describing the "how" arg
* lisp/emacs-lisp/nadvice.el (advice--make-how-alist): New macro.
(advice--how-alist): Use it.
(nadvice--make-docstring): New function.
(add-function, advice-add): Use it to auto-generate the table
describing the accepted values for `how`.
2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
nadvice.el: Use OClosures
* lisp/emacs-lisp/nadvice.el (advice): New OClosure type.
(advice--how-alist): Make it hold prototype OClosures rather
than bytecode strings.
(advice--bytecodes): Delete var.
(advice--where): Make it an obsolete alias of new `advice--how`.
(oclosure-interactive-form, cl-print-object) <advice>: New methods.
(advice--make-1): Delete function.
(advice--make): Use `advice-copy` and `advice-cons`.
(advice--tweak): Use `advice-cons`.
(add-function, advice-add): Rename `where` arg to `how`.
* lisp/emacs-lisp/cl-print.el (cl-print-object) <:extra "nadvice">:
Remove now-redundant ad-hoc method.
* test/lisp/emacs-lisp/nadvice-tests.el (advice-test-print): New test.
2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
nadvice.el: Rename "where" to "how"
* lisp/emacs-lisp/nadvice.el (advice--how-alist): Rename from
`advice--where-alist`.
(advice--how): Rename from `advice--where` and keep obsolete alias.
(add-function, advice-add): Rename `where` arg to `how`.
* lisp/emacs-lisp/cl-print.el (cl-print-object): Use `advice--how` name.
2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
Use `advice--cd*r` where applicable
* lisp/emacs-lisp/bytecomp.el (byte-compile--function-signature):
* lisp/emacs-lisp/advice.el (ad-get-orig-definition):
* lisp/help.el (help-function-arglist): Use `advice--cd*r`.
2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
Pretty print OClosure slot accessors
* lisp/emacs-lisp/oclosure.el (oclosure--accessor-cl-print): New function.
* lisp/emacs-lisp/cl-print.el (cl-print-object) <accessor>: New method.
* test/lisp/emacs-lisp/nadvice-tests.el (advice-test-call-interactively):
Avoid `defun` within a function.
2022-04-26 Paul Eggert <eggert@cs.ucla.edu>
Fix gnus-html-image-cache-ttl FIXME
* lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl):
Make it a seconds count.
2022-04-26 Alex Schroeder <alex@gnu.org>
Fix error in rcirc for IRC tags without values
* src/lisp/net/rcirc.el (rcirc-process-server-response-1): If the
optional value for a tag is not present, do not call
replace-regexp-in-string on it. If (match-string 2 tag) is
nil, the STRING argument for the replace-regexp-in-string is nil,
which results in an error.
2022-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
New generic function `oclosure-interactive-form`
It's used by `interactive-form` when it encounters an OClosure.
This lets one compute the `interactive-form` of OClosures
dynamically by adding appropriate methods.
This does not include support for `command-modes` for Oclosures.
* lisp/simple.el (oclosure-interactive-form): New generic function.
* src/data.c (Finteractive_form): Delegate to
`oclosure-interactive-form` if the arg is an OClosure.
(syms_of_data): New symbol `Qoclosure_interactive_form`.
* src/eval.c (Fcommandp): Delegate to `interactive-form` if the arg is
an OClosure.
* src/lisp.h (VALID_DOCSTRING_P): New function, extracted from
`store_function_docstring`.
* src/doc.c (store_function_docstring): Use it.
* lisp/kmacro.el (kmacro): Don't carry any interactive form.
(oclosure-interactive-form) <kmacro>: New method, instead.
* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-interactive-form)
<oclosure-test>: New method.
(oclosure-test-interactive-form): New test.
* doc/lispref/commands.texi (Using Interactive):
Document `oclosure-interactive-form`.
2022-04-26 Lars Ingebrigtsen <larsi@gnus.org>
Mention caveats in the map-delete doc string
* lisp/emacs-lisp/map.el (map-delete): Mention how this has to be
used for lists (bug#25929).
2022-04-26 Po Lu <luangruo@yahoo.com>
Fix EWMH window activation
* src/xterm.c (x_ewmh_activate_frame): Add missing fields of
message. (bug#55122)
2022-04-26 Lars Ingebrigtsen <larsi@gnus.org>
Tweak interactive use of delete-windows-on
* lisp/window.el (delete-windows-on): Make prompting better, and
allow specifying only the current frame interactively (bug#34749).
2022-04-26 Lars Ingebrigtsen <larsi@gnus.org>
Make `C RET' work in archive-mode
* lisp/arc-mode.el (archive-copy-file): Fix the default value
(when the user hits RET) (bug#55123).
2022-04-26 Lars Ingebrigtsen <larsi@gnus.org>
Make new menu *Help* output be more resilient
* lisp/help-fns.el (help-fns--insert-menu-bindings): Only insert
the heading if it turns out that we actually find the menu.
(help-fns--insert-bindings): Tweak calling convention.
2022-04-26 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option flymake-mode-line-lighter
* doc/misc/flymake.texi (Customizable variables): Document it.
* lisp/progmodes/flymake.el (flymake-mode-line-lighter): New user
option (bug#55115).
(flymake--mode-line-title): Use it.
2022-04-26 Lars Ingebrigtsen <larsi@gnus.org>
Improve documentation for t value for reusable-frames
* doc/lispref/windows.texi (Buffer Display Action Alists): Note
that the t value is rarely a good one (bug#55103).
2022-04-26 Po Lu <luangruo@yahoo.com>
Fix event mask of activation client message
* src/xterm.c (x_alloc_lighter_color):
(x_get_scale_factor): Minor formatting fixes.
(x_ewmh_activate_frame): Fix event mask used to send message to
the root window.
2022-04-25 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_scroll_run): Only flush GC if really necessary.
2022-04-25 Dmitry Gutov <dgutov@yandex.ru>
Fix Ruby indentation with double splat as first block param
* lisp/progmodes/ruby-mode.el (ruby-smie--forward-token)
(ruby-smie--backward-token): Tokenize "**" separately from "|".
Problem reported at https://github.com/dgutov/robe/issues/136.
2022-04-25 Po Lu <luangruo@yahoo.com>
Cache relief colors on Haiku since their computation is expensive
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
Clear `relief_background'.
* src/haikuterm.c (haiku_calculate_relief_colors): Cache relief
colors for each frame.
* src/haikuterm.h (struct haiku_output): New fields for caching
the last relief color.
2022-04-25 Paul Eggert <eggert@cs.ucla.edu>
Pacify misc/test-custom-opts
* lisp/gnus/gnus-html.el (gnus-html-image-cache-ttl):
Also allow it to be a cons of integers.
2022-04-25 Stefan Monnier <monnier@iro.umontreal.ca>
cl-generic.el: Upcase formal args in `C-h o`
Try and improve the display of methods in `C-h o` by moving
the qualifiers to a separate line and upcasing the formal args.
It still needs love, tho.
* lisp/emacs-lisp/cl-generic.el: Upcase formal args in `C-h o`
(cl--generic-upcase-formal-args): New function.
(cl--generic-describe): Use it.
2022-04-25 Paul Eggert <eggert@cs.ucla.edu>
Use (TICKS . HZ) for current-time etc.
* src/timefns.c (CURRENT_TIME_LIST): Change default to false.
All documentation changed.
2022-04-25 Paul Eggert <eggert@cs.ucla.edu>
Support (encode-time (list s m h D M Y))
* src/timefns.c (Fencode_time): Add support for a 6-elt list arg.
Requested by Max Nikulin for Org (bug#54764).
* test/src/timefns-tests.el (encode-time-alternate-apis): New test.
2022-04-25 Lars Ingebrigtsen <larsi@gnus.org>
Change the display of menu bindings in *Help*
* lisp/help-fns.el (help-fns--insert-menu-bindings): New function
to describe menu entries more fully (bug#52870).
(help-fns--key-bindings): Use it.
2022-04-25 Glenn Morris <rgm@gnu.org>
Fix type of word-wrap-whitespace-characters
* lisp/textmodes/word-wrap-mode.el (word-wrap-whitespace-characters):
Fix type.
2022-04-25 Alan Third <alan@idiocy.org>
Po Lu <luangruo@yahoo.com>
Fix nsmenu compilation under macOS 10.6
* src/nsmenu.m ([EmacsMenu fillWithWidgetValue:]): Replace modern
shorthand dictionary and array definitions.
* src/nsterm.h (NSTextAlignmentRight): Redefine if necessary.
* src/macfont.m (mac_font_create_preferred_family_for_attributes):
isOperatingSystemAtLeastVersion is new in macOS 10.10, so it's
probably wrong to use it to check whether we're below 10.9.
(mac_font_copy_default_descriptors_for_language):
(mac_font_copy_default_name_for_charset_and_languages): It seems these
functions are only used on macOS 10.8 and below.
* src/nsterm.m ([NSColor colorUsingDefaultColorSpace]): Use the
generic colorspace.
(ns_parent_window_rect):
(ns_frame_scale_factor):
([EmacsWindow setParentChildRelationships]): Fix macOS version stuff.
2022-04-25 Karl Fogel <kfogel@red-bean.com>
Update bookmark sort indicator at proper time
This follows up to my commit 8b071c77b0d7 of 2022-04-24. Thanks to
Manuel Giraud <manuel@ledu-giraud.fr> for reporting the buglet.
2022-04-25 Po Lu <luangruo@yahoo.com>
Make default Haiku tool bar color match system preferences
* lisp/faces.el (tool-bar): Use system bar color as the default
tool-bar background color on Haiku.
2022-04-25 Lars Ingebrigtsen <larsi@gnus.org>
Move the Incremental Search menu one menu up
* lisp/menu-bar.el (menu-bar-search-menu): Move the Incremental
Search from the Search menu...
(menu-bar-edit-menu): ... one step up (bug#43308).
2022-04-25 Lars Ingebrigtsen <larsi@gnus.org>
Protect against the host name containing an alpha character
* src/filelock.c (lock_file_1, current_lock_owner): Protect
against the unlikely case that the host name contains an alpha
character (bug#14250).
2022-04-25 Michael Albinus <michael.albinus@gmx.de>
Add test for Tramp password handling
* lisp/net/tramp.el (tramp-error-show-message-timeout): New defvar.
(tramp-error-with-buffer, tramp-user-error): Use it.
* test/lisp/net/tramp-tests.el (tramp-error-show-message-timeout):
Set it to nil.
(tramp-test46-read-password): New test.
(tramp-test47-auto-load, tramp-test47-delay-load)
(tramp-test47-recursive-load, tramp-test47-remote-load-path)
(tramp-test48-unload):
* test/lisp/net/tramp-archive-tests.el (tramp-archive-test47-auto-load)
(tramp-archive-test47-delay-load): Rename.
2022-04-25 Lars Ingebrigtsen <larsi@gnus.org>
Make flymake-show-buffer-diagnostics error out in non-Flymake buffers
* lisp/progmodes/flymake.el (flymake-show-buffer-diagnostics):
Signal an error if run outside of a buffer with Flymake enabled
(bug#55097).
2022-04-25 Lars Ingebrigtsen <larsi@gnus.org>
Fix up some string-edit.el strings
* lisp/textmodes/string-edit.el (string-edit)
(read-string-from-buffer): Make doc strings use dynamic key
bindings.
(string-edit): Fix message at the end.
2022-04-25 Po Lu <luangruo@yahoo.com>
Delete some unused functions on Haiku
* src/haiku_support.cc (haiku_current_workspace)
(BWindow_workspaces):
* src/haiku_support.h: Remove unused functions and prototypes.
2022-04-25 Po Lu <luangruo@yahoo.com>
Get rid of autorelease warnings during building on GNUstep
* src/emacs.c (decode_env_path):
* src/nsfns.m (ns_appkit_version_str):
* src/nsterm.m (ns_term_shutdown): Setup autorelease when
objects might be autoreleased during building.
2022-04-25 Po Lu <luangruo@yahoo.com>
* src/nsfns.m (Fns_list_colors): Fix autoreleasing.
2022-04-24 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.3-3-gd54104
2022-04-24 Po Lu <luangruo@yahoo.com>
Set last user time during drag-and-drop
* src/xterm.c (XTmouse_position): Set last user time if
track-mouse is drag-source or dropping.
2022-04-24 Po Lu <luangruo@yahoo.com>
Fix 32-bit Haiku build
* src/haiku_support.h (be_get_ui_color): Fix prototype.
2022-04-24 Eli Zaretskii <eliz@gnu.org>
Improve indexing in "Programmed Completion"
* doc/lispref/minibuf.texi (Programmed Completion): Improve
indexing. (Bug#55095)
2022-04-24 Karl Fogel <kfogel@red-bean.com>
Improve sorting in the bookmark list buffer
- Ensure that the bookmark bmenu buffer sorts when it should.
- Sort case-insensitively and by locale-dependent collation order.
- Rename "Bookmark" column to "Bookmark Name".
- Coordinate that column's sort toggle and `bookmark-sort-flag'.
- Document the new behavior.
* lisp/bookmark.el (bookmark-bmenu--name-predicate,
bookmark-bmenu--type-predicate, bookmark-bmenu--file-predicate): Use
`string-collate-lessp' with IGNORE-CASE argument, instead of plain
`string<'.
(bookmark-bmenu--revert): Sort based on `bookmark-sort-flag'.
(bookmark-bmenu-mode): Document the new behavior. Rename the
"Bookmark" column to "Bookmark Name" for clarity & documentabilty.
2022-04-24 Aleksandr Vityazev <avityazev@posteo.org>
Fix typo in cl.texi example
* doc/misc/cl.texi (Argument Lists): Fix typo (bug#55092).
2022-04-24 Lars Ingebrigtsen <larsi@gnus.org>
Use `C-c C-k' instead of `C-c C-d' to abort in string-edit
* lisp/textmodes/string-edit.el (string-edit-mode-map): Use `C-c
C-k' to abort.
2022-04-24 Lars Ingebrigtsen <larsi@gnus.org>
Further help-fns--editable-variable fixes
* lisp/help-fns.el (help-fns--editable-variable): Don't bug out on
non-symbols.
2022-04-24 Lars Ingebrigtsen <larsi@gnus.org>
Provide help when doing (shell-command "... &") on buffer collisions
* lisp/simple.el (shell-command--same-buffer-confirm): New
function (bug#13649).
(shell-command): Use it to provide fuller help.
2022-04-24 Lars Ingebrigtsen <larsi@gnus.org>
Add new function `read-string-from-buffer'.
* doc/lispref/minibuf.texi (Text from Minibuffer): Document it.
* lisp/textmodes/string-edit.el: New file.
2022-04-24 Lars Ingebrigtsen <larsi@gnus.org>
Allow 'C-u C-h .' to describe button/widgets
* doc/emacs/help.texi (Help Summary): Document it.
* lisp/help-at-pt.el (display-local-help): Display button/widget
help (bug#54963).
2022-04-24 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that the global sql-buffer variable is set
* lisp/progmodes/sql.el (sql-product-interactive): Set the
expected global value of sql-buffer (bug#55088).
2022-04-24 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'set-fontset-font'
* doc/lispref/display.texi (Fontsets):
* src/fontset.c (Fset_fontset_font): Improve and clarify the
documentation of 'set-fontset-font'. Rename the arguments to be
more self-explanatory. (Bug#55086)
2022-04-24 Po Lu <luangruo@yahoo.com>
* lisp/term/haiku-win.el (x-colors): Also update with system colors.
2022-04-24 Po Lu <luangruo@yahoo.com>
Allow looking up window system colors on Haiku
* lisp/help-fns.el (help-fns--editable-variable): Fix describing
variables which don't have symbol values.
* lisp/term/haiku-win.el (haiku-allowed-ui-colors): Set list of
allowed UI colors.
* src/haiku_support.cc (be_get_ui_color): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_get_color): Look for defined UI color.
(syms_of_haikufns): New defvar `haiku-allowed-ui-colors'.
* src/haikuterm.c (haiku_term_init): Fix coding style.
2022-04-23 Po Lu <luangruo@yahoo.com>
Fix disabling double buffering on Haiku
* src/haikufns.c (haiku_set_inhibit_double_buffering): Garbage
frame correctly after changing double buffering.
* src/haikuterm.c (haiku_calculate_relief_colors)
(haiku_draw_relief_rect, haiku_draw_underwave): Clean up coding
style.
2022-04-23 Po Lu <luangruo@yahoo.com>
Speed up color cache lookup on X
* src/xterm.c (x_hash_string_ignore_case): New function.
(x_parse_color): Turn color cache into a hash table.
(x_term_init): Allocate color cache.
(x_delete_display): Free color cache correctly.
* src/xterm.h (struct x_display_info): Turn color cache into a
hash table and add appropriate fields.
2022-04-23 Alan Mackenzie <acm@muc.de>
CC Mode: New alignment function c-lineup-argcont-+
This fixes bug #21409.
* lisp/progmodes/cc-align.el (c-lineup-argcont-1): New function, mainly
extracted from c-lineup-argcont.
(c-lineup-argcont): Refactored to use the new function above.
(c-lineup-argcont-+): New function.
* doc/misc/cc-mode.texi (Operator Line-Up): Add a new piece for
c-lineup-argcont-+.
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
NEWS copy editing
Fix elc.gz loading test some more
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
Add a failing test case for bug#12598
Author:
2022-04-23 Juri Linkov <juri@linkov.net>
Allow not clearing the echo area
* doc/lispref/display.texi (Displaying Messages): Document it.
* lisp/minibuffer.el (clear-minibuffer-message): Return nil.
* src/xdisp.c (clear_message): Respect the dont-clear-message
value.
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
Don't have help-fns--editable-variable override link buttons
* lisp/help-fns.el (help-fns--editable-variable): Don't override
link buttons (bug#40774).
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
Mention the case of the result in the try-completion doc string
* src/minibuf.c (Ftry_completion): Mention the case of the results
(bug#39484).
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
Make elisp-flymake-byte-compile clean up on failures
* lisp/progmodes/elisp-mode.el (elisp-flymake-byte-compile): Clean
up no matter what the exit status of the process is (bug#55056).
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
Don't make a header if the user hasn't specified columns in vtable
* lisp/emacs-lisp/vtable.el (vtable):
(make-vtable): Store whether the user has specified the columns.
(vtable-insert): Don't insert a header line or a header if the
user hasn't specified the columns (bug#55075).
2022-04-23 Filipp Gunbin <fgunbin@fastmail.fm>
Fix prompts in sql-get-login again
* lisp/progmodes/sql.el (sql-get-login-ext): Use prompt-def
everywhere.
(sql-get-login): Revert previous fix (bug#52546).
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-04-23 Lars Ingebrigtsen <larsi@gnus.org>
Add new minor mode word-wrap-whitespace-mode
* doc/emacs/display.texi (Visual Line Mode): Document it.
* lisp/textmodes/word-wrap-mode.el: New minor mode.
2022-04-23 Po Lu <luangruo@yahoo.com>
Fix key navigation of Lucid menus on XI2
* src/xmenu.c (popup_get_selection): Fix cookie claiming of
input extension events.
(Fx_menu_bar_open_internal): Use right timestamps on XI2.
* src/xterm.c (handle_one_xevent): Dispatch XI2 key events via
Xt when popup is active.
2022-04-23 Michael Albinus <michael.albinus@gmx.de>
Fix problem with Solaris ls in Tramp
* lisp/net/tramp-sh.el (tramp-sunos-unames): Move up.
(tramp-sh--quoting-style-options): Handle erroneous Solaris ls.
2022-04-22 Po Lu <luangruo@yahoo.com>
Avoid unnecessary calculations when handling button events during DND
* src/xterm.c (handle_one_xevent): Only calculate DND grab for
button release events.
2022-04-22 Po Lu <luangruo@yahoo.com>
Avoid clearing splash screen message during DND on Haiku
* src/haikuterm.c (haiku_read_socket): Respect any_help_event_p
when sending help events for DND.
2022-04-22 Alan Mackenzie <acm@muc.de>
Byte compiler: Prevent special forms' symbols being replaced by bare symbols
These are symbols with position from source code, which should not be replaced
by bare symbols in, e.g., optimization functions.
* lisp/Makefile.in: (BYTE_COMPILE_FLAGS, compile-first case): Set
max-specpdl-size to 5000 for the benefit of lisp/emacs-lisp/comp.el.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker)
(byte-optimize--rename-var, byte-optimize-if, byte-optimize-letX)
* lisp/emacs-lisp/bytecomp.el (byte-compile-recurse-toplevel)
(byte-compile-lambda)
* lisp/emacs-lisp/cconv.el (cconv-convert)
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Preserve, e.g., (car
form) in the byte compiler, when this form's car is a symbol with position of
a special form, rather than replacing the symbol with a bare symbol, e.g.
'cond.
2022-04-22 Alan Mackenzie <acm@muc.de>
Byte compiler: correct output warning message positions (part 2)
A supplementary commit to that on 2022-04-18:
* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Handle
vectors and records correctly.
* lisp/emacs-lisp/byte-run.el (byte-run--ssp-seen): Correct the doc string.
2022-04-22 Lars Ingebrigtsen <larsi@gnus.org>
Further doc string quoting fixes
* test/lisp/progmodes/cperl-mode-tests.el (cperl--run-test-cases):
* lisp/simple.el (undo-equiv-table):
* lisp/shell.el (shell-mode):
(shell-mode):
* lisp/recentf.el (recentf-mode):
* lisp/org/ob-table.el (org-sbe):
* lisp/net/eudc.el (eudc-rfc5322-cctext-token):
* lisp/mail/ietf-drums-date.el (ietf-drums-date--slot-ranges):
* lisp/faces.el (color-luminance-dark-limit):
* lisp/erc/erc.el (erc-tls):
* lisp/emacs-lisp/pcase.el (pcase-setq): Further quoting fixes in
doc strings.
2022-04-22 Lars Ingebrigtsen <larsi@gnus.org>
Audit quoting the quote character in doc strings
* test/src/regex-emacs-tests.el (regex-tests-compare):
(regex-tests-compare):
(regex-tests-match):
* test/lisp/xml-tests.el (xml-parse-tests--qnames):
* test/lisp/mh-e/mh-thread-tests.el (mh-thread-tests-before-from):
* test/lisp/cedet/srecode-utest-template.el (srecode-utest-map-reset):
* test/lisp/calc/calc-tests.el (calc-tests-equal):
* lisp/window.el (get-lru-window):
(get-mru-window):
(get-largest-window):
(quit-restore-window):
(display-buffer):
* lisp/vc/vc-rcs.el (vc-rcs-consult-headers):
* lisp/url/url-auth.el (url-digest-auth-build-response):
* lisp/tutorial.el (tutorial--find-changed-keys):
* lisp/transient.el (transient-suffix-object):
* lisp/textmodes/rst.el (rst-insert-list-new-item):
* lisp/textmodes/bibtex.el (bibtex-clean-entry):
* lisp/tab-bar.el (tab-bar--key-to-number):
(toggle-frame-tab-bar):
* lisp/ses.el (ses-recalculate-cell):
(ses-define-local-printer):
(ses-prin1):
* lisp/progmodes/xref.el (xref--find-ignores-arguments):
* lisp/progmodes/verilog-mode.el (verilog-single-declaration-end):
* lisp/progmodes/tcl.el (tcl-mode-hook):
* lisp/progmodes/gdb-mi.el (gdb-get-buffer-create):
* lisp/progmodes/elisp-mode.el (elisp--xref-make-xref):
* lisp/play/dunnet.el (dun-room-objects):
* lisp/outline.el (outline--cycle-state):
* lisp/org/ox-publish.el (org-publish-find-property):
* lisp/org/ox-html.el (org-html--unlabel-latex-environment):
* lisp/org/org-table.el (org-table-collapse-header):
* lisp/org/org-plot.el (org--plot/prime-factors):
* lisp/org/org-agenda.el (org-agenda--mark-blocked-entry):
(org-agenda-set-restriction-lock):
* lisp/org/ob-lua.el (org-babel-lua-read-string):
* lisp/org/ob-julia.el (org-babel-julia-evaluate-external-process):
(org-babel-julia-evaluate-session):
* lisp/org/ob-core.el (org-babel-default-header-args):
* lisp/obsolete/mouse-sel.el (mouse-select):
(mouse-select-secondary):
* lisp/net/tramp.el (tramp-methods):
* lisp/net/eww.el (eww-accept-content-types):
* lisp/net/dictionary-connection.el (dictionary-connection-status):
* lisp/minibuffer.el (completion-flex--make-flex-pattern):
* lisp/mh-e/mh-mime.el (mh-have-file-command):
* lisp/mh-e/mh-limit.el (mh-subject-to-sequence):
(mh-subject-to-sequence-threaded):
(mh-subject-to-sequence-unthreaded):
* lisp/mail/feedmail.el (feedmail-queue-buffer-file-name):
(feedmail-vm-mail-mode):
* lisp/ls-lisp.el (ls-lisp--sanitize-switches):
* lisp/keymap.el (key-valid-p):
* lisp/international/ccl.el (ccl-compile-branch-blocks):
* lisp/image/image-converter.el (image-convert):
* lisp/gnus/spam.el (spam-backend-check):
* lisp/gnus/nnselect.el (nnselect-generate-artlist):
* lisp/gnus/nnmairix.el (nnmairix-widget-other):
* lisp/gnus/message.el (message-mailto):
* lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article):
* lisp/gnus/gnus-search.el (gnus-search-prepare-query):
* lisp/frame.el (frame-size-history):
* lisp/eshell/esh-var.el (eshell-parse-variable-ref):
* lisp/eshell/em-dirs.el (eshell-expand-multiple-dots):
* lisp/erc/erc-backend.el (erc-bounds-of-word-at-point):
* lisp/emulation/cua-rect.el (cua--rectangle-operation):
* lisp/emacs-lisp/text-property-search.el (text-property-search-forward):
* lisp/emacs-lisp/package.el (package-desc-suffix):
* lisp/emacs-lisp/faceup.el (faceup-test-explain):
* lisp/emacs-lisp/comp.el (comp-curr-allocation-class):
(comp-alloc-class-to-container):
(comp-add-cstrs):
(comp-remove-type-hints-func):
(batch-byte+native-compile):
* lisp/emacs-lisp/cl-macs.el (cl--optimize):
* lisp/elec-pair.el (electric-pair--syntax-ppss):
* lisp/doc-view.el (doc-view-doc-type):
* lisp/cedet/semantic/symref.el (semantic-symref-tool-alist):
(semantic-symref-hit-to-tag-via-db):
(semantic-symref-hit-to-tag-via-buffer):
* lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-get-overlay):
* lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map):
* lisp/cedet/semantic/find.el (semantic-brute-find-tag-by-function):
* lisp/cedet/semantic/db.el (semanticdb-project-predicate-functions):
* lisp/cedet/semantic.el (semantic-working-type):
* lisp/cedet/ede/files.el (ede-flush-directory-hash):
* lisp/calc/calc.el (calc--header-line):
* lisp/auth-source.el (auth-source-pick-first-password):
(auth-source--decode-octal-string):
* etc/themes/modus-themes.el (modus-themes--paren):
(modus-themes--agenda-habit):
* admin/cus-test.el (cus-test-vars-with-changed-state): Fix
quoting in doc strings. In code examples, the ' character is
quoted with \\=, and regularize 'foo to `foo', and quote strings
like "foo" instead of 'foo'.
2022-04-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix map-into doc string example
* lisp/emacs-lisp/map.el (map-into): Fix quote quoting in example.
2022-04-22 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-u C-x =' be more verbose about invisible characters
* lisp/descr-text.el (describe-text-properties-1): Note confusing
bits about invisible characters (bug#3400).
2022-04-22 Lars Ingebrigtsen <larsi@gnus.org>
Allow completion-ignore-case to be buffer-local
* lisp/minibuffer.el (completing-read-default): Use the value of
completion-ignore-case from the current buffer (bug#12615).
2022-04-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix problem with (narrow-to-page 1) with point at point-max
* lisp/textmodes/page.el (forward-page): Make this work more
consistently if point is on bol (bug#20663).
2022-04-22 Po Lu <luangruo@yahoo.com>
Don't transfer window attributes trying to find the XM drag window
* src/xterm.c (xm_get_drag_window): Select for impossible event
mask instead of asking for the window attributes.
2022-04-22 Eli Zaretskii <eliz@gnu.org>
Another fix for non-ASCII 'overlay-arrow-string'
* src/xdisp.c (get_overlay_arrow_glyph_row): Fix yet another place
that assumed each character is a single byte.
2022-04-22 Po Lu <luangruo@yahoo.com>
Fix default frame name on Haiku
* src/haikufns.c (haiku_set_background_color)
(haiku_set_cursor_color, haiku_get_pixel, haiku_put_pixel)
(haiku_set_internal_border_width)
(haiku_set_inhibit_double_buffering)
(Fhaiku_mouse_absolute_pixel_position, Fxw_color_defined_p)
(Fxw_color_values, Fx_double_buffered_p)
(Fx_display_backing_store): Clean up coding style.
(haiku_set_name): Use correct default name and don't cons extra
string all the time.
* src/haikuterm.c (haiku_read_socket): Remove unused variable.
(haiku_term_init): Set default name.
(mark_haiku_display): Mark new field.
* src/haikuterm.h (struct haiku_display_info): New field
`default_name'.
2022-04-21 Po Lu <luangruo@yahoo.com>
Add an option to disable XI2 for debugging purposes
* src/xterm.c (handle_one_xevent): Accept resource
`disableInputExtension', which means to skip setting up the X
input extension.
2022-04-21 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Handle nil BOB button label
* lisp/net/eudc-bob.el (eudc-bob-make-button): Do not throw error
when label is nil.
2022-04-21 Eli Zaretskii <eliz@gnu.org>
Avoid a redisplay loop when 'overlay-arrow-string' is non-ASCII
* src/xdisp.c (get_overlay_arrow_glyph_row): Don't assume every
character in 'overlay-arrow-string' is one byte long. Reported by
Yuri D'Elia <wavexx@thregr.org>.
2022-04-21 Sean Whitton <spwhitton@spwhitton.name>
New electric forward slash Eshell module
* lisp/eshell/em-elecslash.el: New file.
* etc/NEWS:
* doc/misc/eshell.texi (Electric forward slash): Document the module.
(Make / electric): Retitle to "Make / more electric", update, add
"@noindent", and standardize terminology.
2022-04-21 Sean Whitton <spwhitton@spwhitton.name>
Bind 'imenu' to 'M-g i' globally
Another candidate was 'M-s i'. Discussion on emacs-devel has led me
to conclude that most people will find 'M-g i' more intuitive and thus
easier to memorize.
* lisp/bindings.el (goto-map): Bind 'imenu' to 'M-g i' globally.
* etc/NEWS: Document the change.
* doc/emacs/programs.texi (Imenu):
* lisp/progmodes/cperl-mode.el: Replace 'M-x imenu' with 'M-g i'.
2022-04-21 Tino Calancha <tino.calancha@gmail.com>
Respect user-emacs-directory-warning in startup
* lisp/startup.el (command-line): If user-emacs-directory is not
accessible, delay to show a warning until all command line args
are processed (bug#25163).
2022-04-21 Lars Ingebrigtsen <larsi@gnus.org>
Allow searching for regexps with a prefix
* doc/misc/info.texi (Search Index): Mention it.
* lisp/info.el (Info-find-node): Allow not signalling errors.
(Info-apropos-matches): Allow taking a regexp.
(info-apropos): Prefix now means looking for a regexp.
2022-04-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix indentation in copy-region-as-kill
* lisp/simple.el (copy-region-as-kill): Fix indendation.
2022-04-21 Lars Ingebrigtsen <larsi@gnus.org>
Clarify cl-incf/decf doc strings
* lisp/emacs-lisp/cl-lib.el (cl-incf):
(cl-decf): Clarify that nil isn't a valid value for X (bug#31715).
2022-04-21 Po Lu <luangruo@yahoo.com>
* src/haiku_support.cc (gui_abort): Get rid of extern "C" declarations.
2022-04-21 Eli Zaretskii <eliz@gnu.org>
Add minimum instructions to 'query-replace' commands
* lisp/vc/vc-dir.el (vc-dir-query-replace-regexp):
* lisp/textmodes/reftex-global.el (reftex-query-replace-document):
* lisp/progmodes/project.el (project-query-replace-regexp):
* lisp/progmodes/etags.el (tags-query-replace):
* lisp/progmodes/ebrowse.el (ebrowse-tags-query-replace):
* lisp/isearch.el (isearch-query-replace, isearch-occur):
* lisp/emulation/viper-cmd.el (viper-query-replace):
* lisp/dired-aux.el (dired-do-query-replace-regexp)
(dired-do-find-regexp-and-replace):
* lisp/progmodes/xref.el (xref-query-replace-in-results):
* lisp/replace.el (query-replace, query-replace-regexp)
(query-replace-regexp-eval, map-query-replace-regexp): Add minimal
instructions for dealing with matches, with a link to the command
that shows the full instructions. (Bug#55050)
2022-04-21 Lars Ingebrigtsen <larsi@gnus.org>
Link dired-do-find-regexp-and-replace to query-replace
* lisp/dired-aux.el (dired-do-find-regexp-and-replace): Link to
`query-replace' (bug#55050).
2022-04-21 Eli Zaretskii <eliz@gnu.org>
Unbreak build with MinGW64.
* src/w32.c (CONSOLE_FONT_INFO): Define only when _WIN32_WINNT is
less than _WIN32_WINNT_WINXP, i.e. for building with mingw.org's
MinGW.
2022-04-21 Andreas Schwab <schwab@linux-m68k.org>
gnus: fix %a in topic line
* lisp/gnus/gnus-topic.el (gnus-topic-insert-topic-line): Also
bind `entries'.
2022-04-21 Po Lu <luangruo@yahoo.com>
Clean up PGTK code some more
* src/pgtkterm.c (x_alloc_lighter_color): Simplify. Do not try
to "allocate" colors, remove unused flag and impossible return
value.
(pgtk_clear_frame): Remove unused code from NS port and remove
incorrect workaround for now-fixed double buffering.
(pgtk_make_frame_visible_wait_for_map_event_cb)
(x_clear_glyph_string_rect, x_draw_glyph_string_background)
(x_draw_glyph_string_foreground)
(x_draw_composite_glyph_string_foreground)
(x_draw_glyphless_glyph_string_foreground)
(x_fill_trapezoid_for_relief, x_erase_corners_for_relief)
(pgtk_setup_relief_color, x_draw_relief_rect, x_draw_box_rect)
(x_draw_glyph_string_box, x_get_scale_factor)
(x_draw_horizontal_wave, pgtk_draw_horizontal_wave)
(x_draw_underwave, x_draw_image_relief)
(x_draw_glyph_string_bg_rect, x_cr_draw_image)
(x_draw_image_foreground, x_draw_image_glyph_string)
(x_draw_stretch_glyph_string, pgtk_draw_glyph_string)
(x_draw_hollow_cursor, x_draw_bar_cursor, pgtk_draw_window_cursor)
(pgtk_cr_draw_image, pgtk_draw_fringe_bitmap, hourglass_cb)
(pgtk_show_hourglass, pgtk_redraw_scroll_bars, pgtk_flash)
(x_create_toolkit_scroll_bar)
(x_create_horizontal_toolkit_scroll_bar, x_scroll_bar_create)
(x_scroll_bar_remove, pgtk_set_vertical_scroll_bar)
(pgtk_set_horizontal_scroll_bar, pgtk_judge_scroll_bars)
(x_new_focus_frame, x_focus_changed, enter_notify_event)
(leave_notify_event, focus_in_event, focus_out_event)
(pgtk_cr_accumulate_data): Clean up coding style, rename
functions copied over from X and modified, and remove duplicate
definition of at least one function.
2022-04-21 Po Lu <luangruo@yahoo.com>
Don't leave xm drag initiator info around
* src/xterm.c (x_cleanup_drag_and_drop)
(x_begin_drag_and_drop): Don't confuse GTK+ 2.x by leaving drag
initiator info around after DND completes.
2022-04-21 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
dbb2dd6939 ; Fix wording of "File Notifications" in the ELisp manual
2022-04-20 Po Lu <luangruo@yahoo.com>
Use a cache on Haiku to avoid constantly reading fonts during font lookup
* src/haiku_font_support.cc (struct font_object_cache_bucket):
New struct.
(language_code_points): Make `int'.
(hash_string): New function.
(cache_font_object_data, lookup_font_object_data)
(font_object_has_chars): New functions.
(font_check_wanted_chars, font_check_one_of)
(font_check_language): Lookup in cached font object instead.
(be_init_font_data, be_evict_font_cache): New functions.
* src/haiku_support.h (struct haiku_font_pattern): Make
`uint32_t's ints instead.
* src/haikufont.c (haikufont_apply_registry, syms_of_haikufont):
Adjust for those changes.
* src/haikuterm.c (haiku_frame_up_to_date): Clear font lookup
cache every 50 updates.
2022-04-20 Po Lu <luangruo@yahoo.com>
Make some frame params work on Haiku tooltip frames
* src/haiku_support.cc (RecomputeFeel): Handle tooltips.
(BWindow_set_tooltip_decoration): Use RecomputeFeel instead of
setting window feel by hand.
2022-04-20 Paul Eggert <eggert@cs.ucla.edu>
More encode-time pitfall doc fixes
* doc/lispref/os.texi (Time Conversion): Improve discussion of
encode-time pitfalls based on comments by Max Nikulin (Bug#54764#63).
2022-04-20 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'scheme-indent-function' property
* lisp/progmodes/scheme.el: Extend and clarify the commentary
regarding the 'scheme-indent-function' property of special forms.
2022-04-20 Jean Abou Samra <jean@abou-samra.fr> (tiny change)
Define indentation behavior for a few more special Scheme forms
* lisp/progmodes/scheme.el: Define 'scheme-indent-function'
property for 'and-let*', 'with-syntax', 'eval-when;, and
pattern matching macros. (Bug#55033)
2022-04-20 Po Lu <luangruo@yahoo.com>
Implement `below' z-group on Haiku
* src/haiku_support.cc (BWindow_set_z_group): Handle
Z_GROUP_BELOW by setting the B_AVOID_FRONT flag.
2022-04-20 Lars Ingebrigtsen <larsi@gnus.org>
Ensure forward progress in bibtex-map-entries
* lisp/textmodes/bibtex.el (bibtex-map-entries): Ensure forward
progress (bug#55036).
2022-04-20 Lars Ingebrigtsen <larsi@gnus.org>
Fix the outline level in the Emacs NEWS modes
* lisp/textmodes/emacs-news-mode.el (emacs-news--mode-common): Fix
the outline level (bug#54993).
2022-04-20 Basil L. Contovounesios <contovob@tcd.ie>
Fix build for --enable-checking=structs
* src/pdumper.c (dump_subr): Update Lisp_Subr hash after last change
of 2022-04-18 "Port struct Lisp_Subr to C99".
2022-04-20 Po Lu <luangruo@yahoo.com>
Reset Motif DND protocol numbers when writing targets table
* src/xterm.c (xm_setup_dnd_targets): Set header.protocol to 0
when writing table.
2022-04-20 Po Lu <luangruo@yahoo.com>
Implement `above' z-group on Haiku
* src/haiku_support.cc (class EmacsWindow): New field `z_group'.
(RecomputeFeel): New function.
(ParentTo, BWindow_set_override_redirect): Use that instead
instead of manually juggling the window feel around.
(BWindow_set_z_group): New function.
* src/haiku_support.h (enum haiku_z_group): New enum.
* src/haikufns.c (haiku_set_parent_frame): Clean up coding
style.
(haiku_set_z_group): New function.
(haiku_create_frame): Always set z group after window creation,
like on X.
(haiku_frame_parm_handlers): Add `haiku_set_z_group'.
2022-04-19 Po Lu <luangruo@yahoo.com>
Fix enabling menu bar multiple times on Haiku
* src/haiku_support.cc (FrameResized): Adjust width and height
appropriately when sending menu bar resize event.
* src/haikufns.c (haiku_set_menu_bar_lines): Don't always reset
FRAME_MENU_BAR_LINES and FRAME_MENU_BAR_HEIGHT.
* src/haikumenu.c (free_frame_menubar): Clear Haiku menu bar.
(set_frame_menubar): Fix coding style.
* src/haikuterm.c (haiku_read_socket): Don't adjust height here
anymore.
2022-04-19 Paul Eggert <eggert@cs.ucla.edu>
Update from gnulib
2022-04-19 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -std=c99 with printf %p
* src/print.c (print_vectorlike): Assign pointer-to-function
to void * before printing it with %p, as the C standard
doesnt bless printing function pointers with %p.
2022-04-19 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -std=c99
* src/sysdep.c (system_process_attributes): Use %llu instead of
%Lu for sscanf, as %llu is standard and %Lu is not, and the latter
can provoke warnings if gcc is used pedantically.
2022-04-19 Po Lu <luangruo@yahoo.com>
Check for integer overflow when writing Motif targets tables
* src/xterm.c (xm_setup_dnd_targets): Check for integer overflow
when adding list to target table.
2022-04-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous description of fallback order
* doc/emacs/custom.texi (Specifying File Variables): Document
fallback mode order.
2022-04-19 Lars Ingebrigtsen <larsi@gnus.org>
Document how to specify fallback modes
* doc/emacs/custom.texi (Specifying File Variables): Document
fallback mode order.
2022-04-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix regression with multiple mode: entries in the prop line
* lisp/files.el (hack-local-variables--find-variables): Use the
final mode: line (which is the same as having several mode: bits
in the header line.
2022-04-19 Lars Ingebrigtsen <larsi@gnus.org>
Allow several mode: elements in the local variable section
* etc/NEWS (mode): Fall back on outline-mode in older Emacsen.
* lisp/files.el (hack-local-variables--find-variables): Use the
final mode: line (which is the same as having several mode: bits
in the header line.
2022-04-19 Stefan Monnier <monnier@iro.umontreal.ca>
Fix GCC warnings when CHECK_LISP_OBJECT_TYPE
* src/lisp.h (lisp_h_Qni): New macro.
(DEFUN): Use it.
* src/alloc.c (syms_of_alloc): Use it.
* src/bytecode.c (Fbyte_code): Fix Lisp_Object/int mixup.
2022-04-19 Lars Ingebrigtsen <larsi@gnus.org>
Revert prompting changes in viper-cmd
* lisp/emulation/viper-cmd.el (viper-quote-region)
(viper-read-string-with-history, viper-query-replace): Revert
prompting changes done in 50512e3 -- the way viper prompts in
command mode is special (bug#55007).
2022-04-19 Lars Ingebrigtsen <larsi@gnus.org>
Be more resilient against invalid headers in mml-generate-mime
* lisp/gnus/mml.el (mml-generate-mime): Don't bug out when called
with invalid headers (bug#55014).
2022-04-19 Philip Kaludercic <philipk@posteo.net>
Fix handling of intspecs as string by rcirc-define-command
* rcirc.el (rcirc-define-command): Check if an interactive
specification is a string, in which case it was to be wrapped in a
list so that the result of its interpretation is passed as the first
argument of the command resulting from the macro expansion.
2022-04-19 Po Lu <luangruo@yahoo.com>
Fix `x-mouse-click-focus-ignore-position' for odd coincidences across displays
* src/xterm.c (handle_one_xevent): Save the display alongside
the next mouse click timeout.
(x_delete_display): Clear that display here if applicable.
(x_initialize): Likewise.
2022-04-19 Eli Zaretskii <eliz@gnu.org>
Fix dimensions of console window of restarted Emacs on MS-Windows
* src/w32.c (get_console_font_size): New function.
(w32_reexec_emacs): Call 'get_console_font_size' to set up the
dimensions of the restarted Emacs's console window to the same
values as that of the original Emacs.
2022-04-19 Po Lu <luangruo@yahoo.com>
Deal with Motif drag window related races
* src/xterm.c (xm_drag_window_error_handler): New function.
(xm_get_drag_window): If a drag window was created and we have
the temp display grabbed, use that instead.
2022-04-19 Po Lu <luangruo@yahoo.com>
Minor cleanups to Haiku menu code
* src/haiku_draw_support.cc (BView_SetHighColorForVisibleBell):
Delete function.
* src/haiku_font_support.cc (BFont_dat): Rename to
`BFont_metrics'.
* src/haiku_support.cc (DrawContent): Use correct UI color for
control text.
* src/haiku_support.h (HAIKU_MODIFIER_ALT): Turn into enum.
(enum haiku_modifier_specification): New enum.
* src/haikufont.c (haikufont_open, haikufont_close): Fix coding
style.
2022-04-18 Po Lu <luangruo@yahoo.com>
Fix last change for GTK 2
* src/xfns.c (x_set_alpha_background):
* src/xterm.c (x_update_opaque_region): Move some ifdefs around.
2022-04-18 Po Lu <luangruo@yahoo.com>
Fix opaque region treatment on GTK 3
* src/xfns.c (x_set_alpha_background):
* src/xterm.c (x_update_opaque_region): Update opaque region for
tooltip frames the correct way on GTK.
2022-04-18 Paul Eggert <eggert@cs.ucla.edu>
Port struct Lisp_Subr to C99
* src/lisp.h (struct Lisp_Subr): Dont use an anonymous union,
a feature missing from C99 and not supported by older OS X.
All uses changed.
2022-04-18 Paul Eggert <eggert@cs.ucla.edu>
Port module_bignum_count_max to strict C
* src/emacs-module.c (module_bignum_count_max): Make
this a macro, not an enum, since it might not fit into
int as C99 requires.
2022-04-18 Sean Whitton <spwhitton@spwhitton.name>
Tell those using exclusively X not to use the PGTK port
* INSTALL (Alternative window systems): Tell those using exclusively X
not to use the PGTK port.
2022-04-18 Po Lu <luangruo@yahoo.com>
Fix display of glyphless characters on Haiku
* src/haikuterm.c (haiku_draw_glyph_string_foreground): Fix pen
size when drawing composite string w/o font.
(haiku_draw_glyphless_glyph_string_foreground): Correctly
display glyphless character rectangle.
2022-04-18 Paul Eggert <eggert@cs.ucla.edu>
Use "@code{nil}" in documentation
2022-04-18 Paul Eggert <eggert@cs.ucla.edu>
Remove obsolete footnote
Emacs no longer warns about timestamps like (1 . 1000).
2022-04-18 Alan Third <alan@idiocy.org>
Fix glyphless glyph display on NS (bug#54970)
* src/nsterm.m (ns_draw_glyphless_glyph_string_foreground): New
function.
(ns_draw_glyph_string): Use the new function.
* src/nsfont.m (nsfont_draw): Fix the location the glyphs are drawn,
and also which glyphs are drawn.
(ns_glyph_metrics): Reverse ascent and descent.
2022-04-18 Eli Zaretskii <eliz@gnu.org>
Minor improvements in 'restart-emacs' on MS-Windows
* src/w32.c (w32_reexec_emacs): Explicitly request a new console
for the restarted Emacs -nw, and specify its dimensions. Specify
NULL instead of security attributes, per examples on the Internet.
* src/w32console.c (initialize_w32_display): Check errors in call
to GetConsoleCursorInfo.
2022-04-18 Alan Mackenzie <acm@muc.de>
Byte compiler: correct output warning message positions
Correct the algorithm for determining the warning position to get the first
symbol-with-position in byte-compile--form-stack.
* lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Function
renamed and amended from byte-compile--first-symbol.
(byte-compile--warning-source-offset): Call the new function above rather than
the old one.
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Make isearch-lax-whitespace a user option
* lisp/isearch.el (isearch-lax-whitespace): Make into a defcustom
(bug#20351).
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Avoid hangs in python-mode with debug-on-error set
* lisp/progmodes/python.el (python-nav-end-of-statement): Avoid
using cl-assert here, because this is called from the font-lock
machinery, and if debug-on-error is set here, we'll hang Emacs
(bug#54996).
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Make it easier to use Emacs as a script interpreter
* doc/emacs/cmdargs.texi (Initial Options): Document -x.
* lisp/startup.el (command-line-1): Add new -scripteval.
(command-line--eval-script): New function.
* src/emacs.c (main): Transform -x to -scripteval.
(standard_args): Add -x (bug#20682).
2022-04-18 Po Lu <luangruo@yahoo.com>
Add missing Motif atoms
* src/xselect.c (symbol_to_x_atom):
(x_atom_to_symbol):
(syms_of_xselect): Optimize for XmTRANSFER_SUCCESS and
XmTRANSFER_FAILURE as well.
2022-04-18 Alan Mackenzie <acm@muc.de>
Byte compiler: remove symbol positions from byte-switch tables
This fixes bug #54990.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Remove positions from
symbols with positions in byte-switch tables, by temporarily removing the
entries from the table, and reinserting them amended.
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Clean up view-emacs-news code
* lisp/help.el (view-emacs-news): Remove workaround after fixing
mode: cookie error.
2022-04-18 Nacho Barrientos <nacho.barrientos@cern.ch> (tiny change)
Unify local variable initialisation in url-http
* lisp/url/url-http.el (url-http-chunked-last-crlf-missing): Treat
url-http-chunked-last-crlf-missing as any other buffer variable by
declaring and initialising it the same way as the other related
ones (bug#54989).
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Make `restart-emacs' work when Emacs is started with --chdir
* src/emacs.c (find_emacs_executable): Rename from
load_pdump_find_executable and always define.
(load_pdump): Return the executable.
(main): Store the executable.
(Fkill_emacs): Use the stored executable so that --chdir works
with relative executable names, and so that we attempt to restart
the same executable and not some other Emacs from PATH.
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Improve `restart-emacs' error reporting
* src/emacs.c (Fkill_emacs): Do better error reporting on restarting.
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Make "restart" erroring slightly more reliable
* src/emacs.c (Fkill_emacs): Use emacs_perror for the "restart"
errors -- we've already shut down Emacs at this point, so the
normal erroring machinery isn't reliable.
2022-04-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix major-mode setting regression when there's a mode: cookie
* lisp/files.el (hack-local-variables): Fix regression in setting
the major mode when there are mode: cookies in the file (bug#54993).
2022-04-18 Po Lu <luangruo@yahoo.com>
Stop skipping ShapeNotify events during DND on GTK+
* src/xterm.c (handle_one_xevent): Don't skip ShapeNotify events
because we can't send these events back to GDK manually.
2022-04-18 Po Lu <luangruo@yahoo.com>
Clarify computation of header line vpos
* src/dispnew.c (update_text_area): Test vpos is more than 1
only if is both a tab and header line. Reported by Eli
Zaretskii <eliz@gnu.org>.
2022-04-18 Eli Zaretskii <eliz@gnu.org>
Fix 'restart-emacs' in -nw mode on MS-Windows
* src/w32.c (openat): #ifdef away: not used.
(w32_reexec_emacs): Kludgey solution for restarting Emacs in the
"-nw" mode.
2022-04-18 Po Lu <luangruo@yahoo.com>
Fix glyph skipping optimization when a tab line is enabled
* src/dispnew.c (update_text_area): Compute vpos of header line
correctly when window has tab line.
2022-04-17 Po Lu <luangruo@yahoo.com>
Minor cleanups to PGTK code
* src/gtkutil.c (xg_set_geometry):
(xg_frame_set_char_size):
(x_wm_set_size_hint): Rename to `xg_wm_set_size_hint'. All
callers changed.
* src/gtkutil.h: Update prototypes.
* src/pgtkfns.c (unwind_create_frame):
(Fx_create_frame):
(compute_tip_xy):
* src/pgtkterm.c (x_free_frame_resources):
(x_destroy_window):
(x_calc_absolute_position):
(x_set_offset):
(pgtk_set_window_size):
(x_display_pixel_height):
(x_display_pixel_width):
(x_set_parent_frame): Rename `x_foo' functions to `pgtk_foo'.
Get rid of some copy-pasted code from various places.
(pgtk_create_terminal): Clean up coding style.
* src/pgtkterm.h: Update prototypes.
2022-04-17 Paul Eggert <eggert@cs.ucla.edu>
Port sqlite.c to OS X 10.6.8 with Xcode 3.2.6
Problem reported by Keith David Bershatsky in:
https://lists.gnu.org/r/emacs-devel/2022-04/msg00923.html
* src/sqlite.c (Fsqlite_open): Dont assume SQLITE_OPEN_MEMORY
is defined.
2022-04-17 Po Lu <luangruo@yahoo.com>
Fix Haiku menu bars when redisplay happens immediately after activation
* src/haiku_support.cc (MessageReceived): Make `REPLAY_MENU_BAR'
messages synchronous.
(be_replay_menu_bar_event): Return whether or not the menu bar
really opened.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (haiku_activate_menubar): Immediately activate
menu bar after replaying event.
2022-04-17 Po Lu <luangruo@yahoo.com>
Some minor fixes to Motif DND support
* src/xterm.c (xm_write_drag_initiator_info): Swap cardinal
values if wrong byteorder.
(xm_setup_dnd_targets): Read LONG_MAX amount of drag targets.
2022-04-17 Paul Eggert <eggert@cs.ucla.edu>
Merge from origin/emacs-28
65c04e7115 Update to Org 9.5.2-38-g682ccd
2022-04-17 Paul Eggert <eggert@cs.ucla.edu>
Merge from origin/emacs-28
3cccf0a910 Dont assume openat
2022-04-17 Jim Porter <jporterbugs@gmail.com>
Fix Eshell predicate tests when running from 'make check'
* test/lisp/eshell/em-pred-tests.el (eshell-partial-let-func): Get
original function after macro-expansion.
2022-04-17 Kyle Meyer <kyle@kyleam.com>
Update to Org 9.5.2-38-g682ccd
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Make desktop.el use local-minor-modes when saving
* lisp/desktop.el (desktop-buffer-info): Use a more reliable way
to get minor modes (bug#29972).
2022-04-17 Paul Eggert <eggert@cs.ucla.edu>
Dont assume openat
Use openat only on platforms with O_PATH.
This ports to OS X 10.9 and earlier.
Problem reported by Keith David Bershatsky in:
https://lists.gnu.org/r/emacs-devel/2022-04/msg00805.html
* lib-src/emacsclient.c (local_sockname): Use open, not openat.
* src/sysdep.c (sys_openat): New static function,
which uses openat only if O_PATH is defined.
(emacs_openat): Use it instead of openat.
(emacs_openat_noquit): Remove.
(emacs_open_noquit): Reimplement as per the old emacs_openat_noquit,
but use plain 'open'.
2022-04-17 Eli Zaretskii <eliz@gnu.org>
Improve the support for the Brahmi script
* lisp/leim/quail/indian.el ("brahmi"): New input method.
* lisp/language/indian.el ("Brahmi"): Add sample-text and
input-method. (Bug#54914)
* etc/NEWS: Mention the brahmi input method.
* etc/HELLO: Add a Brahmi greeting.
2022-04-17 kobarity <kobarity@gmail.com> (tiny change)
Fix fontifying type hints in python-mode
* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration): Avoid fontifying
type hints as variable names (bug#54992).
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Allow editing variable values in *Help* buffers
* lisp/help-fns.el (help-enable-variable-value-editing): New user
option.
(describe-variable): Tag values for editing.
(help-fns--editable-variable, help-fns-edit-variable): New
functions (bug#36826).
(help-fns--edit-value-mode-map, help-fns--edit-value-mode)
(help-fns-edit-mode-done): New mode and commands.
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Make :filters run in the correct buffer in describe-buffer-bindings
* lisp/help.el (describe-map-tree): Take an optional buffer parameter.
(describe-map): Ditto, and use it to run `lookup-key' in the
correct buffer. This fixes problems of filters being run in the
wrong buffer (bug#39149).
* src/keymap.c (Fdescribe_buffer_bindings): Pass in BUFFER to
describe-map-tree.
2022-04-17 Eli Zaretskii <eliz@gnu.org>
Fix 'restart-emacs' on MS-Windows
* src/w32.c (w32_reexec_emacs): New function, emulation of
'execvp' on Posix systems.
* src/w32.h (w32_reexec_emacs): Add prototype.
* src/emacs.c (main) [WINDOWSNT]: Save the original command line
and working directory.
(Fkill_emacs) [WINDOWSNT]: Call 'w32_reexec_emacs' instead of
'execvp'. (Bug#17036)
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Add a `restart-emacs' sanity check
* src/emacs.c (Fkill_emacs): Add a sanity check for argv.
2022-04-17 Po Lu <luangruo@yahoo.com>
Handle bad actual actions during DND
* src/xterm.c (x_dnd_begin_drag_and_drop): Behave correctly when
the target gives us a bad atom.
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Check whether we can restart in Fkill_emacs
* src/emacs.c (Fkill_emacs): Report an error if we can't restart.
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Explain what "pending" means in isearch
* doc/emacs/search.texi (Regexp Search): Explain what "Pending"
usually means (bug#10148).
2022-04-17 Philip Kaludercic <philipk@posteo.net>
Handle connection errors in rcirc-keepalive
* rcirc.el (rcirc-reconnect-delay): Declare variable before it is
defined.
(rcirc-keepalive): Handle rcirc-closed-connection, respecting
rcirc-reconnect-delay.
(rcirc-closed-connection): Add new error type.
(rcirc-send-string): Throw rcirc-closed-connection instead of a
generic error.
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Add new function `flush-standard-output'.
* doc/lispref/streams.texi (Output Functions): Document it.
* src/print.c (Fflush_standard_output): New function (bug#15180).
2022-04-17 Philip Kaludercic <philipk@posteo.net>
Further improve buffer-match-p related documentation
* doc/lispref/buffers.texi (Buffer List): Add entries for
buffer-match-p and match-buffers.
* etc/NEWS: Give examples for buffer-match-p conditions.
* lisp/window.el (display-buffer-assq-regexp): Mention what happens
when no entry in the alist satisfies a condition.
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Add a new command `restart-emacs'
* doc/lispref/os.texi (Killing Emacs): Document it.
* lisp/files.el (save-buffers-kill-emacs): Add new RESTART parameter.
(restart-emacs): New function.
* src/emacs.c (terminate_due_to_signal, Fkill_emacs): Take an
optional RESTART parameter.
* test/lisp/files-tests.el
(files-tests-save-buffers-kill-emacs--confirm-kill-processes):
* src/xterm.c (x_connection_closed):
* src/xsmfns.c (Fhandle_save_session):
* src/keyboard.c (Fcommand_error_default_function, command_loop)
(command_loop_1, read_menu_command, read_event_from_main_queue)
(read_key_sequence, quit_throw_to_read_char):
* src/eval.c (process_quit_flag): Adjust Fkill_emacs callers.
2022-04-17 Nacho Barrientos <nacho.barrientos@cern.ch> (tiny change)
Fix chunked encoding connections in url-http
* lisp/url/url-http.el
(url-http-chunked-encoding-after-change-function): Ensure that chunked
encoding is interpreted correctly (bug#54989).
As per [0], the last chunk of 0 bytes is always accompanied by a last
CRLF that signals the end of the message:
chunked-body = *chunk
last-chunk
trailer-part
CRLF
^ this one
chunk = chunk-size [ chunk-ext ] CRLF
chunk-data CRLF
chunk-size = 1*HEXDIG
last-chunk = 1*("0") [ chunk-ext ] CRLF
chunk-data = 1*OCTET ; a sequence of chunk-size octets
`url-http-chunked-encoding-after-change-function' is able to process
(and remove) that terminator IF AVAILABLE in the buffer when
processing the response, however it won't wait for it if it's not yet
there.
In other words:
| Bottom of the response buffer | Bottom of the full response |
| (visible to url-http) | (to be delivered to Emacs) |
| ------------------------------+-----------------------------|
| 0\r\n | 0\r\n |
| | \r\n |
If the last chunk is processed when the bottom of the response buffer
is as above (note that the whole response has not yet been delivered
to Emacs), url-http will call the user callback without waiting for
the final terminator to be read from the socket.
This is normally not an issue when doing one-shot requests, but it's
problematic when the connection is reused immediately. As there are 2
bytes from the request N that have not been dealt with, they'll be
considered as part of the response of the request N+1. On top, it
turns out that when processing the headers of request N+1,
`url-http-wait-for-headers-change-function' will consider the request
a "headerless malformed response" delivering it broken to the caller.
The proposed fix implements a state in which
`url-http-chunked-encoding-after-change-function` properly waits for
the very last element of the message preventing the problem explained
above from happening.
For additional context, this bug was found when debugging
magit/ghub (see [1] for details).
[0] https://datatracker.ietf.org/doc/html/rfc7230#section-4.1
[1] https://github.com/magit/ghub/issues/81
2022-04-17 Oleh Krehel <ohwoeowho@gmail.com>
Remove duplicates from Info-read-node-name-2
* lisp/info.el (Info-read-node-name-2): Remove duplicates from
completions (bug#20365).
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix instructions on how to enable password-store
* doc/misc/auth.texi (Help for users): Give the correct
instructions on how to enable password store (bug#30900).
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Clarify setopt NEWS entry
Do some NEWS tagging
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Add a doc string to xref-current-item
* lisp/progmodes/xref.el (xref-after-jump-hook): Link to it.
(xref-current-item): Add a doc string to the now-public variable.
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Clarify emacs-news--heading-p logic
* lisp/textmodes/emacs-news-mode.el (emacs-news--heading-p):
Clarify the logic.
2022-04-17 Lars Ingebrigtsen <larsi@gnus.org>
Move some entries around in the NEWS file
Fix up the NEWS entry for emacs-news*-mode
2022-04-17 Paul Eggert <eggert@cs.ucla.edu>
* src/filelock.c (Fcreate_lockfiles): Doc string fix.
2022-04-17 Paul Eggert <eggert@cs.ucla.edu>
Merge from origin/emacs-28
4641bc1c55 Fix GC bug in filelock.c
2022-04-17 Po Lu <luangruo@yahoo.com>
Fix race conditions waiting for menu bar resize events on Haiku
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
Clear `wait_for_event_type'.
(haiku_set_menu_bar_lines): Clean up coding style.
* src/haikuterm.c (haiku_wait_for_event): New function.
(haiku_read_socket): Implement waiting for MENU_BAR_RESIZE
events.
* src/haikuterm.h (struct haiku_output): New field
`wait_for_event_type'.
2022-04-17 Po Lu <luangruo@yahoo.com>
Fix race conditions waiting for menu bar resize events on Haiku
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame)
(haiku_set_menu_bar_lines): Clear `wait_for_event_type'.
* src/haikumenu.c (set_frame_menubar): Wait for menu bar resize
event.
* src/haikuterm.c (haiku_wait_for_event): New function.
(haiku_read_socket): Handle waiting for MENU_BAR_RESIZE.
* src/haikuterm.h (struct haiku_output): New field
`wait_for_event_type'.
2022-04-17 Po Lu <luangruo@yahoo.com>
Get rid of unused flags on Haiku
* src/haikufns.c (haiku_free_frame_resources): Syntax fixes.
* src/haikumenu.c (set_frame_menubar, run_menu_bar_help_event):
* src/haikuterm.c (haiku_read_socket): Stop setting and
consulting `menu_up_to_date_p'.
* src/haikuterm.h (struct haiku_output): Delete
`menu_up_to_date_p'.
2022-04-17 Po Lu <luangruo@yahoo.com>
* src/haikufns.c (haiku_free_frame_resources): Free saved menu event.
2022-04-17 Po Lu <luangruo@yahoo.com>
Fix hangs when clicking on Haiku menu bar to activate frame
* src/haiku_io.c (haiku_len): Handle new event `MENU_BAR_CLICK'.
* src/haiku_support.cc (class EmacsWindow): Remove most of the
menu bar cv stuff.
(MessageReceived): Handle REPLAY_MENU_BAR message.
(EmacsWindow_signal_menu_update_complete): Delete function.
(be_replay_menu_bar_event): New function.
* src/haiku_support.h (enum haiku_event_type): New event type
`MENU_BAR_CLICK'.
(struct haiku_menu_bar_click_event): New struct.
* src/haikumenu.c (haiku_activate_menubar): New function.
* src/haikuterm.c (haiku_read_socket): Save a
MENU_BAR_ACTIVATE_EVENT and the menu bar click event instead of
handling the menu bar update synchronously.
(haiku_create_terminal): Set `activate_menubar_hook'.
(syms_of_haikuterm): Remove extraneous newline.
* src/haikuterm.h (struct haiku_output): New field
`saved_menu_event'.
2022-04-17 Paul Eggert <eggert@cs.ucla.edu>
Fix GC bug in filelock.c
Fix a bug where if GC occurred at the wrong moment when locking a
file, the lock files name was trashed so file locking did not work.
This bug was introduced in Emacs 28.1. The bug sometimes caused
filelock-tests-detect-external-change test failures on Fedora 35
x86-64 in an en_US.utf8 locale.
* src/filelock.c (lock_file_1, current_lock_owner, lock_if_free)
(lock_file, unlock_file, Ffile_locked_p):
Use Lisp_Object, not char *, for string, so that GC doesnt trash
string contents.
(make_lock_file_name): Return the encoded name, not the original.
All callers changed.
2022-04-17 Jim Porter <jporterbugs@gmail.com>
Add 'G' argument predicate in Eshell
* lisp/eshell/em-pred.el (eshell-predicate-alist): Add 'G' predicate.
(eshell-predicate-help-string): Document it. (Bug#54470)
* test/lisp/eshell/em-pred-tests.el
(em-pred-test/predicate-effective-gid): New test.
* doc/misc/eshell.texi (Argument Predication): Document 'G' predicate.
2022-04-17 Jim Porter <jporterbugs@gmail.com>
Add unit tests and documentation for Eshell predicates/modifiers
* lisp/eshell/esh-cmd.el (eshell-eval-argument): New function.
* lisp/eshell/esh-util.el (eshell-file-attributes): Pass original
value of FILE to 'file-attributes'.
* lisp/eshell/em-pred.el (eshell-predicate-alist): Change socket char
to '=', since 's' conflicts with setuid.
(eshell-modifier-alist): Fix 'E' (eval) modifier by using
'eshell-eval-argument'. Also improve performance of 'O' (reversed
sort) modifier.
(eshell-modifier-help-string): Fix documentation of global
substitution modifier.
(eshell-pred-substitute): Fix infinite loop in some global
substitutions.
(eshell-join-members): Fix joining with implicit " " delimiter.
(Bug#54470)
* test/lisp/eshell/em-pred-tests.el: New file.
* doc/misc/eshell.texi (Argument Predication): New section.
2022-04-17 Jim Porter <jporterbugs@gmail.com>
Add unit tests and documentation for Eshell pattern-based globs
* lisp/eshell/em-glob.el (eshell-extended-glob): Fix docstring.
(eshell-glob-entries): Refer to '**/' in error (technically, '**' can
end a glob, but it means the same thing as '*'). (Bug#54470)
* test/lisp/eshell/em-glob-tests.el: New file.
* doc/misc/eshell.texi (Globbing): Document pattern-based globs.
2022-04-17 Po Lu <luangruo@yahoo.com>
Make sure the ftcr font driver is used on Haiku when Cairo is enabled
* src/haikufont.c (syms_of_haikufont): [USE_BE_CAIRO]: Make sure
`ftcr' superseeds `haiku'.
2022-04-16 Paul Eggert <eggert@cs.ucla.edu>
Document encode-time caveats
* doc/lispref/os.texi (Time of Day, Time Conversion):
Move the warnings about DST being -1 to closer to where DST is
discussed, and reword and improve the discussions and warnings.
Be more precise about years before 1969 (possible west of UTC) vs the
Epoch. Mention some problems due to leap seconds, leap years,
daylight saving transitions, and time zone changes. Modernize
discussion of OS timestamp range. Prefer secular BCE to religious
BC. Omit discussion of decoded-time-add and make-decoded-time, as
they are in a library and are not always available; instead, mention
the library. Warn about common mistakes when doing simple date
arithmetic.
* src/timefns.c (Fencode_time): In doc string, mention date
arithmetic and tighten up the wording a bit.
2022-04-16 Max Nikulin <manikulin@gmail.com>
Stress difference of new and old ways to call `encode-time'
* doc/lispref/os.texi (Time Conversion): Add a warning that blind
changing of code calling `encode-time' to use single list instead of
multiple values may cause deferred bugs since it is common to use nil
for ignored arguments such as DST in the old calling convention.
* src/timefns.c (encode-time): Mention the warning added to the elisp
reference in the docstring.
Refactoring related to `encode-time' caused (bug#54731), so it is better
to make apparent the difference between the recommended and the
obsolescent ways to call the function. More details concerning the
purpose and limitations of the DST field are added after discussion with
Paul Eggert in (bug#54764).
2022-04-16 Po Lu <luangruo@yahoo.com>
Restore pending_signals at a point in the DND event loop
* src/xterm.c (x_dnd_begin_drag_and_drop): Restore
pending_signals after unblock_input.
2022-04-16 Earl Hyatt <okamsn@protonmail.com>
Add basic Texinfo support for Flymake.
* lisp/textmodes/texinfo.el (texinfo-flymake, texinfo--flymake-proc)
(texinfo-mode):
Add the functions texinfo-flymake and process variable
texinfo--flymake-proc. Modify texinfo-mode to automatically add this
function to the hook flymake-diagnostic-functions.
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
d53c999b4a Further vcs-cvs/rcs-responsible-p updates from master
dc3d1628ec ; * src/sysdep.c: Fix mistake in previous commit
855e15dbf1 Fix builds on older versions of macOS
9da744e450 Fix documentation of Outline minor mode options
a8bb12ab05 Improve discoverability of 'insert-directory-program'
3f166bdf44 ; * etc/PROBLEMS: Describe MS-Windows issues with fonts. ...
803ac857ee Fix cursor motion under truncate-lines with Flymake fringe...
# Conflicts:
# etc/PROBLEMS
# lisp/outline.el
# src/sysdep.c
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
b201823f63 Describe problems with invoking Python on MS-Windows
880f2734c9 A better fix for bug#54800
5ee959aa87 Add a comment about cl-concatenate
ab2b822b9b Revert "Make cl-concatenate an alias of seq-concatenate"
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
5e47d6284b * lisp/gnus/mm-encode.el (mm-default-file-encoding): Fix "...
e71c7a7c60 Fix default-directory of buffers visiting files in renamed...
cccaa9c31d Fix a kill-append regression
33828e4818 * doc/misc/eww.texi (Advanced): Correct outdated info (bug...
e8d2f40f41 Clean up the MSDOS port
338eda09d8 Fix typo in next-error-find-buffer-function
# Conflicts:
# doc/misc/eww.texi
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
84a2857722 Fix scrolling of the stack window in Calc
9dd44505b1 ; * src/window.c (Fset_window_start): Clarify the effect o...
24a6c7c8c0 Update and fix instructions and scripts for updating the W...
886339747b Extend tramp-archive-test45-auto-load
ff997ad786 Ensure local `default-directory' in Tramp when needed
4f27588a16 Clarify "idleness" in the ELisp manual
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
aab36e1895 Fix error in tramp-archive-autoload-file-name-handler
11a1f7817e Merge branch 'emacs-28' of git.sv.gnu.org:/srv/git/emacs i...
93974198b6 Commit missing file from previous commit
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
8c71ac606e Fix fallout from lexical-binding in vhdl-mode.el
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Don't leave `C-h N' in a text-mode derived mode
* lisp/help.el (view-emacs-news): Use emacs-news-view-mode.
* lisp/textmodes/emacs-news-mode.el (emacs-news-view-mode): Split
into own mode to avoid confusion.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix button-buffer-map binding error
* lisp/button.el (button-buffer-map): Fix error in map rewriting
in previous commit.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Add new commands to go to headings/sections in the NEWS file
* lisp/textmodes/emacs-news-mode.el (emacs-news-find-heading)
(emacs-news-goto-section): New commands.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Add emacs-news-previous-untagged-entry command
* lisp/textmodes/emacs-news-mode.el
(emacs-news-next-untagged-entry): Allow searching backward.
(emacs-news-previous-untagged-entry): New command and keystroke.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Fold some too-long NEWS lines
Do some NEWS tagging
Do some NEWS tagging
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Improve exif-field discoverability
* lisp/image/exif.el (exif-parse-file, exif-parse-buffer): Link to
`exif-field'.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Do some NEWS tagging
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Document project-kill-buffers-display-buffer-list
* doc/emacs/maintaining.texi (Project Buffer Commands): Mention
project-kill-buffers-display-buffer-list.
* lisp/progmodes/project.el (project-kill-buffers): Link to
project-kill-buffers-display-buffer-list.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Document prefix to project-find-file
* doc/emacs/maintaining.texi (Project File Commands): Mention the
prefix in the project-find-file command.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix glyphless-display-mode indexing
* doc/lispref/display.texi (Glyphless Chars): Fix indexing.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Document completions-sort
* doc/emacs/mini.texi (Completion Options): Document completions-sort.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Mention completion-wrap-movement in relevant commands
* lisp/simple.el (previous-completion, next-completion): Mention
`completion-wrap-movement'.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Document minibuffer-completion-auto-choose/M-up/M-down
* doc/emacs/mini.texi (Completion Commands): Document
minibuffer-completion-auto-choose/M-up/M-down.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Further IDNA/proxy url fixes
* lisp/url/url-http.el (url-http-create-request): Puny-encode
domains (bug#54921).
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Crosslink some buttonize function doc strings
* lisp/button.el (buttonize-region, buttonize): Crosslink doc
strings for discoverability.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Improve completion in `C-h R'
* lisp/info.el (info-display-manual): Use it (bug#54961).
(info--filter-manual-names): Filter away duplicates and irrelevant
files.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Clarify when mode tagging is used
* etc/NEWS: Clarify when mode tagging is used (bug#54964).
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Further vcs-cvs/rcs-responsible-p updates from master
* lisp/vc/vc-bzr.el (vc-bzr-responsible-p):
* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
* lisp/vc/vc-dav.el (vc-dav-responsible-p): Update doc string.
* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Further fixes from
master.
* lisp/vc/vc-src.el (vc-src-responsible-p): Return the directory.
* lisp/vc/vc.el: Update comments.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Make emacs-news-next-untagged-entry push the mark
* lisp/textmodes/emacs-news-mode.el
(emacs-news-next-untagged-entry): Push the mark for easier
navigation back to where we were.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix NEWS tag commands
* lisp/textmodes/emacs-news-mode.el
(emacs-news-next-untagged-entry): Fix logic.
(emacs-news-count-untagged-entries): Add new command and keystroke.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Clean up emacs-news--buttonize
* lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize):
Remove unnecessary check left over from previous version.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Bind TAB and <backtab> on buttons
* lisp/button.el (button-map): Inherit from 'button-buffer-map'.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Add a new mode for editing and viewing the Emacs NEWS file
* etc/NEWS (mode): Use emacs-news-mode.
* lisp/help.el (view-emacs-news): Use emacs-news-mode.
* lisp/textmodes/emacs-news-mode.el: New mode for editing and
viewing the Emacs NEWS file.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Add new function buttonize-region
* lisp/button.el (buttonize-region): New function.
(button--properties): Factored out.
(buttonize): Use it.
2022-04-16 Po Lu <luangruo@yahoo.com>
Prevent race conditions with async input during drag-and-drop
* src/xterm.c (XTread_socket): Don't read events here during
drag-and-drop, otherwise the right hold_quit might not be used
for selection events.
2022-04-16 Mattias Engdegård <mattiase@acm.org>
Fix builds on older versions of macOS
This adds back macOS-specific code replaced earlier (bug#48548),
specifically to fix build errors on macOS 10.7.5. See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html .
* src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New.
(system_process_attributes): Use alternative code or exclude features
when building on older macOS versions.
(cherry picked from commit 855e15dbf10a6aac42b860fdb28711f979e2bf22)
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Improve support for the Brahmi script
* lisp/language/indian.el ("Brahmi"): New language environment.
Add composition rules for Brahmi.
* lisp/international/fontset.el (script-representative-chars)
(setup-default-fontset): Support Brahmi. (Bug#54914)
* etc/NEWS: Announce the new language environment.
2022-04-16 Mattias Engdegård <mattiase@acm.org>
Fix builds on older versions of macOS
This adds back macOS-specific code replaced earlier (bug#48548),
specifically to fix build errors on macOS 10.7.5. See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2022-04/msg00779.html .
* src/sysdep.c (HAVE_RUSAGE_INFO_CURRENT, HAVE_PROC_PIDINFO): New.
(system_process_attributes): Use alternative code or exclude features
when building on older macOS versions.
2022-04-16 Mattias Engdegård <mattiase@acm.org>
Disable annoying Clang warnings
* configure.ac (CHECK_LISP_OBJECT_TYPE): Disable
-Wimplicit-const-int-float-conversion and -Wint-in-bool-context, which
currently only have false positives.
2022-04-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix ODF file detection in doc-view-mode
* lisp/doc-view.el (doc-view-set-doc-type): Fix ODF file detection
(bug#54947).
2022-04-16 Po Lu <luangruo@yahoo.com>
Fix build with toolkit scroll bars without XI2
* src/xterm.c (mark_xterm): Fix up ifdefs slightly.
2022-04-16 Po Lu <luangruo@yahoo.com>
Protect windows from garbage collection when a ClientMessage is pending
* src/xterm.c (x_protect_window_for_callback)
(x_unprotect_window_for_callback): New functions.
(x_send_scroll_bar_event): Protect windows from garbage
collection before sending event containing pointer to window.
(handle_one_xevent): Unprotect after such a ClientMessage is
received and the window put in the keyboard buffer.
(x_term_init): Initialize protected windows list.
(x_delete_display): Free that list.
(mark_xterm): Mark the windows in that list.
* src/xterm.h (struct x_display_info): New fields for recording
a list of protected windows.
2022-04-16 Eli Zaretskii <eliz@gnu.org>
Fix documentation of Outline minor mode options
* lisp/outline.el (outline-minor-mode-cycle-filter)
(outline-minor-mode-cycle, outline-minor-mode-highlight)
(outline-cycle, outline-cycle-buffer): Doc fixes. (Bug#54967)
2022-04-16 Po Lu <luangruo@yahoo.com>
Add some missing multilingual keys to Haiku
* src/haiku_support.cc (keysym_from_raw_char): Support keys
found on some East Asian keyboards.
2022-04-15 Po Lu <luangruo@yahoo.com>
Handle errors getting selection ownership when starting DND
* src/xterm.c (x_clear_dnd_targets): New function.
(x_dnd_begin_drag_and_drop): Handle errors in `x_own_selection'.
2022-04-15 Eli Zaretskii <eliz@gnu.org>
Improve discoverability of 'insert-directory-program'
* lisp/files.el (insert-directory-program): Mention 'dired' in the
doc string.
* lisp/dired.el (dired): Mention 'insert-directory-program' in the
doc string. (Bug#54962)
2022-04-15 Philip Kaludercic <philipk@posteo.net>
Improve buffer-match-p documentation
* doc/lispref/windows.texi (Choosing Window): Document that
buffer-match-p is used by display-buffer-alist.
* etc/NEWS: Mention buffer-match-p and match-buffers.
* lisp/window.el (display-buffer-alist): Update documentation as for
display-buffer-assq-regexp.
(display-buffer-assq-regexp): Rename buffer-name to buffer-or-name.
(display-buffer): Pass the buffer directly to
display-buffer-assq-regexp,.
2022-04-15 Troels Henriksen <athas@sigkill.dk> (tiny change)
Add out-of-box support for futhark lsp server
* eglot.el (eglot-server-programs): Support futhark lsp.
* README.md: Update.
* NEWS.md: Update.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/922
2022-04-15 Philip Kaludercic <philipk@posteo.net>
Add rcirc-cycle-completion-flag
* doc/misc/rcirc.texi: Document new option.
* lisp/net/rcirc.el (rcirc-cycle-completion-flag): Add new option.
(rcirc-mode): Respect new option.
2022-04-15 Po Lu <luangruo@yahoo.com>
Fix default registry of Haiku font backend
* src/haiku_support.h (struct haiku_zoom_event): Fix coding
style.
(enum haiku_font_specification): Move FSPECs over here.
* src/haikufont.c (haikufont_apply_registry)
(haikufont_get_fallback_entity, haikufont_pattern_to_entity)
(haikufont_spec_or_entity_to_pattern, haikufont_list): Use
`iso10646-1' as the default registry instead of `utf8', which is
not a registry.
2022-04-15 Lars Ingebrigtsen <larsi@gnus.org>
Enable dragging resizing final column in vtable
* lisp/emacs-lisp/vtable.el (vtable--insert-line): Insert the
divider after the final column, too, so that the size can be
dragged.
2022-04-15 Po Lu <luangruo@yahoo.com>
Clean up keysyms from Haiku headers
* src/haiku_support.cc (keysym_from_raw_char): Add keysym
numbers here and use those instead.
* src/haiku_support.h: Delete all the X11 keysym definitions.
2022-04-15 Lars Ingebrigtsen <larsi@gnus.org>
Add some mouse-face bits to vtable
* lisp/emacs-lisp/vtable.el (make-vtable)
(vtable--insert-header-line): Put mouse-face on draggable bits.
2022-04-15 Lars Ingebrigtsen <larsi@gnus.org>
Tweak sorting indicator placement in vtable
* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Tweak
sorting indicator position.
2022-04-15 Lars Ingebrigtsen <larsi@gnus.org>
Make the sorting indicator prettier in vtable
* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Place
the sorting indicator flush right in the heading.
2022-04-15 Po Lu <luangruo@yahoo.com>
Fix dismissal of tooltips on Haiku
* src/haikuterm.c (haiku_mouse_or_wdesc_frame): New argument
`accept_tooltip'.
(haiku_read_socket): Use it when handling MOUSE_MOTION events.
2022-04-15 Lars Ingebrigtsen <larsi@gnus.org>
Allow using faces for colors in vtable
* doc/misc/vtable.texi (Making A Table): Adjust color documentation.
* lisp/emacs-lisp/vtable.el (make-vtable): Mix more.
(vtable--compute-colors): Mix both foreground and background colors.
(vtable--make-color-face, vtable--face-blend): New functions.
(vtable--insert-line): Adjust usage.
2022-04-15 Lars Ingebrigtsen <larsi@gnus.org>
Allow dragging the divider in vtable
* lisp/emacs-lisp/vtable.el (vtable): Add a keymap cache.
(make-vtable): Allow dragging the divider.
(vtable-insert): Don't put the table keymap over the entire line
-- avoid the divider, which has its own keymap.
(vtable--drag-resize-column): Adjust to the in-buffer divider
dragging.
2022-04-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix off-by-one error in text-property-search-backward
* lisp/emacs-lisp/text-property-search.el
(text-property-search-backward): Fix off-by-one error -- this
would result in not finding the previous (non-)match when at the
first character in a field.
2022-04-15 Eli Zaretskii <eliz@gnu.org>
Fix cursor motion under truncate-lines with Flymake fringe indicator
* src/indent.c (Fvertical_motion): Don't consider fringe bitmaps
as "images" for the purpose of vertical-motion logic dealing with
overshooting buffer positions. (Bug#54946)
2022-04-15 Po Lu <luangruo@yahoo.com>
More PGTK related cleanup
* src/pgtkfns.c (x_set_foreground_color, x_set_background_color)
(x_set_border_color, x_set_cursor_color, x_set_title)
(x_set_menu_bar_lines, x_set_tab_bar_lines, x_set_tool_bar_lines)
(x_set_child_frame_border_width, x_set_internal_border_width)
(x_set_icon_type, x_set_icon_name, x_set_cursor_type)
(x_set_mouse_color, x_set_undecorated, x_set_skip_taskbar)
(x_set_override_redirect, pgtk_frame_parm_handlers)
(Fx_create_frame): Rename most `x_' functions to `pgtk_' ones.
All callers changed.
* src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove duplicate
doc string definition.
* src/pgtkterm.c (x_set_offset, pgtk_iconify_frame)
(x_set_parent_frame, x_set_no_focus_on_map, x_set_no_accept_focus)
(x_set_z_group, x_set_cursor_gc, x_set_mouse_face_gc)
(x_set_mode_line_face_gc, x_set_glyph_string_gc)
(x_set_glyph_string_clipping, x_set_glyph_string_clipping_exactly)
(x_setup_relief_color, x_setup_relief_colors)
(x_set_clip_rectangles, x_draw_relief_rect, x_draw_box_rect)
(x_draw_glyph_string_box, x_draw_image_relief)
(x_draw_image_foreground, x_draw_stretch_glyph_string)
(pgtk_draw_glyph_string, x_set_toolkit_scroll_bar_thumb)
(x_set_toolkit_horizontal_scroll_bar_thumb)
(pgtk_set_vertical_scroll_bar, pgtk_set_horizontal_scroll_bar)
(x_set_frame_alpha, frame_highlight, frame_unhighlight)
(pgtk_create_terminal, map_event): Rename most `x_' functions to
`pgtk_' ones. All callers changed.
* src/pgtkterm.h: Update prototypes.
2022-04-15 Po Lu <luangruo@yahoo.com>
Clean up some extraneous stuff in pgtkfns.c
* src/pgtkfns.c (Fx_gtk_debug): Fix doc string and remove extra
version check.
(syms_of_pgtkfns): Delete left over defvar from NS port.
2022-04-15 Philip Kaludercic <philipk@posteo.net>
Update project-kill-buffer-conditions to match buffer-match-p
* project.el (project-kill-buffer-conditions): Document the
deprecation of the use of derived-mode
(project--buffer-check): Have `major-mode' behave like `derived-mode'
did previously, and issue a warning of `derived-mode' is used.
2022-04-15 Philip Kaludercic <philipk@posteo.net>
* window.el (display-buffer-assq-regexp): Use buffer-match
2022-04-15 Philip Kaludercic <philipk@posteo.net>
Generalise buffer matching from project.el
* subr.el (buffer-match): Add function to check if a buffer satisfies
a condition.
(match-buffers): Returns all buffers that satisfy a condition.
2022-04-15 Po Lu <luangruo@yahoo.com>
Fix core string lookup with modifiers on XI2
* src/xterm.c (handle_one_xevent): Clean modifiers from
xkey.state before giving it to XLookupString.
2022-04-15 Po Lu <luangruo@yahoo.com>
Clean up various bits of Haiku code
* src/haiku_font_support.cc (BFont_string_width): Delete unused
function.
* src/haiku_support.cc (BWindow_new): Clean up type of `view'.
(BWindow_quit): Clean up coding style.
(BView_mouse_down, BView_mouse_up, BView_mouse_moved): Delete
unused functions.
(unwind_popup_file_dialog): Clean up coding style.
(be_popup_file_dialog_safe_set_target): Delete function.
(be_popup_file_dialog): Improve code clarity.
* src/haiku_support.h: Fix coding style.
* src/haikufns.c (haiku_get_color, haiku_display_info_for_name)
(check_haiku_display_info, Fhaiku_read_file_name)
(Fx_display_save_under, Fhaiku_frame_restack): Remove references
to "Be displays" and replace them with "Haiku displays".
* src/haikuselect.h: Clean up coding style.
* src/haikuterm.c (haiku_read_socket): Clean up coding style and
fix a few latent bugs.
2022-04-15 Po Lu <luangruo@yahoo.com>
Add missing extern declarations to headers
* src/xterm.h (xi_device_from_id, xi_frame_selected_for): Add
`extern' declaration.
2022-04-14 Po Lu <luangruo@yahoo.com>
Make Haiku scroll bar behave more like other programs
* haiku_support.cc (class EmacsScrollBar): New field
`repeater_start'.
(Pulse): Wait for time to pass repeater_delay.
(MouseDown): Set it to the current time + the system repeater
delay.
2022-04-14 Paul Eggert <eggert@cs.ucla.edu>
Port new tests to leap seconds or (TICKS . HZ)
* test/lisp/mail/ietf-drums-date-tests.el (ietf-drums-date-tests):
Dont assume leap seconds are ignored, or that timestamps are in
(HI LO) format.
2022-04-14 Paul Eggert <eggert@cs.ucla.edu>
New time-equal-p test
* test/src/timefns-tests.el (time-equal-p-NaN-NaN): New test.
2022-04-14 Po Lu <luangruo@yahoo.com>
Properly wait for app thread exit on Haiku
* src/haiku_support.cc (MessageReceived): Handle
QUIT_APPLICATION.
(start_running_application): Clean up code a little.
(wait_for_exit_of_app_thread): New function.
(BApplication_setup): Add atexit handler to clean up app thread.
(be_app_quit): Delete function.
* src/haikuterm.c (haiku_delete_terminal): Un-implement
function.
* src/haikuterm.h: Update prototypes.
2022-04-14 Po Lu <luangruo@yahoo.com>
Fix calls to XKB functions without testing for server support
* src/xterm.c (x_dnd_cleanup_drag_and_drop):
(x_dnd_begin_drag_and_drop): Never call XkbSelectEvents if the
X server doesn't have XKB.
2022-04-14 Lars Ingebrigtsen <larsi@gnus.org>
Allow dragging dividers in vtable
* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Allow
dragging dividers.
(vtable--drag-resize-column): Adjust function.
2022-04-14 Eli Zaretskii <eliz@gnu.org>
Fix mouse clicks in hscrolled window with variable-height fonts
* src/xdisp.c (move_it_in_display_line_to): Fix calculation of
height of a screen-line that is completely hscrolled out of view.
Reported by Yasushi SHOJI <yasushi.shoji@gmail.com>.
2022-04-14 Lars Ingebrigtsen <larsi@gnus.org>
Allow resizing vtable columns by dragging
* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Allow
resizing by dragging headers.
(vtable--drag-resize-column): New function.
(vtable-narrow-current-column): Refactor out common bits.
(vtable--alter-column-width): To here.
(vtable-widen-current-column): Rewrite to use
vtable-narrow-current-column.
2022-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/gnus/gnus.el (toplevel autoloads): Fix file name
`score-mode` does not define `gnus-score-edit-all-score`, it's defined
in `gnus-score` instead.
2022-04-14 Philip Kaludercic <philipk@posteo.net>
Have submit-emacs-patch prompt for patch file before subject
* emacsbug.el (submit-emacs-patch): Prompt for patch file and use that
to guess the subject.
2022-04-14 Philip Kaludercic <philipk@posteo.net>
Avoid possibly unnecessary lisp_time_struct call
* timefns.c (time_cmp): Defer the calculation of the time struct, in
case A and B are eq to one another.
2022-04-14 Lars Ingebrigtsen <larsi@gnus.org>
Handle non-ASCII domains correctly in url-https-proxy-connect
* lisp/url/url-http.el (url-https-proxy-connect)
(url-https-proxy-after-change-function): Handle IDNA domains
correctly.
2022-04-14 Lars Ingebrigtsen <larsi@gnus.org>
Make vtable remember user-altered column widths
* lisp/emacs-lisp/vtable.el (vtable-narrow-current-column)
(vtable-widen-current-column): Store the size to that it's
respected on `g'.
2022-04-14 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that commands like { work on all frames in vtable
* lisp/emacs-lisp/vtable.el (vtable--recompute-cache)
(vtable--ensure-cache): New functions.
(vtable-insert): Use it.
(vtable--widths): Ditto.
2022-04-14 Filipp Gunbin <fgunbin@fastmail.fm>
ldap-search-internal cleanup
* lisp/net/ldap.el (ldap-ldapsearch-args): Change -LL to -LLL to
suppress ldif version output.
(ldap-search-internal): Remove skipping of version output. Remove
redundand ws skipping.
2022-04-14 Filipp Gunbin <fgunbin@fastmail.fm>
Fix eudc-get-attribute-list
* lisp/net/eudc-vars.el (eudc-ldap-no-wildcard-attributes): New
defcustom.
* doc/misc/eudc.texi (LDAP Configuration): Mention it.
* lisp/net/eudcb-ldap.el (eudc-ldap-format-query-as-rfc1558): Use it.
(eudc-ldap-get-field-list): Set scope and sizelimit, instead of
overriding the whole ldap-host-parameters-alist.
* lisp/net/ldap.el (ldap-search-internal): Allow "size limit exceeded"
exit code. Allow empty attribute values.
2022-04-14 Nobuyoshi Nakada <nobu.nakada@gmail.com>
Fix electric-help-map problem when help-char has meta-prefix
* lisp/ehelp.el (electric-help-map): Fix problem when help-char
has meta-prefix (bug#54932).
2022-04-14 Lars Ingebrigtsen <larsi@gnus.org>
Make all vc-*-responsible-p functions return a string
* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
* lisp/vc/vc-dav.el (vc-dav-responsible-p):
* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Return a file name
instead of t when we get a match (which is what
vc-backend-for-registration expects) (bug#51800).
This fixes the regression reported in bug#54935.
Do not merge to master.
2022-04-14 Po Lu <luangruo@yahoo.com>
Fix races with child frame locks on Haiku
* src/haiku_support.cc
(CHILD_FRAME_LOCK_INSIDE_LOOPER_CALLBACK): New macro.
(FrameMoved, WorkspacesChanged): Lock child frame data with that
macro instead.
2022-04-14 Po Lu <luangruo@yahoo.com>
Keep track of keyboard state during drag and drop
* src/xterm.c (x_dnd_cleanup_drag_and_drop): Deselect for
keyboard state changes.
(x_dnd_begin_drag_and_drop): Select for keyboard state changes
when XKB is available.
(x_dnd_update_state, handle_one_xevent): Use current XKB state
if it is available.
(x_term_init): Reformat code a little.
2022-04-14 Po Lu <luangruo@yahoo.com>
Minor fixes to menus on XI2
* src/xfns.c (Fx_create_frame): Populate `xi_masks'.
* src/xmenu.c (x_activate_menubar)
(create_and_show_popup_menu, x_menu_show): Only clear input
extension grabs if we (or the toolkit) actually selected for
XI_ButtonPress events.
* src/xterm.c (xi_frame_selected_for): New function.
(xi_populate_device_from_info, handle_one_xevent): Store device
use instead of just whether or not it's a master device.
(x_dnd_begin_drag_and_drop): Clean up block_input stuff.
* src/xterm.h: Update prototypes.
(struct xi_device_t): Rename `master_p' to `use'.
2022-04-14 Eli Zaretskii <eliz@gnu.org>
Describe problems with invoking Python on MS-Windows
* etc/PROBLEMS: Describe problems with running an inferior Python
interpreter due to the MS-Windows "App Execution Aliases" feature.
(Bug#54860)
2022-04-13 Po Lu <luangruo@yahoo.com>
Ignore XdndPosition events triggered by the wrong mouse button
* src/xterm.c (x_dnd_send_position): Don't send if button is set
but not a scroll wheel button.
2022-04-13 Po Lu <luangruo@yahoo.com>
Add support for Xdnd features introduced after version 5
* src/xterm.c (x_dnd_send_position, x_dnd_update_state)
(handle_one_xevent): Add support for sending button and keyboard
state during DND.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix describe-mode--minor-modes formatting issue
* lisp/help-fns.el (describe-mode--minor-modes): Fix multi-line
local-minor paragraph.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Make vtable narrow/widen functions take a prefix
* lisp/emacs-lisp/vtable.el (vtable-narrow-current-column)
(vtable-widen-current-column): Allow using the prefix to say how
much to narrow/widen the columns.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Copy edit make-vtable code
* lisp/emacs-lisp/vtable.el (make-vtable): Clean up code slightly.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Edit some vtable doc strings
* lisp/emacs-lisp/vtable.el (make-vtable, vtable): Improve doc
strings.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Further divider fixes for vtable
* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Don't
insert the divider at the end.
(vtable-narrow-current-column, vtable-widen-current-column): Don't
error out when being called on the divider.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Restore vtable.texi lines removed by accident
* doc/misc/vtable.texi (Introduction): Restore lines inadvertently
removed.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix dividers in vtable header lines
* lisp/emacs-lisp/vtable.el (vtable--insert-header-line): Put the
divider in the correct place in the header line.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow having dividers between columns in vtable
* doc/misc/vtable.texi (Making A Table): Document it.
* lisp/emacs-lisp/vtable.el (vtable): Add a divider slot.
(make-vtable): Accept :divider and :divider-width arguments.
(vtable--insert-line, vtable--insert-header-line): Display the
divider.
2022-04-13 Sean Whitton <spwhitton@spwhitton.name>
Document additions of cl-with-gensyms and cl-once-only
* NEWS: Document additions of cl-with-gensyms and cl-once-only.
* doc/misc/cl.texi (Macro-Writing Macros): New section.
(Creating Symbols): Add to the concept index under the name "gensym".
(Obsolete Setf Customization): Use cl-once-only rather than
macroexp-let2, and fix a quotation bug in one example.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow putting alternating colors on vtable rows
* doc/misc/vtable.texi (Making A Table): Document it.
* lisp/emacs-lisp/vtable.el (vtable): Add :row-colors.
(make-vtable): Ditto.
(vtable--compute-colors, vtable--color-blend): New functions.
(vtable--insert-line): Take a line number argument and adjust
callers.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-h m' actually output the documentation for the major mode
* lisp/help-fns.el (describe-mode): Get the documentation for the
correct major mode.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Add a new `vtable' face
* doc/misc/vtable.texi (Introduction): Document it.
* lisp/emacs-lisp/vtable.el (vtable): Add a new face.
2022-04-13 Juri Linkov <juri@linkov.net>
* lisp/comint.el (comint-dynamic-list-input-ring): Keep replaced text props.
* lisp/minibuffer.el (completions-header-format): Remove unused text prop.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-04-13 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp manual
* doc/misc/tramp.texi (Ssh setup): New subsection "Using ssh
config include for host name completion". (Bug#54885)
Precise, that list-system-processes and process-attributes are
about system processes.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Add support for column background colors in vtable
* doc/misc/vtable.texi (Making A Table): Document it.
* lisp/emacs-lisp/vtable.el (vtable): Add a column color element.
(make-vtable): Use it.
(vtable--insert-line): Insert the colors here.
2022-04-13 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix format-seconds error in previous change
* lisp/calendar/time-date.el (format-seconds): Fix zero elision
when using fractional seconds.
2022-04-13 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
# Conflicts:
# etc/NEWS
# lisp/desktop.el
# lisp/dired.el
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Make list-times not include zero elements
* doc/lispref/os.texi (Time Parsing): Mention %x.
* lisp/calendar/time-date.el (format-seconds): Accept a new %x
spec that removes trailing zeros (bug#54904).
* lisp/emacs-lisp/timer-list.el (list-timers): Don't display
trailing zero bits.
2022-04-13 Eli Zaretskii <eliz@gnu.org>
A better fix for bug#54800
* lisp/calc/calc.el (calc-align-stack-window): Improve scrolling
when windows have non-integral dimensions.
2022-04-13 Po Lu <luangruo@yahoo.com>
Move raw event selection on GTK+ 2 to a more appropriate place
* src/xfns.c (setup_xi_event_mask): Stop selecting for
RawKeyPress on the root window.
* src/xterm.c (x_new_focus_frame): Select here instead, once a
frame becomes focused.
2022-04-13 Po Lu <luangruo@yahoo.com>
Fix marking upgrades for packages from ELPA or NonGNU ELPA
* lisp/emacs-lisp/package.el (package-menu--find-upgrades): Look
inside ``external'' packages as well when searching for
upgrades. (bug#54117)
2022-04-13 Po Lu <luangruo@yahoo.com>
Fix input availability detection during visible-bell
* src/xterm.c (XTflash): Exit pselect loop also if input becomes
available on f's display connection.
2022-04-13 Po Lu <luangruo@yahoo.com>
Minor cleanups to Haiku windowing
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
* src/haikuterm.h (struct haiku_output, struct scroll_bar)
(XSCROLL_BAR): Remove used fields of various structs.
* src/haikuterm.c (haiku_flash): Make input detection actually
work.
2022-04-13 Po Lu <luangruo@yahoo.com>
Fix zoom rect computation for some deskbar positions on Haiku
* src/haiku_support.cc (CalculateZoomRect): Fix computation for
left top and right bottom.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Add a comment about cl-concatenate
* lisp/emacs-lisp/cl-extra.el (cl-concatenate): Add a comment.
2022-04-13 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Make cl-concatenate an alias of seq-concatenate"
This reverts commit 78f76fe16e2737b40694f82af28d17a90a21ed7b.
The commit made calls to cl-concatenate bug out, since
autoloading defalises doesn't work very well (bug#54901).
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix last change in configure.ac
* configure.ac: Test window system against "x11", not "x".
2022-04-12 Po Lu <luangruo@yahoo.com>
Bump minimum GTK for PGTK builds
* configure.ac: Require GTK 3.20 or later if building with PGTK.
It has already been required for some time now, but the
requirement was not reflected in the configure script.
* src/pgtkterm.c (pgtk_any_window_to_frame): Remove version
check.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how `M-q' in emacs-lisp-mode works
* lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Only fill as
strings inside strings (bug#31656).
(lisp--fill-line-simple): New function to do simple sexp-based
filling.
2022-04-12 Po Lu <luangruo@yahoo.com>
Clean up PGTK code more
* src/pgtkterm.c (STORE_KEYSYM_FOR_DEBUG): Delete macro.
(x_find_modifier_meanings): Delete function.
(get_modifier_values, pgtk_gtk_to_emacs_modifiers)
(pgtk_emacs_to_gtk_modifiers): Use GDK's own modifier mask
constants instead of detecting our own from the keymap. This
does mean a specific "meta" key will no longer be detected on X
Windows, but that interface doesn't exist on Wayland, and X
users should use the X port anyway.
(key_press_event): Avoid decoding input text.
(pgtk_term_init): Stop computing modifiers.
(syms_of_pgtkterm): Delete obsolete comment.
* src/pgtkterm.h (struct pgtk_display_info): Delete modifier
masks.
2022-04-12 Po Lu <luangruo@yahoo.com>
Remove unused flag on Haiku
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
* src/haikuterm.h (struct haiku_output): Delete mentions of
`explicit_parent'.
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix bit rot in the XEmbed code
* src/xterm.c (x_term_init): Delete unused atom.
(handle_one_xevent):
(x_make_frame_visible): Handle embedded frame visibility
correctly.
* src/xterm.h (struct x_display_info): Delete unused atom.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS entry for `C-h m' change
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Redo `C-h m' output
* lisp/help-fns.el (describe-mode--minor-modes): New function
(bug#2473).
(describe-mode): Rewritten to include local minor mode links first,
then the major mode, and then global minor mode links, and then
all the minor modes.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Make `describe-mode' include a link to the major mode function
* lisp/help-fns.el (describe-mode): Add a link to the mode
function so that the user can go to the manual more easily
(bug#575).
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix freezes when trying to accelerate menu bar on Haiku
* src/haiku_support.cc (class EmacsWindow): New field
`menus_begun'.
(MenusBeginning): Don't send menu bar open events when that is
set, instead set it to true.
(BMenuBar_start_tracking): Stop locking the menu bar here and
send a special BE_MENU_BAR_OPEN event instead.
* src/haiku_support.h (struct haiku_menu_bar_state_event):
Delete field `no_lock'.
* src/haikumenu.c (Fhaiku_menu_bar_open):
* src/haikuterm.c (haiku_read_socket): Update accordingly.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Provide a useful default to smime-CA-file
* lisp/gnus/smime.el (smime-CA-file): Use `gnutls-trustfiles' to
provide a default so that this will work automatically on many
systems (bug#20960).
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Make the SVG error message less verbose
* src/image.c (svg_load_image): Don't include the spec in the
error message, because this is commonly the entire SVG string, and
this will fill up the *Messages* buffer quickly.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Mention animated WebP images
2022-04-12 Sean Whitton <spwhitton@spwhitton.name>
Fix eager macroexpansion cycle in cl-once-only
* lisp/emacs-lisp/cl-macs.el (cl-once-only): Use different cl-loop
syntax, with no functional change, but such that the loop does not
expand into cl-psetq.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Improve DISPOSE_PREVIOUS in gif_load slightly
* src/image.c (gif_load): Tweak how DISPOSE_PREVIOUS is handled.
It's still not right, but it's less glaringly wrong.
2022-04-12 Eli Zaretskii <eliz@gnu.org>
Fix 'window-text-pixel-size' when starting from a display property
* src/xdisp.c (Fwindow_text_pixel_size): Handle the case where
there's a display property at START and 'move_it_to' overshoots.
(Bug#54862)
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix webp_load data lifetime issues
* src/image.c (webp_load): Take care of lifetime issues of the
image data we're iterating over for animated images.
2022-04-12 Eli Zaretskii <eliz@gnu.org>
Fix 'window-text-pixel-width' when starting from display property
* src/xdisp.c (Fwindow_text_pixel_size): Handle the case where
there's a display property at START, and move_it_to overshoots.
Do not merge to master. (Bug#54862)
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix keyboard event device attribution on GTK+ 2
* src/xfns.c (setup_xi_event_mask): Select for raw keypress
events on GTK 2.
* src/xterm.c (handle_one_xevent): Set pending keystroke time
when a raw event is received.
* src/xterm.h (struct x_display_info): New flag
`pending_keystroke_time_special_p'.
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix detection of Meta key in some cases
* src/xterm.c (x_find_modifier_meanings): Set found_meta_p
correctly.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix check for whether frames fit into gif images
* src/image.c (gif_load): Really check all frames that they fit.
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix some confusing names in xterm.c
* src/xterm.c (enum xm_targets_table_byte_order): Rename to
`xm_byte_order'. All uses changed.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Store less data in the gif animation cache
* src/image.c (gif_load): Only start a cache if we're have an
:index entry (which means that we're trying to animate something).
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix clicking on files in Dired when drag is enabled
* lisp/dired.el (dired-mouse-drag): Don't drag if the mouse
didn't move far enough.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Release resources in gif_load on errors
* src/image.c (webp_load): Clean up code slightly.
(gif_load): Really release resources on GIF parsing errors.
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Animate GIF images that don't have an explicit delay setting
* src/image.c (gif_load): Use the default delay for GIF images
that don't explicitly state a delay.
2022-04-12 Olaf Trygve Berglihn <olafb@pvv.org> (tiny change)
Add biblatex alias entry types for compability with bibtex
* lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Add
biblatex alias entry types for compability with bibtex (bug#54877).
2022-04-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix thinko in the anim cache
* src/image.c (gif_load): Fix resetting the cache when we're out
of sync.
(anim_create_cache): Start from zero, not 1.
2022-04-12 Po Lu <luangruo@yahoo.com>
Disallow drag and drop inside a menu-entry
* src/xterm.c (x_dnd_cleanup_drag_and_drop): Always free DND
targets even if waiting for finish.
(x_dnd_begin_drag_and_drop): Free targets correctly when
signalling error and prevent activating drag-and-drop inside a
menu or popup. (It doesn't work.)
2022-04-12 Michael Albinus <michael.albinus@gmx.de>
Adapt macOS defaults in Tramp's process-attributes implementation
* doc/misc/tramp.texi (Remote processes):
Mention tramp-connection-local-darwin-ps-* constants.
* lisp/net/tramp-integration.el
(tramp-connection-local-darwin-ps-variables): Fix docstring.
(top): Simplify setting local profiles.
* test/lisp/net/tramp-tests.el (tramp-test31-list-system-processes)
(tramp-test31-process-attributes): New tests.
2022-04-12 Filipp Gunbin <fgunbin@fastmail.fm>
process-attributes-ps-args / process-attributes-ps-format for Darwin
* lisp/net/tramp-integration.el
(tramp-darwin-process-attributes-ps-args)
(tramp-darwin-process-attributes-ps-format)
(tramp-connection-local-darwin-ps-variables): New defconsts. Add
them to connection-local variables. Preset default "ps" profile
for Darwin.
2022-04-12 Sean Whitton <spwhitton@spwhitton.name>
Add two classic Common Lisp macro-writing macros
* lisp/emacs-lisp/cl-macs.el (cl-with-gensyms, cl-once-only): New macros.
2022-04-12 Po Lu <luangruo@yahoo.com>
Fix some DISPLAY variable related bugs on PGTK
* src/callproc.c (getenv_internal, make_environment_block):
Don't set DISPLAY on non-X GDK backends. (bug#54844)
2022-04-12 Po Lu <luangruo@yahoo.com>
* src/xterm.c (frame_set_mouse_pixel_position): Avoid server grab.
2022-04-11 Po Lu <luangruo@yahoo.com>
Don't use native image APIs for some types on Haiku
* src/haikuimage.c (haiku_can_use_native_image_api): Ignore
types with animations when their respective libraries are
present.
2022-04-11 Po Lu <luangruo@yahoo.com>
Fix last tool bar bug on Haiku as well
* src/haikuterm.c (haiku_read_socket): Adapt last change to
Haiku.
2022-04-11 Po Lu <luangruo@yahoo.com>
Fix selecting text and releasing the mouse buttons above the toolbar
* src/xterm.c (handle_one_xevent): Don't send ButtonRelease
events to tool bars if there is no selected tool bar item.
2022-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/macroexp.el (macroexp-let2*): Allow common shorthand
* lisp/gnus/mm-encode.el (mm-default-file-encoding): Fix "when" arg
2022-04-11 Paul Eggert <eggert@cs.ucla.edu>
Use preferred chars among duplicates as per UTR#25 §25.
2022-04-11 Juri Linkov <juri@linkov.net>
* lisp/minibuffer.el (minibuffer-completion-auto-choose): New defcustom.
(minibuffer-choose-previous-completion)
(minibuffer-choose-next-completion): Remove commands.
(minibuffer-local-completion-map): Remove keybindings of
minibuffer-choose-next-completion and minibuffer-choose-previous-completion.
Use them for minibuffer-next-completion and minibuffer-previous-completion.
* lisp/simple.el (minibuffer-local-shell-command-map): Idem.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Make normal image caching actually work when doing animated images
* src/image.c (filter_image_spec): New function.
(uncache_image): Use it.
(lookup_image): Ditto.
(syms_of_image): Define some keywords.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Make more IPV6 domains non-suspicious in textsec
* lisp/international/textsec.el (textsec--ipvx-address-p): Make
more IPV6 domains non-suspicious.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Make gif_load work across architectures again
* src/image.c (gif_load): Invert the way animated pixmaps are
created: Work on the cached computed-so-far pixmap, and then copy
the entire thing to the ximg with PUT_PIXEL at the end. This
should work across platforms, which the previous version didn't.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Revert "; * src/image.c (gif_load): Fix compilation error on MS-Windows."
This reverts commit a715f2fbe70bb4cbb961e82af95e2965030b4513.
This is fixed in a different way in a subsequent commit.
2022-04-11 Mattias Engdegård <mattiase@acm.org>
Recognise hybrid IPv6/IPv4 addresses in textsec (bug#54624)
* lisp/international/textsec.el (textsec--ipvx-address-p):
Recognise hybrid addresses like "::ffff:129.55.2.201".
Combine to a single regexp and translate to rx.
Remove some regexp ambiguity (relint complaint).
* test/lisp/international/textsec-tests.el (test-suspiction-domain):
Add test cases.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix anim_cache garbage collection
* src/image.c (struct anim_cache): Move earlier.
(mark_image_cache): Mark the Lisp_Object in the anim cache.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation errors when HAVE_GIF and not HAVE_WEBP
* src/image.c: Enable the cache functions when HAVE_GIF, too
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Speed up GIF animations
* src/image.c (anim_prune_animation_cache): Tweak the destructor
API.
(gif_destroy): New function.
(gif_load): Use a cache to avoid quadratic CPU usage for animated
images (bug#45224).
(webp_destroy): New function.
(webp_load): Use it.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Refactor the webp cache code to allow usage by gif_load, too
* src/image.c (struct anim_cache, anim_create_cache)
(anim_prune_animation_cache, anim_get_animation_cache): Rename
from webp_cache (etc) to prepare for usage in the gif animation
implementation, too.
(webp_load): Adjust cache usage.
2022-04-11 Eli Zaretskii <eliz@gnu.org>
Fix default-directory of buffers visiting files in renamed directories
* lisp/dired-aux.el (dired-rename-file): Take note of whether FILE
is a directory before it is renamed, which makes it impossible to
determine if it was a directory.
(dired-rename-subdir, dired-rename-subdir-1): Revert to using
dired-in-this-tree-p instead of file-in-directory-p, for the
benefit of files that were renamed/removed, because
file-in-directory-p returns nil in those cases. (Bug#54838)
2022-04-11 Po Lu <luangruo@yahoo.com>
Fix event source attribution for GTK input methods
* src/gtkutil.c (xg_im_context_commit): Use pending keystroke
source if it exists.
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix a kill-append regression
* lisp/simple.el (kill-append): Fix a regression when
kill-ring-max is zero (bug#54842).
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Improve gif_load error messages
* src/image.c (gif_load): Improve error reporting (bug#54848).
2022-04-11 Lars Ingebrigtsen <larsi@gnus.org>
Ensure shell.el loading properly
* lisp/shell.el (subr-x): Require for string-chop-newline
(bug#54834).
2022-04-11 Po Lu <luangruo@yahoo.com>
Always cascade from toplevel frames on Haiku
* src/haikufns.c (haiku_create_frame): Cascade from toplevel
frames, since otherwise the positions are wrong anyway, and it
doesn't make sense to cascade from a frame that disappears when
it becomes deactivated.
2022-04-11 Po Lu <luangruo@yahoo.com>
Fix IM event source attribution on GTK
* src/xterm.c (handle_one_xevent): Set pending times on GTK as
well.
* src/gtkutil.c (xg_widget_key_press_event_cb): Respect pending
keystroke time on XI2.
2022-04-10 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_event): Make event attribution more accurate.
2022-04-10 Augusto Stoffel <arstoffel@gmail.com>
Add lazy highlight when reading 'query-replace' arguments
* lisp/replace.el (query-replace-read-args): Use
'minibuffer-lazy-highlight-setup' to highlight the text to be replaced
in the original buffer (and a match count, if applicable).
(replace--region-filter): New function for code that
used to be inlined in perform-replace but is useful elsewhere.
(perform-replace): Use 'replace--region-filter'.
2022-04-10 Augusto Stoffel <arstoffel@gmail.com>
Rewrite the minibuffer lazy highlight feature
The new API was discussed in bug#53126. It's more robust and easier
to use in complex cases like that of 'query-replace'.
* etc/NEWS: Amend the feature announcement
* lisp/isearch.el (isearch-edit-string): Use new API.
(minibuffer-lazy-highlight-transform,
minibuffer-lazy-highlight--overlay, minibuffer-lazy-highlight--count,
minibuffer-lazy-highlight--after-change,
minibuffer-lazy-highlight--exit) Remove helper functions, which are
now kept together with the lazy highlight configuration variables
within a closure.
(minibuffer-lazy-highlight-setup): This function now takes the lazy
highlighting configuration variables as argument, and returns a
closure that is intended to run as part of the minibuffer setup.
2022-04-10 Eli Zaretskii <eliz@gnu.org>
* doc/misc/eww.texi (Advanced): Correct outdated info (bug#54839).
2022-04-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix markup in Drag and Drop
* doc/emacs/frames.texi (Drag and Drop): Fix markup.
2022-04-10 Eli Zaretskii <eliz@gnu.org>
Fix WebP image support on MS-Windows
* src/image.c (init_webp_functions) [WINDOWSNT]: Load Demux
functions from the WebPDemux DLL. Load internal functions where
the public APIs are inline functions defined in the WebP headers.
(WebPAnimDecoderOptionsInit) [WINDOWSNT]: Define to call
'WebPAnimDecoderOptionsInitInternal'.
(WebPDemux): Define to call 'WebPDemuxInternal'.
(WebPAnimDecoderNew): Define to call
'WebPAnimDecoderNewInternal'.
(syms_of_image) <webpdemux>: New symbol.
* lisp/term/w32-win.el (dynamic-library-alist): Add a member for
'webpdemux'.
2022-04-10 Eli Zaretskii <eliz@gnu.org>
Clean up the MSDOS port
* src/msdos.h (tcdrain): Redirect to '_dos_commit'.
(openat, fchmodat, futimens, utimensat): Add prototypes.
* msdos/sed1v2.inp (MAKE_PDUMPER_FINGERPRINT): Fix indentation, so
that Make won't consider this line a command.
($(etc)/DOC): Chdir back to ../src, since "make-docfile -d" leaves
us in a wrong directory.
* msdos/sedlibmk.inp (GL_GNULIB_GETRANDOM, GL_GNULIB_MEMMEM)
(GL_GNULIB_SIGDESCR_NP): Define to 1, to get the prototypes from
Gnulib headers.
2022-04-10 Kévin Le Gouguec <kevin.legouguec@gmail.com>
Fix a ja-dic compilation warning
* leim/Makefile.in (${leimdir}/ja-dic/ja-dic.el): Increase
specpdl-size to avoid a compilation warning (bug#54816).
2022-04-10 Daniel Martín <mardani29@yahoo.es>
Fix typo in next-error-find-buffer-function
* lisp/simple.el (next-error-find-buffer-function): Fix typo
(bug#54830).
2022-04-10 Alan Mackenzie <acm@muc.de>
CC Mode: Fix unwanted fontification of function call as function declaration
This happens when the enclosing function's return type is a struct, etc. This
fixes bug #54743;
* lisp/progmodes/cc-engine.el (c-update-brace-stack): Replace "(" by ")" in a
`member' call.
2022-04-10 Kaushal Modi <kaushal.modi@gmail.com>
Update docstrings for shortdoc.el FUNC lisp form API
* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group):
Updated docstrings.
2022-04-10 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Make shell-resync-dirs handle whitespace in directory names"
This reverts commit 90e65c826fab2092ad2099d7763538194c93e021.
This change led to hangs (bug#54776).
Do not merge to master; it has been fixed in a more encompassing way there.
2022-04-10 Po Lu <luangruo@yahoo.com>
Attribute filtered events to the right source device
* src/xterm.c (handle_one_xevent): Attribute core events sent by
input methods like I-Bus to the extension device that caused
them to be sent.
* src/xterm.h (struct x_display_info): New fields
`pending_keystroke_time' and `pending_keystroke_source'.
2022-04-10 Lars Ingebrigtsen <larsi@gnus.org>
Add support for animated webp images
* configure.ac (HAVE_RSVG): Also include the webpdemux library.
It was new in version 0.4.4, and we require 0.6.0, so it should be
safe.
* src/image.c: Include demux.h.
(enum webp_keyword_index, webp_format): Include :index for
animations.
(init_webp_functions): Add Windows LOAD_DLLs.
(struct webp_cache, webp_create_cache)
(webp_prune_animation_cache, webp_get_animation_cache): New
functions.
(webp_load): Support animated webp images (bug#54242).
2022-04-10 Juri Linkov <juri@linkov.net>
Allow non-interactive uses of minibuffer-next-completion
* lisp/minibuffer.el (minibuffer-previous-completion)
(minibuffer-next-completion): Use 1 for n by default.
2022-04-10 Po Lu <luangruo@yahoo.com>
Add missing details to filter event on XI2
* src/xterm.c (handle_one_xevent): Pass coordinates when
translating XI2 key events to core key events.
2022-04-09 Po Lu <luangruo@yahoo.com>
Update XI2 device use on slave attachment and detachment
* src/xterm.c (handle_one_xevent): Update whether device is a
master device when it's detached or attached.
2022-04-09 Po Lu <luangruo@yahoo.com>
Try harder to own DND selections
* src/xterm.c (x_dnd_do_unsupported_drop): Fix computation of
local value.
(x_dnd_begin_drag_and_drop): Try to own the selection if we do
have a local value.
2022-04-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix mode-line doc string
* lisp/faces.el (mode-line): Fix doc string.
2022-04-09 Vincent Belaïche <vincentb1@users.sourceforge.net>
ses-test Prefix used symbols by ses--
* test/lisp/ses-tests.el: Rename cell symbols of renamed cells so
that they are in the SES namespace, as recommended by Stefan.
2022-04-09 Eli Zaretskii <eliz@gnu.org>
Fix scrolling of the stack window in Calc
* lisp/calc/calc.el (calc-align-stack-window): Fix off-by-one
error in computing the window-start point. (Bug#54800)
2022-04-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix sql-mode comment-end parsing
* lisp/progmodes/sql.el (sql-mode): Fix /* ... -*/ parsing
(bug#54769).
2022-04-09 Po Lu <luangruo@yahoo.com>
Avoid sync when allowing touch events in handle_one_xevent
* src/xterm.c (handle_one_xevent): Don't catch errors around
XIAllowTouchEvents.
(x_error_handler): Ignore Device errors here instead.
2022-04-09 Po Lu <luangruo@yahoo.com>
Handle hierarchy events for updating scroll valuators correctly
* src/keyboard.c (gen_help_event, kbd_buffer_store_help_event):
Make sure to initialize the event buffer correctly.
* src/xterm.c (xi_populate_device_from_info): New function.
(x_init_master_valuators): Factor out most of the valuator
tracking code to that function.
(handle_one_xevent): Handle device enable and disable events in
a more detailed fashion.
2022-04-08 Po Lu <luangruo@yahoo.com>
Fix DND leave events not being sent to toplevel after returning frame
* src/xterm.c (x_dnd_update_state, handle_one_xevent): Make sure
to send leave events to the previous toplevel when cancelling to
return a frame.
2022-04-08 Po Lu <luangruo@yahoo.com>
Use right frame when computing mouse movement device
* src/keyboard.c (kbd_buffer_get_event): Use the frame on which
the mouse actually moved to compute the last mouse device.
2022-04-08 Po Lu <luangruo@yahoo.com>
Minor cleanups in X Windows drag-and-drop code
* src/keyboard.c (kbd_buffer_get_event): Don't dereference f if
nil when generating mouse motion event.
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave, x_dnd_send_drop, x_send_scroll_bar_event):
Use NoEventMask instead of 0.
2022-04-08 Po Lu <luangruo@yahoo.com>
Fix source reporting for focus in and focus out events
* src/xterm.c (handle_one_xevent): Report source name for
FocusIn and FocusOut events.
2022-04-08 Po Lu <luangruo@yahoo.com>
Clean up XI2 scroll valuator tracking code
* src/xterm.c (x_get_scroll_valuator_delta): Accept a pointer to
a device instead of the device id.
(handle_one_xevent): Pass the previously found device.
2022-04-08 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (pgtk_set_cr_source_with_color): Fix default operator.
2022-04-08 Po Lu <luangruo@yahoo.com>
Fix subpixel AA with alpha-background on Cairo on X
* xterm.c (x_set_cr_source_with_gc_foreground)
(x_set_cr_source_with_gc_background): Set operator back to OVER
if alpha-background isn't to be respected.
2022-04-08 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
2022-04-08 Paul Eggert <eggert@cs.ucla.edu>
Pacify clang -Wunused-variable
* src/coding.c (detect_coding_utf_8):
* src/process.c (Finternal_default_process_filter):
Remove unused local vars.
2022-04-08 Paul Eggert <eggert@cs.ucla.edu>
ebrowse dumping need not return int
* lib-src/ebrowse.c (dump_members, dump_tree): Return void, not
int, since callers never actually use returned value. All uses
changed.
2022-04-08 Alan Third <alan@idiocy.org>
Fix scrollbars on macOS 10.13 and below (bug#54623)
Make any build on macOS 10.13 and below follow the same drawing path
as the GNUstep port. macOS 10.14 and above will use EmacsLayer.
* src/nsterm.h (EmacsLayer):
* src/nsterm.m ([EmacsView makeBackingLayer]):
([EmacsView unlockFocus]):
([EmacsView windowDidChangeBackingProperties:]):
([EmacsView copyRect:to:]): Remove any code required for macOS 10.13
and below, and fix the #if's to enforce strict separation of the
drawing paths.
(ns_update_end):
(ns_unfocus): Fix #ifs so that flushWindow is called on old macOS
versions as well as GNUstep.
2022-04-08 Eli Zaretskii <eliz@gnu.org>
Update and fix instructions and scripts for updating the Web pages
* admin/admin.el (manual-html-fix-index-2): Support Texinfo 6.8
and later by not converting TOC menus into tables. (Bug#49719)
* admin/upload-manuals (New directory): Invoke "cvs add" in
$webdir, to pick up the correct CVSROOT.
* admin/make-tarball.txt: Update the section about the Emacs Web
pages.
* etc/refcards/Makefile (pl-refcard.dvi): If mex.fmt cannot be
found, invoke 'mex' instead of 'tex'.
2022-04-08 Paul Eggert <eggert@cs.ucla.edu>
Fix pacifying gcc -Wanalyzer-null-dereference
* src/xterm.c (handle_one_xevent): Use eassume not eassert.
eassert (X)s suppress_checking does not let GCC assume X.
2022-04-08 Mattias Engdegård <mattiase@acm.org>
Rename mark_stack to mark_c_stack
This is the function that marks the C stack. Avoid confusion with the
new mark stack, a stack used in the GC mark phase.
* src/alloc.c (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK)
(mark_stack, mark_c_stack):
* src/lisp.h:
* src/thread.c (mark_one_thread): Rename mark_stack to mark_c_stack.
2022-04-08 Mattias Engdegård <mattiase@acm.org>
Enable warnings when building as a developer with Clang
The configure-script logic that automatically enables warnings when
building in a development tree didn't work for Clang because it was
identified as an old GCC version.
* configure.ac: Don't test Clang version as if it were GCC.
2022-04-08 Lars Ingebrigtsen <larsi@gnus.org>
Improve package.el error messages on too-old Emacsen
* lisp/emacs-lisp/package.el (package-compute-transaction): Give a
better error message on too-old Emacs versions (bug#54747).
2022-04-08 Po Lu <luangruo@yahoo.com>
Recommend that the user turn off memory overcommit
* doc/emacs/trouble.texi (Memory Full): Tell the user that Emacs
behaves best with overcommit off, and how to turn it off.
2022-04-08 Michael Albinus <michael.albinus@gmx.de>
Extend tramp-archive-test45-auto-load
* test/lisp/net/tramp-archive-tests.el (tramp-archive-test45-auto-load):
Extend test.
2022-04-08 Michael Albinus <michael.albinus@gmx.de>
Ensure local `default-directory' in Tramp when needed
* lisp/net/tramp.el (tramp-process-running-p): Ensure local
`default-directory' when calling `list-system-processes' and
`process-attributes'.
2022-04-08 Po Lu <luangruo@yahoo.com>
Interpolate scrolls coming from mice by default
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolate-mice): New
user option.
(pixel-scroll-precision): If the class of the last event device
is `mouse', interpolate the next scroll.
2022-04-08 Michael Albinus <michael.albinus@gmx.de>
Ensure local `default-directory' when calling `process-attributes'.
* lisp/server.el (server-running-p):
* lisp/subr.el (memory-limit): Ensure local `default-directory'
when calling `process-attributes'.
2022-04-08 Po Lu <luangruo@yahoo.com>
Fix GC marking of input events with devices
* src/keyboard.c (mark_kboards):
* src/pgtkterm.c (mark_pgtkterm): Mark `device' as well.
2022-04-08 Eli Zaretskii <eliz@gnu.org>
Clarify "idleness" in the ELisp manual
* doc/lispref/os.texi (Idle Timers): Clarify that waiting for
input with timeout doesn't make Emacs idle. Suggested by Ignacio
<ignaciocasso@hotmail.com>. (Bug#54371)
2022-04-08 Po Lu <luangruo@yahoo.com>
Implement support for reporting device names on PGTK
* lisp/frame.el (device-class): Add new function.
* lisp/term/pgtk-win.el (pgtk-device-class): New function.
* src/pgtkterm.c (pgtk_device_added_or_removal_cb)
(pgtk_seat_added_cb, pgtk_seat_removed_cb)
(pgtk_enumerate_devices)
(pgtk_free_devices, pgtk_regenerate_devices)
(pgtk_get_device_for_event): New functions.
(mark_pgtkterm): Mark device data.
(pgtk_delete_terminal): Delete device data.
(pgtk_handle_event, key_press_event, note_mouse_movement)
(construct_mouse_click, button_event, scroll_event)
(drag_data_received): Set device correctly.
(pgtk_term_init): Initialize device data and seat tracking.
(pgtk_delete_display): Delete device data.
* src/pgtkterm.h (struct pgtk_device_t): New struct.
(struct pgtk_display_info): New field `devices'. Delete lots of
unused macros and reformat comments.
2022-04-08 Po Lu <luangruo@yahoo.com>
* lisp/term/x-win.el (x-device-class): Detect more keyboards.
2022-04-07 Po Lu <luangruo@yahoo.com>
Ignore input extension errors caused by grabbing
* src/xterm.c (x_error_handler): Ignore GrabDevice and
UngrabDevice errors.
2022-04-07 Po Lu <luangruo@yahoo.com>
* lisp/term/x-win.el (x-device-class): Detect "USB USB Keykoard"s.
2022-04-07 Po Lu <luangruo@yahoo.com>
Add code for determining the type of an input device
* doc/lispref/commands.texi (Command Loop Info):
* etc/NEWS: Update documentation and announce `device-class'.
* lisp/frame.el (x-device-class):
(device-class):
* lisp/term/x-win.el (x-device-class): New functions.
2022-04-07 Po Lu <luangruo@yahoo.com>
Fix reporting of last-event-device for synthetic events
* src/keyboard.c (read_char): Clear `last-event-device' earlier.
2022-04-07 Po Lu <luangruo@yahoo.com>
Make device reporting work for tool bar clicks
* src/dispextern.h: Update prototyupes.
* src/xdisp.c (handle_tool_bar_click): Pass Qt to that function
instead.
(handle_tool_bar_click_with_device): New function.
* src/xterm.c (handle_one_xevent): Pass device to tool bar click
logic.
2022-04-07 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Fix build warning on non-GTK builds.
2022-04-07 Stefan Monnier <monnier@iro.umontreal.ca>
lisp/simple.el: Use #' in new code
* lisp/simple.el (minibuffer-local-shell-command-map): Use #' to quote
function names.
2022-04-07 Matthias Meulien <orontee@gmail.com>
Display file mode information when diff font lock prettify enabled
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Make regexp capture
file mode information.
2022-04-07 Stefan Monnier <monnier@iro.umontreal.ca>
OClosure: New function `function-documentation`
As mentioned in the original OClosure commit, OClosures (ab)use the
bytecode's docstring slot to hold the OClosure's type. This currently
prevents OClosures from having their own docstring.
Introduce a new generic function `function-documentation` to fetch the
docstring of a function, which can then be implemented in various
different ways depending on the OClosure's type.
* lisp/simple.el (function-documentation): New generic function.
(bad-package-check): Strength-reduce `eval` to `symbol-value`.
* src/doc.c (Fdocumentation): Use it.
* lisp/emacs-lisp/oclosure.el (oclosure--accessor-docstring): New function.
* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test):
Add test for accessor's docstrings.
2022-04-07 Po Lu <luangruo@yahoo.com>
Expose the name of an event's input device to Lisp
This name can be used to identify the device for special
treatment, i.e. only interpolating scrolls coming from mice and
not touchpads inside pixel-scroll-precision-mode.
* doc/lispref/commands.texi (Command Loop Info): Document new
variable `last-event-device'.
* etc/NEWS: Announce new variable `last-event-device'.
* src/frame.h (struct frame): New field `last_mouse_device'.
* src/keyboard.c (read_char): Clear last-event-device.
(kbd_buffer_get_event): Set last-event-device to the event's
recorded device.
(init_keyboard): Clear last-event-device.
(syms_of_keyboard): New defvar `last-event-device'.
* src/termhooks.h (struct input_event): New field `device'.
(EVENT_INIT): Set it to the special value `Qt' by default.
* src/xterm.c (x_init_master_valuators): Record the device's
name.
(x_dnd_begin_drag_and_drop): Only preserve last event device if
the mouse ended up in the source frame.
(x_note_mouse_movement): New argument `source'.
(handle_one_xevent): Set input event sources whenever
appropriate.
(mark_xterm): Mark device names.
* src/xterm.h (struct xi_device_t): New field `name'.
2022-04-07 Po Lu <luangruo@yahoo.com>
Fix xwidget smooth scrolling when the default pointer is not a touchpad
* xwidget.c (find_suitable_pointer): New argument
`need_smooth'. Try to find a touchpad if that is set.
(xwidget_button_1, xwidget_button, xwidget_motion_notify)
(xwidget_scroll, xwidget_pinch, xw_notify_virtual_upwards_until)
(xw_notify_virtual_downwards_until):
(xw_maybe_synthesize_crossing):
(xwidget_motion_or_crossing, synthesize_focus_in_event): Set
parameter accordingly.
2022-04-07 Lars Ingebrigtsen <larsi@gnus.org>
Clarify read-answer-short/use-short-answers action
* lisp/emacs-lisp/map-ynp.el (read-answer-short): Clarify what
this variable affects (bug#54754).
* src/fns.c (Fyes_or_no_p): Mention `use-short-answers'.
2022-04-07 Andrew G Cohen <cohen@andy.bu.edu>
Encrypt some parameters in auth-source plstore backend
The auth-source plstore backend allows a list of extra parameters but
currently stores them all unencrypted. This allows a plist with
:unencrypted and :encrypted keys to specify which extra parameters to
encrypt in the plstore file.
* lisp/auth-source.el (auth-source-plstore-create): Allow specifying
both unencrypted and encrypted extra parameters.
2022-04-07 Jai Flack <jflack@disroot.org>
Add a mu backend for gnus-search
* lisp/gnus-search.el (gnus-search-mu-program): New defcustom
(gnus-search-mu-switches): New defcustom
(gnus-search-mu-remove-prefix): New defcustom
(gnus-search-mu-config-directory): New defcustom
(gnus-search-mu-raw-queries-p): New defcustom
(gnus-search-mu): New subclass of gnus-search-indexed
(gnus-search-transform-expression): New method
(gnus-search-mu-handle-date): New function
(gnus-search-mu-handle-flag): New function
(gnus-search-indexed-extract): New method
(gnus-search-indexed-search-command): New method (bug#54662).
2022-04-07 Jürgen Hötzel <juergen@archlinux.org>
Use correct signal oldset in posix_spawn implementation
posix_spawn was restoring the wrong signal set, which still had
SIGCHLD and SIGINT masked, causing problems with child processes that
spawned child processes. (Bug#54667)
See the thread ending at
https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00067.html
for more details.
* src/callproc.c (emacs_spawn): Pass oldset parameter.
(emacs_posix_spawn_init_attributes): Use correct oldset.
(emacs_posix_spawn_init): Remove intermediate function.
(cherry picked from commit 8103b060d89ac63a12c439087bd46c30da72cd97)
2022-04-07 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp-integration.el: Don't require files-x.
2022-04-07 Felix Dietrich <felix.dietrich@sperrhaken.name> (tiny change)
Fix error in tramp-archive-autoload-file-name-handler
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler):
Always call `tramp-autoload-file-name'. Otherwise, when
`tramp-archive-enabled is nil and
`tramp-archive-autoload-file-name-handler is in the
`file-name-handler-alist results in an error “Invalid handler in
`file-name-handler-alist” once Emacs calls
`tramp-archive-autoload-file-name-handler with a handler that
does not expect nil. Always returning nil is also false in
general.
2022-04-07 Michael Albinus <michael.albinus@gmx.de>
Commit missing file from previous commit (Do not merge with master)
Commit missing file from previous commit
2022-04-07 Michael Albinus <michael.albinus@gmx.de>
Merge with Tramp 2.5.2.3 (Do not merge with master)
* doc/misc/tramp.texi (Archive file names): Explicitly say how to
open an archive with Tramp (Bug#25076).
* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.5.3-pre".
* lisp/net/tramp-adb.el (tramp-adb-handle-process-file)
* lisp/net/tramp-sh.el (tramp-sh-handle-process-file):
* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
Improve implementation. (Bug#53854)
* lisp/net/tramp-adb.el (tramp-adb-tolerate-tilde):
* lisp/net/tramp-sshfs.el (tramp-sshfs-tolerate-tilde):
New defuns. Advice `shell-mode' with them.
* lisp/net/tramp.el (tramp-register-autoload-file-name-handlers):
* lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler):
Check, whether the real file name handler is already registered.
rules. (Bug#54542)
* lisp/net/tramp.el (tramp-autoload-file-name-handler)
(tramp-register-autoload-file-name-handlers)
(tramp-unload-file-name-handlers, tramp-unload-tramp):
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp)
(tramp-archive-autoload-file-name-handler)
(tramp-register-archive-file-name-handler):
Add `tramp-autoload' property.
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
Use `tramp-handle-file-notify-add-watch',
`tramp-handle-file-notify-rm-watch' and
`tramp-handle-file-notify-valid-p'.
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
Use `tramp-handle-insert-file-contents'.
* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
* lisp/net/lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
* tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection): Do not
set "lock-pid" connection-property.
(tramp-sudoedit-handle-delete-file): Use "rm -f".
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-executable-p):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p):
Check also for setuid/setgid bit.
(tramp-gvfs-handle-expand-file-name):
Respect `tramp-tolerate-tilde'.
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
Do not modify disk space information when
`dired--insert-disk-space' is available. (Bug#54512)
* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Extend suppression
(tramp-get-remote-dev-tty): New defun.
(tramp-sh-handle-make-process): Use it.
* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
Add "-t -t" to `tramp-login-args'.
Add "-o dir_cache=no" to `tramp-mount-args'. (Bug#54126)
Add "-o transform_symlinks" to `tramp-mount-args'.
(tramp-sshfs-file-name-handler-alist):
Use `tramp-sshfs-handle-file-writable-p'.
(tramp-sshfs-handle-file-writable-p): New defun. (Bug#54130)
(tramp-sshfs-handle-write-region): Set file modification time.
(Bug#54016)
(tramp-sshfs-file-name-handler-alist):
Use `tramp-sshfs-handle-set-file-times'.
(tramp-sshfs-handle-set-file-times): New defun.
* test/lisp/net/tramp-tests.el (tramp--test-expensive-test-p):
Rename from `tramp--test-expensive-test'. Make it a defun. Adapt
all callees.
(tramp-test07-file-exists-p, tramp-test14-delete-directory)
(tramp-test18-file-attributes, tramp-test20-file-modes)
(tramp-test28-process-file, tramp-test29-start-file-process)
(tramp-test30-make-process, tramp-test32-shell-command)
(tramp-test33-environment-variables, tramp--test-check-files)
(tramp--test-special-characters, tramp-test46-unload): Adapt tests.
(tramp-test39-detect-external-change): New test.
(tramp-test29-start-file-process)
(tramp--test--deftest-direct-async-process)
(tramp-test30-make-process, tramp-test31-interrupt-process)
(tramp-test34-explicit-shell-file-name)
(tramp-test44-asynchronous-requests):
Add :tramp-asynchronous-processes tag.
(tramp--test-asynchronous-processes-p): New defun.
(tramp--test-hpux-p, tramp--test-macos-p): Protect against errors.
2022-04-07 Po Lu <luangruo@yahoo.com>
Fix error when calling DND movement tracking function
* src/xterm.c (x_dnd_begin_drag_and_drop): Verify
x_dnd_movement_x and x_dnd_movement_y are wholenums before
caling posn-at-x-y.
2022-04-07 Po Lu <luangruo@yahoo.com>
* src/xterm.c (xm_write_targets_table): Remove extra XGrabServer pair.
2022-04-07 Po Lu <luangruo@yahoo.com>
Fix DND bugs on GTK
* src/xterm.c (handle_one_xevent): Don't let some client
messages reach the toolkit.
2022-04-06 Po Lu <luangruo@yahoo.com>
Remove more code mindlessly copied from NS
* src/pgtkfns.c (Fx_open_connection):
* src/pgtkselect.c (nxatoms_of_pgtkselect):
* src/pgtkselect.h:
* src/pgtkterm.h: Delete `nxatoms_of_pgtkselect'.
2022-04-06 Po Lu <luangruo@yahoo.com>
Fix sending unsupported drops when there is no target but a toplevel
* src/xterm.c (handle_one_xevent): Send unsupported drops to
last seen toplevel if no target was found.
2022-04-06 Po Lu <luangruo@yahoo.com>
Improve doc of x-begin-drag
* doc/lispref/frames.texi (Drag and Drop): Fix typos and clarify
meaning of XdndActionPrivate.
2022-04-06 Po Lu <luangruo@yahoo.com>
Return an appropriate action when performing unsupported drop
* src/xterm.c (x_dnd_send_unsupported_drop): Set action to
XdndActionPrivate.
2022-04-06 Po Lu <luangruo@yahoo.com>
* src/xselect.c (x_atom_to_symbol): Add XdndSelection.
2022-04-06 Vincent Belaïche <vincentb1@users.sourceforge.net>
Fix ses-tests.el
* lisp/ses.el (ses-jump-cell-name-function): Docstring typo.
* test/lisp/ses-tests.el (ses--cells, foo, bar, B2, toto): Do not
do any outer defvar, but set the defvar only under the
with-suppressed-warnings directive to silence the byte-compiler.
2022-04-06 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/ses.el: Fix 80-column-docstring warnings
Also remove redundant `:group` args and prefer #' to quote function names.
2022-04-06 Stefan Monnier <monnier@iro.umontreal.ca>
cl-generic.el: Fix bug#46722
Fix longstanding bug due to unexpected interference via side-effect.
* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher):
Copy the `dispatch` arg before storing it into the hash-table.
Backport from `master` (cherrypick from commit 61f8f7f68f).
2022-04-06 João Távora <joaotavora@gmail.com>
Solve flymake diagnostics synchronization problems
A diagnostics-lazy server is one who doesn't re-report already
reported diagnostics when it received textDocument/didSave.
Such is the case of Clangd, for example. Before this change, saving
an Eglot/Clang-managed buffer with some diagnostics caused the Flymake
indicator to display Wait[0 0] until some change was actually done to
the buffer.
That is because Flymake, by default, wants diagnostics on buffer save,
per flymake-start-on-save-buffer. But it doesn't work to simply turn
that off. That's because if one types something and quickly saves,
and the LSP diagnostics do come in after the save (for some reason,
like server latency), then Flymake sometimes doesn't request any
diagnostics at all.
The reason for the Flymake behaviour wasn't investigated, but that
wasn't a very good solution either
Rather this change makes it so that when such a Flymake request comes
in, it always gets served immediately with the latest information.
The latest information is now always stored in eglot--diagnostics,
with eglot--unreported-diagnotics being removed. The up-to-date list
is reported to Flymake whenever it requests it. It is updated
whenever the LSP server decides to.
* eglot.el (eglot--last-reported-diagnostics): Delete.
(eglot--unreported-diagnostics): Delete.
(eglot--diagnostics): New variable..
(eglot--maybe-activate-editing-mode): Use eglot--diagnostics.
(eglot-handle-notification): Set eglot--diaggnostics.
(eglot-flymake-backend): Read eglot--diagnostics. Always report.
(eglot--report-to-flymake): Set eglot--diagnostics.
2022-04-06 Po Lu <luangruo@yahoo.com>
Get rid of extra sync looking up window through XTranslateCoordinates
* src/xterm.c (x_dnd_get_wm_state_and_proto): Return proxy as
well.
(x_dnd_get_target_window): Use that proxy.
2022-04-06 Po Lu <luangruo@yahoo.com>
Move some X11 drag and drop processing to Lisp
* lisp/term/x-win.el: Set unsupported drop function.
* lisp/x-dnd.el (x-dnd-handle-unsupported-drop): New function.
* src/keyboard.c (kbd_buffer_get_event): Handle
UNSUPPORTED_DROP_EVENT.
* src/termhooks.h (enum event_kind): New event
`UNSUPPORTED_DROP_EVENT'.
* src/xterm.c (x_dnd_send_unsupported_drop): Send those events
instead.
(x_dnd_do_unsupported_drop): Move actual unsupported drop
handling here.
(syms_of_xterm): New variable `x-dnd-unsupported-drop-function'.
* src/xterm.h: Update prototypes.
2022-04-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix minor-mode doc string quoting
* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Fix
double quoting of things like (default-value 'electric-pair-mode)
(bug#54746).
2022-04-06 Davide Masserut <dm@mssdvd.com>
Make the Foot terminal an alias of xterm-256color
* lisp/faces.el (term-file-aliases): Make the foot terminal an alias
of xterm-256color (bug#54739).
2022-04-06 Kien Nguyen <kien.n.quang@gmail.com>
Make file-name-split returns driver name as well in Windows
* lisp/files.el (file-name-split): Returns driver name as well in
Windows.
* lisp/net/browse-url.el (browse-url-file-url): Don't hexify colon
character in file path for Windows (bug#54721).
2022-04-06 Davide Masserut <dm@mssdvd.com>
Add .bashrc detection to sh-mode
* lisp/progmodes/sh-script.el (sh-mode): Add .bashrc string-match
(bug#54727).
2022-04-06 Markus Kopp <markus.kopp@student.uibk.ac.at>
Use CUA functions to scroll pages with pixel-scroll-scroll-mode
* lisp/pixel-scroll.el (pixel-scroll-interpolate-down)
(pixel-scroll-interpolate-up): Use `cua-scroll-up' and
`cua-scroll-down' to scroll if
`pixel-scroll-precision-interpolate-page' is off. (bug#54696)
2022-04-06 Po Lu <luangruo@yahoo.com>
Prevent races when trying to set Motif drag window
* src/xterm.c (xm_get_drag_window): Grab temp connection when
setting the drag window.
2022-04-06 Michael Albinus <michael.albinus@gmx.de>
Revert unneeded change in tramp-integration.el
* lisp/net/tramp-integration.el:
Apply `connection-local-set-profiles' w/o retrieving old values.
2022-04-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix URL-related typos in comments and messages
* lisp/ffap.el (ffap-next): Fix typo in message.
* lisp/finder.el (finder-commentary): Fix typo in comment.
2022-04-06 Po Lu <luangruo@yahoo.com>
Improve safety of haiku-drag-message
* lisp/term/haiku-win.el (haiku-drag-and-drop): Ignore
placeholder message.
* src/frame.c (delete_frame): Prevent deleting drop source frame
on Haiku.
* src/haiku_support.cc (RELEASE_NOW, CANCEL_DROP): New message
types.
(class EmacsView, MessageReceived): Handle new message types.
(be_drag_message): Drag CANCEL_DROP message on quit; also send
RELEASE_NOW to view if quitting.
* src/haikuselect.c (syms_of_haikuselect)
(haiku_unwind_drag_message): Clear new frame variable.
(Fhaiku_drag_message): Set new frame variable.
* src/haikuterm.h: Update prototypes.
2022-04-06 Po Lu <luangruo@yahoo.com>
Clean up more PGTK code
* lisp/term/pgtk-win.el (featurep):
(pgtk):
(pgtk-use-im-context):
(pgtk-handle-nxopen):
(pgtk-handle-nxopentemp):
(pgtk-ignore-1-arg):
([C-drag-n-drop]):
([M-drag-n-drop]):
([C-M-drag-n-drop]):
(pgtk-alternate-modifier):
(pgtk-right-alternate-modifier):
(pgtk-right-command-modifier):
(pgtk-right-control-modifier):
(pgtk-do-hide-emacs):
(pgtk-hide-others):
(pgtk-do-hide-others):
(pgtk-emacs-info-panel):
(pgtk-do-emacs-info-panel):
(pgtk-next-frame):
(pgtk-prev-frame):
(after-make-frame-functions):
(tool-bar-mode):
(pgtk-toggle-toolbar):
(pgtk-print-buffer):
(scalable-fonts-allowed):
(pgtk-standard-fontset-spec):
(pgtk-store-cut-buffer-internal):
(pgtk-copy-including-secondary):
(pgtk-paste-secondary):
(pgtk-suspend-error):
(window-system-initialization):
(after-init-hook): Remove code mindlessly copied from ns-win.el,
delete unused custom group, write doc strings and rename
variables duplicated from X to their names on X. Also reformat
comments and code.
(pgtk-use-im-context-handler): New function.
* src/pgtkfns.c (syms_of_pgtkfns): Delete useless
AppleScript (!) code copied from NS.
* src/pgtkselect.c: Write FIXME about selection API usage.
* src/pgtkterm.c (get_keysym_name): Implement correctly instead
of sprintf'ing the numeric value of the keysym into a static
buffer.
(pgtk_set_window_size):
(xg_scroll_callback): Delete code that was #if 0'd out and
doesn't make sense on PGTK.
(pgtk_delete_terminal): Remove misleading comment.
2022-04-05 Po Lu <luangruo@yahoo.com>
* src/emacs.c (main): Improve accuracy of daemon warning message on PGTK.
* src/xterm.c (x_dnd_send_unsupported_drop): Also handle TEXT target.
2022-04-05 Po Lu <luangruo@yahoo.com>
Preserve contents of PRIMARY when sending unsupported drop
* src/xterm.c (x_dnd_send_unsupported_drop): Set local value of
PRIMARY to the preexisting selection value, if any.
2022-04-05 Paul Eggert <eggert@cs.ucla.edu>
Port Org encode-time usage back to Emacs 25
* lisp/org/ol.el (org-store-link):
* lisp/org/org-clock.el (org-clock-sum)
(org-clock-update-time-maybe):
* lisp/org/org-colview.el (org-colview-construct-allowed-dates):
* lisp/org/org-macro.el (org-macro--vc-modified-time):
* lisp/org/org-macs.el (org-2ft, org-matcher-time):
* lisp/org/org-table.el (org-table-eval-formula):
* lisp/org/org.el (org-read-date, org-display-custom-time)
(org-time-string-to-time, org-timestamp-change):
Dont assume Emacs 27 encode-time, since standalone Org still
works with Emacs 25 and its easier if we minimize differences
from standalone Org. Problem reported by Max Nikulin (Bug#54731).
This reverts much of 2021-12-16T17:40:21Z!eggert@cs.ucla.edu.
2022-04-05 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Assert that hold_quit is present instead.
2022-04-05 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -Wanalyzer-null-dereference
* src/xterm.c (handle_one_xevent): Dont dereference HOLD_QUIT if
its null. Potential problem found with gcc 11.2.1 20220127 (Red
Hat 11.2.1-9), when configured with --enable-gcc-warnings.
2022-04-05 Juri Linkov <juri@linkov.net>
Allow completion wrapping in minibuffer completion navigation commands
* lisp/minibuffer.el (minibuffer-previous-completion)
(minibuffer-next-completion): Don't set completion-wrap-movement.
2022-04-05 Glenn Morris <rgm@gnu.org>
* test/lisp/ses-tests.el: Require ert-x, for ert-simulate-keys.
2022-04-05 Juri Linkov <juri@linkov.net>
New commands for navigating completions from the minibuffer.
* lisp/simple.el (minibuffer-local-shell-command-map):
* lisp/minibuffer.el (minibuffer-local-completion-map):
Bind "M-<up>" to minibuffer-choose-previous-completion,
"M-<down>" to minibuffer-choose-next-completion,
"M-S-<up>" to minibuffer-previous-completion,
"M-S-<down>" to minibuffer-next-completion,
"M-RET" to minibuffer-choose-completion.
(with-minibuffer-completions-window): New macro.
(minibuffer-previous-completion, minibuffer-next-completion)
(minibuffer-choose-previous-completion)
(minibuffer-choose-next-completion)
(minibuffer-choose-completion): New commands.
https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00335.html
2022-04-05 Juri Linkov <juri@linkov.net>
Use base prefix and suffix instead of completion-base-position (bug#49931)
* lisp/minibuffer.el (minibuffer-completion-help):
Set completion-base-affixes from base-prefix and base-suffix.
In completion-list-insert-choice-function handle
string values of start/end as prefix/suffix.
* lisp/simple.el (completion-base-affixes)
(completion-use-base-affixes): New variables.
(choose-completion): Let-bind base-affixes to completion-base-affixes.
Use base-affixes when completion-use-base-affixes is non-nil.
(completion-setup-function): Sync values of base-affixes and
completion-base-affixes.
2022-04-05 Juri Linkov <juri@linkov.net>
Choosing a completion with a prefix argument doesn't exit the minibuffer
* lisp/simple.el (choose-completion): New optional args NO-EXIT and NO-QUIT.
(bug#47417)
2022-04-05 Eli Zaretskii <eliz@gnu.org>
Fix fallout from lexical-binding in vhdl-mode.el
* lisp/progmodes/vhdl-mode.el (vhdl-update-sensitivity-list): Fix
production of a list with embedded function calls. (Bug#54730)
2022-04-05 Juri Linkov <juri@linkov.net>
* test/lisp/replace-tests.el: New tests for query-replace (bug#54733)
* test/lisp/replace-tests.el (query-replace-tests): New defconst.
(query-replace--perform-tests): New function.
(query-replace-tests, query-replace-search-function-tests): New ert-deftest.
2022-04-05 Robert Pluim <rpluim@gmail.com>
Reject invalid time-string in appt-add immediately
* lisp/calendar/appt.el (appt-add): Check the provided time-string for
validity immediately after reading it rather than after reading all
the parameters. (Bug#54210)
2022-04-05 Billy.Zheng <vil963@gmail.com> (tiny change)
João Távora
Update invocation for out-of-box dart ls support
* eglot.el (eglot-server-programs): Tweak dart-mode entry.
* README.md: Tweak Dart entry.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/862
2022-04-05 Michael Albinus <michael.albinus@gmx.de>
Handle remote system processes
* doc/lispref/files.texi (Magic File Names):
Add list-system-processes and process-attributes.
* doc/lispref/processes.texi (System Processes): Document changes
in list-system-processes and process-attributes.
* doc/misc/tramp.texi (Customizing Completion): Use @ftable.
(Remote processes): Document changes in list-system-processes and
process-attributes.
* etc/NEWS: Document changes in proced, list-system-processes and
process-attributes.
* lisp/proced.el (proced-show-remote-processes): New defcustom.
(proced-remote-directory): Remove.
(proced-filter-alist): Use it.
(proced-user-name): New defun.
(proced-available): Set it to t.
(proced-mode): Adapt docstring.
(proced): Adapt docstring. Acknowledge prefix argument.
(proced-format): Change initialization of `standard-attributes'.
(proced-send-signal, proced-renice): Adapt docstring. Remove
special handling of prefix argument.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add 'list-system-processes' and `process-attributes'.
* lisp/net/tramp-integration.el (files-x): Require `files-x'.
(tramp-bsd-process-attributes-ps-args)
(tramp-bsd-process-attributes-ps-format)
(tramp-connection-local-bsd-ps-variables)
(tramp-busybox-process-attributes-ps-args)
(tramp-busybox-process-attributes-ps-format)
(tramp-connection-local-busybox-ps-variables):
* lisp/net/tramp-adb.el (tramp-adb-connection-local-default-ps-variables):
New defconsts. Add them to connection-local variables.
* lisp/net/tramp.el (tramp-file-name-for-operation):
Add 'list-system-processes' and `process-attributes'.
(tramp-process-attributes-ps-args)
(tramp-process-attributes-ps-format): New defconsts.
(tramp-ps-time, tramp-get-process-attributes)
(tramp-handle-list-system-processes)
(tramp-handle-process-attributes): New defuns.
* src/process.c (Flist_system_processes, Fprocess_attributes):
Support remote system processes.
(Qlist_system_processes, Qprocess_attributes): Declare symbols.
2022-04-05 Po Lu <luangruo@yahoo.com>
Mark some data during drag-and-drop
It doesn't make sense to prevent the return frame or movement
frame from being deleted, but we should at least protect them
from garbage collection.
* src/alloc.c (garbage_collect): Call mark_xterm.
* src/xterm.c (x_dnd_begin_drag_and_drop)
(x_dnd_cleanup_drag_and_drop): Clear movement and return frames
upon DND completion.
(mark_xterm): Mark those frames.
* src/xterm.h: Update prototypes.
2022-04-05 Jimmy Aguilar Mena <spacibba@aol.com>
Fix some details in completions
* lisp/minibuffer.el (completion--insert-one-column) : Remove the extra
new-line at the end.
* lisp/simple.el (next-completion) : Fix behavior when
completion-wrap-movement and remove bobp and eobp. This removes the
extra tab ad the end of the list before wrapping or going to the
minibuffer and apparently also fixes bug#54374
(switch-to-completions) : Simplify condition code and remove comment not
applicable anymore.
2022-04-05 Po Lu <luangruo@yahoo.com>
Allow dropping text to the root window
* src/xterm.c (x_dnd_send_unsupported_drop): Allow dropping to
the root window.
(handle_one_xevent): Send unsupported drops to the last toplevel
instead of the target window.
2022-04-04 Po Lu <luangruo@yahoo.com>
Add support for dragging text onto windows that don't support any DND protocol
* src/xselect.c (x_own_selection): Export function.
(x_handle_selection_request): Handle selection requests to the
pending DND time.
(x_set_pending_dnd_time): New function.
* src/xterm.c (x_dnd_send_unsupported_drop): New function.
Implement according to the suggestions in the XDND protocol
specification.
(x_dnd_get_target_window): Return the toplevel window as well.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent): Send unsupported drops
and use last seen toplevel instead of target for `return_frame'.
* src/xterm.h: Update prototypes.
2022-04-04 Po Lu <luangruo@yahoo.com>
* configure.ac (HAVE_GIF): Respect --with-gif on PGTK. (bug#54633)
2022-04-04 Po Lu <luangruo@yahoo.com>
Respect new DND options when dragging to ourselves on Haiku
* lisp/mouse.el (mouse-drag-and-drop-region): Allow dragging to
the current frame if we know `return-frame' doesn't work.
* lisp/term/haiku-win.el (haiku-dnd-drag-handler): New function.
* src/haiku_support.cc (MouseMoved): Don't send drag motion
events for the drag frame.
* src/haikuselect.c (haiku_note_drag_motion_1)
(haiku_note_drag_motion_2, haiku_note_drag_motion): New
functions.
(syms_of_haikuselect): New variable `haiku-drag-track-function'.
* src/haikuterm.c (haiku_read_socket): Note mouse motion in that
case.q
* src/haikuterm.h: Update prototypes.
2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/progmodes/cc-cmds.el (indent-new-comment-line): Delete advice
This piece of advice was effective only for Emacs<20.1 and old XEmacs
(at least older than Aug 2007).
2022-04-04 Damien Cassou <damien.cassou@gmail.com>
Update use-package.texi
2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
OClosure: add support for `slot-value`
* lisp/emacs-lisp/oclosure.el (oclosure--slot-index)
(oclosure--slot-value, oclosure--set-slot-value): New functions.
* lisp/emacs-lisp/eieio-core.el (eieio-oset, eieio-oref):
Consolidate the type test. Use `oclosure--(set-)slot-value`.
(eieio--validate-slot-value, eieio--validate-class-slot-value):
Don't presume `class` is an EIEIO class.
(eieio--class): Fix bogus `:type` info.
(eieio--object-class): Simplify.
(eieio--known-slot-name-p): New function.
(eieio-oref, eieio-oref-default, eieio-oset-default): Use it.
* test/lisp/emacs-lisp/oclosure-tests.el: Require `eieio`.
(oclosure-test): Make `name` field mutable.
(oclosure-test-slot-value): New test.
2022-04-04 Vincent Belaïche <vincentb1@users.sourceforge.net>
SES with case insensitive cell names for jumping.
* doc/misc/ses.texi (The Basics): Document that ses-jump may be
customized.
(Customizing @acronym{SES}): Document new customisations for ses-jump.
* lisp/ses.el (ses-jump-cell-name-function)
(ses-jump-prefix-function): New defcustoms.
(ses-jump-prefix): New defun.
(ses-jump): Make ses-jump use the new defcustoms.
* test/lisp/ses-tests.el (ses-jump-B2-prefix-arg)
(ses-jump-B2-lowcase, ses-jump-B2-lowcase-keys)
(ses-jump-B2-symbol, ses-jump-B2-renamed): New tests.
2022-04-04 Mattias Engdegård <mattiase@acm.org>
Reduce GC mark-phase recursion by using explicit stack (bug#54698)
An explict stack of objects to be traversed for marking replaces
recursion for most common object types: conses, vectors, records, hash
tables, symbols, functions etc. Recursion is still used for other
types but those are less common and thus not as likely to cause a
problem.
The stack grows dynamically as required which eliminates almost all C
stack overflow crashes in the GC. There is also a nontrivial GC
performance improvement.
* src/alloc.c (GC_REMEMBER_LAST_MARKED, GC_CDR_COUNT): New.
(mark_char_table, struct mark_entry):
Remove (subsumed into process_mark_stack).
(struct mark_entry, struct mark_stack, mark_stk)
(mark_stack_empty_p, mark_stack_pop, grow_mark_stack)
(mark_stack_push_value, mark_stack_push_values)
(process_mark_stack): New.
(mark_object, mark_objects):
Just push the object(s) and let process_mark_stack do the work.
2022-04-04 Jürgen Hötzel <juergen@archlinux.org>
Use correct signal oldset in posix_spawn implementation
posix_spawn was restoring the wrong signal set, which still had
SIGCHLD and SIGINT masked, causing problems with child processes that
spawned child processes. (Bug#54667)
See the thread ending at
https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00067.html
for more details.
* src/callproc.c (emacs_spawn): Pass oldset parameter.
(emacs_posix_spawn_init_attributes): Use correct oldset.
(emacs_posix_spawn_init): Remove intermediate function.
2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
test/lisp/edmacro-tests.el: Adjust to recent changes
2022-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
edmacro.el: Silence warnings due to kmacro changes
* lisp/edmacro.el (edit-kbd-macro): Use `kmacro-p` and kmacro accessors.
(edmacro-finish-edit): Use `kmacro-p` and the new `kmacro` constructor.
2022-04-04 Po Lu <luangruo@yahoo.com>
Handle mouse movement correctly during DND from one of our own frames
* lisp/dnd.el (dnd-handle-movement): Select the window specified
in posn.
* lisp/term/x-win.el (x-dnd-movement): New function.
(x-dnd-movement-function): Set it as the default.
* src/frame.c (delete_frame): Prevent deleting the drop source
frame.
* src/xterm.c (x_dnd_send_position): Set new mouse movement
flags if the target window is one of our own frames.
(x_dnd_begin_drag_and_drop): Call DND movement function whenever
appropriate.
(x_free_frame_resources): Remove useless code.
(syms_of_xterm): New defvar `x-dnd-movement-function'.
* src/xterm.h: Update prototypes.
2022-04-04 Po Lu <luangruo@yahoo.com>
Fix generation of extra DND events while dragging on Haiku
* src/haiku_support.cc (be_drag_message): Set new DND flag.
(be_drag_and_drop_in_progress): New function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_read_socket): Don't store DND motion
events if DND is in progress.
2022-04-04 Po Lu <luangruo@yahoo.com>
* src/xterm.c: Explain meaning of drag-and-drop state variables.
2022-04-04 Lars Ingebrigtsen <larsi@gnus.org>
Further fixes for cl--generic-describe and (function ...)
* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Fix the #'
problem for defmethods, too (bug#54628).
2022-04-04 João Távora <joaotavora@gmail.com>
Check textdocumentsync/willsave cap before sending it
* eglot.el (eglot--guess-contact): Default language-id to educated
guess when eglot--lookup-mode returns nil.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/823
2022-04-04 João Távora <joaotavora@gmail.com>
Guess language-id if manually entering server program
* eglot.el (eglot--guess-contact): Default language-id to educated
guess when eglot--lookup-mode returns nil.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/837
2022-04-04 João Távora <joaotavora@gmail.com>
Tweak eglot mode-line menus
* eglot.el (eglot-manual): Rename from eglot-read-documentation
(eglot-customize): Delete.
(eglot-menu): Rename from eglot-menu-map. Rework.
(eglot--mode-line-format): Tweak.
(eglot-menu-string): Rename from eglot-mode-line-string.
(Flymake customization): New source section.
* NEWS.md: Tweak.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/792
2022-04-04 Felicián Németh <felician.nemeth@gmail.com>
Rework eglot's mode-line
Mimic flymake by replacing the old menus of the mode-line with
"context menus". List all usefull commands under the main menu
(eglot-menu-map), and commands related to LSP debugging under the
project menu (eglot-debug-map).
* eglot.el (eglot-read-documentation, eglot-customize): New
commands.
(eglot-mode-line-string): New defcustom.
(eglot-menu-map, eglot-debug-map,): New variables.
(eglot--mode-line-props): Rework to use eglot-menu-map and
eglot-debug-map.
(eglot--mode-line-format): Use eglot-mode-line-string.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/792
2022-04-04 João Távora <joaotavora@gmail.com>
Make eglot--plist-keys a simple (non-map.el) helper again
This removes a nagging compilation warning when developing on Emacs
master.
There's not much point in depending on map.el just for this util. And
there' snot much point in making eglot--plist-keys go through a
generic dispatching mechanism when we happen to know the thing
being dispatched
* eglot.el (eglot--plist-keys): Define in helpers section.
2022-04-04 Mattias Engdegård <mattiase@acm.org>
Inline call0..8
Inlining these trivial functions gives a healthy speed boost to many
common functions such as `sort`, `mapcar` etc.
* src/eval.c (call0, ..., call8): Move functions...
* src/lisp.h (call0, ..., call8): ...here and declare them inline.
2022-04-04 Mattias Engdegård <mattiase@acm.org>
Speed up comparisons between 2 fixnums
Since <, <=, > and >= have their own byte-ops, the corresponding
functions are mostly used as arguments to higher-order functions.
This optimisation is particularly beneficial for sorting, where the
comparison function is time-critical.
* src/data.c (Flss, Fgtr, Fleq, Fgeq):
* src/fileio.c (Fcar_less_than_car):
Fast path for calls with 2 fixnum arguments.
2022-04-04 Mattias Engdegård <mattiase@acm.org>
Rewrite string-greaterp and string> using string-lessp
Since string-lessp has its own byte-op, using it is much faster than
calling string-greaterp even with the need to bind a temporary
variable.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-string-greaterp): New.
(string-greaterp, string>): Set byte-optimizer.
2022-04-04 Mattias Engdegård <mattiase@acm.org>
Faster `string-lessp` for unibyte arguments
Since this function is commonly used as a sorting predicate
where it is time-critical, this is a useful optimisation.
* src/fns.c (Fstring_lessp): Add fast path for the common case
when both arguments are unibyte.
* test/src/fns-tests.el (fns-tests--string-lessp-cases)
(fns-tests-string-lessp): New test.
2022-04-04 Po Lu <luangruo@yahoo.com>
Respect frame extents during drag and drop
* xterm.c (struct x_client_list_window): New fields for frame
extents.
(x_dnd_compute_toplevels): Set window frame extents.
(x_dnd_get_target_window_1): Return None if the mouse is in a
frame extent.
(x_dnd_get_target_window): Likewise.
2022-04-04 Po Lu <luangruo@yahoo.com>
Don't baselessly ignore frames after passing through the root window
* src/xterm.c (x_dnd_begin_drag_and_drop):
(handle_one_xevent): Don't rely on target not being None to set
x_dnd_return_frame to 2.
2022-04-04 Po Lu <luangruo@yahoo.com>
Improve behavior of dragging text to windows on top of frames
* doc/lispref/frames.texi (Drag and Drop): Document new meaning
of `return-frame' in `x-begin-drag'.
* lisp/mouse.el (mouse-drag-and-drop-region): Use `now' when
calling `x-begin-drag'.
* src/xfns.c (Fx_begin_drag): Update doc string.
* src/xterm.c (x_dnd_begin_drag_and_drop): Accept return_frame
as a Lisp_Object and handle Qnow correctly.
(XTmouse_position): Ignore tooltip frames when processing
`drag-source'.
(syms_of_xterm): New defsym `now'.
* src/xterm.h: Update prototypes.
2022-04-03 Andrew G Cohen <cohen@andy.bu.edu>
Replace list and vector sorting with TIMSORT algorithm
* src/Makefile.in (base_obj): Add sort.o.
* src/deps.mk (fns.o): Add sort.c.
* src/lisp.h: Add prototypes for inorder, tim_sort.
* src/sort.c: New file providing tim_sort.
* src/fns.c: Remove prototypes for removed routines.
(merge_vectors, sort_vector_inplace, sort_vector_copy): Remove.
(sort_list, sort_vector): Use tim_sort.
* test/src/fns-tests.el (fns-tests-sort): New sorting unit tests.
2022-04-03 Mattias Engdegård <mattiase@acm.org>
Add optional GC marking function to specpdl unwind_ptr record
Add a new `record_unwind_protect_ptr_mark` function for use with C data
structures that use the specpdl for clean-up but also contain possibly
unique references to Lisp objects.
* src/eval.c (record_unwind_protect_ptr_mark): New.
(record_unwind_protect_module, set_unwind_protect_ptr):
Set the mark function to NULL.
(mark_specpdl): Call the mark function if present.
* src/lisp.h (unwind_ptr): Add a mark function pointer to the
SPECPDL_UNWIND_PTR case.
2022-04-03 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_dnd_get_target_window): Look at root window proxies too.
2022-04-03 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-undo-close-tab): Update tab-bar-lines (bug#54684)
2022-04-03 Po Lu <luangruo@yahoo.com>
Fix various bugs with mouse dragging on Haiku
* src/haikuterm.c (haiku_mouse_position): Rewrite so that
different track-mouse types can be handled more consistently.
2022-04-03 Eli Zaretskii <eliz@gnu.org>
Update logs and HISTORY for Emacs 28.1
* ChangeLog.3:
* etc/HISTORY:
* etc/AUTHORS: Update for Emacs 28.1 release.
2022-04-03 Jim Porter <jporterbugs@gmail.com>
Fix handling of '\\' inside double-quotes in Eshell
Previously, Eshell would get confused and think the following command
was unterminated due to the second double-quote looking like it was
escaped:
echo "\\"
* lisp/eshell/esh-util.el (eshell-find-delimiter): Correct docstring
and treat '\' as an escapeable character when using backslash escapes.
* test/lisp/eshell/eshell-tests.el
(eshell-test/escape-special-quoted): Adapt test.
2022-04-03 James Thomas <jimjoe@gmx.net>
Ensure re-encoding after change in gnus-inews-do-gcc
* lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Re-encode the message
body if it has been modified by gnus-gcc-pre-body-encode-hook
(bug#54687).
2022-04-03 Lars Ingebrigtsen <larsi@gnus.org>
Have global minor modes say so in the doc string
* lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Allow
saying whether it's a global minor mode or not.
(easy-mmode--mode-docstring): Use it.
(define-minor-mode): Pass in the data.
2022-04-03 Po Lu <luangruo@yahoo.com>
Implement `drag-source' values of `track-mouse' on PGTK.
* src/frame.c (Fmouse_position, mouse_position)
(Fmouse_pixel_position): Fix crashes when mouse_position_hook
stores nil.
* src/pgtkterm.c (pgtk_mouse_position): Behave appropriately.
2022-04-03 Po Lu <luangruo@yahoo.com>
Implement `drag-source' values of track-mouse on NS
* src/nsterm.m (ns_mouse_position): Don't return frame when
appropriate.
2022-04-03 Po Lu <luangruo@yahoo.com>
Implement (sort of) `drag-source' on Haiku
* src/haikuterm.c (haiku_mouse_or_wdesc_frame)
(haiku_mouse_position): Behave reasonably when track_mouse is
Qdrag_source.
2022-04-03 Po Lu <luangruo@yahoo.com>
Make dragging stuff to a window above a frame work
* doc/lispref/frames.texi (Mouse Tracking):
* etc/NEWS: Announce new `drag-source' value of `track-mouse'.
* lisp/mouse.el (mouse-drag-and-drop-region): Use new value of
`track-mouse' during interprogram drag and drop.
* src/keyboard.c (make_lispy_position): Handle nil values of f
correctly.
* src/xdisp.c (define_frame_cursor1): Ignore if `drag-source' as
well.
(syms_of_xdisp): New defsym `drag-source'.
* src/xterm.c (XTmouse_position): Implement `drag-source'.
(mouse_or_wdesc_frame): Likewise.
2022-04-03 Po Lu <luangruo@yahoo.com>
Don't touch WAYLAND_DISPLAY in browse-url
* lisp/net/browse-url.el (browse-url): Don't touch
WAYLAND_DISPLAY. (bug#53969)
2022-04-03 Po Lu <luangruo@yahoo.com>
Look for DND proxies on the root window as well
* src/xterm.c (x_dnd_get_target_window): If nothing was found on
the COW, look at the root window.
2022-04-02 Po Lu <luangruo@yahoo.com>
Implement new DND features on GNUstep
* lisp/term/ns-win.el (ns-drag-n-drop): Handle special `lambda'
drag-n-drop events.
* src/nsterm.m: ([EmacsView wantsPeriodicDraggingUpdates]):
([EmacsView draggingUpdated:]): New functions.
2022-04-02 Po Lu <luangruo@yahoo.com>
Implement new DND options on Haiku
* lisp/term/haiku-win.el (haiku-drag-and-drop): Handle special
drag and drop motion events.
* src/haiku_support.cc (MouseMoved): Set `dnd_message' flag.
* src/haiku_support.h (struct haiku_mouse_motion_event): New
member `dnd_message'.
* src/haikuterm.c (haiku_read_socket): Create special DND events
when the mouse moves with a drop message.
2022-04-02 Po Lu <luangruo@yahoo.com>
Add user options to move point and scroll window during DND
* doc/emacs/frames.texi (Drag and Drop):
* etc/NEWS: Document new options 'dnd-scroll-margin' and
'dnd-indicate-insertion-point'.
* lisp/dnd.el (dnd-protocol-alist):
(dnd-open-remote-file-function):
(dnd-open-file-other-window): Add right group to defcustoms.
(dnd-scroll-margin, dnd-indicate-insertion-point): New user
options.
(dnd-handle-movement): New function.
* lisp/x-dnd.el (x-dnd-handle-xdnd):
(x-dnd-handle-motif): Call `dnd-handle-movement' when
appropriate.
2022-04-02 Po Lu <luangruo@yahoo.com>
Fix Motif drag-and-drop on servers without XI2
* src/xterm.c (handle_one_xevent): Pass right flags to the
receiver when handling drops for core button events.
2022-04-02 Po Lu <luangruo@yahoo.com>
Fix incorrect usage of XM_DRAG_SIDE_EFFECT
* src/xterm.c (xm_send_top_level_leave_message)
(handle_one_xevent): Pass corret alt side effects and flags to
XM_DRAG_SIDE_EFFECT.
2022-04-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix bootstrap errors after previous easy-mmode change
* lisp/subr.el (ensure-empty-lines, string-lines): Moved from
subr-x so that they can be used in early bootstrap files.
* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring):
Don't use string-empty-p because of bootstrap issues.
2022-04-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix regression in tex alignment
* lisp/align.el (align-rules-list): Make alignment in tex mode
work better again (bug#54663).
2022-04-02 Sean Whitton <spwhitton@spwhitton.name>
em-extpipe: Catch eshell-incomplete thrown while parsing
* lisp/eshell/em-extpipe.el (em-extpipe--or-with-catch): New macro.
(eshell-parse-external-pipeline): Use new macro to treat
`eshell-incomplete' as a failure of the parse function to move us
forward (Bug#54603). Thanks to Jim Porter <jporterbugs@gmail.com> for
the report and for help isolating the problem.
* test/lisp/eshell/eshell-tests.el
(eshell-test/lisp-command-with-quote): New test for Bug#54603, thanks
to Jim Porter <jporterbugs@gmail.com> (bug#54603).
2022-04-02 August Feng <au.fengster@gmail.com> (tiny change)
Add S-SPC key sequence to bookmark-bmenu-mode-map
* lisp/bookmark.el (bookmark-bmenu-mode-map): Add an S-SPC binding
for symmetry (bug#54672).
2022-04-02 Lars Ingebrigtsen <larsi@gnus.org>
Put the define-minor-mode boilerplate at the end of the doc strings
* lisp/emacs-lisp/easy-mmode.el (easy-mmode--mode-docstring): Put
the boilerplate at the end of the doc string.
2022-04-02 Lars Ingebrigtsen <larsi@gnus.org>
Further tweaks to cl--generic-describe
* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Further
tweak the look of the implementation output.
2022-04-02 Po Lu <luangruo@yahoo.com>
* lisp/dired.el (dired-mouse-drag): Offer HOST_NAME as well.
2022-04-02 Po Lu <luangruo@yahoo.com>
Fix crash when retrieving window property with invalid atom data
This happens when dropping files from dtfile, which somehow puts
non-atom stuff in window properties of type ATOM_PAIR.
* src/xselect.c (x_atom_to_symbol): Catch errors around
XGetAtomName.
2022-04-02 Po Lu <luangruo@yahoo.com>
Compute size of structs with flexible arrays correctly in Motif DND code
* src/xterm.c (xm_read_targets_table_rec, xm_setup_dnd_targets):
Use FLEXSIZEOF instead of sizeof on struct xm_targets_table_rec.
2022-04-02 Po Lu <luangruo@yahoo.com>
Fix error on mouse move over something not a window while dragging text
* lisp/mouse.el (mouse-drag-and-drop-region): Handle non-window
values of `posn-window' correctly.
2022-04-02 Po Lu <luangruo@yahoo.com>
Add new option `mouse-drag-and-drop-region-scroll-margin'
* etc/NEWS: Announce new user option.
* lisp/mouse.el (mouse-drag-and-drop-region-scroll-margin): New
user option.
(mouse-drag-and-drop-region): Implement "scroll margin" like
behavior during mouse movement.
2022-04-02 Po Lu <luangruo@yahoo.com>
Implement DELETE selection target for cross program drags
* lisp/mouse.el (mouse-drag-and-drop-region): Make sure mark
stays deactivated if a "cut" operation was performed.
* lisp/select.el (xselect-convert-to-delete): Don't clear
selection contents if it's the XdndSelection.
2022-04-01 Po Lu <luangruo@yahoo.com>
Work around dynamic drag bugs in modern Motif
* src/xterm.c (xm_send_top_level_leave_message): Send a motion
event with impossible coordinates by default.
(handle_one_xevent): Slightly update drop motion message
parameters.
(syms_of_xterm): New variable `x-dnd-fix-motif-leave'.
2022-04-01 Po Lu <luangruo@yahoo.com>
Make Motif drag work on window managers that don't support client lists
* xterm.c (x_dnd_send_xm_leave_for_drop): New function.
(x_dnd_get_wm_state_and_proto): New field `motif_out'.
(x_dnd_get_target_window): Return Motif protocol style if
looking for windows via XTranslateCoordinates.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent): Send toplevel leave
along with drops.
2022-04-01 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/xref.el (xref-search-program): Fix typo.
2022-04-01 Manuel Uberti <manuel.uberti@inventati.org>
Support ugrep in xref-search-program-alist
* lisp/progmodes/xref.el
(xref-search-program-alist)
(xref-search-program): Add entries for ugrep (bug#54608).
2022-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
kmacro: Represent it as an OClosure
Merge the old lambda+list into a single OClosure object which plays
both roles at the same time. Take advantage of it to provide a
`cl-print-object` method so kmacro objects print nicely using the
`key-parse` syntax.
Also replace the old `kmacro-lambda-form` with a new `kmacro` constructor
which takes a `key-parse` syntax, so that the code inserted with
`insert-kbd-macro` is now more readable.
* lisp/kmacro.el (kmacro): New OClosure type.
(kmacro-ring-head): Use `kmacro` constructor.
(kmacro-push-ring): Convert `elt` from old representation if needed.
(kmacro-split-ring-element, kmacro-view-ring-2nd, kmacro-view-macro):
Adapt to new representation.
(kmacro-exec-ring-item): Turn into obsolete alias.
(kmacro-call-ring-2nd, kmacro-end-or-call-macro): Adjust accordingly.
(kmacro-start-macro): Simplify call to `kmacro-push-ring`.
(kmacro): New constructor function. Replaces `kmacro-lambda-form`.
(kmacro-lambda-form): Use it and declare obsolete.
(kmacro-extract-lambda): Rewrite and declare obsolete.
(kmacro-p): Rewrite.
(cl-print-object): New method.
(kmacro-bind-to-key, kmacro-name-last-macro): Simplify.
* lisp/macros.el (macro--string-to-vector): New function.
(insert-kbd-macro): Use it. Generate code using the `kmacro` constructor.
* test/lisp/kmacro-tests.el (kmacro-tests-kmacro-bind-to-single-key):
Silence warning.
(kmacro-tests-name-last-macro-bind-and-rebind): Strengthen the test a bit.
(kmacro-tests--cl-print): New test.
2022-04-01 Augusto Stoffel <arstoffel@gmail.com>
New user option 'font-lock-ignore'
* lisp/font-lock.el (font-lock-ignore): New defcustom.
(font-lock-compile-keywords): Call 'font-lock--filter-keywords'.
(font-lock--match-keyword, font-lock--filter-keywords): New functions,
implement the functionality described in 'font-lock-ignore'.
* doc/lispref/modes.texi: Describe 'font-lock-ignore'.
2022-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
cl-generic: Rework obsolescence checks for defmethod
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Silence obsolescence
warnings in the included methods.
(cl-defmethod): Reuse standard obsolescence checks.
* lisp/emacs-lisp/seq.el (seq-contains): Remove redundant
`with-suppressed-warnings`.
2022-04-01 Ignacio <ignacio.decasso@imdea.org>
Better check for when clipboard or primary selection have changed
Previously it was done by just comparing new and old selection
text, now we use also selection timestamps for systems that
support it (only enabled in X for now). (bug#53894)
* lisp/select.el: (gui--last-selection-timestamp-clipboard)
(gui--last-selection-timestamp-primary): New variables.
(gui--set-last-clipboard-selection)
(gui--set-last-primary-selection)
(gui--clipboard-selection-unchanged-p)
(gui--primary-selection-unchanged-p): New functions.
2022-04-01 Stefan Monnier <monnier@iro.umontreal.ca>
OClosure: Add support for defmethod dispatch
* lisp/emacs-lisp/oclosure.el (oclosure--class): Add slot `allparents`.
(oclosure--class-make): Add corresponding arg `allparents`.
(oclosure, oclosure--build-class): Pass the new arg to the constructor.
(oclosure--define): Make the predicate function understand subtyping.
* lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents): Move from
`cl-generic.el`.
* lisp/emacs-lisp/cl-generic.el (cl--generic-class-parents): Move to
`cl-preloaded.el` and rename to `cl--class-allparents`.
Adjust all callers.
(cl--generic-oclosure-tag, cl-generic--oclosure-specializers): New functions.
(cl-generic-generalizers) <oclosure-struct>: New generalizer.
* test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen):
New generic function.
(oclosure-test): Add test for dispatch on oclosure types.
2022-04-01 Po Lu <luangruo@yahoo.com>
Implement the Motif drag protocol
* src/xterm.c (struct x_client_list_window): New field
`xm_protocol_style'.
(xm_top_level_enter_message, xm_drag_motion_message)
(xm_top_level_leave_message): New structures.
(xm_setup_drag_info, xm_send_top_level_enter_message)
(xm_send_drag_motion_message, xm_send_top_level_leave_message):
New functions.
(x_dnd_compute_toplevels): Compute `xm_protocol_style'.
(x_dnd_get_target_window_1, x_dnd_get_target_window): New
parameter `motif_out'. Place the xm protocol style in it if
necessary.
(x_dnd_cleanup_drag_and_drop, x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent): Handle Motif drag
protocol messages.
(x_free_frame_resources): Cancel Motif drag protocol operations
correctly.
2022-04-01 Protesilaos Stavrou <info@protesilaos.com>
Update modus-themes to their version 2.3.0
* doc/misc/modus-themes.org (Enable and load): Clarify wording.
(Sample configuration with and without use-package): Improve sample
code on how to set up the themes.
(Customization Options): Update sample configuration.
(Option for box buttons, Option for mode line presentation)
(Option for completion framework aesthetics)
(Option for Org agenda constructs)
(Option for the headings' overall style): Document how to optionally
pass number values as a cons cell.
(Option for mouseover effects): Document new boolean user option.
(More accurate colors in terminal emulators): Write about the color
range in terminal emulators and provide sample palette for XTerm.
(Override colors): Use American English.
(Near-monochrome syntax highlighting): Provide sample code on how to
achieve a monochrome style.
(Full support for packages or face groups)
(Indirectly covered packages): Update lists of supported packages.
(Note on display-fill-column-indicator-mode): Reword node.
(Note on prism.el): Use American English.
(Note on SHR colors): Clarify statement.
(Note on the Notmuch logo): Remark that the Notmuch logo can be
disabled.
(Port the Modus themes to other platforms?): Use American English.
(Sources of the themes): Fix capitalization of proper nouns.
(Acknowledgements): Update list of contributors to the project.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Ensure that the theme is reified
as expected both at compiletime and runtime.
* etc/themes/modus-themes.el (require): Require 'cl-lib' and 'subr-x'
at compiletime.
(seq): Require the 'seq' library.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected): Use correct symbol for
deprecated faces.
(modus-themes-slanted-constructs): Provide it as an alias of
'modus-themes-italic-constructs'.
(modus-themes-variable-pitch-headings): Remove obsolete user option.
(modus-themes-no-mixed-fonts): Remove obsolete user option alias.
(modus-themes-intense-mouseovers): Add new user option.
(modus-themes--headings-choice): Accept value as a cons cell.
(modus-themes-headings, modus-themes-org-agenda): Update user option
to accept number value as a cons cell.
(modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2)
(modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-title)
(modus-themes-scale-small): Remove obsolete user options.
(modus-themes-mode-line): Update user option to accept number values
as cons cells.
(modus-themes-mode-line-padding): Remove obsolete user option.
(modus-themes-completions): Add support for the 'text-also' property
and update it accordingly.
(modus-themes-success-deuteranopia): Remove obsolete user option.
(modus-themes-box-buttons): Update user option to accept number values
as cons cells.
(modus-themes--warn, modus-themes--list-or-warn)
(modus-themes--alist-or-seq): Add functions to check for correct value
in some user options.
(modus-themes--current-theme): Return the first Modus theme from
'current-enable-themes' (bug#54598).
(modus-themes--lang-check, modus-themes--prompt, modus-themes--paren)
(modus-themes--syntax-foreground, modus-themes--syntax-extra)
(modus-themes--syntax-string, modus-themes--syntax-comment)
(modus-themes--heading, modus-themes--agenda-structure)
(modus-themes--agenda-date, modus-themes--mode-line-attrs)
(modus-themes--completion, modus-themes--link, modus-themes--link-color)
(modus-themes--region, modus-themes--hl-line, modus-themes--button):
Make private functions check for the desired value. Refine them where
necessary.
(modus-themes-faces, modus-themes-custom-variables): Update supported
faces and relevant variables.
2022-04-01 Michael Albinus <michael.albinus@gmx.de>
More robust checks for directory buffers in image-mode
* lisp/image-mode.el (image-mode--directory-buffers): Apply more
robust checks for directory buffers. (Bug#54606)
2022-04-01 Po Lu <luangruo@yahoo.com>
Only read 16 bytes of motif drag receiver info
* src/xterm.c (xm_drag_receiver_info): Only read 16 bytes of
receiver info.
(handle_one_xevent): Fix default XM drop action.
2022-03-31 Po Lu <luangruo@yahoo.com>
Simplify Haiku drag-and-drop implementation
* lisp/term/haiku-win.el (x-begin-drag): Bind `mouse-highlight'
to nil.
* src/haikuselect.c (haiku_unwind_drag_message)
(Fhaiku_drag_message):
* src/haikuterm.h (HAVE_CHAR_CACHE_MAX):
* src/xdisp.c (note_mouse_highlight): Delete
`haiku_dnd_in_progress' variable.
2022-03-31 Po Lu <luangruo@yahoo.com>
Support Motif DND help
* src/xterm.c (x_dnd_xm_use_help): New state variable.
(x_dnd_begin_drag_and_drop): Clear new variable.
(handle_one_xevent): Set new variable if we get a key press
event F1 during the drag-and-drop session, and use help action
when dropping onto a Motif program if it is set.
2022-03-31 Po Lu <luangruo@yahoo.com>
Make dropping files on Motif programs work
* lisp/dired.el (dired-mouse-drag): Announce "FILE" and
"FILE_NAME" as targets as well.
* lisp/select.el (xselect-convert-to-filename): Handle
XdndSelection specially.
(xselect-convert-to-xm-file): New function.
(selection-converter-alist): Add new converters.
2022-03-31 Po Lu <luangruo@yahoo.com>
Avoid extra sync if we didn't get the right wmstate
* src/xterm.c (x_dnd_get_wm_state_and_proto): Always set proto
version.
(x_dnd_get_target_window): Optimize accordingly.
2022-03-31 Po Lu <luangruo@yahoo.com>
Fix a build warning on the non-XI2 build
* src/xterm.c (xm_read_drop_start_reply): Take a const XEvent as
msg.
2022-03-31 Eli Zaretskii <eliz@gnu.org>
Fix a bug in configure.ac that failed the --without-x build
* configure.ac (USE_TOOLKIT_SCROLL_BARS): Fix test for unsupported
scroll-bars configuration. (Bug#54629)
2022-03-31 Po Lu <luangruo@yahoo.com>
Fix Motif DND on window managers that don't support client lists
* src/xterm.c (x_dnd_compute_toplevels): Fix usage of
`x_uncatch_errors_after_check'.
(x_dnd_get_wm_state_and_proto): New function.
(x_dnd_get_target_window): Also return first toplevel window
found.
2022-03-31 Po Lu <luangruo@yahoo.com>
Implement missing parts of the Motif drag and drop protocol
* src/xterm.c (xm_drop_start_reply): New structure.
(xm_get_drag_window): Don't grab the server since this leads to
weird freezes when creating the drag window.
(xm_read_drop_start_reply): New function.
(x_dnd_begin_drag_and_drop): Set Motif finish flag to 0.
(handle_one_xevent): When starting a motif drop, set the finish
flag to 1. When the receiver replies to our drop message, set
the finish flag to 2 if the drop was accepted, and only clear
the waiting for finish flag when a selection request for
XmTRANSFER_SUCCESS or XmTRANSFER_FAILURE arrives.
(x_term_init): New atoms.
* src/xterm.h (struct x_display_info): New atoms.
2022-03-31 João Távora <joaotavora@gmail.com>
Protect against empty firsttriggercharacter strings
Which some LS's like gopls like to send.
* eglot.el (eglot--post-self-insert-hook): Beware of empty strings.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/906
2022-03-31 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how functions are formatted in Implementation in *Help*
* lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Include
the function name in the implementations (bug#54628). This
clarifies what we're talking about here, and avoids getting
(function ...) translated into #'...
2022-03-31 Po Lu <luangruo@yahoo.com>
Minor fixes to treatment of `allow_current_frame'
* src/xterm.c (x_dnd_send_drop): Don't send special event for
wrong frame.
(x_dnd_send_drop): Fix condition for returning
XdndActionPrivate.
2022-03-31 Po Lu <luangruo@yahoo.com>
Implement Motif drop protocol
This is the second most widely implemented drag-and-drop
protocol on X Windows, but seems to have some unsolvable
problems (i.e. stuff will keep accumulating in the drag window
as long the target lists keep changing.) The implementation is
not yet complete and doesn't work with some programs.
* lisp/select.el (xselect-convert-xm-special): New functions.
(selection-converter-alist): Add new converters.
* lisp/x-dnd.el (x-dnd-handle-motif): Ignore messages sent by
the receiver.
* src/xterm.c (xm_targets_table_byte_order): New enum;
(SWAPCARD32, SWAPCARD16): New macros.
(xm_targets_table_rec, xm_drop_start_message)
(xm_drag_initiator_info, xm_drag_receiver_info): New structures.
(XM_DRAG_SIDE_EFFECT, xm_read_targets_table_header)
(xm_read_targets_table_rec, xm_find_targets_table_idx)
(x_atoms_compare, xm_write_targets_table)
(xm_write_drag_initiator_info, xm_get_drag_window)
(xm_setup_dnd_targets, xm_send_drop_message)
(xm_read_drag_receiver_info): New functions.
(x_dnd_compute_toplevels): Correctly free some temp data.
(x_dnd_get_window_proxy, x_dnd_get_window_proto)
(x_set_frame_alpha): Likewise.
(handle_one_xevent): If the window has no XDND proto but has
motif drag receiver data, send a motif drop protocol request.
(x_term_init): New atoms for Motif DND support.
* src/xterm.h (struct x_display_info): Add new atoms.
2022-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
cl-generic: Use OClosures for `cl--generic-isnot-nnm-p`
Rewrite the handling of `cl-no-next-method` to get rid of the hideous
hack used in `cl--generic-isnot-nnm-p` and also to try and move
some of the cost to the construction of the effective method rather
than its invocation. This speeds up method calls measurably when
there's a `cl-call-next-method` in the body.
* lisp/loadup.el ("emacs-lisp/oclosure"): Load.
* lisp/emacs-lisp/oclosure.el (oclosure-define): Remove workaround now
that we're preloaded.
* lisp/emacs-lisp/cl-generic.el (cl--generic-method): Rename `uses-cnm`
to `call-con` to reflect it's not a boolean any more.
(cl-defmethod): Adjust to the new name and new values.
(cl-generic-define-method): Adjust to the new name.
(cl--generic-lambda): Use the new `curried` calling convention.
(cl--generic-no-next-method-function): Delete function.
(cl--generic-nnm): New type.
(cl-generic-call-method): Rewrite to support the various
calling conventions.
(cl--generic-nnm-sample, cl--generic-cnm-sample): Delete consts.
(cl--generic-isnot-nnm-p): Rewrite using `oclosure-type`.
(cl--generic-method-info): Add support for new calling convention.
2022-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
EIEIO tests: Fix failure when `eieio-core.el` is interpreted
* lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value)
(eieio--slot-name-index): Use the `cl--class` accessor functions.
2022-03-30 Andrea Corallo <akrl@sdf.org>
* src/pdumper.c (dump_get_max_page_size): Rename from 'dump_get_page_size'.
* src/pdumper.c: Remove getpagesize.h dependecy.
2022-03-30 Michael Albinus <michael.albinus@gmx.de>
Extend signal-process and proced.el
* doc/lispref/processes.texi (Signals to Processes):
Document changes in signal-process.
* etc/NEWS: Mention changes in proced.el and signal-process.
* lisp/proced.el (proced-signal-function): Declare it obsolete.
(proced-remote-directory): New user option.
(proced-mode): Adapt docstring.
(proced-send-signal, proced-renice): Handle interactive prefix argument.
* lisp/net/tramp.el (tramp-signal-process): New defun. Add it to
`signal-process-functions'.
* src/process.c (Finternal_default_signal_process): New defun,
providing the hitherto existing implementation of Fsignal_process.
(Fsignal_process): Loop through Vsignal_process_functions.
(Vsignal_process_functions): New defvar.
(Qinternal_default_signal_process, Qsignal_process_functions):
Declare symbols.
(Sinternal_default_signal_process): Declare subroutine.
* test/lisp/net/tramp-tests.el (tramp-test31-signal-process): New test.
2022-03-30 Po Lu <luangruo@yahoo.com>
Remove local copies of remote files created for drag-and-drop
* lisp/dired.el (dired-mouse-drag): Remove last dragged remote
file and save a record of any local copy created.
(dired-remove-last-dragged-local-file): New function.
2022-03-30 Po Lu <luangruo@yahoo.com>
Ignore mouse movement correctly on Haiku during drag and drop
* src/haikuselect.c (haiku_unwind_drag_message): New function.
(Fhaiku_drag_message): Set `haiku_dnd_in_progress' to false.
* src/haikuterm.c (haiku_read_socket): Fix overriding of
need_flush when reading events from multiple frames.
* src/haikuterm.h (haiku_dnd_in_progress): New variable.
* src/xdisp.c (note_mouse_highlight): Ignore if said variable is
true.
2022-03-30 Po Lu <luangruo@yahoo.com>
Prevent signals when dragging nonexistent files on Haiku
* lisp/term/haiku-win.el (x-begin-drag): Bind
`haiku-signal-invalid-refs' to nil.
* src/haiku_support.cc (MouseMoved): Send motion events while
dragging as well.
* src/haikuselect.c (haiku_lisp_to_message): Respect new
variable.
(syms_of_haikuselect): New variable `haiku-signal-invalid-refs'.
2022-03-29 Po Lu <luangruo@yahoo.com>
Disallow building with non-toolkit scroll bars on non-X systems
* configure.ac: Prevent building without toolkit scroll bars on
non-X systems, where they're not implemented. (bug#54629)
2022-03-29 Po Lu <luangruo@yahoo.com>
Avoid calling XGetAtomName in a loop when fetching monitor attributes
* src/xfns.c (x_get_monitor_attributes_xrandr): Avoid syncing on
each monitor when waiting for XGetAtomName when built with XCB.
2022-03-29 Po Lu <luangruo@yahoo.com>
Add some optimizations to ShapeNotify handling
* src/xterm.c (handle_one_xevent): Do bounding rect
optimizations on ShapeNotify events as well.
2022-03-29 Michael Albinus <michael.albinus@gmx.de>
Handle process property `remote-command' in Tramp
* doc/misc/tramp.texi (Remote processes): New subsection "Process
properties of asynchronous remote processes".
* lisp/net/tramp.el (tramp-handle-make-process):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
* lisp/net/tramp-smb.el (tramp-smb-handle-start-file-process):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process)
Set `remote-command' process property.
(tramp-scp-direct-remote-copying): Rename connection property.
* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
(tramp-test30-make-process, tramp-test31-interrupt-process)
(tramp--test-async-shell-command): Check process property
`remote-command'.
2022-03-29 Lars Ingebrigtsen <larsi@gnus.org>
ipv6 addresses aren't suspicious
* lisp/international/textsec.el (textsec--ipvx-address-p): New
function.
(textsec-domain-suspicious-p): Use it to say that ipv6 addresses
aren't suspicious (bug#54624).
2022-03-29 Jim Porter <jporterbugs@gmail.com>
Don't use 'eshell-convert' when all we want is a number
* lisp/eshell/em-hist.el (eshell/history): Use 'string-to-number'
instead of 'eshell-convert'.
* lisp/eshell/em-basic.el (eshell/umask): Simplify implementation and
be more careful about parsing numeric umasks to set.
2022-03-29 Jim Porter <jporterbugs@gmail.com>
Add tests for Eshell's umask command
'em-basic-test/umask-set' fails when passing an actual number to the
command, but this is fixed in the subsequent commit.
test/lisp/eshell/em-basic-tests.el: New file.
2022-03-29 Thomas Fitzsimmons <fitzsim@fitzsim.org>
Fix eww bookmark writing
* lisp/net/eww.el (eww-write-bookmarks): Ensure that the complete
bookmarks are written (bug#54612).
2022-03-29 João Távora <joaotavora@gmail.com>
Easier initializationoptions in eglot-server-programs
Per https://github.com/joaotavora/eglot/issues/845.
* NEWS.md: Update.
* eglot.el (eglot-server-programs): Document new syntax.
(eglot-initialization-options): Can use initializationOptions from
server's saved initargs.
(eglot--connect): Allow a plist to be appended to a server
contact.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/901
2022-03-29 Po Lu <luangruo@yahoo.com>
Rewrite desktop workarea computation to avoid too many calls to XSync
* src/xfns.c (x_get_net_workarea): Rewrite using XCB without
using long_offset and long_length, since the data transfer is
usually negligible compared to the roundtrip delay.
2022-03-29 Mattias Engdegård <mattiase@acm.org>
Fix typo in ERC DCC code in verbose mode
* lisp/erc/erc-dcc.el (erc-dcc-send-block): Typo causing incorrect
message when `erc-dcc-verbose` is set.
2022-03-29 João Távora <joaotavora@gmail.com>
Tweak on-type-formatting code
* eglot.el (eglot--post-self-insert-hook): Tweak.
(eglot-format): Tweak docstring.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/899
2022-03-29 Felicián Németh <felician.nemeth@gmail.com>
Implement on-type-formatting support
* eglot.el (eglot-format): Add new optional argument `on-type-format'
to request :textDocument/onTypeFormatting, and ...
(eglot--post-self-insert-hook): ... call it from here when necessary.
* eglot-tests.el (eglot--simulate-key-event): New helper defun.
(rust-on-type-formatting): New test.
* NEWS.md: mention feature.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/899
2022-03-29 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/oclosure.el (oclosure--define): Autoload
2022-03-29 Po Lu <luangruo@yahoo.com>
Specially decode more selection types on Haiku
* src/haiku_select.cc (be_get_point_data, be_add_point_data):
New functions.
* src/haikuselect.c (haiku_message_to_lisp, lisp_to_type_code)
(haiku_lisp_to_message): Accept new types `size_t', `ssize_t'
and `point'.
(Fhaiku_drag_message): Update doc string.
(syms_of_haikuselect): New defsyms.
* src/haikuselect.h: Update prototypes.
2022-03-29 Po Lu <luangruo@yahoo.com>
Temporarily fix the oclosure bootstrap
* lisp/emacs-lisp/oclosure.el (oclosure-define): Load oclosure
from source if `oclosure--define' is not defined during byte
compilation.
2022-03-28 Po Lu <luangruo@yahoo.com>
Don't loop through useless region when searching for DND toplevel
* src/xterm.c (x_dnd_compute_toplevels): Optimize for the
bounding rect being the window dimensions.
2022-03-28 Juri Linkov <juri@linkov.net>
Add search function to search within filenames in Dired and WDired (bug#14013)
* lisp/dired-aux.el (dired-isearch-filenames-mode): Use
dired-isearch-search-filenames on isearch-search-fun-function
instead of dired-isearch-filter-filenames on isearch-filter-predicate.
(dired-isearch-filter-filenames): Remove function.
(dired-isearch-search-filenames): Add function.
* lisp/isearch.el (isearch-message-prefix): Add isearch-search-fun-function
to the list of supported advice-functions along with isearch-filter-predicate.
* lisp/replace.el (replace-search): Add comment.
* lisp/wdired.el (wdired-search-replace-filenames): New defcustom.
(wdired-isearch-filter-read-only): Remove function.
(wdired-change-to-wdired-mode, wdired-change-to-dired-mode):
Add and remove dired-isearch-search-filenames on isearch-search-fun-function
instead of wdired-isearch-filter-read-only on isearch-filter-predicate.
Also set/unset replace-search-function and replace-re-search-function.
Remove and restore isearch-mode-hook with dired-isearch-filenames-setup.
The problem is that dired-isearch-filenames-setup adds
dired-isearch-filenames-end to isearch-mode-end-hook that removes
dired-isearch-search-filenames added to isearch-search-fun-function
in wdired-change-to-wdired-mode. Then replace-highlight can't use
dired-isearch-search-filenames.
2022-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
Add OClosures, a cross between functions and structs
We here just add the new type. It is not fully self-contained.
It requires cooperation from `cconv.el` on the one hand, and it
hijacks the docstring info to hold the type of OClosure objects.
This does imply that OClosures can't have docstrings, tho this
limitation will be lifted in subsequent patches.
* lisp/emacs-lisp/oclosure.el: New file.
* test/lisp/emacs-lisp/oclosure-tests.el: New file.
* doc/lispref/functions.texi (OClosures): New section.
* src/eval.c (Ffunction): Accept symbols instead of strings for docstrings.
* src/doc.c (store_function_docstring): Avoid overwriting an OClosure type.
* lisp/emacs-lisp/cconv.el (cconv--convert-function): Tweak ordering of
captured variables.
(cconv-convert): Add case for `oclosure--fix-type`.
2022-03-28 Po Lu <luangruo@yahoo.com>
Fix doc of `gui-get-selection' as to what is really valid as `data'
* doc/lispref/frames.texi (Window System Selections):
* lisp/select.el (gui-set-selection): Don't say `data' can be a
cons or list of two integers, since that's not supported.
2022-03-28 Po Lu <luangruo@yahoo.com>
Minor fixes to Haiku selection support
* lisp/term/haiku-win.el (haiku-selection-bounds): New function.
(haiku-dnd-convert-string, haiku-select-encode-xstring)
(haiku-select-encode-utf-8-string): Handle position pairs
correctly.
(gui-backend-set-selection): Adjust for new airity.
* src/haikuselect.c (Fhaiku_selection_put): Fix arity.
2022-03-28 Po Lu <luangruo@yahoo.com>
Improve portability of XCB configure checks
* configure.ac: Look for xcb_aux_sync in -lxcb-aux if it's not
in -lxcb-util.
2022-03-28 Michael Albinus <michael.albinus@gmx.de>
Do not register Tramp file name handlers twice
* lisp/net/tramp.el (tramp-register-autoload-file-name-handlers):
* lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler):
Check, whether the real file name handler is already registered.
2022-03-28 Po Lu <luangruo@yahoo.com>
Avoid extra sync when fetching DND proxy window
* src/xterm.c (x_dnd_get_proxy_proto): New function.
(x_dnd_get_target_window): Use it on XCB to determine window
proxy and proto for toplevel window.
2022-03-27 Po Lu <luangruo@yahoo.com>
Clean up some uses of XInternAtom
* src/xfns.c (x_set_undecorated, x_set_no_focus_on_map, x_window)
(set_machine_and_pid_properties): Move calls to XInternAtom for
static string to use previously interned atoms.
(Fx_change_window_property): Use XCB if available to avoid extra
call to XSync.
* src/xterm.c (x_term_init):
* src/xterm.h (struct x_display_info): New atoms _MOTIF_WM_HINTS
and _NET_WM_PID.
2022-03-27 Felicián Németh <felician.nemeth@gmail.com>
Map more emacs variables to lsp formattingoptions fields
* eglot.el (eglot-format): Map require-final-newline to
insertFinalNewline and delete-trailing-lines to trimFinalNewlines.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/900
2022-03-27 Po Lu <luangruo@yahoo.com>
Store latin-1 content into the Haiku clipboard as well
* lisp/term/haiku-win.el (haiku-normal-selection-encoders): New
variable.
(haiku-select-encode-utf-8-string, haiku-select-encode-xstring):
New functions.
(gui-backend-set-selection): Use new selection encoder functions
instead of hard-coding UTF-8.
(haiku-dnd-handle-drag-n-drop-event): Rename to
`haiku-drag-and-drop'.
* src/haiku_select.cc (be_lock_clipboard_message): Accept new
argument `clear'.
(be_unlock_clipboard): Accept new argument `discard'.
* src/haikuselect.c (Fhaiku_selection_data): Change calls to
`be_lock_clipboard_message' and `be_unlock_clipboard'.
(haiku_unwind_clipboard_lock): New function.
(Fhaiku_selection_put): Accept new meaning of `name' which means
to set the selection message.
* src/haikuselect.h: Update prototypes.
2022-03-27 Po Lu <luangruo@yahoo.com>
Clean up PGTK cursor blanking code
* src/pgtkterm.c (XTframe_rehighlight): Rename to
`pgtk_frame_rehighlight_hook'. All callers changed.
(x_toggle_visible_pointer): Rename to
`pgtk_toggle_visible_pointer'. All callers changed.
(x_setup_pointer_blanking, XTtoggle_invisible_pointer): Delete
functions.
(pgtk_create_terminal): Use new names for various hooks.
(pgtk_term_init): Set up blank cursor directly.
* src/pgtkterm.h (struct pgtk_display_info): Remove
`toggle_visible_pointer'.
2022-03-27 Po Lu <luangruo@yahoo.com>
Don't wait for XdndFinished messages if the target did not send status
* src/xterm.c (x_dnd_send_leave): Return if we should wait for a
XdndFinished message.
(handle_one_xevent): Use that value for
`x_dnd_waiting_for_finish'.
2022-03-27 Augusto Stoffel <arstoffel@gmail.com>
Always run 'isearch-lazy-count-update-hook' with point at match
* lisp/isearch.el (isearch-lazy-highlight-buffer-update): Run
'isearch-lazy-count-update-hook' outside of save-excursion, so point
is at the current match.
2022-03-27 Po Lu <luangruo@yahoo.com>
Fix processing of DND grab on non-XI2 builds
* src/xterm.c (handle_one_xevent): Process DND grab flag
correctly.
2022-03-27 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1bef52ce73 * doc/emacs/anti.texi (Antinews): Unannounce removal of Mo...
2022-03-26 Po Lu <luangruo@yahoo.com>
Fix no-toolkit build
* src/xterm.c (x_top_window_to_frame): Declare correctly on
no-toolkit builds.
2022-03-26 Po Lu <luangruo@yahoo.com>
Avoid excessive synchronization when handling ShapeNotify events
* src/xterm.c (handle_one_xevent): Use XCB to handle ShapeNotify
events when we want both the bounding and input rects.
2022-03-26 Marcus Swanson <marcus.swanson91@gmail.com> (tiny change)
Add omnisharp support for c#
* eglot.el (eglot-server-programs): Add omnisharp for C#.
* README.md: Document the above change.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/897
2022-03-26 Mattias Engdegård <mattiase@acm.org>
Fix reader infinite recursion for circular mixed-type values
Make sure that the value added to the `read_objects_completed` set is
the one we actually return; previously this wasn't the case for conses
because of an optimisation (bug#54501).
Also add a check for vacuous self-references such as #1=#1# instead of
returning a nonsense value from thin air.
* src/lread.c (read1): Treat numbered conses correctly as described
above. Detect vacuous self-references.
* test/src/lread-tests.el (lread-test-read-and-print)
(lread-test-circle-cases, lread-circle): Add tests.
2022-03-26 Po Lu <luangruo@yahoo.com>
Enable the native display of BMP images on Haiku
* src/image.c (syms_of_image): Also register `bmp' image type on
Haiku when native image APIs are enabled.
2022-03-26 Po Lu <luangruo@yahoo.com>
Fix crash when timer signals or throws inside a popup menu on Haiku
* src/haikumenu.c (haiku_process_pending_signals_for_menu_1)
(haiku_process_pending_signals_for_menu_2): New functions.
(haiku_process_pending_signals_for_menu): Catch non local exits
around `timer_check'.
2022-03-26 Po Lu <luangruo@yahoo.com>
Fix processing of emacs:window_id inside DND messages if it already exists
* src/haiku_support.cc (MessageReceived): Use DropPoint instead
of getting it manually.
(be_drag_message): Replace window_id if it already exists.
2022-03-26 Michael Albinus <michael.albinus@gmx.de>
Don't let Tramp block dired (Bug#54542)
* lisp/dired.el (dired-find-buffer-nocreate): Avoid avoid hangs in
remote buffers with a blocked connection. (Bug#54542)
* lisp/net/tramp-sh.el (tramp-maybe-open-connection):
Extend suppression rules.
2022-03-26 Po Lu <luangruo@yahoo.com>
Minor fixes to last change
* src/Makefile.in: Add XSHAPE_LIBS and XSHAPE_CFLAGS.
(LIBES, EMACS_CFLAGS): Likewise.
* src/xterm.c (x_dnd_compute_toplevels): Fix build without
HAVE_XCB_SHAPE.
2022-03-26 Po Lu <luangruo@yahoo.com>
Also fetch shapes via XCB for drag and drop
* configure.ac: Also look for xcb-shape.
* src/xterm.c (HAVE_XCB_SHAPE_INPUT_RECTS): New define.
(x_dnd_compute_toplevels): Use XCB for input shapes if possible.
2022-03-26 Eli Zaretskii <eliz@gnu.org>
Use native image APIs on MS-Windows by default
* src/w32term.c (syms_of_w32term) <w32-use-native-image-API>: Now
t by default on W2K and later systems, but only on WINDOWSNT
builds.
* etc/NEWS: Announce the change.
2022-03-26 Eli Zaretskii <eliz@gnu.org>
Support display of BMP images on MS-Windows
* src/w32image.c (w32_can_use_native_image_api): Support BMP
images.
* src/image.c (syms_of_image) <Qbmp>: New symbol.
[HAVE_NTGUI]: Add 'bmp' to list of supported image types.
* doc/lispref/display.texi (Image Formats): Document built-in
support for BMP images.
* etc/NEWS: Announce the change.
2022-03-26 Eli Zaretskii <eliz@gnu.org>
Improve 'desktop--emacs-pid-running-p'
* lisp/desktop.el (desktop--emacs-pid-running-p): Avoid false
negatives on MS-Windows and with some symlinks to Emacs
executables. (Bug#1474)
2022-03-26 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
4ec9f9edd1 Fix eshell-explicit-command-char doc string typo
2022-03-26 Po Lu <luangruo@yahoo.com>
Fix crash when windows are destroyed by faulty clients
* src/xterm.c (x_dnd_compute_toplevels): Make sure
property_reply is non-NULL before testing its format and length.
2022-03-26 Po Lu <luangruo@yahoo.com>
Avoid excessive synchronization when initiating drag-and-drop
* src/xterm.c (x_dnd_compute_toplevels): Use XCB to get WM
state, attributes, geometry and to translate coordinates. This
avoids 4 calls to XSync.
2022-03-25 Po Lu <luangruo@yahoo.com>
Fix compiler warning in x-dnd.el
* lisp/x-dnd.el (x-dnd-xdnd-to-action): Move declaration
earlier.
2022-03-25 Po Lu <luangruo@yahoo.com>
Avoid ClientMessage overhead when dragging stuff to other frames
* lisp/dired.el (dired-mouse-drag): Handle correctly dragging
from dired buffers in nonselected windows.
* lisp/x-dnd.el (x-dnd-handle-drag-n-drop-event): Understand new
client message type.
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave): Ignore if window is the top window of a
frame.
(x_dnd_send_drop): Send special DND event in that case.
2022-03-25 Po Lu <luangruo@yahoo.com>
Fix minor issues with dired-mouse-drag-files
* lisp/dired.el (dired-mouse-drag-files): Update doc string and
add setter.
(dired-insert-set-properties): Don't insert misleading tooltip
if feature is not available.
2022-03-25 Lars Ingebrigtsen <larsi@gnus.org>
Fix (bounds-of-thing-at-point 'number)
* lisp/thingatpt.el (number): Make (bounds-of-thing-at-point
'number) work (bug#54555).
2022-03-25 Lars Ingebrigtsen <larsi@gnus.org>
Fix reporting of read error line/columns in the init file
* src/lread.c (invalid_syntax_lisp): The comments here said that
we were supposed to be called with point in the readcharfun
buffer. This was not the case (at least) when reading the Emacs
init file, so the reported line/column was always wrong (1 and 0,
respectively) (bug#54550).
2022-03-25 Lars Ingebrigtsen <larsi@gnus.org>
Improve pp-last-sexp ergonomics
* lisp/emacs-lisp/pp.el (pp-last-sexp): Ignore ,@?
before a sexp, because eval-ing that will always lead to an error
(bug#54537).
2022-03-25 Po Lu <luangruo@yahoo.com>
Implement new drag and drop parameter on Haiku
* lisp/term/haiku-win.el (x-begin-drag): Implement
`allow-current-frame'.
* src/haiku_support.cc (be_drag_message): New argument
`allow_same_view'.
* src/haiku_support.h: Update prototypes.
* src/haikuselect.c (Fhaiku_drag_message): New parameter
`allow-same-frame'.
2022-03-25 Po Lu <luangruo@yahoo.com>
Allow dragging files from dired to windows on the same frame
* doc/lispref/frames.texi (Drag and Drop): Document new
parameter to `x-begin-drag'.
* lisp/dired.el (dired-mouse-drag): Utilize new parameter.
* lisp/term/haiku-win.el (x-begin-drag): Add new parameter.
* src/xfns.c (Fx_begin_drag): New parameter
`allow-current-frame'. Fix typo and update doc string.
* src/xterm.c (x_dnd_get_window_proto): Respect
`x_dnd_allow_current_frame'.
(x_dnd_begin_drag_and_drop): New parameter
`allow_current_frame'.
* src/xterm.h: Update prototypes.
2022-03-25 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'completion-auto-select'
* lisp/simple.el (completion-auto-select):
* doc/emacs/mini.texi (Completion Options): Improve documentation
and description of customization options of 'completion-auto-select'.
2022-03-25 Po Lu <luangruo@yahoo.com>
Make it easier to select text inside dired when mouse dragging is on
* lisp/dired.el (dired-insert-set-properties): Only set drag
keymap on the filename itself.
2022-03-25 Michael Albinus <michael.albinus@gmx.de>
* admin/notes/emba: Mention workflow rules for branches.
2022-03-25 Po Lu <luangruo@yahoo.com>
Fix quitting DND while waiting for finish
* src/xterm.c (x_dnd_begin_drag_and_drop): Always clear finish
flag before quitting.
2022-03-25 Po Lu <luangruo@yahoo.com>
Take window shapes into account when processing drag and drop
* configure.ac: Test for the Nonrectangular Window Shape
extension.
* msdos/sed1v2.inp: Update.
* src/xterm.c (struct x_client_list_window): New fields for
shapes.
(x_dnd_free_toplevels): Free shapes.
(x_dnd_compute_toplevels): Populate window shapes.
(x_dnd_get_target_window_2): New function.
(x_dnd_get_target_window_1): Test WM state of window before
taking it into account.
(x_dnd_begin_drag_and_drop): Use outer window as the initial
last seen window.
(x_dnd_update_state): Small fixes to frame tracking.
(handle_one_xevent): Handle ShapeNotify events correctly.
(x_term_init): Test for the Nonrectangular Window Shape
extension.
* src/xterm.h (struct x_display_info): New atom `WM_STATE'.
2022-03-25 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d3d6f1c9bd Clarify the description of "selected tags table"
2022-03-24 Po Lu <luangruo@yahoo.com>
Use _NET_CLIENT_LIST_STACKING to optimize drag and drop window discovery
* src/xterm.c (struct x_client_list_window): New struct.
(x_dnd_free_toplevels, x_dnd_compute_toplevels)
(x_dnd_get_target_window_1): New functions.
(x_dnd_get_target_window): Search in the toplevel list if it
exists.
(x_dnd_cleanup_drag_and_drop): Clean up toplevel list.
(x_dnd_begin_drag_and_drop): Compute toplevel list if the
window manager supports it.
(handle_one_xevent): Update the toplevel list if prudent.
2022-03-24 Philip Kaludercic <philipk@posteo.net>
Fix wrapping of 'previous-completion' at the beginning of buffer
* lisp/simple.el (next-completion): Prevent an error of
'previous-completion' at the beginning of completions buffer.
Also fix 'previous-completion' to wrap to the last completion.
(bug#54374)
2022-03-24 Juri Linkov <juri@linkov.net>
Small fixes for the new feature 'second-tab' of 'completion-auto-select'
* lisp/simple.el (completion-auto-select): Extend the docstring.
2022-03-24 João Távora <joaotavora@gmail.com>
Use bounds of thing at point when asking for code actions
* eglot.el (eglot--region-bounds): Consider bounds of things at
point.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/895
2022-03-24 Augusto Stoffel <arstoffel@gmail.com>
João Távora <joaotavora@gmail.com>
Handle invisible text in Eldoc when calculating size
* lisp/emacs-lisp/eldoc.el (eldoc--echo-area-substring,
eldoc-display-in-echo-area): Take invisible text into consideration
when counting lines to crop an echo-area message.
(Version): Bump.
2022-03-24 Po Lu <luangruo@yahoo.com>
Allow fetching events from other displays inside DND
* src/xterm.c (x_dnd_begin_drag_and_drop): Get the next event
from the app connection instead on Xt.
2022-03-24 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp to dired--insert-disk-space assumptions
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
Do not modify disk space information when
`dired--insert-disk-space' is available. (Bug#54512)
2022-03-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix autoinsert.el byte compilation warning
* lisp/autoinsert.el (sgml-tag): Fix a byte compilation warning.
2022-03-24 Jimmy Aguilar Mena <spacibba@aol.com>
Merge 'completion-auto-select new value secont-tab'
This includes the second-tab value for completion-auto-select and
documentation related.
2022-03-24 Jimmy Aguilar Mena <spacibba@aol.com>
Add documentation entries for completion-auto-select user option.
2022-03-24 Jimmy Aguilar Mena <spacibba@aol.com>
Add completion-auto-select second-tab value.
* lisp/minibuffer.el (completion--in-region-1) : Change if with cond and
check if completion-auto-select.
* lisp/simple.el (completion-auto-select) : Move before first use.
(completion-setup-function) : Make a more precise check for when
completion-auto-select is t.
2022-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/select.el (xselect-convert-to-targets): Use `delete-dups` and `delq`
* lisp/autoinsert.el (auto-insert-alist): Expose lambdas as code
2022-03-24 Stefan Monnier <monnier@iro.umontreal.ca>
(archive-*-write-file-member): Fix relative file name
* lisp/arc-mode.el (archive-*-write-file-member): Set the pwd
2022-03-24 Lars Ingebrigtsen <larsi@gnus.org>
Do some NEWS tagging
2022-03-24 Po Lu <luangruo@yahoo.com>
Avoid crashes if async input arrives when setting properties for DND
* src/xterm.c (x_dnd_begin_drag_and_drop): Block input around
non-async signal safe functions.
2022-03-24 Lars Ingebrigtsen <larsi@gnus.org>
Mention frame-text-* function in frame-pixel-* doc strings
* src/frame.c (Fframe_native_width, Fframe_native_height): Link to
`frame-text-*' functions.
2022-03-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix image-mode-fit-frame some more
* lisp/image-mode.el (image-mode-fit-frame): Use frame-text-width
and fit-frame-to-buffer instead of computing things ourselves
(bug#37630). This makes things work better across platforms.
2022-03-24 Po Lu <luangruo@yahoo.com>
Fix some bugs with drag and drop and Mozilla
* src/xfns.c (Fx_begin_drag): Call maybe_quit when iterating
through potentially long lists. Also allow specifying
XdndActionAsk manually again, since it's useful for debugging.
* src/xterm.c (x_dnd_begin_drag_and_drop): Delete XdndActionList
and XdndActionDescription if they were not specified.
2022-03-24 Stefan Kangas <stefankangas@gmail.com>
Load desktop without prompting if process is dead
* doc/emacs/misc.texi (Saving Emacs Sessions): Document the new
'check' value.
* etc/NEWS: Announce the change (bug#1474).
* lisp/desktop.el (desktop-load-locked-desktop): Add new value 'check'
to load desktop file without prompting if locking Emacs process does
not exist on the local machine. (Bug#1474)
(desktop-read): Extract function from here...
(desktop--load-locked-desktop-p): ...to here. New function handles
the semantics of 'desktop-load-locked-desktop', including above new
value 'check'.
(desktop--emacs-pid-running-p): New function.
* test/lisp/desktop-tests.el: New file with tests for the above.
2022-03-24 Po Lu <luangruo@yahoo.com>
Fix setter for hl-line-sticky-flag when hl-line is not loaded
* lisp/hl-line.el (hl-line-sticky-flag): Wrap most of setter
around (featurep 'hl-line). Reported by Michael Heerdegen
<michael_heerdegen@web.de>.
2022-03-24 Po Lu <luangruo@yahoo.com>
Allow holding down scroll bar buttons on Haiku when overscrolling
* src/haiku_support.cc (EmacsWindow): Set appropriate pulse
rate.
(class EmacsScrollBar, ValueChanged): Don't send any part events
here.
(MouseDown): Set dragging to a value larger than 1 if the scroll
bar is at the end.
(Pulse): New method.
2022-03-23 Po Lu <luangruo@yahoo.com>
Fix an infinite loop if the window manager pings Emacs during DND
* src/xterm.c (handle_one_xevent): Work around _NET_WM_PING
infinite loop during drag and drop.
2022-03-23 Po Lu <luangruo@yahoo.com>
Fix copying font names around on Haiku
* src/haiku_font_support.cc (font_style_to_flags)
(haiku_font_fill_pattern, BFont_open_pattern)
(BFont_populate_fixed_family, BFont_populate_plain_family):
* src/haiku_support.cc (be_get_version_string):
* src/haikufont.c (haikufont_spec_or_entity_to_pattern): Stop
assuming patterns were allocated by xzalloc.
2022-03-23 Po Lu <luangruo@yahoo.com>
Allow dragging and dropping multiple actions
* doc/lispref/frames.texi (Drag and Drop): Document new meaning
of `action'.
* lisp/term/haiku-win.el (x-begin-drag): Correct for new meaning
of `action'.
* src/xfns.c (Fx_begin_drag): Handle new alist meaning of
`action'.
* src/xterm.c (x_dnd_begin_drag_and_drop): New parameters
`ask_action_list', `ask_action_names' and `n_ask_actions'.
* src/xterm.h: Update prototypes.
2022-03-23 Augusto Stoffel <arstoffel@gmail.com>
Fix regression in isearch-yank-char-in-minibuffer
* lisp/isearch.el (isearch-yank-char-in-minibuffer): Select the
original window in order to restore point. This is needed when
minibuffer lazy highlight is in effect.
2022-03-23 Mauro Aranda <maurooaranda@gmail.com>
Make undigest work with multipart/mixed messages
* test/lisp/mail/undigest.el: New test file (bug#12873).
* lisp/mail/undigest.el (rmail-digest-methods): Install
rmail-digest-parse-mixed-mime.
(rmail-content-type-boundary): New function, to get a specific
Content-type boundary.
(rmail-digest-parse-mixed-mime): New function, to search for a
multipart/digest message inside a multipart/mixed message.
2022-03-23 Michael Albinus <michael.albinus@gmx.de>
Make quoting of shell arguments in grep.el more robust
* lisp/progmodes/grep.el (grep-apply-setting)
(grep-compute-defaults): Adapt docstring.
(grep-quoting-style): New variable.
(grep-compute-defaults, grep-default-command)
(grep-expand-keywords, lgrep, rgrep-default-command): Use it.
2022-03-23 Glenn Morris <rgm@gnu.org>
* doc/misc/eudc.texi (Inline Query Expansion): Unbreak it.
2022-03-23 Michael Albinus <michael.albinus@gmx.de>
Support changing remoteness of DIR in rgrep and lgrep
* lisp/net/tramp-sh.el (tramp-get-remote-dev-tty): New defun.
(tramp-sh-handle-make-process): Use it.
* lisp/progmodes/grep.el: Prefer #' to quote named functions.
(lgrep, rgrep): Recompute grep defaults when the remoteness of DIR
changes.
2022-03-23 Po Lu <luangruo@yahoo.com>
Improvements to Haiku selection handling
* lisp/term/haiku-win.el (haiku-selection-targets): Implement in Lisp.
* src/haiku_select.cc (be_get_message_type):
(be_set_message_type):
(be_get_message_message):
(be_add_message_message): New functions.
* src/haiku_support.cc (MessageReceived): Fix typo.
* src/haikuselect.c (haiku_selection_data_1)
(Fhaiku_selection_targets): Delete functions.
(haiku_message_to_lisp, lisp_to_type_code)
(haiku_lisp_to_message): Correctly decode and encode nested
messages, and fix encoding specially decoded types via numeric
names. Also store and decode message types inside Lisp
messages.
(Fhaiku_drag_message): Update doc string.
(syms_of_haikuselect): Update subrs.
* src/haikuselect.h: Update prototypes.
2022-03-23 Lars Ingebrigtsen <larsi@gnus.org>
Reinstate `C-M-<delete>'
* lisp/bindings.el (global-map): Reinstate `C-M-<delete>' and
`C-M-<backspace>' (bug#29430). These used to kill X, but that
hasn't been the case in any common GNU/Linux distributions for
decades.
2022-03-23 Lars Ingebrigtsen <larsi@gnus.org>
Fix image-mode-fit-frame resizing
* lisp/image-mode.el (image-mode-fit-frame): Use pixel sizes
instead of lines/columns to get more accurate resizing (bug#37630).
2022-03-23 Andreas Schwab <schwab@linux-m68k.org>
* lisp/term/pgtk-win.el: Update header comment.
2022-03-23 Po Lu <luangruo@yahoo.com>
Fix hl-line tests
* lisp/hl-line.el (hl-line-mode): Restore old setter.
* test/lisp/hl-line-tests.el (hl-line-tests-verify): Don't rely
`cl-some' always returning t on success.
(hl-line-tests-sticky-across-frames): Use correct global variable.
2022-03-23 Po Lu <luangruo@yahoo.com>
* lisp/calendar/todo-mode.el: Restore old code.
2022-03-23 Po Lu <luangruo@yahoo.com>
Restore old hl-line code
* lisp/hl-line.el: Restore old code to remove obsoletions.
(hl-line-overlay-priority): Make defcustom.
2022-03-23 Po Lu <luangruo@yahoo.com>
Allow retrieving some more kinds of clipboard data on Haiku
* src/haiku_select.cc (BClipboard_find_data): Handle NULL
characters inside data correctly.
(be_lock_clipboard_message, be_unlock_clipboard): New functions.
* src/haikuselect.c (Fhaiku_selection_data): Return entire
clipboard contents as a message when clipboard is NULL.
(haiku_lisp_to_message): Allow quitting when iterating through
potentially large or circular lists.
* src/haikuselect.h (enum haiku_clipboard): New enum.
2022-03-23 Po Lu <luangruo@yahoo.com>
Fix crash in haiku_message_to_lisp
* src/haikuselect.c (haiku_message_to_lisp): Block input around
`free'.
2022-03-22 Po Lu <luangruo@yahoo.com>
Handle quitting correctly during interprogram drag-and-drop
* lisp/mouse.el (mouse-drag-and-drop-region): Handle quit
correctly by exiting the cross program drag and drop.
2022-03-22 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_dnd_begin_drag_and_drop): Fix test against DND frame.
2022-03-22 Po Lu <luangruo@yahoo.com>
Don't allocate duplicate cursors for each frame on Haiku
* src/haikufns.c (haiku_create_frame)
(haiku_free_frame_resources): Stop creating cursors.
* src/haikuterm.c (haiku_delete_terminal, haiku_term_init):
Create and free cursors here instead.
* src/haikuterm.h (struct haiku_display_info): New fields for
cursors.
2022-03-22 Po Lu <luangruo@yahoo.com>
Improve DND documentation
* doc/lispref/frames.texi (Drag and Drop):
* src/xfns.c (Fx_begin_drag): Document meaning of
`XdndActionPrivate'.
2022-03-22 Po Lu <luangruo@yahoo.com>
Reported taken action correctly when dragging to another frame on X
* src/xterm.c (x_dnd_cleanup_drag_and_drop, x_dnd_update_state)
(x_free_frame_resources, handle_one_xevent): Set
`x_dnd_end_window'.
(x_dnd_begin_drag_and_drop): Return `XdndActionPrivate' if the
drop landed on one of our own frames.
2022-03-22 Andrew G Cohen <cohen@andy.bu.edu>
Refactor gnus/nnselect artlist saving and getting
* lisp/gnus/nnselect.el (nnselect-generate-run): New function that
replaces nnselect-run.
(nnselect-store-artlist): New function.
(nnselect-get-artlist): Update function.
(nnselect-request-group, nnselect-request-thread)
(nnselect-request-create-group, nnselect-request-group-scan): Use the
new functions.
* doc/misc/gnus.texi (Selection Groups): Document artlist storage and
retrieval.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
NEWS copy edits
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Mention highlight-confusing-reorderings in doc string
* src/xdisp.c (Fbidi_find_overridden_directionality): Mention
highlight-confusing-reorderings.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Mention the other-window-scroll-default user option
* src/window.c (Fscroll_other_window): Link to
other-window-scroll-default in the doc string.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Document outline-default-state
* doc/emacs/text.texi (Outline Visibility): Mention
outline-default-state.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Do some NEWS tagging
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Document sqlite-mode-open-file and do some NEWS tagging
* doc/lispref/text.texi (Database): Mention sqlite-mode-open-file.
2022-03-22 Alexander Adolf <alexander.adolf@condition-alpha.com>
Enable Better Alignment of EUDC Inline Expansion With RFC5322
The format of EUDC inline expansion results is formatted according to
the variable eudc-inline-expansion-format, which previously defaulted
to '("%s %s <%s>" firstname name email).
Since email address specifications need to comply with RFC 5322 in
order to be useful in messages, there was little headroom for users to
change this format anyway. Plus, if an EUDC back-end returned an empty
first and last name, the result was the email address in angle
brackets. Whilst this was standard with RFC 822, it is marked as
obsolete syntax by its successor RFC 5322. Also, the first and last
name part was never enclosed in double quotes, potentially producing
invalid address specifications, which may be rejected by a receiving
MTA.
This commit updates the variable eudc-inline-expansion-format, so that
it can, in addition to the current ("format" attributes) list, now
alternatively be set to nil, or a formatting function. In both cases
the resulting email address is formatted using the new function
eudc-rfc5322-make-address, whose results fully comply with RFC 5322.
If the value is nil (the new default value), eudc-rfc5322-make-address
will be called to produce any of the default formats
ADDRESS
FIRST <ADDRESS>
LAST <ADDRESS>
FIRST LAST <ADDRESS>
depending on whether a first and/or last name are returned by the
query, or not.
If the value is a formatting function, that will be called to allow
the user to supply content for the phrase and comment parts of the
address (cf. RFC 5322). Thus one can produce any of the formats:
ADDRESS
PHRASE <ADDRESS>
ADDRESS (COMMENT)
PHRASE <ADDRESS> (COMMENT)
This can for example be used to get "last, first <address>" instead of
the default "first last <address>".
In any case when using nil, or the formatting function, the phrase
part of the result will be enclosed in double quotes if needed, and
the comment part will be omitted if it contains characters not allowed
by RFC 5322.
When eudc-inline-expansion-format remains set to a list as previously,
the old behaviour is fully retained.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix two no-X compilation warnings
* lisp/mouse.el (x-hide-tip, x-show-tip): Declare to avoid no-X
build compilation warnings (bug#54524).
* lisp/term/pgtk-win.el (window-system-initialization): Avoid no-X
compilation warning.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix a keyboard.c no-X compilation warning
* src/keyboard.c (make_lispy_position): Fix compilation warning in
a --without-x build.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Make mail-header-parse-addresses-lax more lax
* lisp/mail/mail-parse.el (mail-header-parse-addresses-lax): Be
more resilient (bug#54523).
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix Completion Options typo
* doc/emacs/mini.texi (Completion Options): Fix typo.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Add a shell-filter-ring-bell function
* lisp/shell.el (shell-mode): Mention it.
(shell-filter-ring-bell): New function (bug#21652).
2022-03-22 Eli Zaretskii <eliz@gnu.org>
Fix documentation of the new completion-related features
* etc/NEWS:
* lisp/minibuffer.el (completion-auto-help):
* doc/lispref/text.texi (Special Properties):
* doc/emacs/mini.texi (Completion Options): Fix wording of
recently added documentation and customization options.
2022-03-22 Jimmy Aguilar Mena <spacibba@aol.com>
Revert "Set cursor-face-highlight-nonselected-window in completions."
This reverts commit 1641b5c04c383b5f53298d70776e3c18577b6f30.
This fixes incorrect highlight in Completions.
2022-03-22 Allen Li <darkfeline@felesatra.moe>
Add user option for controlling dired-do-shell-command prompt
* doc/emacs/dired.texi (Shell Commands in Dired): Document option
* lisp/dired-aux.el (dired-confirm-shell-command): Add option
(dired-do-shell-command): Check option before prompting
(bug#29465).
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Make eshell link faces more distinctive on 8-color displays
* lisp/eshell/em-ls.el (eshell-ls-directory):
(eshell-ls-symlink): Make the faces be distinctive on 8-colour
displays (bug#43615).
2022-03-22 dickmao <dick.r.chiang@gmail.com>
Restore hl-line--buffer tracking
* lisp/hl-line.el (hl-line-overlay, hl-line-overlay-buffer):
Correct replacement variable.
(hl-line--overlay): Clearer doc.
(hl-line--buffer): Nee hl-line-overlay-buffer
(hl-line-sticky-flag): Custom initialization is unfathomable.
(hl-line-mode, hl-line-unhighlight): Orthogonalize sticky.
(hl-line-highlight): Remove highlight from previous buffer.
* test/lisp/hl-line-tests.el (hl-line-sticky, hl-line-tests-verify):
(hl-line-tests-sticky-across-frames, hl-line-tests-sticky):
Test (bug#54481).
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix dependency problem in hl-line-sticky-flag"
This reverts commit 46daf70c4a7ce208ab0b3a7893c042fed5f022c2.
This is fixed differently in a subsequent patch.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix dependency problem in hl-line-sticky-flag
* lisp/hl-line.el (hl-line-sticky-flag): Open-code
hl-line-unhighlight to avoid recursive dependencies (bug#54481).
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix color-lighten-hsl logic
* lisp/color.el (color-lighten-hsl): Lighten by percentage,
instead of just adding the specified number to the luminance
element (bug#54514).
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Revert todo-mode tests failing after todo-mode reversion
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Add new function image-supported-file-p
* lisp/image.el (image-type-from-file-name): Make obsolete.
(image-supported-file-p): New function that has a more sensible
value.
(image-type): Adjust caller.
* lisp/thumbs.el (thumbs-file-size, thumbs-show-image-num): Adjust
callers.
* lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): Adjust caller
and logic.
2022-03-22 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Allow using image-convert to view .bmp images"
This reverts commit ede8ad507d06a336ce8202927f214aecbaf15d6b.
This leads to failures for usages of the function where
Emacs doesn't have support for the formats.
2022-03-22 Po Lu <luangruo@yahoo.com>
Simplify fullscreen management on Haiku
* src/haiku_support.cc (class EmacsWindow, Zoom, UnZoom): Track
zoom state manually instead of guessing what the system
currently thinks it is.
(MakeFullscreen): Always unzoom first.
* src/haiku_support.h (struct haiku_zoom_event): Remove all
fields and add a single field `zoomed'.
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame):
Remove use of pending_zoom fields.
* src/haikuterm.c (haiku_read_socket): Simplify handling of zoom
events.
(haiku_fullscreen): Simplify handling of different zoom states.
* src/haikuterm.h (struct haiku_output): Remove all pending_zoom
fields since they are no longer required.
2022-03-22 Michael Albinus <michael.albinus@gmx.de>
Fix grep-like functions when running on a remote host
* doc/lispref/processes.texi (Shell Arguments):
* etc/NEWS: Describe change in 'shell-quote-argument'. Fix typos.
* lisp/subr.el (shell-quote-argument): New optional argument POSIX.
* lisp/progmodes/grep.el (grep-compute-defaults)
(grep-default-command, grep-expand-keywords, lgrep)
(rgrep-default-command): Use POSIX argument in
`shell-quote-argument'. (Bug#54487)
2022-03-22 Andrea Corallo <akrl@sdf.org>
* src/comp.c: Few improvements following 71b8f1fc635.
* src/comp.c (ABI_VERSION): Update.
(Fcomp__register_lambda, Fcomp__register_subr): Remove unnecessary
check.
* src/comp.c (Fcomp__register_lambda, Fcomp__register_subr):
Remove unnecessary change.
2022-03-22 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_dnd_get_window_proto): Don't return huge protocols.
2022-03-22 Juri Linkov <juri@linkov.net>
Merge branch 'feature/completions-customs'
2022-03-21 Po Lu <luangruo@yahoo.com>
Fix starting Emacs with -mm or -fs on Haiku
* src/haikuterm.c (haiku_set_window_size): Disallow setting the
window size if the frame is fullscreen, like most X window
managers.
2022-03-21 Po Lu <luangruo@yahoo.com>
Fix leak of saved menu event and output data
* src/xterm.c (x_destroy_window, x_free_frame_resources): Free
output data and saved menu event even if display is closed.
2022-03-21 Po Lu <luangruo@yahoo.com>
Fix unloading the hl-line library
* lisp/hl-line.el (hl-line-unload-function): Restore function.
2022-03-21 Po Lu <luangruo@yahoo.com>
Fix incompatible changes in hl-line
* lisp/hl-line.el (hl-line-face): Rename back to hl-line.
(hl-line-face): Restore defcustom.
2022-03-21 Juri Linkov <juri@linkov.net>
Small fixes for new completions features
* lisp/minibuffer.el (completions-header-format):
Rename from completion-header-format.
(completions-highlight, completions-highlight-face):
Move up before first use.
2022-03-21 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option `diff-entire-buffers'
* lisp/vc/diff.el (diff-entire-buffers): New user option (bug#54060).
(diff-file-local-copy): Use it.
(diff-buffers): Mention it in the doc string.
2022-03-21 Lars Ingebrigtsen <larsi@gnus.org>
Don't break autoload generation of `left-margin' isn't zero
* lisp/emacs-lisp/autoload.el (make-directory-autoloads): Fix
autoload generation breakage is left-margin isn't zero (bug#54491).
2022-03-21 Lars Ingebrigtsen <larsi@gnus.org>
Make `n' in image-mode work more reliably with external formats
* lisp/image-mode.el (image-mode): Init the external machinery so
that commands like `n' work for those files.
* lisp/image/image-converter.el (image-converter-initialize):
Factored out into own function.
(image-convert-p): Use it.
(image-convert): Ditto.
2022-03-21 Lars Ingebrigtsen <larsi@gnus.org>
Allow specifying the intermediate format
* lisp/image/image-converter.el (image-convert-to-format): New
user format (bug#54494).
(image-convert, image-converter--convert-magick)
(image-converter--convert): Use it.
2022-03-21 Lars Ingebrigtsen <larsi@gnus.org>
Allow using image-convert to view .bmp images
* lisp/image.el (image-type-from-file-name): Allow Emacs to fall
back on image-convert to display .bmp images (bug#54492).
2022-03-21 Lars Ingebrigtsen <larsi@gnus.org>
Regenerated ldefs-boot.el
2022-03-21 dickmao <dick.r.chiang@gmail.com>
Rewrite hl-line-mode
The fashion of dual global and minor modes, each managing a replica of
state, has long been outmoded by globalized minor modes (nee
easy-mmode-define-global-mode) around the turn of the century.
* lisp/calendar/todo-mode.el (todo-toggle-item-highlighting,
todo-hl-line-range, todo-modes-set-2): Adapt to new
hl-line-highlight-hook.
* lisp/hl-line.el (hl-line-overlay): Rename hl-line--overlay.
(global-hl-line-overlay, global-hl-line-overlays,
global-hl-line-sticky-flag, hl-line-overlay-buffer,
hl-line-range-function): Obsolesce.
(hl-line--overlay): Erstwhile hl-line-overlay.
(hl-line, hl-line-face): Consolidate.
(hl-line-sticky-flag): Say less (Gen Z Hospital).
(hl-line-overlay-priority): Make this a custom.
(hl-line-highlight-hook): Prefer hook over specialized
hl-line-range-function.
(hl-line-mode): Say less (Gen Z Hospital).
(hl-line-make-overlay): Remove
(hl-line-highlight, hl-line-unhighlight): Rewrite.
(hl-line-maybe-unhighlight): Remove.
(hl-line-turn-on): Necessary for globalized minor mode.
(global-hl-line-mode, global-hl-line-highlight,
global-hl-line-highlight-all, global-hl-line-unhighlight,
global-hl-line-maybe-unhighlight, global-hl-line-unhighlight-all):
Prefer globalized minor mode.
(hl-line-move, hl-line-unload-function): Remove.
* test/lisp/calendar/todo-mode-tests.el (todo-test-item-highlighting,
todo-test-done-items-separator06-bol,
todo-test-done-items-separator06-eol,
todo-test-done-items-separator07): Adapt to consolidated face.
2022-03-21 Lars Ingebrigtsen <larsi@gnus.org>
Add a new face shr-code
* lisp/net/shr.el (shr-code): New face (bug#54480).
(shr-tag-code): Use it.
2022-03-21 Po Lu <luangruo@yahoo.com>
Minor fixes to Haiku DND support
* src/haiku_support.cc (MessageReceived): If source is remote,
don't test window ID.
(MouseMoved): Don't send mouse motion if dragging.
(be_drag_message): Return true if quit-flag.
* src/haiku_support.h: Update prototypes.
* src/haikuselect.c (haiku_should_quit_drag): New function.
(Fhaiku_drag_message): If rc is true, quit.
2022-03-21 Jimmy Aguilar Mena <spacibba@aol.com>
Set cursor-face-highlight-nonselected-window in completions.
* lisp/simple.el (completion-setup-function) : Sets
cursor-face-highlight-nonselected-window to t in Completions.
2022-03-21 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f15922a57c Update to Org 9.5.2-25-gaf6f12
9fcdd5b63f Improve doc strings of read-char-from-minibuffer-insert-* ...
2022-03-20 Po Lu <luangruo@yahoo.com>
Improve handling of input methods during drag-and-drop
* src/xterm.c (x_dnd_cleanup_drag_and_drop)
(x_dnd_begin_drag_and_drop): Stop removing IC and filter events
before dispatching them.
(x_filter_event): Actually filter events during DND.
(XTread_socket): Verify GenericEvents are actually input
extension events before ignoring them.
2022-03-20 Po Lu <luangruo@yahoo.com>
Make quitting work while DND is waitng for finish
* src/xterm.c (x_dnd_cleanup_drag_and_drop):
(x_dnd_begin_drag_and_drop, handle_one_xevent)
(x_free_frame_resources): Clear waiting for finish flag.
(x_filter_event): Don't filter if waiting for DND finish as
well.
2022-03-20 Dmitry Gutov <dgutov@yandex.ru>
Support indentation of Ruby pattern matching expressions
* lisp/progmodes/ruby-mode.el (ruby-smie-grammar, ruby-smie-rules)
(ruby-block-mid-keywords): Treat 'in' token similarly to 'when'.
* test/lisp/progmodes/ruby-mode-resources/ruby.rb:
Add indentation example.
2022-03-20 Andrew G Cohen <cohen@andy.bu.edu>
Fix imap fetching multiple mailboxes (bug#54158)
* lisp/gnus/mail-source.el (mail-source-fetch-imap): Variables
mailbox-source-string and remove should be reset for each mailbox.
2022-03-20 Juri Linkov <juri@linkov.net>
* etc/NEWS: Mention new hook 'minibuffer-lazy-highlight-setup'.
2022-03-20 Augusto Stoffel <arstoffel@gmail.com>
Add lazy highlight to 'isearch-edit-string'
* lisp/isearch.el (isearch-edit-string): Activate lazy highlight and
lazy count, provided 'isearch-lazy-highlight' respectively
'isearch-lazy-count' are non-nil.
2022-03-20 Augusto Stoffel <arstoffel@gmail.com>
Allow lazy highlight and match count while reading from minibuffer
* lisp/isearch.el (minibuffer-lazy-highlight-setup): New function, can
be added to 'minibuffer-setup-hook' to enable lazy highlight and count
while reading from minibuffer.
(minibuffer-lazy-count-format, minibuffer-lazy-highlight-transform,
minibuffer-lazy-highlight--overlay, minibuffer-lazy-highlight--count,
minibuffer-lazy-highlight--after-change,
minibuffer-lazy-highlight--exit): Auxiliary variables and functions
implementing the lazy highlight functionality while reading from
minibuffer.
2022-03-20 Augusto Stoffel <arstoffel@gmail.com>
New hook, lazy-count-update-hook
* lisp/isearch.el (lazy-count-update-hook): New hook allowing to
display the lazy count in special ways.
(isearch-lazy-highlight-new-loop,
isearch-lazy-highlight-buffer-update): Run `lazy-count-update-hook' at
appropriate times.
* lisp/comint.el (comint-history-isearch-setup,
comint-history-isearch-end): Make sure no lazy count is displayed.
* lisp/simple.el (minibuffer-history-isearch-setup): Make sure no lazy
count is displayed.
2022-03-20 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-new-tab-to): Don't funcall const values.
Filter out the values 'clone' and 'window' of 'tab-bar-new-tab-choice'
from function call.
2022-03-20 Michael Albinus <michael.albinus@gmx.de>
Extend connection-local variables example in Elisp manual
* doc/lispref/variables.texi (Connection Local Variables):
Explain, how to append variable settings to an existing profile.
2022-03-20 Paul Eggert <eggert@cs.ucla.edu>
Remove duplicate INLINE_HEADER_BEGIN
* src/thread.h: Remove duplicate INLINE_HEADER_BEGIN.
Problem reportd by Mattias Engdegård.
2022-03-20 Felicián Németh <felician.nemeth@gmail.com>
Add simple support for workspacefolders
Close https://github.com/joaotavora/eglot/issues/893.
Clients can support workspaceFolders since LSP 3.6. rootUri and
rootPath are deprecated. Dynamic changes in folders are not
supported, i.e., this patch does not implement
workspace/didChangeWorkspaceFolders.
* eglot.el (eglot-client-capabilities): Add capability
`workspaceFolders'.
(eglot-workspace-folders): New cl-defgeneric.
(eglot--connect): Add workspaceFolders to initializeParams.
(eglot-handle-request workspace/workspaceFolders): New cl-defmethod.
2022-03-20 Po Lu <luangruo@yahoo.com>
Fix confusion of wanted action with actual action on X
* src/xterm.c (x_dnd_begin_drag_and_drop)
(x_dnd_update_state, handle_one_xevent): Differentiate between
wanted action and chosen action correctly.
2022-03-20 Manuel Giraud <manuel@ledu-giraud.fr>
Fix wrong password stored in Tramp
* lisp/net/tramp.el (tramp-process-actions):
Unset `tramp-password-save-function'.
2022-03-20 Po Lu <luangruo@yahoo.com>
Make DND between frames work properly
* src/xterm.c (handle_one_xevent): Don't wait for a finish event
when dropping on top of another Emacs frame.
2022-03-20 Po Lu <luangruo@yahoo.com>
Improve compliance with version 5 of the XDND specification
* src/xterm.c (x_dnd_cleanup_drag_and_drop): New function.
(x_dnd_begin_drag_and_drop): Handle selection request events
immediately.
(handle_one_xevent): Wait for XdndFinished events and return the
action chosen there.
2022-03-20 Po Lu <luangruo@yahoo.com>
Fix some crashes in shut_down_emacs on Haiku
* src/emacs.c (shut_down_emacs): Stop quitting be app, since
it's not always there.
2022-03-20 Po Lu <luangruo@yahoo.com>
Implement `haiku_delete_terminal'
* src/haikuterm.c (haiku_delete_terminal): Actually delete the
terminal instead of aborting.
2022-03-20 Po Lu <luangruo@yahoo.com>
Check list tail properly in x-begin-drag
* src/xfns.c (Fx_begin_drag): Check that TARGETS is actually a
proper list.
* src/xterm.c (x_dnd_update_state): Remove debugging code.
2022-03-19 Po Lu <luangruo@yahoo.com>
Fix crash on some compositing managers
* src/xterm.c (x_dnd_get_target_window): Catch errors around
CompositeReleaseOverlayWindow.
2022-03-19 Po Lu <luangruo@yahoo.com>
Improve behaviour of drag-n-drop during window manager operations
* src/xterm.c (x_dnd_begin_drag_and_drop): Select for some
events on the root window.
(x_dnd_update_state): New function.
(handle_one_xevent): Call that function when we get some events
from the root window substructure or the window manager.
(x_term_init): New atom `_NET_CLIENT_LIST_STACKING'.
* src/xterm.h (struct x_display_info): New atom
`_NET_CLIENT_LIST_STACKING'.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Port to gcc -D EMACS_EXTERN_INLINE
* src/comp.h, src/thread.h: Add INLINE_HEADER_BEGIN and
INLINE_HEADER_END, since it uses INLINE.
* src/emacs.c: Include these two files.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
valid_sp inline fix
* src/bytecode.c (valid_sp): static, not INLINE, as INLINE
should be used only in headers and between INLINE_HEADER_BEGIN
and INLINE_HEADER_END. No need for inline here.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Simplify alloc.c static function decls
* src/alloc.c: Omit unnecessary static function declarations.
Dont use inline static as the C standard says that keyword
order is obsolescent. Anyway, no need for inline as compilers
inline without it well enough.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Make native helper functions static
These dont need to be extern, even with -flto, since
their addresses are taken.
* src/comp.c (helper_unwind_protect, helper_unbind_n)
(helper_save_restriction, helper_GET_SYMBOL_WITH_POSITION)
(helper_PSEUDOVECTOR_TYPEP_XUNTAG): Now static.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Remove unused fns/data and make fns static
* src/comp.c (saved_sigset, helper_temp_output_buffer_setup):
Remove; unused.
* src/comp.c (logfile, helper_link_table):
* src/fns.c (hashfn_equal, hashfn_eql):
* src/frame.c (frame_windows_min_size):
* src/gnutls.c (emacs_gnutls_global_init):
* src/minibuf.c (Vcommand_loop_level_list):
* src/syntax.c (syntax_code_spec):
* src/timefns.c (time_overflow):
* src/xterm.c (x_xrender_color_from_gc_foreground)
(x_display_set_last_user_time):
Now static, since its not used elsewhere.
* src/xterm.c (x_xrender_color_from_gc_foreground)
(x_xrender_color_from_gc_background): Move earlier to avoid
forward use.
(x_xrender_color_from_gc_foreground): Do not define unless
!defined USE_CAIRO && (RENDER_MAJOR > 0 || RENDER_MINOR >= 2),
since its not used otherwise.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Use filenvercmp instead of doing it by hand
* src/fns.c (Fstring_version_lessp): Use filenvercmp,
not string_version_cmp.
(string_version_cmp): Remove; no longer used.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Omit unnecessary code when !HAVE_NATIVE_COMP
* src/decompress.c (MD5_BLOCKSIZE, acc_buf, acc_size)
(accumulate_and_process_md5, final_process_md5, md5_gz_stream):
* src/dynlib.c (dynlib_open_for_eln, dynlib_close) [!WINDOWSNT]:
* src/fileio.c (internal_delete_file_1, internal_delete_file):
Define only if HAVE_NATIVE_COMP && WINDOWSNT,
as theyre not used otherwise.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Remove internal_condition_case_[345]
* src/comp.c (directory_files_matching) [WINDOWSNT]: New function.
(eln_load_path_final_clean_up) [WINDOWSNT]: Use it.
This removes the need for internal_condition_case_5.
* src/eval.c (internal_condition_case_3)
(internal_condition_case_4, internal_condition_case_5): Remove.
The first two were never used; the last only in now-removed code.
2022-03-19 Paul Eggert <eggert@cs.ucla.edu>
Remove sanitize_window_sizes
* src/window.c (sanitize_window_sizes): Remove; no-longer-used.
A previous refactoring moved this to Lisp without removing the C code.
2022-03-19 Lars Ingebrigtsen <larsi@gnus.org>
Make `command-modes' work for (native-compiled) subrs, too
* lisp/emacs-lisp/comp.el (comp-func): Add a command-modes slot.
(comp-spill-lap-function, comp-intern-func-in-ctxt): Fill it.
(comp-emit-for-top-level, comp-emit-lambda-for-top-level): Use it.
* src/alloc.c (mark_object): Mark the command_modes slot.
* src/comp.c (make_subr): Add a command_modes parameter.
(Fcomp__register_lambda): Use it.
(Fcomp__register_subr): Ditto.
* src/data.c (Fcommand_modes): Output the command_modes data for subrs
(bug#54437).
* src/lisp.h (GCALIGNED_STRUCT): Add a command_modes slot.
* src/pdumper.c (dump_subr): Update hash.
(dump_subr): Dump the command_modes slot.
2022-03-19 Po Lu <luangruo@yahoo.com>
Improve protection against faulty clients during DND
* src/xterm.c (x_dnd_send_enter, x_dnd_send_position)
(xdnd_send_leave, x_dnd_send_drop): Catch errors around call to
XSendEvent. The target window could be gone.
2022-03-19 Guy Gastineau <strings.stringsandstrings@gmail.com> (tiny change)
Remove redundant checks in erc--switch-to-buffer
* lisp/erc/erc.el (erc--switch-to-buffer): Commit
f925fc93bac41d7622d1af927e33b0e738ff55b0 "Add `predicate' arg to
`read-buffer' and use it for erc-iswitchb" meant to remove this, but
it was left behind. (Bug#53617)
2022-03-19 F. Jason Park <jp@neverwas.me>
Add unit test for erc--switch-to-buffer
* test/lisp/erc/erc-tests.el (erc--switch-to-buffer): Add new test.
(Bug#53617)
2022-03-19 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
e059d7c Fix region highlight in non-selected windows
2022-03-19 Po Lu <luangruo@yahoo.com>
Ignore drag source frame on Haiku in line with documentation
* src/haiku_support.cc (class EmacsWindow): New field
`window_id'.
(MessageReceived): Ignore dropped messages with same window id.
(be_drag_message): Add source frame's window ID to message.
2022-03-19 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c4596c8522 Fix a regression in 'decipher-digram-list'
2022-03-18 Po Lu <luangruo@yahoo.com>
Document dired-mouse-drag-files
* doc/emacs/dired.texi (Misc Dired Features): Explain that
dragging files is now supported.
* etc/NEWS: Update documentation status.
* lisp/dired.el (dired-mouse-drag-files): Fix typo in doc
string.
2022-03-18 Po Lu <luangruo@yahoo.com>
* src/xterm.c (XTread_socket): Don't filter GenericEvents.
2022-03-18 Po Lu <luangruo@yahoo.com>
Fix some glitches when dragging files from dired
* lisp/dired.el (dired-mouse-drag-files): Fix initial values.
(dired-mouse-drag): Clear mark if active and only make button
release events unread.
2022-03-18 Po Lu <luangruo@yahoo.com>
Handle composite overlay window during drag and drop sessions
* configure.ac: Test for the composite extension and use it if
available.
* msdos/sed1v2.inp: Update.
* src/Makefile.in (XCOMPOSITE_LIBS, XCOMPOSITE_CFLAGS): New
variables.
(EMACS_CFLAGS, LIBES): Add new libs and cflags.
* src/xterm.c (x_dnd_get_target_window): Look for proxy on
composite overlay window if mapped.
(x_term_init): Test if the composite extension is available.
* src/xterm.h (struct x_display_info): New fields for composite
extension presence.
2022-03-18 Po Lu <luangruo@yahoo.com>
Fix some XIM servers getting confused during drag-and-drop
* src/xterm.c (x_dnd_begin_drag_and_drop): Clear XIC while event
loop is in progress.
(x_filter_event): Return 0 if DND is in progress.
(xim_instantiate_callback): Likewise.
2022-03-18 Jimmy Aguilar Mena <spacibba@aol.com>
cursor-face-highlight-nonselected-window default to nil
* lisp/simple.el (redisplay--update-cursor-face-highlight) : Use if-let*
and not check facep.
(cursor-face-highlight-nonselected-window) : default to nil
2022-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Minor optimization
2022-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
Pcomplete: Better obey `completion-at-point-functions`
Functions on `completion-at-point-functions` should not modify
the buffer. Pcomplete itself mostly abides by this but Eshell's
use of it doesn't. Try and catch those cases. Also fix one of
those cases.
* lisp/pcomplete.el (pcomplete-allow-modifications): New var.
(pcomplete-completions-at-point): Enforce it.
(pcomplete, pcomplete-expand-and-complete, pcomplete-expand):
Rebind it since these commands expect the extra side effects.
* lisp/eshell/em-cmpl.el (eshell--pcomplete-insert-tab): New function,
extracted from `eshell-complete-parse-arguments`.
(eshell-complete-parse-arguments): Use it and obey
`pcomplete-allow-modifications`.
2022-03-18 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/gnus/mail-source.el (mail-source-set-1): Fix indent and simplify
2022-03-18 Mattias Engdegård <mattiase@acm.org>
Speed up fixnum printing
Use the new number-to-string code to speed up fixnum printing, with
similar results (often more than twice as fast as before).
* src/data.c (Fnumber_to_string): Move fixnum conversion to...
(fixnum_to_string): ... this new function.
* src/lisp.h: (fixnum_to_string): External declaration.
* src/print.c (print_object): Use fixnum_to_string instead of sprintf.
2022-03-18 Michael Albinus <michael.albinus@gmx.de>
Make application configurable in 'with-connection-local-variables'
* doc/lispref/variables.texi (Connection Local Variables):
Explain 'connection-local-default-application'.
* etc/NEWS: Mention 'connection-local-default-application'.
* lisp/files-x.el (connection-local-default-application): New variable.
(connection-local-criteria-for-default-directory): Use it. (Bug#54405)
* test/lisp/files-x-tests.el
(files-x-test-with-connection-local-variables): Extend test.
2022-03-18 João Távora <joaotavora@gmail.com>
Defend against broken move-to-column in recent emacs
* eglot.el (eglot-lsp-abiding-column): Use (min (point) (point-max))
This is a defensive fix for an Emacs/company-mode problem described
below.
The problem can be reproduced in Eglot before this commit with:
~/Source/Emacs/emacs/src/emacs -Q -f package-initialize -L \
~/Source/Emacs/company-mode -l company -f global-company-mode -l \
eglot.el ~/tmp/issue-860/args_out_of_range.c -f eglot -f \
display-line-numbers-mode -f toggle-debug-on-error
1 // args_out_of_range.c
2 struct Book {
3 int id;
4 char title[50]
5 } book = { 1024, "C" };
6
7 int main(int argc, char *argv[])
8 {
9
10 // Error when typing the dot to make "book."
11 book
12 return 0;
13 }
When one types the dot after the "book" on line 11, company-mode
displays a two-line overlay that visually encompasses line 12 after
"book", which has the "return 0;" statement. That line happens to
also hold a warning about incorrect syntax, one that starts at column
2.
Eglot uses 'move-to-column' to go that precise place.
In Emacs 27.2, move-to-column is unaffected by previous company-mode
overlays, even if the current line is being co-used visually by the
overlay. It moves to the right buffer position.
In Emacs master, this isn't true. It seems to be confounded by the
company-mode overlay and moves to eob, which eventually breaks Eglot
with a backtrace such as this one:
Debugger entered--Lisp error: (args-out-of-range #<buffer args_out_of_range.c> 110 124)
encode-coding-region(110 124 utf-16 t)
(length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t))
(- (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t)) 2)
(/ (- (length (encode-coding-region (or lbp (line-beginning-position)) (point) 'utf-16 t)) 2) 2)
eglot-lsp-abiding-column(110)
(- column (eglot-lsp-abiding-column lbp))
(setq diff (- column (eglot-lsp-abiding-column lbp)))
(progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff)))
(while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil))
(let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil)
(catch '--cl-block-nil-- (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if (> diff 0) (1+ diff) (1- diff)) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil))
(save-restriction (catch '--cl-block-nil-- (let* ((lbp (line-beginning-position)) (diff nil) (--cl-var-- t)) (narrow-to-region lbp (line-end-position)) (move-to-column column) (while (progn (setq diff (- column (eglot-lsp-abiding-column lbp))) (not (= 0 diff))) (condition-case eob-err (forward-char (/ (if ... ... ...) 2)) (end-of-buffer (throw '--cl-block-nil-- eob-err))) (setq --cl-var-- nil)) nil)))
eglot-move-to-lsp-abiding-column(2)
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/860
2022-03-18 Mattias Engdegård <mattiase@acm.org>
Speed up number-to-string for fixnums
Do the binary-to-decimal conversion by hand for fixnums instead of
calling sprintf. This results in a noticeable speed increase (on my
machine, 2.2× faster excluding GC).
* src/data.c (Fnumber_to_string): Don't use sprintf for fixnums.
2022-03-18 Po Lu <luangruo@yahoo.com>
Implement drag-and-drop of files on Haiku
* lisp/term/haiku-win.el (haiku-dnd-selection-converters): Add
new selection converter.
(haiku-dnd-convert-uri-list): New function.
(x-begin-drag): Allow selection converters to change message
field type.
* src/haikuselect.c (haiku_lisp_to_message): Perform more error
checking.
2022-03-18 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
530c3491e8 Improve documentation of bookmark default sorting
11492259b1 ; * doc/lispref/display.texi (Overlay Arrow): More accurat...
2022-03-18 Po Lu <luangruo@yahoo.com>
Allow dragging messages with file names on Haiku
* src/haiku_select.cc (be_add_refs_data): New function.
* src/haikuselect.c (haiku_lisp_to_message): Handle `ref' type
correctly.
* src/haikuselect.h: Update prototypes.
2022-03-18 Po Lu <luangruo@yahoo.com>
Allow dragging files from Dired to other programs
* etc/NEWS: Announce new user option `dired-mouse-drag-files'.
* lisp/dired.el (dired-mouse-drag-files): New user option.
(dired-mouse-drag): New command.
(dired-mouse-drag-files-map): New variable.
(dired-insert-set-properties): Add additional keymap if mouse
dragging is enabled.
* lisp/select.el (xselect-convert-to-targets): Handle new
form of selection converters.
(xselect-convert-to-username):
(xselect-convert-to-text-uri-list):
(xselect-uri-list-available-p): New functions.
(selection-converter-alist): Add them as selection converters.
* src/xselect.c (x_get_local_selection): Handle new form of
selection converters.
(syms_of_xselect): Update doc strings.
2022-03-17 Po Lu <luangruo@yahoo.com>
Minor fixes to DND support
* src/xterm.c (x_dnd_begin_drag_and_drop): Free targets
afterwards.
(handle_one_xevent): Only calculate dnd_grab if DND is in
progress.
2022-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
Remove some early-bootstrap dependencies for `advice`
The dependencies between `advice`, cl-generic`, `bytecomp`, `cl-lib`,
`simple`, `help`, ... were becoming unmanageable.
Break the reliance on `advice` (which includes making sure the
compiler is not needed during the early bootstrap).
* lisp/simple.el (pre-redisplay-function): Set without using `add-function`.
* lisp/loadup.el (advice, simple): Move to after `cl-generic`.
* lisp/help.el (command-error-function): Set without using `add-function`.
(help-command-error-confusable-suggestions): Explicitly call
`command-error-default-function` instead.
* lisp/emacs-lisp/cl-macs.el (pcase--mutually-exclusive-p): Don't
optimize during early-bootstrap.
* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Tiny simplification.
(cl-defmethod): Label the obsolescence warning as it should.
(cl--generic-compiler): New variable.
(cl--generic-get-dispatcher): Use it.
(cl--generic-prefill-dispatchers): Make freshly made dispatchers.
2022-03-17 Jimmy Aguilar Mena <spacibba@aol.com>
Add new variable cursor-face-highlight-nonselected-window
* lisp/simple.el (cursor-face-highlight-nonselected-window) : New
custom default to cursor-in-non-selected-windows.
(redisplay--update-cursor-face-highlight) : Extend highlight condition
to consider the new variable.
2022-03-17 Mattias Engdegård <mattiase@acm.org>
Put bytecode stack frame metadata in a struct
Using a plain C struct instead of type-punning Lisp_Object stack slots
makes the bytecode interpreter code more type-safe and potentially
faster (from better alias analysis), and the special-purpose accessors
are no longer needed. It also reduces the stack requirements when
using 64-bit Lisp_Object on 32-bit platforms.
* src/bytecode.c (enum stack_frame_index)
(sf_get_ptr, sf_set_ptr, sf_get_lisp_ptr, sf_set_lisp_ptr,
sf_get_saved_pc, sf_set_saved_pc): Remove.
(BC_STACK_SIZE): Now in bytes, not Lisp words.
(struct bc_frame): New.
(init_bc_thread, mark_bytecode, Finternal_stack_stats, valid_sp)
(exec_byte_code):
* src/lisp.h (struct handler, get_act_rec, set_act_rec):
Adapt to new struct bc_frame.
2022-03-17 Lars Ingebrigtsen <larsi@gnus.org>
Restore HOME after mailcap-parsing-and-mailcap-mime-info
* test/lisp/net/mailcap-tests.el
(mailcap-parsing-and-mailcap-mime-info): Restore HOME after the
test (bug#54435).
2022-03-17 Michael Albinus <michael.albinus@gmx.de>
Enable Tramp reloading
* lisp/net/tramp.el (tramp-file-name): Add ;;;###tramp-autoload
cookie. (Bug#50869)
* test/lisp/net/tramp-tests.el (tramp-test47-unload): Do not skip.
Test reload.
2022-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Warn suspicious args
2022-03-17 Lars Ingebrigtsen <larsi@gnus.org>
Avoid repeated prompts in `M-x shell' if using ~/.emacs_bash
* lisp/shell.el (shell): Use `shell-eval-command' to avoid
repeated prompts (bug#9961).
2022-03-17 Lars Ingebrigtsen <larsi@gnus.org>
Make shell-resync-dirs work with zsh
* lisp/shell.el (shell-resync-dirs): Use shell-eval-command to
avoid getting confused by zsh (bug#54384).
(shell-eval-command): New function.
2022-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
(seq-contains-p): Refine the non-nil returned value
* lisp/emacs-lisp/seq.el (seq-contains-p): Like `cl-some` return the
value returned by the test function rather than t.
2022-03-17 Philipp Stephani <phst@google.com>
Fix a use of 'cl-defgeneric'.
* lisp/progmodes/xref.el (xref-match-length): Use 'cl-defmethod'
instead of 'cl-defgeneric'.
2022-03-17 Lars Ingebrigtsen <larsi@gnus.org>
Make `?' work again in read-multiple-choice
* lisp/emacs-lisp/rmc.el (read-multiple-choice): Make the `?' key
work again to show the help text.
2022-03-17 Felician Nemeth <felician.nemeth@gmail.com>
Format long help texts better in read-multiple-choice
* lisp/emacs-lisp/rmc.el (rmc--show-help): Format long help texts
better (bug#54430).
2022-03-17 Andrew G Cohen <cohen@andy.bu.edu>
Improve propagation of gnus/nnselect group info
* lisp/gnus/nnselect.el (nnselect-push-info): Speed up pushing the
nnselect info back to the originating groups.
2022-03-17 Andrew G Cohen <cohen@andy.bu.edu>
Fix bug in nnselect fetching new articles in a thread
* lisp/gnus/nnselect.el (nnselect-request-thread): Ignore the
Retrieval Status Value in comparing whether articles are the same.
2022-03-17 Sean Whitton <spwhitton@spwhitton.name>
Don't use the original sender's address as the envelope-from
* lisp/gnus/message.el (message-resend): Avoid setting the
envelope-from to the original sender's address rather than the
resender's (bug#54429).
2022-03-17 Arash Esbati <arash@gnu.org>
Improve LaTeX symbol prettification
* lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist):
Support macros which used to be part of textcomp package.
2022-03-17 Po Lu <luangruo@yahoo.com>
Prevent invisible frames from acting as drag sources
* src/xterm.c (x_dnd_begin_drag_and_drop): Error out if f is
invisible. It makes no sense for an invisible frame to be a
drag source, so the function just hangs.
2022-03-17 Po Lu <luangruo@yahoo.com>
* src/haikuselect.c (Fhaiku_drag_message): Clear display grab after drag ends.
2022-03-17 Po Lu <luangruo@yahoo.com>
Fix creating frames with an initial value of `fullscreen' on Haiku
* src/haikufns.c (haiku_create_frame): Set configury_done and do
pending fullscreen change if any.
* src/haikuterm.c (haiku_fullscreen): Defer actually setting
fullscreen until configury_done is set.
* src/haikuterm.h (struct haiku_output): New field
`configury_done'.
2022-03-17 Michael Albinus <michael.albinus@gmx.de>
Do not cache directories with Tramp sshfs
* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
Add "-o dir_cache=no" to `tramp-mount-args'. (Bug#54126)
2022-03-17 Po Lu <luangruo@yahoo.com>
Fix mouse movement on Haiku
* src/haiku_support.cc (MouseMoved): Make sure grab view exists
before comparing against it.
2022-03-17 Po Lu <luangruo@yahoo.com>
Display drag-and-drop messages in echo area on non-graphics displays
* lisp/mouse.el (mouse-drag-and-drop-region-display-tooltip)
(mouse-drag-and-drop-region-hide-tooltip): New functions.
(mouse-drag-and-drop-region): Use them instead of calling
`x-hide-tip' and `x-show-tip' directly.
2022-03-17 Eli Zaretskii <eliz@gnu.org>
Fix compilation error of xterm.c
* src/xterm.c (x_dnd_begin_drag_and_drop): Use current_count only
if defined. Reported by Tassilo Horn <tsdh@gnu.org>.
2022-03-17 Po Lu <luangruo@yahoo.com>
Prevent delivery of duplicate events when window is grabbed on Haiku
* src/haiku_support.cc (grab_view, grab_view_locker): New
variables.
(MouseMoved, MouseDown, MouseUp): Keep track of the grab and
don't deliver motion events to any other view.
2022-03-17 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_dnd_begin_drag_and_drop): Always initialize hold_quit.
2022-03-16 Po Lu <luangruo@yahoo.com>
Restore old PGTK scrolling code
* src/pgtkterm.c (pgtk_copy_bits): Restore old code using
cairo_surface_create_similar. (bug#54040)
2022-03-16 Po Lu <luangruo@yahoo.com>
Make GTK inspector available on PGTK
* src/pgtkfns.c (Fx_gtk_debug): New function.
(syms_of_pgtkfns): Define new subr.
2022-03-16 Po Lu <luangruo@yahoo.com>
* lisp/term/haiku-win.el (x-begin-drag): Fix type code of B_MIME_TYPE.
2022-03-16 Po Lu <luangruo@yahoo.com>
Implement cross-program drag-and-drop on Haiku
* doc/lispref/frames.texi (Drag and Drop): Fix documentation of
`x-begin-drag' to match actual function arity.
* lisp/term/haiku-win.el (haiku-dnd-selection-value): New
variable.
(haiku-dnd-selection-converters): New variable.
(haiku-dnd-convert-string): New function.
(gui-backend-get-selection, gui-backend-set-selection): Handle
XdndSelection specially.
(x-begin-drag): New function.
* src/haiku_select.cc (be_create_simple_message)
(be_add_message_data): New functions.
* src/haiku_support.cc (WAIT_FOR_RELEASE): New message type.
(class EmacsView, MouseUp): If waiting for release, reply and
drop event.
(be_drag_message, be_drag_message_thread_entry): New functions.
* src/haiku_support.h: Update prototypes.
* src/haikuselect.c (lisp_to_type_code, haiku_lisp_to_message)
(Fhaiku_drag_message): New functions.
(syms_of_haikuselect): Define new subr.
* src/haikuselect.h: Update prototypes.
2022-03-16 Po Lu <luangruo@yahoo.com>
Improve GTK support for X11 drag-n-drop
* src/xterm.c (x_dnd_begin_drag_and_drop): Run nested GTK event
loop instead, so GTK gets the correct events.
2022-03-16 Paul Eggert <eggert@cs.ucla.edu>
Simplify generate-new-buffer-name randomness
* src/buffer.c (Fgenerate_new_buffer_name):
Simplify by calling get_random instead of Frandom;
thats random enough here.
2022-03-16 Paul Eggert <eggert@cs.ucla.edu>
Improve random bignum generation
* src/bignum.c (get_random_limb, get_random_limb_lim)
(get_random_bignum): New functions, for more-efficient
generation of random bignums without using Frem etc.
* src/fns.c (get_random_fixnum): New function.
(Frandom): Use it, and get_random_bignum.
Be consistent about signalling nonpositive integer arguments;
since zero is invalid, Qnatnump is not quite right here.
* src/sysdep.c (get_random_ulong): New function.
2022-03-16 Alan Mackenzie <acm@muc.de>
Strip positions from symbols before the eval in eval-{when,and}-compile.
This fixes bug #54079.
* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Change
the position of 'byte-run-strip-symbol-positions' in the eval-when-compile
entry. Add a call to `byte-run-strip-symbol-positions' in the
eval-and-compile entry.
2022-03-16 Robert Pluim <rpluim@gmail.com>
Report buffer-name when local mode-line is invalid
* lisp/files.el (hack-local-variables-prop-line): Add '(buffer-name)'
to the message reporting the malformed mode-line.
2022-03-16 Robert Pluim <rpluim@gmail.com>
Guard against custom entries that can contain NULs
There are custom entries that contain lambda's as values by default,
which can result in them containing embedded NULs after
byte-compilation, which wreaks havoc when they are saved to .emacs and
later read in. (Bug#52554)
* lisp/cus-edit.el (custom-save-all): Bind
print-escape-control-characters to t.
* lisp/startup.el (startup--load-user-init-file): Bind
inhibit-null-byte-detection to t.
2022-03-16 Robert Pluim <rpluim@gmail.com>
Improve error message for 'not running' processes
The current error message is simply 'not running', but
'status_message' can give information about why the process is in that
state, such as network errors, so return that as well. (Bug#53762)
* src/process.c (send_process, Fprocess_send_eof): Add the output of
'status_message' to the error string.
2022-03-16 Manuel Giraud <manuel@ledu-giraud.fr>
* lisp/net/tramp-sh.el (tramp-find-file-exists-command): Fix comment.
2022-03-16 Robert Pluim <rpluim@gmail.com>
Link with libdl when using pgtk
* configure.ac: Define LIBMODULES on GNU/Linux when using pgtk, even
when not using modules, since pgtkterm.c uses dlsym. (Bug#54378)
2022-03-16 Po Lu <luangruo@yahoo.com>
* doc/lispref/frames.texi (x-begin-drag): Improve wording.
2022-03-16 Po Lu <luangruo@yahoo.com>
Fix 32-bit Haiku build
* src/haikuselect.h (be_enum_message): Fix declaration for
32-bit types.
2022-03-16 Po Lu <luangruo@yahoo.com>
Add support for dropping plain text on Haiku
* haiku-win.el (haiku-dnd-handle-drag-n-drop-event): Handle
`text/plain'.
2022-03-16 Po Lu <luangruo@yahoo.com>
Redo Haiku DND support
* lisp/term/haiku-win.el (haiku-dnd-handle-drag-n-drop-event):
Update for new DND event format.
* src/haiku_io.c (haiku_len): Handle DRAG_AND_DROP_EVENTs.
* src/haiku_select.cc (be_enum_message, be_get_refs_data)
(be_get_message_data): New function.
* src/haiku_support.cc (class Emacs): Remove `RefsReceived'.
(MessageReceived): Generate new kind of drag-n-drop events.
* src/haiku_support.h (enum haiku_event_type): Rename
`REFS_EVENT' to `DRAG_AND_DROP_EVENT'.
(struct haiku_refs_event): Delete struct.
(struct haiku_drag_and_drop_event): New struct.
* src/haikuselect.c (haiku_message_to_lisp): New function.
(syms_of_haikuselect): New symbols.
* src/haikuselect.h: Update prototypes.
* src/haikuterm.c (haiku_read_socket): Handle new type of
drag-and-drop events by serializing drop message to Lisp and
letting Lisp code do the processing.
* src/haikuterm.h: Update prototypes.
2022-03-16 Eli Zaretskii <eliz@gnu.org>
Fix last change in frames.texi
* doc/lispref/frames.texi (Drag and Drop): Improve and clarify the
wording.
2022-03-16 Po Lu <luangruo@yahoo.com>
Pacify compiler warning in handle_one_xevent
* src/xterm.c (x_dnd_get_target_window): Set proto_out even if
it won't be used because target is None. Reported by Lars
Ingebrigtsen <larsi@gnus.org>.
2022-03-16 Po Lu <luangruo@yahoo.com>
Correct last change for return-frame drags
* src/xterm.c (handle_one_xevent): Use `x_any_window_to_frame'
to determine `x_dnd_return_frame_object'.
2022-03-16 Po Lu <luangruo@yahoo.com>
Fix minor bugs with XDND support
* lisp/mouse.el (mouse-drag-and-drop-region): Report more
selection targets for the benefit of Qt and Mozilla.
* lisp/select.el (xselect--encode-string)
(selection-converter-alist): Add new selection targets.
* src/xterm.c (x_dnd_get_window_proxy): New function.
(x_dnd_get_target_window): New argument proto_out, and return
first window with XdndAware instead of bottommost window.
(handle_one_xevent): Use new argument `proto_out'.
2022-03-16 Po Lu <luangruo@yahoo.com>
Fix XI 2.0 build
* src/xterm.c (handle_one_xevent): Move declaration of dummy out
of HAVE_XINPUT2_1.
2022-03-16 Po Lu <luangruo@yahoo.com>
Fix tooltip text properties showing up in dragged text
* lisp/mouse.el (mouse-drag-and-drop-region): Directly call
x-show-tip and x-hide-tip instead of going through tooltip-show.
2022-03-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
62e830c3d9 * doc/misc/transient.texi: Fix @dircategory to "Emacs misc...
2022-03-16 Po Lu <luangruo@yahoo.com>
Better handle drag-and-drop from one Emacs frame to another
* doc/lispref/frames.texi (Drag and Drop): Document new
parameter `return-frame' to `x-begin-drag'.
* lisp/mouse.el (mouse-drag-and-drop-region): Utilize new
feature.
* src/xfns.c (Fx_begin_drag): New parameter `return-frame'.
* src/xterm.c (x_dnd_begin_drag_and_drop): New parameter
return_frame_p.
(handle_one_xevent): Set new flags and return frame whenever
appropriate.
* src/xterm.h: Update prototypes.
2022-03-15 Po Lu <luangruo@yahoo.com>
* src/xfns.c (Fx_begin_drag): Improve doc string.
2022-03-15 Po Lu <luangruo@yahoo.com>
Add support for dragging text from Emacs to other programs
This still probably needs some more protection from
malfunctioning clients which delete windows at random, but I
don't know if that's a problem in practice.
* doc/emacs/frames.texi (Drag and Drop):
* doc/lispref/frames.texi (Drag and Drop): Document new
features.
* etc/NEWS: Announce new function `x-begin-drag' and new user
option `mouse-drag-and-drop-region-cross-program'.
* lisp/mouse.el (mouse-drag-and-drop-region-cross-program): New
user option.
(x-begin-drag): New variable declaration.
(mouse-drag-and-drop-region): If the mouse moves out of an Emacs
frame, begin a window system drag.
* lisp/x-dnd.el (x-dnd-handle-xdnd): Remove left-over debugging
code.
* src/xfns.c (Fx_set_mouse_absolute_pixel_position): Fix
indentation of opening paren.
(Fx_begin_drag): New function.
(syms_of_xfns): Define new subr.
* src/xselect.c (x_timestamp_for_selection): New function.
* src/xterm.c (X_DND_SUPPORTED_VERSION): New preprocessor
declaration.
(x_dnd_get_window_proto, x_dnd_send_enter, x_dnd_send_position)
(x_dnd_send_leave, x_dnd_send_drop, x_set_dnd_targets)
(x_dnd_begin_drag_and_drop): New functions.
(handle_one_xevent): Handle drag-and-drop motion and button
events when active.
(x_free_frame_resources): If f is the DND source, stop
drag-and-drop.
(x_term_init): Intern new atoms.
(syms_of_xterm): New symbol QXdndSelection.
* src/xterm.h (struct x_display_info): New atoms
Xatom_XdndAware, Xatom_XdndSelection, Xatom_XdndTypeList,
Xatom_XdndActionCopy, Xatom_XdndActionMove,
Xatom_XdndActionLink, Xatom_XdndActionAsk,
Xatom_XdndActionPrivate, Xatom_XdndActionList,
Xatom_XdndActionDescription, Xatom_XdndProxy, Xatom_XdndEnter,
Xatom_XdndPosition, Xatom_XdndStatus, Xatom_XdndLeave,
Xatom_XdndDrop, and Xatom_XdndFinished.
2022-03-15 Po Lu <luangruo@yahoo.com>
Fix build with GTK 3.18.0 or earlier
* src/gtkutil.c (xg_update_scroll_bar_pos)
(xg_update_horizontal_scrollbar_pos): Avoid
gtk_widget_queue_allocate on older GTK versions.
2022-03-15 Eli Zaretskii <eliz@gnu.org>
Clean up implementation of N0 per UAX#9
* src/bidi.c (bidi_resolve_brackets): Instead of requiring
prev_for_neutral's type to be known, fall back on SOS, per
the UBA.
2022-03-15 Sam Steingold <sds@gnu.org>
Extract `gnus-collect-urls-from-article' from `gnus-summary-browse-url'
* lisp/gnus-sum.el (gnus-collect-urls-from-article):
New function, extracted from `gnus-summary-browse-url'.
(gnus-summary-browse-url): Use it.
2022-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/url/url-vars.el: Cosmetic changes
(url-mime-separator-chars): Simplify.
(url-interactive-p): Tweak docstring.
2022-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
doctex-mode: Try and fix bug#35140
* lisp/textmodes/tex-mode.el (doctex-syntax-propertize-rules):
Add support for the new ^^X and consider the first ^ of ^^A to be the
closing char for the previous comment.
(doctex-font-lock-^^A): Simplify accordingly.
2022-03-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix byte-code button in help--describe-command
* lisp/help.el (help--describe-command): Fix byte-code button
(bug#24235).
2022-03-15 Lars Ingebrigtsen <larsi@gnus.org>
Revert "New command `gnus-summary-browse-all-urls' bound to "v""
This reverts commit f52dcfd03ad542704d9a43faab0c33be09ab442e.
It was never agreed that this should be added.
2022-03-15 João Távora <joaotavora@gmail.com>
Don't advertise didchangewatchedfiles on tramp
* eglot.el (eglot--trampish-p): New helper.
(eglot-client-capabilities): Use it.
(eglot--uri-to-path): Use it.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/883
2022-03-15 Po Lu <luangruo@yahoo.com>
Fix some minor glitches with Haiku scroll bars
* src/haiku_support.cc (MouseDown): Don't start overscroll if
dragging started inside a button.
2022-03-15 Po Lu <luangruo@yahoo.com>
Fix crashes when trying to pop up a menu on GTK 2
* src/xterm.c (handle_one_xevent): Respect finish when
dispatching copy.
2022-03-15 Po Lu <luangruo@yahoo.com>
Fix some issues with input on GTK 2 builds
* src/xfns.c (setup_xi_event_mask): Don't ask for XI key press
on GTK 2.
2022-03-14 Po Lu <luangruo@yahoo.com>
Fix extraneous ifdef in xwidgets code
* xterm.c (handle_one_xevent): Pass GesturePinchEnd events to
xwidgets regardless of no-longer-present define.
2022-03-14 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Fix use of wrong motion structure.
2022-03-14 Po Lu <luangruo@yahoo.com>
Stop relying on dynlib for PGTK interrupt input
* src/pgtkterm.c (pgtk_term_init): Use dlopen and dlsym directly
instead of dynlib functions. (bug#54378)
2022-03-14 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Fix a bug and some docstrings
* lisp/net/eudc.el (eudc-register-protocol): Add doc string.
(eudc-expand-inline): Add TRY-ALL-SERVERS to docstring.
(eudc-query-with-words): Fix early-return bug reported by
Alexander Adolf.
(eudc-menu): Add doc string.
(eudc-install-menu): Likewise.
2022-03-14 Paul Eggert <eggert@cs.ucla.edu>
Another fix for the no-toolkit build
This should be better in the long run.
* oldXMenu/Activate.c (XMenuActivate): Revert previous change,
eliminating the goto it introduced.
* oldXMenu/XMenuInt.h: Include <attribute.h>, for FALLTHROUGH.
2022-03-14 Paul Eggert <eggert@cs.ucla.edu>
Prefer CALLN
* src/bytecode.c (Fbyte_code):
* src/composite.c (Fclear_composition_cache):
Prefer CALLN to doing it by hand.
* src/fns.c (ccall2): Remove. All uses replaced by CALLN.
2022-03-14 Sam Steingold <sds@gnu.org>
New command `gnus-summary-browse-all-urls' bound to "v"
* lisp/gnus-sum.el (gnus-collect-urls-from-article): New function,
extracted from `gnus-summary-browse-url'.
(gnus-summary-browse-url): Use it; also use `browse-url-button-open-url'
to handle the prefix argument.
(gnus-summary-browse-all-urls): New command.
(gnus-summary-mode-map): Bind `gnus-summary-browse-all-urls' to "v".
2022-03-14 Po Lu <luangruo@yahoo.com>
Fix the no toolkit build
* Activate.c (XMenuActivate): Stop relying on fallthroughs
inside switch statement. (bug#54382)
2022-03-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix RFC2047 encoding of Disposition-Notification-To
* lisp/mail/rfc2047.el (rfc2047-header-encoding-alist): Encode
Disposition-Notification-To as an address header (bug#54383).
2022-03-14 Po Lu <luangruo@yahoo.com>
Handle position specification hints on X toolkit builds
* src/xterm.c (x_wm_set_size_hint): Set PPosition and USPosition
independently of Xt.
2022-03-14 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Simplify Edebug spec
* lisp/simple.el (cursor-face-highlight-mode): Fix copy&paste
2022-03-14 Lars Ingebrigtsen <larsi@gnus.org>
Improve the execute-kbd-macro doc string
* src/macros.c (Fexecute_kbd_macro): Improve the doc string
(bug#14206).
2022-03-14 Philipp Stephani <phst@google.com>
Make Edebug specification for 'cl-defstruct' more lenient.
For example, 'xref-item' uses the list form of ':noinline'.
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Accept ':noinline' and
':named' with an argument.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct/edebug): New
unit test.
2022-03-14 Lars Ingebrigtsen <larsi@gnus.org>
Don't always escape "." and "?" in `prin1'
* src/print.c (print_object): Only escape "." and "?" when
appearing as the first character in a symbol (bug#23130).
2022-03-14 Martin Rudalics <rudalics@gmx.at>
Init 'rest' in 'balance-windows-2' (Bug#54380)
* lisp/window.el (balance-windows-2): Give 'rest' an initial
value (Bug#54380).
2022-03-14 Jimmy Aguilar Mena <spacibba@aol.com>
Add local to remove-hook in cursor-face-highlight-mode
Add LOCAL flag in remove-hook and reword the dock string.
Thanks to Stefan Monnier for this
2022-03-14 Po Lu <luangruo@yahoo.com>
Clean up some Haiku toolkit code
* src/haiku_io.c (haiku_read_with_timeout): Accept `bigtime_t'
instead of `time_t' for values which are cast to bigtime_t
anyway.
* src/haiku_support.cc (BMenu_run): Read all help events instead
of just one.
* src/haiku_support.h: Update prototypes.
2022-03-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1ec4063017 ; * admin/make-tarball.txt: Minor updates.
2022-03-13 Po Lu <luangruo@yahoo.com>
Fix extraneous overscroll activation on Haiku
* src/haiku_support.cc (class EmacsScrollBar): New field
`maybe_overscroll'.
(MouseDown): Set that field.
(MouseUp): Clear that field.
(MouseMoved): Also test `maybe_overscroll' to ensure that a grab
started inside the scroll bar.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Improve cursor-face-highlight-mode a bit more.
Add the hook locally to the buffer only when needed to avoid even
calling the function redisplay--update-cursor-face-highlight when the
mode is enabled.
* lisp/simple.el (redisplay--update-cursor-face-highlight) : Remove
unneeded condition.
(cursor-face-highlight-mode) : Conditionally add or remove
redisplay--update-cursor-face-highlight to pre-redisplay-functions with
buffer local flag.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Improve the cursor-face feature.
Use a minor mode to reduce potential performance issues.
* lisp/simple.el (cursor-face-highlight-mode) : New minor mode
(completion-setup-function) : Use the new minor mode
cursor-face-highlight-mode in completions.
(redisplay--unhighlight-overlay-function) : Add -- to the name
(redisplay--highlight-overlay-function) : Make the face parameter
optional and add -- in the name.
2022-03-13 Po Lu <luangruo@yahoo.com>
Fix tool-bar highlight persisting after mouse moves onto WM frame
* src/xterm.c (handle_one_xevent): Always report MotionNotify
coordinates in terms of the edit widget.
2022-03-13 Glenn Morris <rgm@gnu.org>
* src/bytecode.c: Include sysstdio.h, for fprint, stderr.
2022-03-13 Po Lu <luangruo@yahoo.com>
Enable overscroll on Haiku horizontal scroll bars
* src/haiku_support.cc (MouseMoved): Handle horizontal
directions correctly.
* src/haikuterm.c (haiku_set_horizontal_scroll_bar_thumb):
Enable overscrolling on scroll bar widget.
2022-03-13 Po Lu <luangruo@yahoo.com>
Fix scroll bar movement right before overscroll begins on Haiku
* src/haikuterm.c (haiku_set_scroll_bar_thumb): Make sure value
and size are within bounds even if portion adjustment is off.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Make the completion-header-format info more precise.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Simplify unneeded condition.
* lisp/minibuffer.el (display-completion-list) : The function
completion--insert-string already has a condition for when completions
is nil.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Rename hook
* lisp/simple.el (redisplay--update-cursor-property-highlight) : Renamed
to redisplay--update-cursor-property-highlight
2022-03-13 Lars Ingebrigtsen <larsi@gnus.org>
Really fix find-func for defgeneric
* lisp/emacs-lisp/find-func.el (find-function-regexp): Really add
defgeneric.
2022-03-13 Lars Ingebrigtsen <larsi@gnus.org>
Make vtable sorting stable
* lisp/emacs-lisp/vtable.el (vtable--sort): Make the sorting
stable.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Extend completion-auto-help 'always and 'visible.
Make them behave the same also with exact but not single completion.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Use the new cursor-face feature to highlight completions.
* lisp/minibuffer.el (completions-highlight-face) : New custom.
(completions-highlight-mode) : Removed
2022-03-13 Paul Eggert <eggert@cs.ucla.edu>
Clang debug notes
* etc/DEBUG: Dont imply Clang works as well as GCC when
debugging Emacs. Mention a coverage problem with Clang.
2022-03-13 Jim Porter <jporterbugs@gmail.com>
Fix evaluation of negated argument predicates in Eshell
* lisp/eshell/em-pred.el (eshell-add-pred-func): Let-bind 'pred' so
the lambdas see the original value (bug#54369).
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Rename completion-header-string to completion-header-format
And use a propertized default value.
2022-03-13 Mattias Engdegård <mattiase@acm.org>
* src/bytecode.c (sf_set_ptr): Cast pointer to type of right size.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Add new special text attribute cursor-face
Reuse the functions for highlight region.
* lisp/simple.el (redisplay-unhighlight-overlay-function) :
(redisplay-highlight-overlay-function) : New functions from previous
lambda
(redisplay-unhighlight-region-function) :
(redisplay-highlight-region-function) : Redefined with the new functions.
(redisplay--update-cursor-property-highlight) : New function for
pre-redisplay-functions.
2022-03-13 Mattias Engdegård <mattiase@acm.org>
Separate bytecode stack
Use a dedicated stack for bytecode, instead of using the C stack.
Stack frames are managed explicitly and we stay in the same
exec_byte_code activation throughout bytecode function calls and
returns. In other words, exec_byte_code no longer uses recursion
for calling bytecode functions.
This results in better performance, and bytecode recursion is no
longer limited by the size of the C stack. The bytecode stack is
currently of fixed size but overflow is handled gracefully by
signalling a Lisp error instead of the hard crash that we get now.
In addition, GC marking of the stack is now faster and more precise.
Full precision could be attained if desired.
* src/alloc.c (ATTRIBUTE_NO_SANITIZE_ADDRESS): Make non-static.
* src/bytecode.c (enum stack_frame_index, BC_STACK_SIZE)
(sf_get_ptr, sf_set_ptr, sf_get_lisp_ptr, sf_set_lisp_ptr)
(sf_get_saved_pc, sf_set_saved_pc, init_bc_thread, free_bc_thread)
(mark_bytecode, Finternal_stack_stats, valid_sp): New.
(exec_byte_code): Adapt to use the new bytecode stack.
(syms_of_bytecode): Add defsubr.
* src/eval.c (unwind_to_catch): Restore saved stack frame.
(push_handler_nosignal): Save stack frame.
* src/lisp.h (struct handler): Add act_rec member.
(get_act_rec, set_act_rec): New.
* src/thread.c (mark_one_thread): Call mark_bytecode.
(finalize_one_thread): Free bytecode thread state.
(Fmake_thread, init_threads): Set up bytecode thread state.
* src/thread.h (struct bc_thread_state): New.
(struct thread_state): Add bytecode thread state.
2022-03-13 Mattias Engdegård <mattiase@acm.org>
Simplify exec_byte_code arguments
Pass the function object and encoded arity, not the other components.
This speeds up several call paths and is necessary for improvements to
come.
* src/bytecode.c (Fbyte_code): Make a new byte code object for
execution. This is slower but performance isn't critical here.
(exec_byte_code): Retrieve components from the passed function.
* src/eval.c (fetch_and_exec_byte_code):
* src/lisp.h (exec_byte_code): Update signature.
2022-03-13 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/ange-ftp.el (ange-ftp-ls): Make a loop when sanitizing LSARGS.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Make minibuffer-hide-completions interactive.
Mainly to find a binding for it.
2022-03-13 Jimmy Aguilar Mena <spacibba@aol.com>
Add completion-header-string.
* doc/emacs/mini.texi (completion-header-string): Remove
completion-header-text-property-list and completion-lazy-count.
(completion-header-string): Substitutes the removed variable.
2022-03-13 Lars Ingebrigtsen <larsi@gnus.org>
Add cl-defgeneric to find-func, too
* lisp/emacs-lisp/find-func.el (find-function-regexp): Add
cl-defgeneric, too (bug#54343).
2022-03-13 Po Lu <luangruo@yahoo.com>
Allow overscrolling on Haiku scroll bars that are full
* src/haiku_support.cc (MouseMoved): Allow overscrolling even if
portion is less than 1.0.
2022-03-13 Po Lu <luangruo@yahoo.com>
Fix pointer event tracking on top of Haiku scroll bars
* src/haiku_support.cc (MouseDown): Set correct mouse event mask
in case the scroll bar widget decides to not do that.
2022-03-13 Po Lu <luangruo@yahoo.com>
Fix splurious button events being generated on Haiku
* src/haiku_support.cc (MouseDown, MouseUp): Don't process if
the grab is not appropriate for the buttons that were pressed.
2022-03-13 Po Lu <luangruo@yahoo.com>
Fix setting IM spot after key press events
* src/xterm.c (handle_one_xevent): Check f is not NULL before
trying to set its status area and set preedit spot location
after KeyPress events.
2022-03-13 Mattias Engdegård <mattiase@acm.org>
Fix esh-proc-tests on macOS
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline):
Add pattern matching output when killing a process on macOS (and
possibly other BSDs).
2022-03-13 Visuwesh <visuweshm@gmail.com> (tiny change)
* quail.el (quail-define-package): Describe VAR form in DOCSTRING better.
Bug#50143
2022-03-13 Visuwesh <visuweshm@gmail.com> (tiny change)
Follow contemporary practices in the Tamil input methods
* lisp/language/ind-util.el (indian-tml-base-digits-table): New table
to translate digits.
(indian-tml-base-table): Don't translate digits.
(indian-tml-itrans-digits-v5-hash): Hashtable that translates digits.
* lisp/leim/quail/indian.el (quail-tamil-itrans-compute-signs-table)
(quail-tamil-itrans-various-signs-table)
(quail-tamil-itrans-various-signs-and-digits-table): Separate out the
digits from the signs table using the function
'quail-tamil-itrans-compute-signs-table'.
(tamil-itrans-digits, tamil-inscript-digits): New input methods that
translates digits.
(tamil-itrans, tamil-inscript): Fix table inclusion.
* etc/NEWS: Announce the change.
Fixes bug#50143.
2022-03-13 Po Lu <luangruo@yahoo.com>
Fix small regression for horizontal scroll bars
* src/haikuterm.c (haiku_read_socket): Restore previous
horizontal scrollbar code, since the change it was intended for
was never made.
2022-03-13 Po Lu <luangruo@yahoo.com>
Improve overscrolling support on Haiku
* src/haiku_support.cc (class EmacsScrollBar): New field
`real_max_value'.
(MessageReceived): Set real max value.
(MouseMoved): Get rid of magic numbers by using real max value
instead.
2022-03-13 Po Lu <luangruo@yahoo.com>
Allow dragging scroll bar for overscroll on Haiku
* src/haiku_support.cc (class EmacsScrollBar): New fields
`in_overscroll', `can_overscroll', `last_overscroll',
`last_reported_overscroll_value' and `max_value'.
(ValueChanged): Make very sure extraneous value are not
generated.
(MouseUp): Clear overscroll if enabled.
(MouseMoved): If overscroll is enabled and dragging downwards
fails to dislodge the maximum value, enable overscrolling.
(BView_scroll_bar_update): New parameter `can_overscroll'
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_set_scroll_bar_thumb)
(haiku_set_horizontal_scroll_bar_thumb): Adjust parameters to
scroll bar update functions.
(haiku_read_socket): Take ceiling of bar position if
horizontal.
2022-03-13 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e5b191465d ; * admin/authors.el (authors-canonical-file-name): Remove...
6b0fdf73cf ; Fix data structures in authors.el
2022-03-12 Stefan Monnier <monnier@iro.umontreal.ca>
Flocate_file_internal: Protect from `.eln` remapping
Don't use `openp`s functionality to remap `.elc` files to `.eln` files
since `locate-file` is not specific to ELisp files.
This should be not just simpler but more robust than the current
hack which tries to undo the damage after the fact.
* src/lread.c (Flocate_file_internal): Don't map `.elc` to `.eln`.
* lisp/files.el (locate-file): Simplify accordingly.
2022-03-12 Po Lu <luangruo@yahoo.com>
Improve reliaibility of scroll bar dimensions adjustment on GTK 3
* src/gtkutil.c (xg_scroll_bar_size_allocate_cb): New function.
(xg_finish_scroll_bar_creation): Attach new signal.
(xg_update_scrollbar_pos)
(xg_update_horizontal_scrollbar_pos): Also set window dimensions
for the event box.
* src/xterm.c (x_scroll_bar_configure): New function.
* src/xterm.h: Update prototypes.
2022-03-12 Lars Ingebrigtsen <larsi@gnus.org>
Further locate-file fixes on nativecomp
* lisp/files.el (locate-file): Fix up previous locate-file change
-- don't unconditionally return .elc on nativecomp.
2022-03-12 Lars Ingebrigtsen <larsi@gnus.org>
Disable esh-proc-test/kill-pipeline on EMBA
Test esh-proc-test/kill-pipeline condition:
(ert-test-failed
((should
(string-match-p
(rx ...)
(buffer-substring-no-properties output-start ...)))
:form
(string-match-p "\\(?:\\(?:interrupt\\|killed\\)\n\\)" "")
2022-03-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix EMBA failure for ert-test-record-backtrace
* test/lisp/emacs-lisp/ert-tests.el (ert-test-record-backtrace): Make
this work with AOT.
2022-03-12 Lars Ingebrigtsen <larsi@gnus.org>
Return the same file from locate-file in nativecomp and non
* lisp/files.el (locate-file): Return the .elc file (if it exists)
in nativecomp, too, to mimic the behaviour from non-nativecomp
builds (bug#51308).
2022-03-12 Lars Ingebrigtsen <larsi@gnus.org>
Make find-function-regexp also find cl-defun/defmethod
* lisp/emacs-lisp/find-func.el (find-function-regexp): Also find
cl-defun and cl-defmethod (bug#54343).
2022-03-12 Colin Woodbury <colin@fosskers.ca>
* lisp/progmodes/python.el: Account for new keywords.
* lisp/progmodes/python.el (python-font-lock-keywords-level-2): As
of Python 3.10, Python has structured pattern matching. This adds
two new keywords which need to be highlighted (bug#54345).
2022-03-12 Alexander Adolf <alexander.adolf@condition-alpha.com>
Facilitate Customisation of Message-Mode Header Completion Behaviour
* lisp/gnus/message.el (message-email-recipient-header-regexp):
New user option.
(message-completion-alist): Use it here.
2022-03-12 Lars Ingebrigtsen <larsi@gnus.org>
Mark tramp-test30-make-process unstable on EMBA
* test/lisp/net/tramp-tests.el (tramp-test30-make-process): This times
out on EMBA.
2022-03-12 Mattias Engdegård <mattiase@acm.org>
Remove never-used relative jump opcodes
* src/bytecode.c (BYTE_CODES, exec_byte_code):
Remove relative jump opcodes that seem to have been a short-lived
experiment, never used in a release.
2022-03-12 Mattias Engdegård <mattiase@acm.org>
Remove debug code for opcodes long gone
* src/bytecode.c (BYTE_CODES, enum byte_code_op, exec_byte_code):
Don't display custom messages in debug mode for Bscan_buffer and
Bset_mark which were removed long ago.
2022-03-12 Mattias Engdegård <mattiase@acm.org>
Faster bytecode immediate argument fetching
* src/bytecode.c (FETCH2):
Use `|` instead of `+` to combine the bytes forming a 16-bit immediate
argument so that GCC (prior to version 12) recognises the idiom and
generates a 16-bit load. This applies for little-endian machines with
cheap unaligned accesses such as x86[-64], arm64 and power64le.
This 1-character change results in a measurable speed gain on many
kinds of Lisp code, as 16-bit immediates are used by all jump
instructions.
Clang performs this optimisation for both `+` and `|` from version 10.
2022-03-12 Mattias Engdegård <mattiase@acm.org>
Maintain end of specpdl instead of size
Keep track of the end of specpdl explicitly since that is what we are
comparing against on critical code paths.
* src/eval.c (init_eval_once_for_pdumper, signal_or_quit)
(grow_specpdl_allocation):
* src/fileio.c (Fdo_auto_save):
* src/lisp.h (grow_specpdl):
* src/thread.c (run_thread, Fmake_thread):
* src/thread.h (struct thread_state):
Replace specpdl_size with specpdl_end, according to the equation
specpdl_end = specpdl + specpdl_size.
2022-03-12 Mattias Engdegård <mattiase@acm.org>
Inline record_in_backtrace
It's critical in several function call paths.
* src/eval.c (grow_specpdl_allocation): Make non-static.
(grow_specpdl, record_in_backtrace): Move from here...
* src/lisp.h (grow_specpdl, record_in_backtrace): ... to here,
and declare inline.
2022-03-12 Po Lu <luangruo@yahoo.com>
Fix the PGTK build
* src/gtkutil.c (xg_finish_scroll_bar_creation): Fix ifdefs
preventing x_window from being correctly set.
(xg_get_scroll_id_for_window): Ifdef out unused function.
2022-03-12 Po Lu <luangruo@yahoo.com>
Try really hard to make GTK 3 scroll bars fit
* src/gtkutil.c (xg_get_widget_from_map): New argument DISPLAY.
All callers changed.
(find_scrollbar_cb): New function.
(xg_finish_scroll_bar_creation, xg_remove_scroll_bar)
(xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos)
(xg_set_toolkit_scroll_bar_thumb)
(xg_set_toolkit_horizontal_scroll_bar_thumb, xg_initialize):
Stop using id_to_widget_map on X builds with GTK 3 and set the
event box as the x_window instead.
* src/xterm.c (x_window_to_scroll_bar): Don't look for ID on GTK
3.
(handle_one_xevent): If a ConfigureNotify event is found for a
scroll bar and the dimensions are wrong, resize the X window to
the right ones.
2022-03-12 Felicián Németh <felician.nemeth@gmail.com>
Change capability 'documentchanges' to t
Eglot does support woskspaceEdit/documentChanges, but failed to
advertise this fact.
Per https://github.com/joaotavora/eglot/issues/873.
* eglot.el (eglot-client-capabilities): Set documentChanges to t.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/853
2022-03-12 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
dbe6a3ecf7 Fix regression in 'custom-prompt-customize-unsaved-options'
a9920473f6 Improve documentation of 'map-charset-chars'
2022-03-12 Po Lu <luangruo@yahoo.com>
Fix some issues with input methods that depend on button state
* src/xterm.c (handle_one_xevent): Translate button state before
filtering events.
2022-03-11 Po Lu <luangruo@yahoo.com>
Fix horizontal scroll bar updating on Haiku
* src/haikuterm.c (haiku_set_horizontal_scroll_bar_thumb): Just
take portion and position without adjustments.
2022-03-11 Po Lu <luangruo@yahoo.com>
Use more reasonable default timeouts in Haiku menu loop
* src/haiku_support.cc (BMenu_run): Set default timeout to 10
seconds.
2022-03-11 Po Lu <luangruo@yahoo.com>
Make C-mouse-3 on scroll bars work on Haiku
* src/haiku_support.cc (class EmacsScrollBar): New field
`handle_button'.
(MouseDown, MouseUp): Pass button events with ControlMask to
parent view.
2022-03-11 Po Lu <luangruo@yahoo.com>
Slightly improve scrollbar position accounting on Haiku
* src/haiku_support.cc (MessageReceived): Use floats for
calculating portion and subtract proportion directly.
* src/haikuterm.c (haiku_set_scroll_bar_thumb): Take ceiling of
value instead of rounding it.
2022-03-11 Jimmy Aguilar Mena <spacibba@aol.com>
Add two new options for completions.
* doc/emacs/mini.texi (completion-lazy-count):
(completion-header-text-property-list) : New customs
Updated NEWS and manual.
2022-03-11 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Support querying all servers
* lisp/net/eudc.el (eudc-expand-try-all): New command.
(eudc-expand-inline): Add `try-all-servers' optional argument.
Update `eudc-query-with-words' call.
(eudc-query-with-words): Add `try-all-servers' optional argument.
Move response formatting into main query loop. Query next server
if `try-all-servers' is non-nil.
(eudc-tail-menu): Add "Expand Inline Query Trying All Servers"
menu item.
* doc/misc/eudc.texi (Installation): Recommend
eudc-expand-try-all.
(Emacs-only Configuration): Likewise.
(Inline Query Expansion, Inline Query Expansion): Likewise.
Document `eudc-expand-try-all'.
* etc/NEWS (EUDC): Describe new 'eudc-expand-try-all' command.
2022-03-11 Thomas Fitzsimmons <fitzsim@fitzsim.org>
EUDC: Update save-query-as-kill name and docstring
* lisp/net/eudc-vars.el (eudc-server): Fix quoting for checkdoc.
(eudc-expansion-save-query-as-kill): Rename from
`eudc-expansion-overwrites-query'. Define obsolete variable
alias. Update comment and documentation.
* lisp/net/eudc.el (eudc-expand-inline): Rename `replace' argument
to `save-query-as-kill'. Update argument documentation.
* doc/misc/eudc.texi (Inline Query Expansion): Rename
`eudc-expand-inline' argument.
* etc/NEWS (EUDC): Document `eudc-expansion-overwrites-query'
rename to `eudc-expansion-save-query-as-kill'.
2022-03-11 Manuel Uberti <manuel.uberti@inventati.org>
Use new jdtls script for eclipse jdt
Per https://github.com/joaotavora/eglot/issues/864.
* eglot.el (eglot-server-programs): use new jdtls
(eglot--eclipse-jdt-contact, eglot--eclipse-jdt). Remove.
(eglot-execute-command eglot-eclipse-jdt): Remove.
(eglot-initialization-options eglot-eclipse-jdt): Remove.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/863
2022-03-11 Po Lu <luangruo@yahoo.com>
Fix a crash inside Haiku popup menus
* src/haiku_support.cc (BMenu_run): Handle B_WOULD_BLOCK from
wait_for_objects loop.
2022-03-11 Po Lu <luangruo@yahoo.com>
Fix initial values of scroll bar foreground and background on GTK 3
* src/gtkutil.c (xg_create_frame_widgets): Stop creating
scrollbar stylesheet providers.
* src/xfns.c (Fx_create_frame): Create scroll bar stylesheet
providers here instead.
(x_set_scroll_bar_background):
(x_set_scroll_bar_foreground): Ignore tooltip frames.
2022-03-11 Po Lu <luangruo@yahoo.com>
Implement customization of scroll bar colors on GTK 3
* src/gtkutil.c (xg_create_frame_widgets): Create CSS providers
for scroll bars.
(xg_finish_scroll_bar_creation): Attach created CSS providers.
* src/xfns.c (x_set_scroll_bar_foreground):
(x_set_scroll_bar_background): Put appropriate content into CSS
providers.
* src/xterm.c (x_free_frame_resources): Free CSS providers.
* src/xterm.h (struct x_output): New fields for scroll bar
stylesheet providers.
2022-03-11 Po Lu <luangruo@yahoo.com>
* src/frame.c (scroll_bar_adjust_thumb_portion_p): Adjust doc string.
2022-03-11 Po Lu <luangruo@yahoo.com>
Improve scroll bar treatment on Haiku
* src/haiku_support.cc (MessageReceived): Subtract portion from
range of scroll bar.
* src/haikuterm.c (BE_SB_MAX): Adjust values for better
rounding.
(haiku_set_scroll_bar_thumb): Round values instead of
truncating them.
2022-03-11 Po Lu <luangruo@yahoo.com>
Fix inconsistent thumb position on Haiku scroll bars
* src/haikuterm.c (haiku_set_scroll_bar_thumb): If
scroll_bar_adjust_thumb_portion is nil, directly calculate thumb
portions without setting page_size.
2022-03-11 Po Lu <luangruo@yahoo.com>
Handle Wayland displays correctly in browse-url
* lisp/net/browse-url.el (browse-url-process-environment): Use
WAYLAND_DISPLAY as the display environment variable on
PGTK. (bug#54333)
2022-03-11 Po Lu <luangruo@yahoo.com>
Allow C-mouse-2 to split windows on XInput 2 builds
* src/xterm.c (handle_one_xevent): Use x_scroll_bar_handle_click
if ControlMask is set.
2022-03-10 Po Lu <luangruo@yahoo.com>
Fix scroll bar portion on Haiku scroll bars
* src/haiku_support.cc (EmacsScrollBar): Set steps to
appropriate value.
(ValueChanged): Test new value against old value before sending
value event.
(MessageReceived): Handle portion and range.
(BView_scroll_bar_update): New argument for portion.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_set_scroll_bar_thumb):
(haiku_set_horizontal_scroll_bar_thumb): New functions.
(haiku_set_horizontal_scroll_bar):
(haiku_set_vertical_scroll_bar): Use those functions to set
scroll bar values.
(haiku_read_socket): Handle new meanings of scroll bar values.
* src/haikuterm.h (struct scroll_bar):
2022-03-10 Alan Third <alan@idiocy.org>
Fix NS toolbar identifier (bug#54326)
* src/nsterm.m ([EmacsWindow createToolbar:]): Set the identifier to
something that will always be unique to that frame.
2022-03-10 Juri Linkov <juri@linkov.net>
Fix new option completions-max-height and new values for completion-auto-help
* doc/emacs/mini.texi (Completion Options): Fix pxref for
"Buffer Display Action Alists".
* lisp/minibuffer.el (completion-auto-help): Explain new values in docstring.
(completions-max-height): Use choice to allow nil.
2022-03-10 Jimmy Aguilar Mena <spacibba@aol.com>
Add new mode completions-highlight-mode.
completions-max-height new custom variable.
2022-03-10 Jimmy Aguilar Mena <spacibba@aol.com>
completion-auto-help new values.
Added also entries to news and manual
2022-03-10 Augusto Stoffel <arstoffel@gmail.com>
Don't strip invisible text when formatting hover string
This was introduced in https://github.com/joaotavora/eglot/issues/482 due to a bad interaction with a specific
server. But this solution makes hyperlinks in Eldoc buffers
unclickable, because the markdown-mode function that visits a link
relies on the invisible text.
Per https://github.com/joaotavora/eglot/issues/866
* eglot.el (eglot--format-markup): Use buffer-string instead of
filter-buffer-substring
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/865
2022-03-10 Michael Albinus <michael.albinus@gmx.de>
Support remote home directories via connection property
* doc/misc/tramp.texi (Home directories): New section.
(Top, Usage): Add it to the menue.
(Predefined connection information): Mention "~".
(Multi-hops, File name syntax): Fix typos.
* lisp/net/tramp.el (tramp-handle-expand-file-name): Check for
remote home directory. (Bug#53847)
2022-03-10 Po Lu <luangruo@yahoo.com>
Fix display of minibuffer prompts in some circumstances on Haiku
* src/haikuterm.c (haiku_flush): Always flip buffers as long as
buffer flipping is not blocked.
2022-03-09 Po Lu <luangruo@yahoo.com>
Fix menu bar activation on PGTK
* src/gtkutil.c (menu_bar_button_pressed_cb): Only update menu
bar if no menu is active, and the event window is not the widget
window itself. Also make menu in use.
* src/pgtkmenu.c (popup_deactivate_callback): Make menu not in
use.
* src/xdisp.c (redisplay_internal): Return if popup_activated
also on PGTK.
2022-03-09 Po Lu <luangruo@yahoo.com>
Fix stray button release events being reported on GTK 2
* src/xterm.c (handle_one_xevent): Drop ButtonRelease events
that are destined for a popup menu.
2022-03-09 Po Lu <luangruo@yahoo.com>
Fix menu bar event detection on XI2 builds using Core Input
* src/gtkutil.c (xg_get_gdk_scale): Always return 1 on GTK+ 2.
(xg_event_is_for_menubar): Fix some ifdefs.
* src/xterm.c (handle_one_xevent): Update a comment.
2022-03-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix regression in vtable-goto-object
* lisp/emacs-lisp/vtable.el (vtable-goto-object): Fix moving to
the object.
2022-03-09 Po Lu <luangruo@yahoo.com>
Fix some issues with GTK native input and modifiers on GTK 2
* src/gtkutil.c (xg_widget_key_press_event_cb): Manually ignore
modifier keys on GTK 2.
2022-03-09 Po Lu <luangruo@yahoo.com>
Make XInput 2 features work on GTK 2 builds
* src/xfns.c (setup_xi_event_mask): On GTK 2, select for
button, motion, entry/exit and key events.
* src/xmenu.c (create_and_show_popup_menu): Clear XI grab if
appropriate.
* src/xterm.c (handle_one_xevent): Pass some kinds of input
extension events to GTK manually on versions of GTK+ that don't
understand them.
2022-03-09 Po Lu <luangruo@yahoo.com>
Fix GTK widgets not appearing inside child frames
* src/xfns.c (x_set_parent_frame): Disable GTK's own frame
synchronization in child frames.
2022-03-09 Po Lu <luangruo@yahoo.com>
Fix error when creating frames on NS with no main window
* nsfns.m (Fx_create_frame): If main window is not present,
center frame window instead of cascading it.
2022-03-09 Po Lu <luangruo@yahoo.com>
Don't update Haiku menu bar if nothing changed
* haikumenu.c (set_frame_menubar): If Lisp-level contents didn't
change, refrain from actually updating the menu bar.
2022-03-08 Po Lu <luangruo@yahoo.com>
Fix flicker during frame resize on Haiku
* haikuterm.c (haiku_update_end): Call BWindow_Flush directly.
(haiku_set_vertical_scroll_bar): Stop calling flush_frame.
(haiku_flush): Only flip buffer of tooltip frames.
2022-03-08 Po Lu <luangruo@yahoo.com>
Fix the MS-DOS build
* sed1v2.inp: Update for recent changes.
2022-03-08 Po Lu <luangruo@yahoo.com>
Improve handling of tooltips inside menus on Haiku
* src/haiku_support.cc (BMenu_run): Make
`process_pending_signals_function' return a struct timespec.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (haiku_process_pending_signals_for_menu):
Return result of `timer_run'.
* src/haikuterm.c (haiku_flush): Flip buffers if frame is dirty.
2022-03-08 Paul Eggert <eggert@cs.ucla.edu>
Decouple mod-test.c from Gnulib
mod-test.c should not use Gnulib code, as that creates
unnecessary coupling between Emacs internals and this test module.
Also Gnulib code is compiled without -fPIC whereas mod-test.c
needs -fPIC and recompiling Gnulib with -fPIC would be too painful.
* src/Makefile.in (LIB_NANOSLEEP): New macro.
(LIBES): Use it.
* test/Makefile.in (REPLACE_FREE, FREE_SOURCE_0, FREE_SOURCE_0):
Remove. All uses removed.
(LIB_CLOCK_GETTIME, LIB_NANOSLEEP): New macros.
(MODULE_CFLAGS): Do not -I from lib as that would include Gnulib
modifications to standard .h files (e.g., "#define nanosleep
rpl_nanosleep") and we dont want the Gnulib replacements.
Instead, for gmp.h (on platforms lacking <gmp.h>) simply '-I.'
with a suitable gmp.h.
(gmp.h): New rule to create a suitable gmp.h.
($(test_module)): Depend on config.h since the code uses config.h.
Depend on gmp.h if we need to create a suitable one.
If compiling mini-gmp.h, compile the original one and not
the Emacs-specific one, to lessen coupling with Emacs internals.
Link with LIB_CLOCK_GETTIME and LIB_NANOSLEEP.
(clean): Remove gmp.h.
* test/src/emacs-module-resources/mod-test.c: Dont include timespec.h.
All uses of timespec.h APIs changed to use system-supplied APIs.
Change _Static_assert to plain assert, so that we neednt rely
on Gnulibs _Static_assert.
(timespec_le) [CLOCK_REALTIME]: New function.
Change use of timespec_cmp changed to use this instead.
(Fmod_test_sleep_until, Fmod_test_nanoseconds):
Define these functions and their Lisp names mod-test-sleep-until
and mod-test-nanoseconds only if CLOCK_REALTIME,
since they now wont work on platforms lacking CLOCK_REALTIME.
(Fmod_test_nanoseconds): Just use _Static_assert since it
should work on all platforms.
* test/src/emacs-module-tests.el (mod-test-sleep-until)
(mod-test-nanoseconds, mod-test-double):
Skip test if the corresponding functione is not defined.
2022-03-08 Paul Eggert <eggert@cs.ucla.edu>
Do not include <attribute.h> from <config.h>
This is because mod-test.c shouldnt use source code from lib,
but it does need to include <config.h>.
* lib-src/ebrowse.c, lib-src/emacsclient.c, lib-src/etags.c:
* lib-src/make-docfile.c, lib-src/movemail.c:
* lib-src/seccomp-filter.c, src/dynlib.h, src/lisp.h:
* src/syssignal.h, src/sysstdio.h, src/systhread.h, src/tparam.h:
Include <attribute.h>.
* src/conf_post.h: Do not include <attribute.h>.
All uses of attribute.h macros replaced with their _GL_ equivalents.
2022-03-08 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Add more dead keys.
2022-03-08 Lars Ingebrigtsen <larsi@gnus.org>
Mark tramp test unstable on EMBA
* test/lisp/net/tramp-tests.el
(tramp-test44-asynchronous-requests): Mark timed-out EMBA test as
unstable.
2022-03-08 Michael Albinus <michael.albinus@gmx.de>
Implement abbreviate-file-name in Tramp for Google drive
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-home-directory):
Implement for Google drive.
2022-03-08 Jim Porter <jporterbugs@gmail.com>
Support applying indices to more Eshell dollar expansions
For example, '${echo -e "hi\nbye"}[1]' should expand to "bye".
* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Support applying
indices to '${}', '$()', and '$<>' forms.
(Bug#54227)
* lisp/eshell/esh-var-tests.el (esh-var-test/interp-lisp-indices)
(esh-var-test/interp-cmd-indices)
(esh-var-test/interp-cmd-external-indices)
(esh-var-test/quoted-interp-lisp-indices)
(esh-var-test/quoted-interp-cmd-indices): New tests.
2022-03-08 Jim Porter <jporterbugs@gmail.com>
Improve wording of Eshell variable interpolation code/documentation
* lisp/eshell/esh-arg.el (eshell-unescape-inner-double-quote): Rename
from 'eshell-parse-inner-double-quote'.
* lisp/eshell/esh-cmd.el (eshell-with-temp-command): Improve
docstring.
* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Use
'eshell-unescape-inner-double-quote' and improve robustness of quoted
variable name matching.
(eshell-parse-indices): Use 'eshell-unescape-inner-double-quote'.
* doc/misc/eshell.texi (Dollars Expansion): Improve wording of
subscript notation.
2022-03-08 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
d184773 Avoid assertion violations in 'bidi_resolve_brackets'
2022-03-08 Po Lu <luangruo@yahoo.com>
Handle XI focus change events that specify implicit focus correctly
* src/xterm.c (x_detect_focus_change): If detail is
XINotifyPointer, set focus type to implicit.
2022-03-08 Po Lu <luangruo@yahoo.com>
Fix detection of modifier keys on XInput 2
* src/xterm.c (handle_one_xevent): Fix iteration over sets of
modifiers.
2022-03-08 Michael Albinus <michael.albinus@gmx.de>
Handle bug#54294 in Tramp
* lisp/net/tramp.el (tramp-handle-file-locked-p, tramp-handle-lock-file):
Use `tramp-system-name'. (Bug#54294)
2022-03-08 Po Lu <luangruo@yahoo.com>
Fix more uses of opaque Visual structure
* src/image.c (x_kill_gs_process):
* src/xfaces.c (x_free_colors):
(x_free_dpy_colors):
* src/xfns.c (Fxw_display_color_p):
(Fx_display_grayscale_p):
(Fx_display_visual_class):
* src/xterm.c (x_copy_color):
* src/xterm.h (x_mutable_colormap): Stop using private fields of
Visual.
2022-03-08 Po Lu <luangruo@yahoo.com>
Return actual color cell count in x-display-color-cells
* src/xfns.c (Fx_display_color_cells): Return the actual amount
of color cells, or the amount of individual combinations of
components.
2022-03-08 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
80736aef90 Fix which-func-update doc string
d9e5ae5e20 Improve wording of 'dired-jump's description
2022-03-07 Stefan Monnier <monnier@iro.umontreal.ca>
(cl-macro-list): Simplify by unifying the variants
* lisp/emacs-lisp/cl-macs.el (cl-macro-list): Add the &whole and the
dotted tail cases from `cl-macro-list1`.
(cl-macro-list1, cl-define-compiler-macro-list): Delete edebug elem specs.
(cl-destructuring-bind, cl-define-compiler-macro): Use `cl-macro-list`
instead, now that it covers all the cases we need.
2022-03-07 Po Lu <luangruo@yahoo.com>
Avoid color leaks while better ensuring a close color is found
* src/xterm.c (x_alloc_nearest_color_1): Verify nearest can be
allocated, and use that color value.
2022-03-07 Po Lu <luangruo@yahoo.com>
Fix choice of visuals for XPM icon
* src/xterm.c (x_bitmap_icon): Allow using XPM icon on
StaticColor and StaticGray as well.
2022-03-07 Lars Ingebrigtsen <larsi@gnus.org>
Remove lock file in --no-build-details, too
* src/filelock.c (current_lock_owner): Make file writes work when
using --no-build-details (bug#54294).
2022-03-07 Lars Ingebrigtsen <larsi@gnus.org>
Mark ert-test-run-tests-batch-expensive unstable on EMBA
2022-03-07 Kjartan Oli Agustsson <kjartanoli@outlook.com> (tiny change)
Add user stylesheet option for doc-view EPUB support
* lisp/doc-view.el (doc-view-start-process): Add user stylesheet to
process arguments when appropriate.
* lisp/doc-view.el (doc-view-mutool-user-stylesheet): New user option.
2022-03-07 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/seq.el (seq-concatenate): Accept non-`sequencep` sequences
2022-03-07 Po Lu <luangruo@yahoo.com>
Correctly handle exposure in oldXMenu
* oldXMenu/Activate.c (XMenuActivate): Call set expose_func if
no pane was found.
(XMenuActivateSetExposeFunction): New function.
* oldXMenu/XMenu.h: New typedef `expose_func'. Update
prototypes.
* src/xmenu.c (x_menu_expose_event): New function.
(x_menu_show): Set expose event handler.
* src/xterm.c (x_dispatch_event): Make `static' only on GTK.
* src/xterm.h: Expose `x_dispatch_event' on no-toolkit builds.
2022-03-07 Po Lu <luangruo@yahoo.com>
Improve color handling on colormapped displays
* src/xfns.c (select_visual): Set `visual_info' field whenever
appropriate.
(x_create_tip_frame, XDisplayCells): Don't access private fields
of Visual.
* src/xterm.c (x_color_cells, x_alloc_nearest_color_1): Use
colormap_size instead of default cell count.
(XTflash, x_bitmap_icon, x_term_init):
* src/xterm.h (struct x_display_info, FRAME_X_VISUAL_INFO): Stop
accessing private fields of Visual.
2022-03-07 Po Lu <luangruo@yahoo.com>
Handle color allocation failures caused by colormap changes
* src/xterm.c (x_alloc_nearest_color_1): Recompute color cells
if allocation of cached value failed.
2022-03-07 Michael Albinus <michael.albinus@gmx.de>
Rework `abbreviate-file-name' in Tramp
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
Add 'tramp-get-home-directory'.
* lisp/net/tramp-compat.el (tramp-file-name-handler): Declare.
(tramp-compat-exec-path): Use it.
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
Add 'tramp-get-home-directory'.
(tramp-gvfs-handle-expand-file-name): Rewrite tilde handling.
(tramp-gvfs-handle-get-home-directory): New defun.
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
Add 'tramp-get-home-directory'.
(tramp-sh-handle-get-home-directory): New defun.
(tramp-sh-handle-expand-file-name): Rewrite tilde handling.
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Add 'tramp-get-home-directory'.
(tramp-smb-handle-expand-file-name): Rewrite tilde handling.
(tramp-smb-handle-get-home-directory): New defun.
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add 'tramp-get-home-directory'.
(tramp-sudoedit-handle-expand-file-name): Rewrite tilde handling.
(tramp-sudoedit-handle-get-home-directory): New defun.
* lisp/net/tramp.el (tramp-file-name-for-operation):
Add `tramp-get-home-directory'.
(tramp-get-home-directory): New defun.
(tramp-handle-abbreviate-file-name): Use it.
(tramp-set-file-uid-gid, tramp-get-remote-uid)
(tramp-get-remote-gid): Use `tramp-file-name-handler'.
(tramp-get-remote-null-device): Do not check for null VEC, it
doesn't happen anymore.
* test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name-relative):
Reorder checks.
(tramp-test07-abbreviate-file-name):
(tramp--test-ange-ftp-p): Adapt tests.
2022-03-07 Po Lu <luangruo@yahoo.com>
Fix color leak
* src/xterm.c (x_alloc_nearest_color_1): Don't allocate colors
multiple times when searching for a closest match.
2022-03-07 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
73f28fbde8 Add a comment for previous browse-url-of-dired-file change
9b74e84857 Restore documented Emacs 27.2 behaviour of browse-url-of-d...
cd77fd3b85 Update to Org 9.5.2-24-g668205
2022-03-07 Manuel Giraud <manuel@ledu-giraud.fr>
Fix bookmark-bmenu-list sorting.
Do not sort bookmarks in `bookmark-bmenu-list' if `bookmark-sort-flag'
is nil.
Also, make the default order of bookmark-bmenu-list be the LIFO order
defined in `bookmark-sort-flag's documentation.
2022-03-07 Po Lu <luangruo@yahoo.com>
Fix maximum selection size reporting
* src/xselect.c (selection_quantum): Take into account extended
request size.
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in previous browse-url-file-url change
* lisp/net/browse-url.el (browse-url-file-url): Fix typo in
previous change.
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix esh-proc-test/kill-pipeline-head loop syntax
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/kill-pipeline-head): Fix syntax of loop.
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Inhibit extpipe tests on EMBA, because they apparently time out?
https://emba.gnu.org/emacs/emacs/-/pipelines/16387
2022-03-06 Po Lu <luangruo@yahoo.com>
Fix clearing of scroll bars on builds with disabled double buffers
* src/xterm.c (x_scroll_bar_clear): Use XClearArea if the scroll
bar is not double-buffered.
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how bibtex-mark-entry places point
* lisp/textmodes/bibtex.el (bibtex-mark-entry): Make `C-M-h'
behave like in other modes (with point at the beginning of the
region) (bug#4717).
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Show SVN status on "." directories, too
* lisp/vc/vc-svn.el (vc-svn-after-dir-status): Allow tracking
state of the "." directory, too, since they may have modified
properties (bug#7861).
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix `W' in Dired with non-ASCII file names
* lisp/net/browse-url.el (browse-url--file-name-coding-system):
Factor out into own function.
(browse-url-file-url): Property encode non-ASCII characters so
that external browsers can understand them.
(browse-url-emacs): Make `W' in Dired work with non-ASCII file
names (bug#54271).
2022-03-06 Po Lu <luangruo@yahoo.com>
Get rid of a loop through all frames when processing events
* src/xterm.c (handle_one_xevent): Just flip back buffer of f
and any instead.
(flush_dirty_back_buffer_on): New function.
(flush_dirty_back_buffers): Delete function.
2022-03-06 Gustaf Waldemarson <gustaf.waldemarson@gmail.com>
Display complex data types in gdb-mi
* lisp/progmodes/gdb-mi.el (bindat): Require.
(gdb-invalidate-locals): Use `-stack-list-variables` instead of
the deprecated `-stack-list-locals`. Additionally, this allow
function arguments to be displayed in the locals buffer.
(gdb-locals-values-buffer, gdb-locals-values-buffer-name)
(gdb-locals-simple-values-only, gdb-locals-values-table): New
variables.
(gdb-locals-values-handler-custom): Create a new gdb buffer for
extracting local variable values. To
extract the values for 'complex' data-types, the command
`-stack-list-locals` is used with the `--all-values` flag.
The extracted values are then stored in a hash-table for later use in
the `gdb-locals-handler-custom` that performs the actual update of the
Local variable buffer.
All variable values are filtered to fit it into a single line, being
truncated as necessary by the user customizable option
`gdb-locals-value-limit`.
The old behavior of hiding complex values can be restored using the
customizable `gdb-locals-simple-values-only` option.
Patch amended by William Xu <william.xwl@gmail.com>.
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix syntax error in obsolete message function
* lisp/gnus/message.el (message-send-mail-function): Fix syntax error.
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix url-interactive-p type
* lisp/url/url-vars.el (url-interactive-pw): Fix typo in previous
checkin (bug#54275).
2022-03-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix problem with fetching images via Cloudflare
* lisp/url/url-http.el (url-http): Factor out url-interactive-p.
* lisp/url/url-auth.el (url-basic-auth):
(url-basic-auth):
(url-digest-prompt-creds): Use it to not query the user.
* lisp/url/url-queue.el (url-queue-start-retrieve): Don't send a
bogus empty Authorization header (bug#54246) -- this triggers
Cloudflare's anti-attack software. Instead rely on
url-request-noninteractive.
* lisp/url/url-vars.el (url-interactive-p): New utility function.
2022-03-06 Stefan Monnier <monnier@iro.umontreal.ca>
(ecomplete-add-item): Preserve the more complete text
Avoid replacing "John Doe <john@doe.ch>" with "john@doe.ch".
* lisp/ecomplete.el (ecomplete-add-item): Keep the longest text
2022-03-06 Alan Mackenzie <acm@muc.de>
Restore call to byte-run-strip-symbol-positions in byte-compile-out
Also increment a loop counter. This should fix bug #54248.
* lisp/emacs-lisp/byte-run.el (byte-run--strip-vector/record): increment the
loop counter 'i' in the main loop.
* lisp/emacs-lisp/bytecomp.el (byte-compile-out): call
byte-run-strip-symbol-positions on operands which are one-element lists.
2022-03-06 Mattias Engdegård <mattiase@acm.org>
Don't accept whitespace or hex floats in rgbi: colour specs
`color-values-from-color-spec` (new in Emacs 28) erroneously accepted
leading whitespace and hex floats in rgbi: components.
Reported by Philip Kaludercic.
* src/xfaces.c (parse_float_color_comp): Disallow leading whitespace
and hex floats.
* test/src/xfaces-tests.el
(xfaces-internal-color-values-from-color-spec): Add test cases.
2022-03-06 Po Lu <luangruo@yahoo.com>
Respect inhibit-double-buffering on non-toolkit scroll bars
* src/xfns.c (x_set_inhibit_double_buffering): Force scroll bars
to be re-created on builds without toolkit scroll bars.
* src/xterm.c (x_scroll_bar_create): Don't initialize back
buffer if double buffering is disabled for the frame.
2022-03-06 João Távora <joaotavora@gmail.com>
Have a couple of lsp faces inherit from basic "shadow"
* eglot.el (eglot-diagnostic-tag-unnecessary-face)
(eglot-diagnostic-tag-deprecated-face): Inherit from 'shadow'.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/858
2022-03-06 Po Lu <luangruo@yahoo.com>
Slightly fix mouse-highlight processing on Haiku
* src/haikuterm.c (haiku_read_socket): If no corresponding frame
was found for a keyboard event, clear mouse highlight.
2022-03-06 Po Lu <luangruo@yahoo.com>
Implement frame cascading on Haiku
* haikufns.c (haiku_create_frame): Cascade frame position with
the focused frame if position is not user or programmer
specified.
2022-03-06 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
0090318c61 * lib-src/seccomp-filter.c (main): Use faccessat2 only if ...
3bb01a499b Fix regression in derived-mode-init-mode-variables
2022-03-05 Po Lu <luangruo@yahoo.com>
Implement "window cascading" on NS
* src/nsfns.m (Fx_create_frame): Cascade new frame position if
size hint flags are not USPosition or PPosition.
2022-03-05 Po Lu <luangruo@yahoo.com>
Reduce non-toolkit scroll bar flicker
* src/xterm.c (x_scroll_bar_create): Initialize double buffer
for scroll bar.
(x_scroll_bar_set_handle)
(x_scroll_bar_remove, x_scroll_bar_expose): Draw to back buffer
instead.
(x_scroll_bar_end_update): New function.
(x_scroll_bar_clear): Fill the scroll bar with the background
instead when double buffered.
* src/xterm.h (struct scroll_bar): New field `x_drawable'.
2022-03-05 Po Lu <luangruo@yahoo.com>
Fix reporting of menu bar wheel events on no toolkit builds
* src/xterm.c (x_toolkit_position): Handle menu bar position
on no-toolkit builds.
(x_create_terminal): Always add `toolkit_position_hook'.
2022-03-05 Robert Pluim <rpluim@gmail.com>
Use pselect instead of select in nsterm.m
* src/nsterm.m ([EmacsApp fdhandler:]): Use pselect instead of
the single remaining use of select (because we try to avoid using
select directly) (bug#54245).
2022-03-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix emacs-module-test after recent changes
* test/Makefile.in ($(test_module)): Include libgnu.a in the
module test (because the module uses functions from gnulib)
(bug#32452).
2022-03-05 Po Lu <luangruo@yahoo.com>
Obey decorator-specified width and height of tooltip frames on Haiku
* src/haiku_support.cc (BWindow_dimensions): New functions.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (Fx_show_tip): Use actual dimensions, because
the decorator might specify a minimum width and height for the
tooltip frame.
* src/haikuterm.c (haiku_update_size_hints): Ignore tooltip
frames.
2022-03-05 Po Lu <luangruo@yahoo.com>
Garbage Haiku tooltip frames on size change
* haikuterm.c (haiku_read_socket): If tooltip frame dimensions
actually changed, garbage the frame.
2022-03-04 Paul Eggert <eggert@cs.ucla.edu>
Fix process-attributes time precision on BSD
* src/sysdep.c (timeval_to_timespec) [__FreeBSD__ || DARWIN_OS]:
Remove; no longer needed.
(make_lisp_s_us) [__FreeBSD__ || DARWIN_OS || __OpenBSD__]:
New function.
(make_lisp_timeval) [__FreeBSD__ || DARWIN_OS || __OpenBSD__]:
Rework in terms of make_lisp_s_us.
(system_process_attributes) [__FreeBSD__ || DARWIN_OS ||
__OpenBSD__]: Simplify by using the above. This fixes some minor
problems where timestamps promised more precision than was
actually available.
2022-03-04 Paul Eggert <eggert@cs.ucla.edu>
Fix process-attributes time precision on GNU/Linux
* src/sysdep.c [GNU_LINUX]:
(time_from_jiffies): Simplify by using time-convert. Change args
and result type. All uses changed.
(ltime_from_jiffies): Remove; call time_from_jiffies instead.
(put_jiffies): New function.
(get_up_time): Return Lisp_Object not struct timespec.
All uses changed. Simplify by using time-add.
(system_process_attributes): Simplify by using the above.
This fixes some minor problems where timestamps promised more
precision than was actually available. When info is not
available (e.g., sysconf fails) do not place it into the alist.
* src/timefns.c (float_time): Now extern.
2022-03-04 Paul Eggert <eggert@cs.ucla.edu>
%CPU can exceed 100 on GNU/Linux
* src/sysdep.c (system_process_attributes) [GNU_LINUX]:
CPU usage can exceed 100% on a multicore platform when Emacs is
not entirely single-threaded.
2022-03-04 Paul Eggert <eggert@cs.ucla.edu>
Avoid unnecessary make_float in time arithmetic
* src/timefns.c (float_time): New function.
(time_arith, Ffloat_time): Use it.
2022-03-04 Paul Eggert <eggert@cs.ucla.edu>
Fix FreeBSD typo in process-attributes cstime
* src/sysdep.c (system_process_attributes) [__FreeBSD__]:
Fix typo that caused cstime to always equal cutime.
2022-03-04 Po Lu <luangruo@yahoo.com>
Flush default GC before using it in functions that accept a GContext
* src/xterm.c (x_scroll_run): Flush normal_gc, since some of the
following code depends on it being up-to-date.
2022-03-04 Po Lu <luangruo@yahoo.com>
Remove render code in x_scroll_run and drop NoExpose events instead
* src/xterm.c (x_scroll_run): Stop avoiding NoExpose events
through XRenderComposite.
(handle_one_xevent): Drop NoExpose events to placate some code
in Athena widgets.
2022-03-04 Dmitry Gutov <dgutov@yandex.ru>
project-shell: Ensure the resulting buffer is live
* lisp/progmodes/project.el (project-shell):
Make sure to recreate the shell if the buffer exists but not live
(https://lists.gnu.org/archive/html/emacs-devel/2022-03/msg00017.html).
2022-03-04 Po Lu <luangruo@yahoo.com>
Prevent some NoExpose events from being generated
* src/xterm.c (x_scroll_run): Use the rendering extension if
available to avoid NoExpose events.
2022-03-04 Po Lu <luangruo@yahoo.com>
Implement `pre_activate' callbacks for Motif menus
* lwlib/lwlib-Xm.c (make_menu_in_widget): Add
xm_pop_up_callback as the popup callback.
(xm_pop_up_callback): New function.
2022-03-04 Po Lu <luangruo@yahoo.com>
Fix the MS-DOS build
* msdos/sedlibmk.inp: Update for gnulib merge.
2022-03-04 Stefan Monnier <monnier@iro.umontreal.ca>
trace.el: Preserve the line structure
Print newlines appearing inside values (i.e. inside strings) as \n
rather than actual newlines so as to avoid messing up the main
structure of the trace buffer.
* lisp/emacs-lisp/trace.el (trace-entry-message)
(trace-exit-message, trace--read-args): Quote newlines
2022-03-04 Lars Ingebrigtsen <larsi@gnus.org>
Avoid statting directories on startup for Info
* doc/misc/efaq.texi (File-name conventions) Mention
Info-directory-list instead.
* doc/misc/info.texi (Emacs Info Variables): Mention
Info--default-directory-list.
* lisp/info.el (Info-default-directory-list): Default to nil to
avoid statting directories on Emacs startup (bug#27933).
(Info--default-directory-list): Factored out into own function.
(Info-default-dirs): Append value of Info-default-directory-list
to the value returned from Info--default-directory-list.
2022-03-04 Lars Ingebrigtsen <larsi@gnus.org>
Improve scroll-bar-mode/default-frame-alist interaction docs
* lisp/scroll-bar.el (scroll-bar-mode): Mention
default-frame-alist (bug#54237).
* src/frame.c (syms_of_frame): Clarify further that setting this
variable may have unintended consequences.
2022-03-04 Lars Ingebrigtsen <larsi@gnus.org>
Add some sleeps to gnutls_try_handshake
* admin/merge-gnulib (GNULIB_MODULES): Add the nanosleep module.
* m4/gnulib-comp.m4 (gl_EARLY):
* lib/gnulib.mk.in: Automatic update.
* m4/nanosleep.m4:
* lib/nanosleep.c: New module.
* nt/mingw-cfg.site (gl_cv_func_free_preserves_errno):
* nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_nanosleep): Omit nanosleep,
since mingw has it.
* src/gnutls.c (gnutls_try_handshake): Add some sleeping to the
busy-wait loop so that we don't use 100% CPU here (bug#32452).
2022-03-04 Po Lu <luangruo@yahoo.com>
Add a few warnings about special event structures on X
* xterm.c (x_construct_mouse_click)
(x_note_mouse_movement): Add comments explaining the nature of
some special event structures.
2022-03-04 Po Lu <luangruo@yahoo.com>
Fix some errors in stretch glyphs code on PGTK
* src/pgtkterm.c (x_draw_stretch_glyph_string): Remove
unnecessary code. Reported by Eli Zaretskii <eliz@gnu.org>.
2022-03-04 Eli Zaretskii <eliz@gnu.org>
Fix wording and punctuation in recent Gnus documentation changes
* lisp/gnus/nnselect.el (nnselect-allow-ephemeral-expiry): Make
the first sentence of the doc string be a single line.
* doc/misc/gnus.texi (Creating Search Groups): Fix space between
sentences.
2022-03-04 Po Lu <luangruo@yahoo.com>
Initialize time inside motion and button events converted from XI events
* src/xterm.c (handle_one_xevent): Make sure time is initialized
in artificial events passed to functions that use it.
2022-03-04 Andrew G Cohen <cohen@andy.bu.edu>
Turn expiry on for nnselect groups
Articles in (persistent) groups from the gnus/nnselect backend will
now be run through the expiry process upon exit, like other persistent
groups. Expiry is not on by default for ephemeral nnselect groups but
may be turned on with nnselect-allow-ephemeral-expiry set to t.
* lisp/gnus/nnselect.el (nnselect-request-expire-articles): Make
article expiry work.
(nnselect-allow-ephemeral-expiry): New variable.
* doc/misc/gnus.texi (Creating Search Groups): Document
nnselect-allow-ephemeral-expiry.
2022-03-04 Po Lu <luangruo@yahoo.com>
Correctly process legacy XI wheel events on top of scroll bars
* src/xterm.c (handle_one_xevent): Handle XI button events
generated by scroll wheels on top of scroll bars.
2022-03-03 Po Lu <luangruo@yahoo.com>
Pass core scroll wheel events outside the edit widget to Emacs on GTK
* src/xterm.c (x_construct_mouse_click): Translate coordinates
if the event window is not the edit widget window.
(handle_one_xevent): Treat core scroll wheel events specially,
if mouse_or_wdesc_frame did not find the frame.
2022-03-03 Po Lu <luangruo@yahoo.com>
Fix display of stretch glyphs when hscrolled on PGTK
* pgtkterm.c (x_draw_stretch_glyph_string): Use correct box
dimensions.
2022-03-03 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (pgtk_draw_fringe_bitmap): Synchronize logic with X.
2022-03-03 Po Lu <luangruo@yahoo.com>
Synchronize NS fringe bitmap code with X
* nsterm.m (ns_draw_fringe_bitmap): Redefine bitmap if it does
not already exist.
2022-03-03 Po Lu <luangruo@yahoo.com>
Synchronize Haiku fringe bitmap code with X
* haikuterm.c (haiku_draw_fringe_bitmap):
(haiku_define_fringe_bitmap):
(haiku_destroy_fringe_bitmap): Synchronize logic with X.
2022-03-03 Po Lu <luangruo@yahoo.com>
Merge from origin/emacs-28
29ff903bb0 Avoid crashes when fringe bitmaps are defined in daemon mode
92e2d19fe7 One more fix of the BPA implementation
cd51d9c7ab Fix handling of brackets in BPA
2022-03-03 Philipp Stephani <phst@google.com>
Teach Edebug about the special '&whole' syntax for compiler macros.
* lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro-list): New
Edebug element specification.
(cl-define-compiler-macro): Use it.
* test/lisp/emacs-lisp/cl-macs-tests.el
(cl-define-compiler-macro/edebug): New unit test.
2022-03-03 Stefan Monnier <monnier@iro.umontreal.ca>
(with-demoted-errors): Fix bug#54225
* lisp/subr.el (with-demoted-errors): Adjust to argument order of
`macroexp-warn-and-return` changed in f262a6af3694b41828ff.
2022-03-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix clobbering of match data in executable-set-magic
* lisp/progmodes/executable.el (executable-set-magic): Switching
buffers may clobber match data, so save the match data first
(bug#54218).
2022-03-03 Jim Porter <jporterbugs@gmail.com>
Allow splitting strings in Eshell expansions with "plain" strings
Since '$var[hello 0]' doesn't make sense when 'var' is a string, the
previous restriction was unnecessary.
* lisp/eshell/esh-var.el (Commentary): Update documentation.
(eshell-apply-indices): Allow "plain" strings to split strings.
* test/lisp/eshell/esh-var-test.el
(esh-var-test/interp-var-string-split-indices)
(esh-var-test/quoted-interp-var-string-split-indices): Update tests.
* doc/misc/eshell.texi (Dollars expansion): Update documentation.
2022-03-03 Jim Porter <jporterbugs@gmail.com>
Fix parsing of indices in Eshell expansions
Previously, more-complex index expansions, like '$var[":" 0]' or
'$var[$(expr) 0]' failed to parse correctly.
* lisp/eshell/esh-var.el (Commentary): Clarify indexing and length
expansions.
(eshell-parse-indices): Expand docstring and support parsing inside
double-quotes.
(eshell-eval-indices): New function.
(eshell-parse-variable): Use it.
* test/lisp/eshell/esh-var-tests.el (eshell-test-value): New defvar.
(esh-var-test/interp-var-indices,
(esh-var-test/interp-var-split-indices)
(esh-var-test/interp-var-string-split-indices)
(esh-var-test/interp-var-regexp-split-indices)
(esh-var-test/interp-var-assoc, esh-var-test/interp-var-length-list)
(esh-var-test/interp-var-length-string)
(esh-var-test/interp-var-length-alist)
(esh-var-test/quoted-interp-var-indices)
(esh-var-test/quoted-interp-var-split-indices)
(esh-var-test/quoted-interp-var-string-split-indices)
(esh-var-test/quoted-interp-var-regexp-split-indices)
(esh-var-test/quoted-interp-var-assoc)
(esh-var-test/quoted-interp-var-length-list)
(esh-var-test/quoted-interp-var-length-string)
(esh-var-test/quoted-interp-var-length-alist): New tests.
* doc/misc/eshell.texi (Dollars Expansion): Expand and reword
documentation for indexing and length expansions.
2022-03-03 Jim Porter <jporterbugs@gmail.com>
Fix Eshell dollar interpolation inside of double-quotes
For example,
echo "${echo hi}"
previously tried to run the program named 'echo hi', instead of 'echo'
with the argument 'hi'.
* lisp/eshell/esh-arg.el (eshell-parse-inner-double-quote):
New function.
* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Support parsing
when wrapped in double-quiotes.
* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var)
(esh-var-test/interp-quoted-var)
(esh-var-test/interp-quoted-var-concat)
(esh-var-test/quoted-interp-var)
(esh-var-test/quoted-interp-quoted-var)
(esh-var-test/quoted-interp-lisp, esh-var-test/quoted-interp-cmd)
(esh-var-test/quoted-interp-temp-cmd): New tests.
2022-03-03 Jim Porter <jporterbugs@gmail.com>
Add a new macro to simplify parsing temporary Eshell command strings
This abstracts out the somewhat-unusual "insert&delete" logic in
'eshell-parse-command' so that it can be used elsewhere, and also
ensures that the deletion occurs even if an an error occurs.
* lisp/eshell/esh-cmd.el (eshell-with-temp-command): New macro.
(eshell-parse-command): Use it.
2022-03-03 Jim Porter <jporterbugs@gmail.com>
Move Eshell variable interpolation tests to their own file
* test/lisp/eshell/eshell-tests.el (eshell-test/interp-cmd)
(eshell-test/interp-lisp, eshell-test/interp-temp-cmd)
(eshell-test/interp-concat, eshell-test/interp-concat-lisp)
(eshell-test/interp-concat2, eshell-test/interp-concat-lisp2)
(eshell-test/interp-cmd-external)
(eshell-test/interp-cmd-external-concat, eshell-test/window-height)
(eshell-test/window-width, eshell-test/last-result-var)
(eshell-test/last-result-var2, eshell-test/last-arg-var):
Move from here...
* test/lisp/eshell/esh-var-test.el (esh-var-test/interp-lisp)
(esh-var-test/interp-cmd, esh-var-test/interp-cmd-external)
(esh-var-test/interp-temp-cmd, esh-var-test/interp-concat-lisp)
(esh-var-test/interp-concat-lisp2, esh-var-test/interp-concat-cmd)
(esh-var-test/interp-concat-cmd2)
(esh-var-test/interp-concat-cmd-external, esh-var-test/window-height)
(esh-var-test/window-width, esh-var-test/last-result-var)
(esh-var-test/last-result-var2, esh-var-test/last-arg-var):
... to here.
2022-03-03 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
225e0d6047 Correct etc/NEWS entry about bitmapped fonts
# Conflicts:
# etc/NEWS
2022-03-02 Dmitry Gutov <dgutov@yandex.ru>
Cache the backend value together with the project root
* lisp/progmodes/project.el (project-try-vc):
Cache the backend value together with the root.
(project-root, project-files, project-ignores):
Update to access the new data structure.
2022-03-02 Po Lu <luangruo@yahoo.com>
* src/xterm.c: Fix commentary on GTK client side windows.
2022-03-02 Po Lu <luangruo@yahoo.com>
Fix Motif build without toolkit scroll bars
* src/xterm.c: Always include Xm.h on Motif.
2022-03-02 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/xref.el: Bump the version.
2022-03-02 Po Lu <luangruo@yahoo.com>
Don't calculate any frame for extension events
* src/xterm.c (handle_one_xevent): If event is not a core event,
don't try to calculate any from event.xany.window.
2022-03-02 Po Lu <luangruo@yahoo.com>
Implement `toolkit_position_hook' on PGTK
* src/pgtkterm.c (pgtk_toolkit_position): New function.
(pgtk_create_terminal): Set it as the toolkit position hook.
2022-03-02 Po Lu <luangruo@yahoo.com>
Fix menu bar position reporting on Haiku as well
* src/haikuterm.c (haiku_toolkit_position): New function.
(haiku_create_terminal): Register new hook.
2022-03-02 Po Lu <luangruo@yahoo.com>
Fix reporting of imaginary key prefixes on toolkit tool and menu bars
* src/keyboard.c (make_lispy_position): Set imaginary prefix if
the terminal says what widget the position is on top of.
* src/termhooks.h (struct terminal): New field
`toolkit_position_hook'.
* src/xterm.c (x_toolkit_position): New function.
(x_create_terminal): Register hook.
2022-03-02 Brian Leung <bkleung89@gmail.com>
João Távora <joaotavora@gmail.com>
Prevent empty diagnostic tags vector hiding main fontification
* eglot.el (eglot-handle-notification): Require that the resulting
list of faces is non-empty and that each face corresponds only to a
known tag.
For unknown tags, we don't pass any additional face information to
Flymake, and instead expect it to make the appropriate overlay with
the "severity" property of the Diagnostic.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/851
2022-03-02 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9dadcbe429 ; * doc/misc/eshell.texi (Dollars Expansion): Fix markup.
2c3d1b6bf4 Improve/correct documentation about Eshell variable expansion
9e257aecc9 Partially revert b03f74e0f2a578b1580e8b1c368665850ee7f808
2022-03-02 Po Lu <luangruo@yahoo.com>
Fix some bugs with multiple terminals on Haiku
* src/haikuterm.c (haiku_mouse_position): Only clear
`mouse_moved' for Haiku frames.
2022-03-01 Po Lu <luangruo@yahoo.com>
Fix persistent help text on disabled menu items
* oldXMenu/Activate.c (XMenuActivate): Always deactivate help
echo upon leaving a menu item.
2022-03-01 Po Lu <luangruo@yahoo.com>
* src/msdos.c (dos_rawgetc): Handle tab bar clicks correctly.
2022-03-01 Po Lu <luangruo@yahoo.com>
Dismiss help text when item becomes unactivated on oldXMenu
* oldXMenu/Activate.c (XMenuActivate): Dismiss help text when
leaving an item.
2022-03-01 Po Lu <luangruo@yahoo.com>
Fix odd scrolling bugs on LessTif
* src/xterm.c (handle_one_xevent): Give emulated button events
to Motif.
2022-03-01 Po Lu <luangruo@yahoo.com>
Improve behavior of Motif popup menus on XI2
* src/xmenu.c (create_and_show_popup_menu): Set input focus to
menu window.
2022-03-01 Paul Eggert <eggert@cs.ucla.edu>
Revert previous merge-gnulib change
* admin/merge-gnulib: Revert previous stopgap change.
It shouldnt be needed now that Gnulib has the change
2022-03-01T18:01:59Z!eggert@cs.ucla.edu.
2022-03-01 Po Lu <luangruo@yahoo.com>
Add PropertyChangeMask to the standard event set
* src/xfns.c (x_window): Remove special Motif code.
* src/xterm.h (STANDARD_EVENT_SET): Add PropertyChangeMask.
2022-03-01 Po Lu <luangruo@yahoo.com>
Fix crashes and other bugs on LessTif
* lwlib/lwlib-Xm.c (make_menu_in_widget): XmIsRowColumn is
broken on the latest LessTif release, so avoid that here.
* src/xfns.c (x_window): Add PropertyChangeMask which LessTif
doesn't do itself.
2022-03-01 Po Lu <luangruo@yahoo.com>
Fix reporting of wheel events on top of GTK scroll bars
* src/gtkutil.c (xg_update_scrollbar_pos):
(xg_update_horizontal_scrollbar_pos): Stop ensuring the window
is native.
(xg_event_is_for_scrollbar): New variable `for_valuator'.
All callers changed.
* src/gtkutil.h: Update prototypes.
* src/xterm.c (handle_one_xevent): Drop all valuator change
events destined for scroll bars.
2022-03-01 Po Lu <luangruo@yahoo.com>
* src/xwidget.h: Fix build with XI 2.4.
2022-03-01 Po Lu <luangruo@yahoo.com>
Make precision scrolling on top of the tool bar work
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Bind
some more events.
(pixel-scroll-precision):
(pixel-scroll-start-momentum): If window is a frame, use its
selected window.
2022-03-01 Po Lu <luangruo@yahoo.com>
Avoid duplicate wheel and button events on non-toolkit scroll bars
* src/xterm.c (x_scroll_bar_create): Set appropriate input
extension event mask.
(handle_one_xevent): Move some ifdefs around and handle input
extension button events on scroll bars.
2022-03-01 Po Lu <luangruo@yahoo.com>
Fix old X menu on builds with XI2
* oldXMenu/Activate.c (XMenuActivateSetTranslateFunction): New
function.
(XMenuActivate): Handle generic events.
* oldXMenu/XMenu.h: New prototypes.
(Translate_func): New type.
* src/xmenu.c (x_menu_wait_translate_generic_event): New
function.
(x_menu_show): Set translate function.
2022-03-01 Po Lu <luangruo@yahoo.com>
Disable some code that interferes with menus on Lucid
* src/xmenu.c (create_and_show_popup_menu)
(server_timestamp_predicate): Disable timestamp code on builds
using the Lucid menu bar widget.
2022-03-01 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
6dbc3da205 Fix :tag for eol in tab-first-completion
2022-03-01 Po Lu <luangruo@yahoo.com>
Fix C-g inside toolkit file dialogs with XI2
* src/xfns.c (Fx_file_dialog): Handle GenericEvents when looking
for quit character.
* src/xmenu.c (x_menu_wait_for_event): If data is non-nil, use
XPending.
2022-03-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-02-28 02:58:30 UTC.
2022-02-28 Po Lu <luangruo@yahoo.com>
Intern server time property during terminal initialization
* src/xmenu.c (create_and_show_popup_menu): Use previously
interned atom.
* src/xterm.c (x_term_init): New atom `EMACS_SERVER_TIME_PROP'.
* src/xterm.h (struct x_display_info): New field
`Xatom_EMACS_SERVER_TIME_PROP'.
2022-02-28 Po Lu <luangruo@yahoo.com>
Fix Motif menu help text in submenus
* lwlib/lwlib-Xm.c (xm_arm_callback):
(make_menu_in_widget):
(update_one_menu_entry):
(xm_update_one_widget):
(do_call): Pass instance to arm callback and use wv as user data
instead of call data.
2022-02-28 Po Lu <luangruo@yahoo.com>
* src/xterm.c: Explain frame resize synchronization.
2022-02-28 Paul Eggert <eggert@cs.ucla.edu>
Work around merge-gnulib glitch from fresh checkout
* admin/merge-gnulib: In a fresh checkout, run gnulib-tool
twice, instead of merely running autogen.sh twice.
2022-02-28 Stefan Monnier <monnier@iro.umontreal.ca>
ecomplete: Try and avoid losing data
* lisp/ecomplete.el (ecomplete-add-item): Make sure the database is
setup, so we don't risk overwriting it with a (mostly) empty one.
(ecomplete-save): Don't save an empty database.
2022-02-28 Po Lu <luangruo@yahoo.com>
Clean up input extension event handling code
* src/xterm.c (handle_one_xevent): Fix usages of event
structures of the wrong type.
2022-02-28 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Add some missing dead keys.
2022-02-28 Mattias Engdegård <mattiase@acm.org>
Clean up byte-compile-arglist-warn
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
Remove unnecessary sort (only need min and max). Reduce mutation.
2022-02-28 Lars Ingebrigtsen <larsi@gnus.org>
Fix :color specification in flat-button boxes
* src/xfaces.c (realize_gui_face): Allow reliably specifying
:color in flat-button boxes (bug#54196).
2022-02-28 Lars Ingebrigtsen <larsi@gnus.org>
Don't throw errors while propertizing in sgml-mode
* lisp/textmodes/sgml-mode.el (sgml-syntax-propertize): Don't
throw an error when propertizing (bug#54195).
2022-02-28 Po Lu <luangruo@yahoo.com>
Better fix for bug#13476
* lisp/faces.el (face-spec-recalc): Apply scroll bar foreground
and background to the frame if changing the scroll-bar face.
(scroll-bar): Restore previous declaration. That way, the
default colors are used for toolkit scroll bars, instead of
black and white.
2022-02-28 Po Lu <luangruo@yahoo.com>
Improve treatment of toolkit scroll bars with the input extension
* src/xterm.c (x_create_horizontal_toolkit_scroll_bar)
(x_create_toolkit_scroll_bar): Set XI2 event mask appropriately.
(handle_one_xevent): Make sure coordinates are correct for the
frame's window when handling wheel events.
2022-02-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e77fc8262a Update to Org 9.5.2-22-g33543d
9bce4b67f1 ; * lisp/help.el (with-help-window): Doc fix. (Bug#54170)
558b03a958 Add explicit '--no-heading' for ripgrep
2022-02-27 Po Lu <luangruo@yahoo.com>
Don't save menu bar events that land on the menu bar itself
* src/xterm.c (handle_one_xevent): Ignore menu bar events which
land on the menu bar itself instead of a button.
2022-02-27 Po Lu <luangruo@yahoo.com>
Treat scroll bar information consistently on Haiku
* src/haiku_support.cc (class EmacsScrollBar): New field `info'.
(EmacsScrollBar): Obtain scroll bar info on initialization.
(ButtonRegionFor): Use that information instead.
2022-02-27 Lars Ingebrigtsen <larsi@gnus.org>
Merge from gnulib
* m4/gnulib-common.m4 (gl_COMMON_BODY):
* lib/gnulib.mk.in (CXXCPP):
* lib/cdefs.h: Updated with admin/merge-gnulib. (This is in
preparation to adding the nanosleep module later.)
2022-02-27 Po Lu <luangruo@yahoo.com>
Don't send help-echo on menu button arming not caused by motion events
* lwlib/lwlib-Xm.c (xm_arm_callback): Ignore arming if the arm
was not caused by an EnterNotify or MotionNotify event.
2022-02-27 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Translate motion events on Motif.
2022-02-27 Po Lu <luangruo@yahoo.com>
Work around some problems with Motif and the input extension
* src/xmenu.c (create_and_show_popup_menu): Restore input focus
to the frame's outer window if there was an input extension
grab.
2022-02-27 Po Lu <luangruo@yahoo.com>
Translate some more input extension events needed by Motif
* src/xterm.c (handle_one_xevent): Translate XI_Enter and
XI_Leave events when built with Motif.
2022-02-27 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a50f8dec09 Follow OpenSSH changes in Tramp
e86eae21a9 Document better how to reset attributes of faces for new f...
2022-02-26 Po Lu <luangruo@yahoo.com>
* commands.texi (Misc Events): Update description of wheel events.
2022-02-26 Manuel Uberti <manuel.uberti@inventati.org>
Add project-ignore-buffer-conditions
* lisp/progmodes/project.el (project-ignore-buffer-conditions):
New defcustom.
(project--read-project-buffer):
Use it (bug#54100).
2022-02-26 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Fix translation of button events.
2022-02-26 Po Lu <luangruo@yahoo.com>
Fix Motif menu and menu bar dismissal on XI2
* src/xmenu.c (x_activate_menubar): Improve ungrabbing logic on
XI2.
(server_timestamp_predicate): New function.
(create_and_show_popup_menu): If the display supports XI2, make
sure the timestamps are correct by dispatching a PropertyNotify
event to Xt.
* src/xterm.c (handle_one_xevent): Translate XI_ButtonRelease
events into core events before dispatching them to Xt.
2022-02-26 Po Lu <luangruo@yahoo.com>
Ignore irrelevant button events on Haiku scroll bars
* src/haiku_support.cc (MouseDown): Ignore if there are too many
buttons pressed.
2022-02-26 Po Lu <luangruo@yahoo.com>
Prevent crashes on event for removed scroll bar on Haiku
* src/haiku_support.cc (class EmacsScrollBar): Remove field
`scroll_bar'.
(ValueChanged, MouseDown, MouseUp, BScrollBar_make_for_view):
Adjust for changes.
* src/haiku_support.h (struct haiku_scroll_bar_value_event)
(struct haiku_scroll_bar_drag_event)
(struct haiku_scroll_bar_part_event): New field `window'.
* src/haikuterm.c (haiku_scroll_bar_from_widget): New function.
(haiku_read_socket): Adjust for changes in scroll bar event
structures.
2022-02-26 Po Lu <luangruo@yahoo.com>
Fix reporting of horizontal scroll bar buttons on Haiku
* haikuterm.c (haiku_read_socket): Use correct values for scroll
bar buttons when the scroll bar is horizontal.
2022-02-26 Po Lu <luangruo@yahoo.com>
Improve scroll bar button handling on Haiku
* src/haiku_io.c (haiku_len): Add `SCROLL_BAR_PART_EVENT'.
* src/haiku_support.cc (class EmacsScrollBar): New fields
`dragging' and `current_state', along with `old_value' and
`current_part'.
(EmacsScrollBar): Set horizontal flag to `horizontal_p'.
(MessageReceived): Set old_value when receiving
SCROLL_BAR_UPDATE message.
(ValueChanged): Don't allow scroll bar values to change while
dragging.
(MouseUp, MouseDown): Calculate button under mouse and act
accordingly.
* src/haiku_support.h (enum haiku_event_type): New event
`SCROLL_BAR_PART_EVENT'.
(enum haiku_scroll_bar_part): New enumerator.
(struct haiku_scroll_bar_part_event): New struct.
* src/haikuterm.c (haiku_read_socket): Handle
SCROLL_BAR_PART_EVENTs.
2022-02-26 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
ded89ed3fa * lisp/net/tramp-sh.el (tramp-ssh-controlmaster-options): ...
2022-02-25 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Set user time for xwidgets as well.
2022-02-25 Dmitry Gutov <dgutov@yandex.ru>
Drop the visited file modtime check for remote xref hits
* lisp/progmodes/xref.el (xref--hits-remote-id): New variable.
(xref--convert-hits, xref--collect-matches)
(xref--find-file-buffer): Use it (bug#54025).
2022-02-25 Paul Eggert <eggert@cs.ucla.edu>
Robustify merge-gnulib a bit
* admin/merge-gnulib: Fail if autogen.sh fails.
Remove autom4te.cache before running gnulib-tool.
2022-02-25 Bob Rogers <rogers@rgrjr.com>
Add new file ietf-drums-date.el
* lisp/mail/ietf-drums-date.el: parse-time-string replacement which is
compatible but can be made stricter if desired.
* test/lisp/mail/ietf-drums-date-tests.el (added): Add tests for
ietf-drums-parse-date-string.
* lisp/mail/ietf-drums.el (ietf-drums-parse-date): Use
ietf-drums-parse-date-string.
2022-02-25 Po Lu <luangruo@yahoo.com>
Improve treatment of dropping mouse track state on Haiku
* src/haikuterm.c (haiku_mouse_or_wdesc_frame): New function.
(haiku_read_socket): Use it to find the appropriate frame when
handling motion or button events.
2022-02-25 Po Lu <luangruo@yahoo.com>
Improve tracking of modified regions on Haiku
* src/haiku_support.cc (class EmacsView): New field
`invalid_region'.
(FlipBuffers): Only invalidate that region.
(SetUpDoubleBuffering): Clear that region.
(BView_draw_lock): New parameters for denoting the region
to invalidate.
(BView_invalidate_region): New function.
* src/haiku_support.h: Update prototypes.
* src/haikufns.c (haiku_set_background_color):
* src/haikumenu.c (digest_menu_items):
* src/haikuterm.c (haiku_clip_to_string):
(haiku_flip_buffers):
(haiku_clear_frame_area):
(haiku_clear_frame):
(haiku_draw_glyph_string):
(haiku_after_update_window_line):
(haiku_draw_window_cursor):
(haiku_draw_vertical_window_border):
(haiku_draw_window_divider):
(haiku_draw_fringe_bitmap):
(haiku_scroll_run):
(haiku_read_socket):
(haiku_flash):
(haiku_clear_under_internal_border): Mark appropriate region as
invalid before buffer flip.
2022-02-25 Po Lu <luangruo@yahoo.com>
Fix calculation of scroll deltas when coalescing wheel events
* src/xterm.c (handle_one_xevent): Use accumulated values
instead of raw delta to determine scroll amounts.
2022-02-25 Po Lu <luangruo@yahoo.com>
Make interpolated scrolling work above non-selected windows
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): New
parameter `old-window'.
(pixel-scroll-precision): Pass originally selected window to the
interpolation function.
2022-02-25 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
5c77aed2d6 Mention flyspell-prog-mode in flyspell-mode doc string
2022-02-24 Jim Porter <jporterbugs@gmail.com>
Fix Eshell process tests to (hopefully) work on all platforms
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline):
Fix test (bug#54136).
2022-02-24 Dmitry Gutov <dgutov@yandex.ru>
xref--find-file-buffer: Check modified-p and modtime
* lisp/progmodes/xref.el (xref--find-file-buffer):
Check whether the buffer contents match what's on disk
(bug#54025).
2022-02-24 Po Lu <luangruo@yahoo.com>
Set user time when receiving any wheel events
* src/xterm.c (handle_one_xevent): Set user time if the mouse
wheel moved.
2022-02-24 Eli Zaretskii <eliz@gnu.org>
Fix esh-proc-tests on MS-Windows
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
(esh-proc-test/kill-background-process): Fix tests on MS-Windows.
2022-02-24 Eli Zaretskii <eliz@gnu.org>
Make 't' in Buffer-menu be more defensive
* lisp/buff-menu.el (Buffer-menu-visit-tags-table): Verify that
the buffer holds a tags-table file before using it as such.
(Bug#54133)
2022-02-24 Paul Eggert <eggert@cs.ucla.edu>
* admin/merge-gnulib: fix bare checkout (Bug#32452#65)
2022-02-24 Alan Mackenzie <acm@muc.de>
Amend byte-run-strip-symbol-positions so that an unexec build builds
This fixes bug #54098.
* lisp/emacs-lisp/byte-run.el (byte-run--strip-list)
(byte-run--strip-vector/record): New functions. These alter a list or
vector/record structure only where a symbol with position gets replaced by a
bare symbol.
(byte-run-strip-symbol-positions): Reformulate to use the two new functions.
(function-put): No longer strip positions from the second and third arguments.
* lisp/emacs-lisp/bytecomp.el (byte-compile-out): Remove the senseless
"stripping" of putative symbol positions from OPERAND, which is nil or a
number.
2022-02-24 Michael Albinus <michael.albinus@gmx.de>
Fix symlinks in tramp-sshfs.el (Bug#54130)
* lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>:
Add "-o transform_symlinks" to `tramp-mount-args'.
(tramp-sshfs-file-name-handler-alist):
Use `tramp-sshfs-handle-file-writable-p'.
(tramp-sshfs-handle-file-writable-p): New defun. (Bug#54130)
* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes)
(tramp-test20-file-modes): Adapt tests.
2022-02-24 Po Lu <luangruo@yahoo.com>
Check if WM support for NET_WM_USER_TIME_WINDOW changed during updates
* src/xterm.c (x_display_set_last_user_time): Update the user
time window if window manager support changed.
* src/xterm.h (struct x_display_info): New field
`last_user_check_time'.
2022-02-24 Jim Porter <jporterbugs@gmail.com>
Don't superfluously emit prompts when terminating processes in Eshell
* lisp/eshell/esh-proc.el (eshell-kill-process-function): Only reset
the prompt if PROC is writing to the terminal.
(eshell-sentinel): Only write the exit message if PROC is writing to
the terminal (bug#54136).
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill-pipeline)
(esh-proc-test/kill-pipeline-head)
(esh-proc-test/kill-background-process): New tests.
2022-02-24 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
5942504391 Reword face-remap-add-relative manual entry
2022-02-23 Po Lu <luangruo@yahoo.com>
Set border colors through the toolkit
* src/xfns.c (x_set_border_pixel): Set colors through Xt to
avoid some problems.
2022-02-23 Po Lu <luangruo@yahoo.com>
Fix auto-lower when the mouse moves onto a scrollbar on Haiku
* src/haiku_support.cc (MouseMoved):
(BView_inside_scroll_bar): New functions.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_read_socket): Don't auto-lower if the
pointer left the view for a scroll bar.
2022-02-23 Po Lu <luangruo@yahoo.com>
Add support for _NET_WM_STATE_SHADED
* doc/lispref/frames.texi (Management Parameters): Document new
frame parameter `shaded'.
* etc/NEWS: Announce new frame parameter.
* src/frame.c (frame_parms) [HAVE_X_WINDOWS]: New frame
parameter `shaded'.
(syms_of_frame): New symbol `shaded'.
* src/xfns.c (x_frame_parm_handlers): Install handler
`x_set_shaded'.
* src/xterm.c (x_set_shaded): New frame parameter handler.
(x_get_current_wm_state): New parameter `shaded'. All callers
changed.
(x_net_wm_state):
(x_handle_net_wm_state): Handle shaded state.
(x_term_init): Intern new atom `shaded'.
* src/xterm.h: Update prototypes.
2022-02-23 Po Lu <luangruo@yahoo.com>
Condition out things specific to some versions of the input extension
* src/xterm.c (x_free_xi_devices, x_init_master_valuators)
(handle_one_xevent): Condition out code that isn't supposed to
be run on the current input extension version.
* src/xterm.h (struct xi_scroll_valuator_t): Make conditional on
HAVE_XINPUT2_1.
(struct xi_touch_point_t): Make conditional on HAVE_XINPUT2_2.
(struct xi_device_t): Make individual fields conditional on the
appropriate client-side input extension version.
2022-02-23 Po Lu <luangruo@yahoo.com>
Fix the MS-DOS port
* msdos/sedlibmk.inp:
* src/conf_post.h [MSDOS]: Update for recent gnulib.
2022-02-23 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -Wanalyzer-null-dereference
* src/xdisp.c (normal_char_ascent_descent): Pacify GCC 11.2.1
20220127 (Red Hat 11.2.1-9) x86-64 -Wanalyzer-null-dereference.
2022-02-23 Mauro Aranda <maurooaranda@gmail.com>
Fix auth-sources defcustom
* lisp/auth-source.el (auth-sources): The extra attributes should be
in a plist, so inline both :host and :port. Also, give a valid
default value for the choice (bug#54127).
2022-02-23 Paul Eggert <eggert@cs.ucla.edu>
Port pre-commit hook to Git 2.35.0
* build-aux/git-hooks/pre-commit: Use LC_ALL=C grep -E instead of
sane_egrep (removed in Git 2.35.0).
2022-02-23 Paul Eggert <eggert@cs.ucla.edu>
Port to current Gnulib some more
* admin/merge-gnulib: Remove lib/stdio-read.c and lib/stdio-write.c,
as Emacs doesnt need these new Gnulib files.
2022-02-23 Paul Eggert <eggert@cs.ucla.edu>
Update from Gnulib by running admin/merge-gnulib
2022-02-23 Paul Eggert <eggert@cs.ucla.edu>
Port to current Gnulib
* configure.ac (AM_COND_IF): New macro, needed because Gnulib
normally assumes Automake and now uses this Automake macro.
Problem reported by Lars Ingebrigtsen (Bug#32452#47).
2022-02-23 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Create new unique windows with 'C-x t n' (bug#54038).
* lisp/tab-bar.el (tab-bar-new-tab-choice): Replace the value 'nil'
with explicit 'clone'.
(tab-bar-move-window-to-tab): Ignore possible side/atom window
parameters with ignore-window-parameters while deleting window.
(tab-bar-new-tab-to): When 'tab-bar-new-tab-choice' is 'clone',
create new unique windows with the same layout using window-state-get
and window-state-put. Do the same after deleting other windows
when 'tab-bar-new-tab-choice' is 'window'.
(tab-bar-duplicate-tab): Replace the value 'nil' with 'clone' for
'tab-bar-new-tab-choice'.
2022-02-23 Po Lu <luangruo@yahoo.com>
Expand commentary in xterm.c
* src/xterm.c: Expand commentary to include sections on optional
features and toolkit support.
2022-02-23 Protesilaos Stavrou <info@protesilaos.com>
Update modus-themes to version 2.2.0
* doc/misc/modus-themes.org (Enable and load)
(Differences between loading and enabling): Clarify wording.
(Customization Options): Update sample configuration.
(Option for completion framework aesthetics): Refactor
'modus-themes-completions' to accept an alist value instead of a
symbol.
(Override colors): Elaborate on the example.
(Toggle themes without reloading them): Document sample command that
uses 'enable-theme' instead of 'load-theme'.
(Acknowledgements): Update names of contributors to ideas.
* etc/themes/modus-themes.el (modus-themes-operandi-colors)
(modus-themes-vivendi-colors): Tweak the palette's completion-related
background colors.
(modus-themes-completion-standard-first-match)
(modus-themes-completion-standard-selected)
(modus-themes-completion-extra-selected): Deprecate faces and replace
them with 'modus-themes-completion-selection'.
(modus-themes-completion-key-binding): Rename it to
'modus-themes-key-binding'.
(modus-themes-mode-line): Remove faulty default value.
(modus-themes-completions): Refactor it to accept an alist value.
(modus-themes-box-buttons): Fix typo.
(modus-themes--standard-completions, modus-themes--extra-completions)
(modus-themes--extra-completions-line): Remove outdated private
functions.
(modus-themes--completion): Add new private function.
(modus-themes-faces): Update faces.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump file's version.
For a detailed change log, read:
<https://protesilaos.com/codelog/2022-02-23-modus-themes-2-2-0/>.
2022-02-23 Jim Porter <jporterbugs@gmail.com>
Ignore 'eshell-broken-pipe' error in 'eshell-sentinel'
This can happen if 'eshell-sentinel' tries to write output to another
process, but that process has already terminated.
* lisp/eshell/esh-proc.el (eshell-sentinel): Use 'ignore-error'
instead of 'unwind-protect'.
2022-02-23 Lars Ingebrigtsen <larsi@gnus.org>
Make face-remap-set-base work with a single face again
* lisp/face-remap.el (face-remap-set-base): Fix regression
introduced by cece37cf09de9 (bug#46973).
2022-02-23 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_term_init): Catch some errors from defective X servers.
2022-02-23 Po Lu <luangruo@yahoo.com>
Improve input extension version checks on GTK 3
* src/xterm.c (x_term_init): If newer versions of XInput 2 don't
work, then look for an older one.
2022-02-23 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
3dfc8bff15 Fix indexing of module functions that return enumeration t...
86c0d9eb5f * doc/misc/transient.texi (Other Options): Fix a @ref. (B...
3b5e29eaa3 tramp.texi texinfo 4.13 compatibility
5edb9572ec Explain "Tramp" spelling in its manual
2022-02-23 Po Lu <luangruo@yahoo.com>
Fix display corruption with background alpha set on unsupported display
* src/xfns.c (x_set_alpha_background): Make opaque if display
doesn't support the required features.
2022-02-22 Stefan Monnier <monnier@iro.umontreal.ca>
(add-hook): Fix regression
* lisp/subr.el (add-hook): When the hook has no local part yet, don't
set `local` to t, so we set the right part of the depth-sym.
(remove-hook): Don't modify the depth alist by side-effect since I'm
not completely sure it's safe.
2022-02-22 Po Lu <luangruo@yahoo.com>
* src/xterm.c: Expand commentary.
2022-02-22 Dmitry Gutov <dgutov@yandex.ru>
Unbreak project switcher when inside *xref* buffer
* lisp/progmodes/xref.el (xref--ensure-default-directory):
New function.
(xref--show-xref-buffer, xref-show-definitions-buffer-at-bottom):
Use it (bug#53626).
2022-02-22 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_term_init): Don't catch errors too many times.
2022-02-22 Po Lu <luangruo@yahoo.com>
Fix X errors caused by GTK using newer versions of XI2 than Emacs
* src/xterm.c (x_term_init): Handle errors from XIQueryVersion
caused by Emacs requesting versions of XI2 older than 2.2 and
what GTK requested.
2022-02-22 Lars Ingebrigtsen <larsi@gnus.org>
Enable "Revert Buffer" if file has different writability
* lisp/menu-bar.el (menu-bar-file-menu): Enable "Revert Buffer" if
the file has different writability than the buffer (bug#17148).
2022-02-22 Stefan Monnier <monnier@iro.umontreal.ca>
(add-hook, remove-hook): Fix leaks (bug#48666)
* lisp/subr.el (add-hook, remove-hook): Rewrite the hook depth
management so we only keep the info relevant to functions present on
the hook.
2022-02-22 Andrea Rossetti <andrea.rossetti@gmail.com> (tiny change)
Improve ruler-mode dragging
* lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column)
(ruler-mode-mouse-add-tab-stop, ruler-mode-mouse-del-tab-stop):
Adjust callers.
* lisp/ruler-mode.el (ruler-mode-window-col): Fix dragging when
stepping outside the header line (bug#17788).
2022-02-22 Jeff Norden <jeff@jnorden.com> (tiny change)
Make outline-blank-line into defcustom
* lisp/outline.el (outline-blank-line): Make into defcustom
(bug#54095).
2022-02-22 Lars Ingebrigtsen <larsi@gnus.org>
Don't signal an error on re-builder startup with rx syntax
* lisp/emacs-lisp/re-builder.el (reb-initialize-buffer): Make
startup with rx syntax not signal an error (bug#54107).
2022-02-22 Po Lu <luangruo@yahoo.com>
Fix build on glibc <2.10
* src/alloc.c (Fmalloc_info): Only enable if glibc supports
malloc_info.
(syms_of_alloc): Likewise.
2022-02-22 Po Lu <luangruo@yahoo.com>
Fix GTK build with GLib <2.44
* src/gtkutil.c (struct _EmacsMenuBar, EmacsMenuBar): New
structs.
(emacs_menu_bar_get_type): New function declaration.
* src/gtkutil.c: Remove declaration of EmacsMenuBar class.
2022-02-22 Po Lu <luangruo@yahoo.com>
Improve XInput2 version checking
* configure.ac: Check for various important structures from all
versions of libXi.
* src/xfns.c (setup_xi_event_mask):
* src/xwidget.c (x_draw_xwidget_glyph_string):
* src/xterm.c (x_init_master_valuators, handle_one_xevent)
(x_term_init): Replace XI version checks based on protocol
headers with new constants.
* src/xterm.h (HAVE_XINPUT2_1, HAVE_XINPUT2_2, HAVE_XINPUT2_3)
(HAVE_XINPUT2_4): New definitions.
2022-02-22 Michael Albinus <michael.albinus@gmx.de>
* test/lisp/net/tramp-tests.el (tramp--test-check-files): Adapt test.
2022-02-22 Po Lu <luangruo@yahoo.com>
Fix duplicate wheel events on XI2
* src/xterm.c (handle_one_xevent): Don't generate wheel events
on XI_ButtonPress.
2022-02-22 Po Lu <luangruo@yahoo.com>
Always send wheel events on XI2
* src/xterm.c (handle_one_xevent): Send emulated button events
as wheel events when handling XI2 button events.
2022-02-22 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
666e40a109 Fix 'display-line-numbers-mode' in hide-show buffers
68d134cf0f Don't check whether a deleted window is deletable (Bug#54028)
b38223a844 A friendlier error message from image-mode in an empty buffer
b7a651ba37 Update to Org 9.5.2-17-gea6b74
3a8c3f7abd ; Don't reference obsolete variables in edebug.el
2022-02-21 Po Lu <luangruo@yahoo.com>
Improve momentum pixel scrolling on a non-selected window
* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): New
argument `window'.
(pixel-scroll-start-momentum): Don't select the window under
the event when calculating velocity or redisplaying.
2022-02-21 Po Lu <luangruo@yahoo.com>
Don't generate multibyte keystroke events if there is no actual text
* src/xterm.c (handle_one_xevent): Don't generate
MULTIBYTE_CHAR_KEYSTROKE_EVENTs if nbytes is zero.
2022-02-21 Lars Ingebrigtsen <larsi@gnus.org>
Add links to the vtable manual
* doc/lispref/modes.texi (Tabulated List Mode): Mention vtables.
* lisp/info-look.el (lambda): Link to vtables.
2022-02-21 Lars Ingebrigtsen <larsi@gnus.org>
Remove the ELPA dependencies from test/Makefile.in
* test/Makefile.in: Remove the ELPA dependencies, because it's
pretty confusing when trying to debug things.
* test/README (SELECTOR): Remove mention of the now-removed
GNU_ELPA_DIRECTORY variable.
* test/lisp/net/ntlm-tests.el (push): Add the ELPA dependencies
here, which keeps it contained to one test file. This also fixes
bug#53586, since the obsoletion of `body' came from web-server.el.
2022-02-21 Po Lu <luangruo@yahoo.com>
Don't pass invalid keyboard modifiers to the event loop on Haiku
* src/haikuterm.c (haiku_read_socket): Ensure validity of extra
keyboard modifiers.
2022-02-21 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Recognize mode changes
2022-02-21 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/vc/diff-mode.el (diff--font-lock-prettify): bug#54034
Handle Git's output when deleting and creating empty files, as well as
when the diff is not shown because the file is considered as binary.
2022-02-21 Lars Ingebrigtsen <larsi@gnus.org>
Improve vtable :keymap handling
* lisp/emacs-lisp/vtable.el (vtable-map, vtable--make-keymap):
Don't alter keymaps passed in, and respect parent keymaps.
2022-02-21 Jim Porter <jporterbugs@gmail.com>
Send SIGPIPE to external Eshell processes if their output target closes
* lisp/eshell/esh-io.el (eshell-pipe-broken): New error.
(eshell-output-object-to-target): Signal 'eshell-pipe-broken' if the
target is an exited/signaled process.
* lisp/eshell/esh-proc.el (eshell-insertion-filter): Handle
'eshell-pipe-broken'.
* test/lisp/eshell/esh-proc-tests.el: New test.
2022-02-21 Jim Porter <jporterbugs@gmail.com>
Ensure 'eshell-output-object' always returns nil for consistency
This prevents functions like 'eshell-print' from writing doubled
output when run in Eshell. Previously, the result would be:
~ $ eshell-print hi
hihi
* lisp/eshell/esh-io.el (eshell-output-object): Always return nil.
2022-02-21 Jim Porter <jporterbugs@gmail.com>
Improve docstrings for 'eshell-exec-lisp' and functions that call it
* lisp/eshell/esh-cmd.el (eshell-exec-lisp, eshell-apply*)
(eshell-funcall*, eshell-eval*, eshell-apply, eshell-eval)
(eshell-funcall, eshell-applyn, eshell-funcalln, eshell-evaln):
Improve docstrings.
2022-02-21 Eli Zaretskii <eliz@gnu.org>
Revert "Remove PROBLEMS section on double-buffering"
This reverts commit 366b2bc757d011f96693bd219877c5aa42fa3359.
We cannot be sure this problem is no longer relevant, since
its root cause was in software we don't control, and cannot
tell whether any of the versions where that problem happened
are still out in the wild.
2022-02-21 Lars Ingebrigtsen <larsi@gnus.org>
Clarify Special Isearch slightly
* doc/emacs/search.texi (Special Isearch): Clarify slightly
(bug#19924). (All the keys in this node is about what happens
during isearch, but that information is quite a ways away at this
point, so it doesn't hurt to repeat that info.)
2022-02-21 Lars Ingebrigtsen <larsi@gnus.org>
Remove PROBLEMS section on double-buffering
* etc/PROBLEMS: Remove section on problems with double-buffering,
as apparently it's now no longer an issue (bug#30088).
2022-02-21 Lars Ingebrigtsen <larsi@gnus.org>
Make 'ispell-change-dictionary' completion work better
* lisp/textmodes/ispell.el (ispell--aspell-found-dictionaries):
New variable (bug#24050).
(ispell-find-aspell-dictionaries): Save the list of actually
identified dictionary.
(ispell-valid-dictionary-list): Use it to filter out non-installed
dictionaries.
2022-02-21 Lars Ingebrigtsen <larsi@gnus.org>
Make `next-buffer' order reflect command line file order
* lisp/startup.el (command-line-1): Make `next-buffer' order
reflect the command line file order (bug#21505).
2022-02-21 Po Lu <luangruo@yahoo.com>
Try to fix bug#54051
* src/xterm.c (handle_one_xevent): Don't give obviously bogus
configure events to Xt.
2022-02-21 Po Lu <luangruo@yahoo.com>
Prevent Haiku display from being opened multiple times
* src/haikufns.c (Fx_open_connection): Return if display
connection already exists.
2022-02-21 Po Lu <luangruo@yahoo.com>
Prevent GTK from setting unreasonable size hints with large menu bars
* src/gtkutil.c (struct _EmacsMenuBar): New struct.
(emacs_menu_bar_init):
(emacs_menu_bar_class_init):
(emacs_menu_bar_get_preferred_width):
(emacs_menu_bar_new): New functions.
(xg_update_menu_item): Use our own menu bar class on GTK 3.
* src/gtkutil.h (EmacsMenuBar): New class.
2022-02-20 Po Lu <luangruo@yahoo.com>
Implement left-right separators for dialog boxes on Haiku
* src/haiku_support.cc (BAlert_set_offset_spacing): New
function.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (struct submenu_stack_cell): Remove unused
struct.
(haiku_dialog_show): Use offset spacing if a left-right boundary
was seen and make sure the user can always quit a dialog if no
enabled items exist.
2022-02-20 Dmitry Gutov <dgutov@yandex.ru>
Bump xref.el version.
* lisp/progmodes/xref.el: Bump version to 1.4.0.
2022-02-20 Dmitry Gutov <dgutov@yandex.ru>
Public-ize xref-show-xrefs
* lisp/progmodes/xref.el (xref-show-xrefs):
New function (wrapper for an older, private one, bug#42967).
2022-02-20 Po Lu <luangruo@yahoo.com>
Respect `extra-keyboard-modifiers' when handling XI2 keyboard input
* src/xterm.c (handle_one_xevent): Add extra modifiers to
XI2 keyboard state.
2022-02-20 Dmitry Gutov <dgutov@yandex.ru>
Public-ize xref-current-item
* lisp/progmodes/xref.el (xref--current-item):
Rename to 'xref-current-item' (bug#53956). Update all references.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Further fixes for eww-open-url on Tramp files
* lisp/url/url-file.el (url-file-asynch-callback): Simplify
slightly (bug#40425).
* lisp/url/url-queue.el (url-queue-start-retrieve): Allow
non-local files here, too.
2022-02-20 Juri Linkov <juri@linkov.net>
* lisp/mouse.el (context-menu-entry): Remove help-buffer-under-preparation.
(bug#53910)
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Fix a compilation warning in cus-edit-tests.el
2022-02-20 Stefan Monnier <monnier@iro.umontreal.ca>
(loadhist_initialize): Fix regression test failure
* src/lread.c (loadhist_initialize): Adjust assertion for the nil case.
(readevalloop): Signal an error for non-string `sourcename`.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Adjust doc-tests-documentation/autoloaded-macro
* test/src/doc-tests.el
(doc-tests-documentation/autoloaded-macro): Adjust test -- rx is
loaded in nativecomp Emacsen when the tests are run, apparently.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Simplify Minibuffer Edit example
* doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC
and ? completion (bug#36745).
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Add instructions on disabling SPC completion to Minibuffer Edit
* doc/emacs/mini.texi (Minibuffer Edit): Say how to disable SPC
and ? completion (bug#36745).
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warning introduced by previous shr.el change
* lisp/net/shr.el (url-file): Fix compilation warning.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Make eww work better on Tramp HTML
* lisp/net/eww.el (eww-open-file): Use it.
(eww-browse-url): Ditto.
* lisp/net/shr.el (shr-expand-url): Allow loading relative Tramp
files if we're reading from a file:// document.
* lisp/url/url-file.el (url-allow-non-local-files): New user option
(bug#40425).
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Make `g' work in eww buffers displaying Tramp files
* lisp/net/eww.el (eww--file-buffer): Refactored out.
(eww-open-file): From here.
(eww-reload): Make reloading work in Tramp files.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Make string-pixel-width about 40% faster
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up.
2022-02-20 Michael Albinus <michael.albinus@gmx.de>
* doc/misc/tramp.texi (Customizing Methods): Add tramp-nspawn.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Quote files that start with - in dired
* lisp/dired-aux.el (dired-shell-stuff-it): Add ./ to file names
that start with - (bug#10458).
2022-02-20 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp.el (tramp-read-passwd): Adapt for empty user names.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation warning in previous sendmail.el change
* lisp/mail/sendmail.el (mm-long-lines-p): Fix compilation warning.
2022-02-20 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that `mail-send' breaks too-long lines
* lisp/mail/sendmail.el (mail-send): Ensure that we fold too-long
lines when using `sendmail-user-agent' (bug#53412).
2022-02-20 Matthias Meulien <orontee@gmail.com>
Add more bookmark types
* lisp/gnus/gnus-sum.el (gnus-summary-bookmark-jump):
* lisp/man.el (Man-bookmark-jump): Mark the bookmark type
(bug#54030).
2022-02-20 Po Lu <luangruo@yahoo.com>
Fix font panel on NS
* src/nsterm.m ([EmacsView changeFont:]): Don't use emacs_event,
instead placing events directly into the keyboard buffer.
2022-02-20 Po Lu <luangruo@yahoo.com>
* src/haikumenu.c (haiku_dialog_show): Set `popup_activated_p'.
Author:
2022-02-20 Po Lu <luangruo@yahoo.com>
Handle GUI input while inside popup dialog on Haiku
* src/haiku_support.cc (alert_popup_value): New variable.
(be_alert_thread_entry): New function.
(BAlert_go): Complete rewrite that allows async input to be
handled while the popup is active.
* src/haiku_support.h: Update prototypes.
* src/haikumenu.c (haiku_dialog_show, haiku_popup_dialog): Stop
blocking input and pass required callbacks to `BAlert_go'.
* src/haikuterm.c (haiku_term_init): Set interrupt input mode to
t.
2022-02-19 Po Lu <luangruo@yahoo.com>
Fix typo in last change
* src/xterm.c (handle_one_xevent): Use `xi_done_keysym' label
when ignoring modifier keys from XI2 input.
2022-02-19 Po Lu <luangruo@yahoo.com>
Ignore modifier keys early when handling X key press events
* src/xterm.c (handle_one_xevent): Ignore modifier keys earlier
without going through the usual key lookup.
(x_delete_terminal): Free recorded modifier map.
(x_find_modifier_meanings): Record modifier map.
* src/xterm.h (struct x_display_info): New field `modmap'.
2022-02-19 Po Lu <luangruo@yahoo.com>
Free XI2 devices in x_delete_display instead
* src/xterm.c (x_delete_display): Free XI2 device data here
instead, since it doesn't involve contacting the X server any
more.
(x_delete_terminal): Stop freeing XI2 device data.
2022-02-19 Philip Kaludercic <philipk@posteo.net>
Revert "; * rcirc.el (rcirc-print): Prefer sleep-for over sit-for"
2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca>
(specpdl_unrewind): Fix corner case
* src/lisp.h (enum specbind_tag): New elem SPECPDL_NOP.
* src/eval.c (specpdl_unrewind): Zap entries that can't be applied any more,
and simplify.
(default_toplevel_binding, lexbound_p, Fbacktrace__locals): Simplify.
(do_one_unbind, mark_specpdl): Handle SPECPDL_NOP.
2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca>
(macroexp-warn-and-return): Fix bug#53618
* lisp/emacs-lisp/macroexp.el (macroexp-warn-and-return):
Reorder arguments to preserve compatibility with that of Emacs-28.
(macroexp--unfold-lambda, macroexp--expand-all):
* lisp/emacs-lisp/pcase.el (pcase-compile-patterns, pcase--u1):
* lisp/emacs-lisp/gv.el (gv-ref):
* lisp/emacs-lisp/eieio.el (defclass):
* lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default)
(eieio-oset-default):
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
* lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet, cl-defstruct):
* lisp/emacs-lisp/cl-generic.el (cl-defmethod):
* lisp/emacs-lisp/byte-run.el (defmacro, defun):
* lisp/emacs-lisp/bindat.el (bindat--type): Adjust accordingly.
2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca>
(loadhist_initialize): Minor refactoring
Consolidate a bit of code.
* src/lread.c (loadhist_initialize): New function.
(Fload, readevalloop): Use it.
2022-02-19 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix mishaps
This reverts the last change so it also applies to non-git diffs again.
Instead, we're now more careful not to mis-recognize file headers as
addition/removal lines.
In addition to that, mark the file header such that it's
re-font-locked all at once, and to still recognize it after
`diff-reverse-direction`.
2022-02-19 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp password prompts for sudo-like methods
* doc/misc/tramp.texi (Password handling): Explain entries for
doas, sudo and sudoedit.
* etc/NEWS (Tramp): Document changed password prompts.
* lisp/net/tramp-sh.el (tramp-methods) <sudo, doas>:
Add `tramp-password-previous-hop'.
(tramp-maybe-open-connection): Modify `previous-hop' if needed.
* lisp/net/tramp-sudoedit.el (tramp-methods) <sudoedit>:
Add `tramp-password-previous-hop'.
(tramp-sudoedit-null-hop): New defconst.
(tramp-sudoedit-send-command): Use it.
* lisp/net/tramp.el (tramp-methods): Adapt docstring.
(tramp-null-hop): New defconst.
(tramp-get-remote-null-device): Use it.
2022-02-19 Lars Ingebrigtsen <larsi@gnus.org>
Some vtable.texi copy edits
* doc/misc/vtable.texi (Making A Table): Mention the accessors.
2022-02-19 Lars Ingebrigtsen <larsi@gnus.org>
Mention vtable accessor functions
* doc/misc/vtable.texi (Making A Table): Mention the accessors.
2022-02-19 Lars Ingebrigtsen <larsi@gnus.org>
Improve the vtable documentation on argument types
* doc/misc/vtable.texi (Making A Table): Say what the argument
types are.
2022-02-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix a vtable example
* doc/misc/vtable.texi (Introduction): Fix example.
2022-02-19 Eli Zaretskii <eliz@gnu.org>
Improve vtable documentation
* doc/misc/vtable.texi (top-level): Add @syncodeindex directives.
(Introduction): Fix wording and markup. Add indexing.
(Making A Table, Commands, Interface Functions): Fix typos and
markup. Add indexing.
* etc/NEWS: Improve wording of the vtable's NEWS entry.
* doc/misc/Makefile.in (INFO_COMMON): Add 'vtable'.
2022-02-19 Lars Ingebrigtsen <larsi@gnus.org>
Add column sorting order indicators to vtable
* lisp/emacs-lisp/vtable.el (vtable--indicator): New function.
(vtable--insert-header-line): Use it to display sorting order
indicators.
2022-02-19 Lars Ingebrigtsen <larsi@gnus.org>
Make string-pixel-width slightly speedier
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Speed up
string-pixel-width in the zero-length string case.
2022-02-19 Po Lu <luangruo@yahoo.com>
Avoid consing extra string when processing GTK native input
* src/gtkutil.c (xg_im_context_commit): Use
`decode_string_utf8' to decode input text.
* src/keyboard.c (kbd_buffer_get_event_1): If coding system is
Qt, simply return the string without decoding it.
* src/termhooks.h (enum event_kind): Document meaning of Qt as
coding system in a multibyte keystroke event's string argument.
2022-02-19 Mauro Aranda <maurooaranda@gmail.com>
Fix types of some align.el defcustoms
* lisp/align.el (align-region-heuristic)
(align-large-region): Both options can be nil, but the defcustom type
didn't allow nil values.
(align-rules-list-type): The "Run If" and "Valid" attributes
should be functions, but the default value was t. Change it to
#'always (bug#54048).
2022-02-19 Mauro Aranda <maurooaranda@gmail.com>
Fix :match function for the key widget
* lisp/wid-edit.el (key): Calling key-valid-p directly doesn't work,
because the :match function is called with the widget and the value as
arguments (bug#54049).
2022-02-19 Po Lu <luangruo@yahoo.com>
Fix some more hangs when parenting child frames around on Haiku
* src/haiku_support.cc (ParentTo):
(FrameMoved): Don't sync when a recursive lock might be able to
be held.
2022-02-19 Lars Ingebrigtsen <larsi@gnus.org>
Add a new library to format variable-pitch tables
* doc/misc/vtable.texi (Index): New manual.
* lisp/emacs-lisp/vtable.el: New library.
2022-02-19 Po Lu <luangruo@yahoo.com>
Improve portability of alpha channel visual detection
* src/xfns.c (select_visual): Look for PictVisuals with an alpha
channel instead of blindly assuming that 32 bit visuals have an
alpha channel.
(Fx_show_tip): Fix crash on some displays where child is None.
* src/xterm.c (x_term_init): Initialize Xrender before
calling select_visual.
2022-02-19 Alan Mackenzie <acm@muc.de>
Fix symbols with position appearing in the output of `compile-defun'
This happened with the tags of a condition-case. Also fix the detection of
circular lists while stripping the positions from symbols with position.
* lisp/emacs-lisp/byte-run.el (byte-run--circular-list-p): Remove.
(byte-run--strip-s-p-1): Write a value of t into a hash table for each cons or
vector/record encountered. (This is to prevent loops with circular
structures.) This is now done for all arguments, not just those detected as
circular lists.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defvar)
(byte-compile-form, byte-compile-dynamic-variable-op)
(byte-compile-constant, byte-compile-push-constant): Remove redundant calls to
`bare-symbol'.
(byte-compile-lambda): call `byte-run-strip-symbol-positions' on the arglist.
(byte-compile-out): call `byte-run-strip-symbol-positions' on the operand.
This is the main call to this function in bytecomp.el.
* src/fns.c (hashfn_eq): Strip the position from an argument which is a symbol
with position.
(hash_lookup): No longer strip a position from a symbol with position.
(sxhash_obj): Add handling for symbols with position, substituting their bare
symbols when symbols with position are enabled.
2022-02-19 Eli Zaretskii <eliz@gnu.org>
Fix character compositions on the mode line
* src/composite.c (composition_compute_stop_pos)
(Ffind_composition_internal): When characters come from a string,
determine whether to compose them from that string's multibyteness,
not from that of the current buffer. (Bug#53729)
2022-02-19 Po Lu <luangruo@yahoo.com>
Don't ignore events from XI2 slave devices anymore
All the machinery needed to keep track of events from those
devices is already in place, so that's no longer required.
* src/xterm.c (x_get_scroll_valuator_delta):
(xi_reset_scroll_valuators_for_device_id):
(handle_one_xevent): Don't ignore XI devices that are not master
pointers or keyboards.
2022-02-19 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
57c112cfe5 ; * doc/emacs/files.texi (Comparing Files): Fix a reference.
bdeac2d5af ; Fix a typo in filesets.el's doc string
2022-02-19 Po Lu <luangruo@yahoo.com>
Always decode GTK input method text as utf-8-unix
* src/gtkutil.c (xg_im_context_commit): Use `utf-8-unix' as
coding system for text.
2022-02-18 Po Lu <luangruo@yahoo.com>
Be less strict about which emulated motion events to ignore
* src/xterm.c (handle_one_xevent): Don't test XI2 version before
dropping PointerEmulated motion events.
2022-02-18 Po Lu <luangruo@yahoo.com>
* src/haikufns.c (haiku_create_frame): Error if font wasn't found.
2022-02-18 Po Lu <luangruo@yahoo.com>
Utilize new string decoding feature in GTK native input
* src/gtkutil.c (xg_im_context_commit): Don't decode strings
manually using g_utf8_to_ucs4 but pass unibyte string as the
keystroke event arg instead.
2022-02-18 Eric Abrahamsen <eric@ericabrahamsen.net>
Handle multiple directory separators in gnus-search results
Try to treat the file names more like file names, less like strings
to massage.
* lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Use
`expand-file-name' to collapse separators and generally canonicalize
the name. Use `file-name-split' and joining instead of regexp
munging.
2022-02-18 Po Lu <luangruo@yahoo.com>
Fix background stipple with `alpha_background'
* src/xterm.c (x_fill_rectangle): Fix treatment of foreground
and background colors when there is a stipple.
2022-02-18 Po Lu <luangruo@yahoo.com>
Fix a crash on some versions of GTK
* src/emacsgtkfixed.c (XSetWMNormalHints): Fix potential
arithmetic fault.
2022-02-18 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
1e4b04c Improve documentation of filling and justification commands
9fd396e * lisp/progmodes/subword.el (superword-mode): Doc fix. (Bug#...
e303cb1 Fix indexing of module functions that return complex types.
2022-02-18 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
c8442df ; Separate command and concept index in Transient manual
8aa052c ; Fix Transient manual
5b7752a Fix problem with popd for in remote shell buffers
38f6ea1 Import texi source file for transient manual
df34929 Update to Org 9.5.2-15-gc5ceb6
2022-02-18 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
# Conflicts:
# lisp/startup.el
2022-02-18 Po Lu <luangruo@yahoo.com>
Fix blurry text on multiple scale monitor setups
* src/pgtkterm.c (pgtk_copy_bits): Preserve window scale factor
on temporary surface. (bug#54040)
2022-02-18 Andrew G Cohen <cohen@andy.bu.edu>
Make sure nnselect search query is properly parsed
* lisp/gnus/gnus-search.el (gnus-search-make-spec): The search query
should not be interpreted as raw, but whatever the underlying search
engine expects.
2022-02-18 Andrew G Cohen <cohen@andy.bu.edu>
Fix gnus searching of native servers
* lisp/gnus/gnus-group.el (gnus-group-make-search-group):
(gnus-group-read-ephemeral-search-group): Find the real server even
when the group is native.
2022-02-18 Po Lu <luangruo@yahoo.com>
Make treatment of `alpha-background' more consistent
* src/xterm.c (x_clear_glyph_string_rect):
(x_draw_glyph_string_background): Ignore alpha_background on all
cursors.
2022-02-18 Eric Abrahamsen <eric@ericabrahamsen.net>
Fix gnus-search-run-search methods
* lisp/gnus/gnus-search.el (gnus-search-run-search): Both these
implementations were setting the current buffer and then not setting
it back.
2022-02-17 Po Lu <luangruo@yahoo.com>
Make stipple backgrounds respect `alpha-background'
* src/xterm.c (x_fill_rectangle): Respect `alpha-background'
when drawing stipple.
2022-02-17 Po Lu <luangruo@yahoo.com>
Fix mis-parsing of certain malformed XBM files
* src/image.c (xbm_scan): Return error on a character literal
that doesn't start with "\x".
2022-02-17 Po Lu <luangruo@yahoo.com>
Parse XBM images which use character escapes for hex literals
* src/image.c (xbm_scan): Implement parsing of hex escapes in
character literals.
2022-02-17 Eric Abrahamsen <eric@ericabrahamsen.net>
Fix gnus-search notmuch thread searches
* lisp/gnus/gnus-search.el (gnus-search-run-search): Multiple things
wrong with collecting thread ids from the search results, and
constructing a new search query.
(gnus-search-indexed-search-command): Use list appending rather than
backtick construction, that was more confusing than it was helpful.
2022-02-17 Juri Linkov <juri@linkov.net>
* lisp/mouse.el (context-menu-entry): Don't create menu for Help commands.
Help commands that describe keybindings call context-menu-entry bound to
a key. This causes too much trouble when trying to build the context menu
in a temporary Help buffer that is not displayed in a window.
OTOH, there is no information in context menus useful for Help commands.
So `help-buffer-under-preparation' is added to filter out such calls.
(bug#53910)
2022-02-17 Eli Zaretskii <eliz@gnu.org>
Resurrect innocent joke in byte-opt.el
* lisp/emacs-lisp/byte-opt.el: Resurrect innocent joke in a
comment.
2022-02-17 Eli Zaretskii <eliz@gnu.org>
Fix files-tests on MS-Windows
* test/lisp/files-tests.el
(files-tests-zzdont-rewrite-precious-files): Renamed from
'files-tests-dont-rewrite-precious-files', to fix a subtle problem
that breaks 2 tests on MS-Windows.
(files-tests-revert-buffer)
(files-tests-revert-buffer-with-fine-grain): No need to disable
file locking anymore.
2022-02-17 Mattias Engdegård <mattiase@acm.org>
Fix or remove outdated comments
* src/eval.c (funcall_lambda): Rewrite obsolete comment.
* src/bytecode.c (exec_byte_code): Remove lying comment and
unneeded #define.
* lisp/emacs-lisp/byte-opt.el: Remove car. Keep pig.
(byte-compile-log-lap-1): Remove obsolete and irrelevant comment.
2022-02-17 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/face-remap.el: Fix bug#53294
* lisp/face-remap.el (face-remap--copy-face): New function.
(face-attrs--make-indirect-safe): Use it.
2022-02-17 Eli Zaretskii <eliz@gnu.org>
Speed up exiting "emacs -Q"
* lisp/files.el (files--buffers-needing-to-be-saved): Don't call
functions from seq.el. Using seq.el has an annoying side-effect
of slowing down "C-x C-c" from "emacs -Q" due to the need to load
seq.el.
2022-02-17 Po Lu <luangruo@yahoo.com>
Fix crash when displaying XBM images on a 32-bit visual
* src/image.c (Create_Pixmap_From_Bitmap_Data): Fix use of wrong
(default) depth.
2022-02-17 Po Lu <luangruo@yahoo.com>
Implement XBM images on Haiku
* src/image.c (image_create_bitmap_from_data): Handle allocation
failures on Haiku.
(Create_Pixmap_From_Bitmap_Data): Implement for Haiku.
2022-02-17 Lars Ingebrigtsen <larsi@gnus.org>
Add a NEWS entry for the bookmark changes (bug#54030)
* lisp/bookmark.el (bookmark-bmenu-mode): Make the type shorter.
2022-02-17 Matthias Meulien <orontee@gmail.com>
Don't prefix bookmark name with VC backend name
* lisp/vc/vc-dir.el (vc-dir-bookmark-make-record): Remove prefix from
bookmark name.
2022-02-17 Matthias Meulien <orontee@gmail.com>
Extend bookmark menu with with handler type column
* lisp/bookmark.el (bookmark-bmenu--revert): Extend table entries with
handler type.
(bookmark-bmenu-mode): Add handler type column.
* lisp/doc-view.el (doc-view-bookmark-jump): Set bookmark handler type.
* lisp/help-mode.el (help-bookmark-jump): Set bookmark handler type.
* lisp/image-dired.el (image-dired-bookmark-jump): Set bookmark handler type.
* lisp/info.el (Info-bookmark-jump): Set bookmark handler type.
* lisp/net/eww.el (eww-bookmark-jump): Set bookmark handler type.
* lisp/vc/vc-dir.el (vc-dir-bookmark-jump): Set bookmark handler type.
* lisp/woman.el (woman-bookmark-jump): Set bookmark handler type.
2022-02-17 Protesilaos Stavrou <info@protesilaos.com>
Update modus-themes to version 2.1.0
* doc/misc/modus-themes.org (Customization Options): Document new user
options and relevant changes.
(Option for links, Option for box buttons)
(Option for completion framework aesthetics, Option for mail citations)
(Option for intense markup in Org and others)
(Option for diff buffer looks, Option for org-mode block styles)
(Option for Org agenda constructs)
(Option for the headings' overall style): Update user options.
(More accurate colors in terminal emulators): Add section on how to
improve the accuracy of color reproduction in terminal emulators.
(Case-by-case face specs using the themes' palette)
(Face specs at scale using the themes' palette, Override colors)
(Override colors through blending, Custom Org user faces): Improve
wording.
(Custom Org emphasis faces): Add section about bespoke faces for Org
emphasis markers.
(Backdrop for pdf-tools): Improve sample code.
(Ediff without diff color-coding): Add section about user-level
changes to the style of Ediff buffers.
(Full support for packages or face groups): Update lists of supported
packages.
(Indirectly covered packages): Update list of indirectly supported
packages.
(Note on underlines in compilation buffers): Clarify wording.
(Note on EWW and Elfeed fonts): Be more specific about 'shr' faces.
(Are these color schemes?): Answer frequently asked question.
(Acknowledgements): Update acknowledgements' section.
* etc/themes/modus-themes.el (modus-themes-operandi-colors)
(modus-themes-vivendi-colors): Update color palettes.
(modus-themes-subtle-red, modus-themes-subtle-green)
(modus-themes-subtle-yellow, modus-themes-subtle-blue)
(modus-themes-subtle-magenta, modus-themes-subtle-cyan)
(modus-themes-subtle-neutral, modus-themes-intense-red)
(modus-themes-intense-green, modus-themes-intense-yellow)
(modus-themes-intense-blue, modus-themes-intense-magenta)
(modus-themes-intense-cyan, modus-themes-intense-neutral)
(modus-themes-refine-red, modus-themes-refine-green)
(modus-themes-refine-yellow, modus-themes-refine-blue)
(modus-themes-refine-magenta, modus-themes-refine-cyan)
(modus-themes-nuanced-red, modus-themes-nuanced-green)
(modus-themes-nuanced-yellow, modus-themes-nuanced-blue)
(modus-themes-nuanced-magenta, modus-themes-nuanced-cyan)
(modus-themes-special-cold, modus-themes-special-mild)
(modus-themes-special-warm, modus-themes-special-calm)
(modus-themes-diff-added, modus-themes-diff-changed)
(modus-themes-diff-removed, modus-themes-diff-refine-added)
(modus-themes-diff-refine-changed, modus-themes-diff-refine-removed)
(modus-themes-diff-focus-added, modus-themes-diff-focus-changed)
(modus-themes-diff-focus-removed, modus-themes-diff-heading)
(modus-themes-heading-1, modus-themes-heading-2, modus-themes-heading-3)
(modus-themes-heading-4, modus-themes-heading-5, modus-themes-heading-6)
(modus-themes-heading-7, modus-themes-heading-8, modus-themes-hl-line)
(modus-themes-variable-pitch, modus-themes-lang-note)
(modus-themes-lang-warning, modus-themes-lang-error)
(modus-themes-reset-soft, modus-themes-reset-hard): Fix typo in
':group'.
(modus-themes-markup-code): Add face.
(modus-themes--headings-choice, modus-themes-headings)
(modus-themes-org-agenda): Update documentation about typographic
weights.
(modus-themes-org-blocks, modus-themes-completions): Update doc string
and add new stylistic variant.
(modus-themes-intense-markup): Deprecate old user option. Replace it
with 'modus-themes-markup'.
(modus-themes-mail-citations): Update doc string and add another
stylistic variant.
(modus-themes-box-buttons): Add new user option.
(modus-themes--slant): Tweak how slant is applied.
(modus-themes--markup, modus-themes--prompt, modus-themes--paren)
(modus-themes--syntax-foreground, modus-themes--syntax-extra)
(modus-themes--syntax-string, modus-themes--syntax-comment)
(modus-themes--heading, modus-themes--agenda-structure)
(modus-themes--agenda-habit, modus-themes--org-block-delim)
(modus-themes--mode-line-attrs, modus-themes--standard-completions)
(modus-themes--link, modus-themes--link-color, modus-themes--region)
(modus-themes--hl-line, modus-themes--mail-cite): Tweak private
functions.
(modus-themes--button): Adjust private function.
(modus-themes--heading-weights): Deprecate it. Replace by
'modus-themes-weights'.
(modus-themes-faces): Update faces.
* etc/themes/modus-vivendi-theme.el
* etc/themes/modus-operandi-theme.el: Bump version number.
For a detailed change log, read:
<https://protesilaos.com/codelog/2022-02-17-modus-themes-2-1-0/>.
2022-02-17 Lars Ingebrigtsen <larsi@gnus.org>
Have setopt check types
* doc/lispref/variables.texi (Setting Variables): Note type checking.
* lisp/cus-edit.el (setopt--set): New function to avoid having
Customize saving values, too.
(setopt): Use it.
2022-02-17 Po Lu <luangruo@yahoo.com>
Fix warning during dumping on MS-DOS
* lisp/cus-start.el (standard): Filter out
`process-error-pause-time' on MS-DOS.
2022-02-17 Po Lu <luangruo@yahoo.com>
Prevent menu items leak if x-pre-popup-menu-hook signals
* src/menu.c (x_popup_menu_1): Make sure menu items are
discarded if the pre popup menu hook signals.
2022-02-17 Michael Albinus <michael.albinus@gmx.de>
Fix problem with "~" in Tramp
* lisp/net/tramp.el (tramp-handle-substitute-in-file-name):
Remove special handling of "~" in localname. (Bug#53053)
2022-02-17 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_init_master_valuators): Clear `pending_enter_reset'.
2022-02-17 Po Lu <luangruo@yahoo.com>
Improve handling of XI2 wheel movement
* src/xterm.c (handle_one_xevent): Process movement in all
directions and send it as a single event.
2022-02-16 Po Lu <luangruo@yahoo.com>
Fix SIGFPE on some fonts when calculating their average width on Haiku
* src/haiku_font_support.cc (estimate_font_ascii): Avoid divison
by zero.
2022-02-16 Po Lu <luangruo@yahoo.com>
* src/emacsgtkfixed.c (XSetWMSizeHints): Improve fix for bug#8919.
2022-02-16 Po Lu <luangruo@yahoo.com>
Don't auto-lower when moving onto a menu bar on Haiku
* src/haiku_io.c (haiku_len): Handle `MENU_BAR_LEFT'.
* src/haiku_support.cc (EmacsMenuBar::MouseMoved): New function.
* src/haiku_support.h (enum haiku_event_type): New event
`MENU_BAR_LEFT'.
(struct haiku_menu_bar_left_event): New structure.
* src/haikuterm.c (haiku_read_socket): Don't auto-lower when the
mouse exits the frame view onto the menu bar and handle
MENU_BAR_LEFT events.
2022-02-16 Po Lu <luangruo@yahoo.com>
Handle `unspecified' values of symbolic font values on Haiku
* src/haikufont.c (haikufont_spec_or_entity_to_pattern): Handle
`unspecified' values of symbolic values.
2022-02-16 Michael Albinus <michael.albinus@gmx.de>
Fix problem with file-modification-time in tramp-sshfs.el
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
Use `tramp-handle-file-notify-add-watch',
`tramp-handle-file-notify-rm-watch' and
`tramp-handle-file-notify-valid-p'.
(tramp-sshfs-handle-write-region): Set file modification time.
(Bug#54016)
* test/lisp/net/tramp-tests.el (tramp--test-asynchronous-processes-p):
Filter out tramp-adb on multi-byte `default-directory'.
(tramp--test-hpux-p, tramp--test-macos-p): Protect against errors.
(tramp--test-check-files): Discriminate also tramp-sshfs.el.
2022-02-16 Matthias Meulien <orontee@gmail.com>
Fix computation of outline heading level for non-git diff
* lisp/vc/diff-mode.el (diff-setup-buffer-type): Compute outline heading level
using diff-hunk-header-re (bug#51809).
(diff--font-lock-prettify): Disable prettify in non-git diff.
2022-02-16 Eli Zaretskii <eliz@gnu.org>
Add support for Tai Tham script
* lisp/international/fontset.el (setup-default-fontset)
(script-representative-chars): Add tai-tham.
* lisp/language/thai.el ("Northern Thai"): New language
environment. Patch by Richard Wordingham
<richard.wordingham@ntlworld.com>. Set
'composition-function-table' for the Tai Tham block. Original
code by Richard Wordingham <richard.wordingham@ntlworld.com>.
* etc/HELLO: Add Northern Thai greeting.
* etc/NEWS: Announce addition of Northern Thai language environment.
2022-02-16 Po Lu <luangruo@yahoo.com>
Fix recent change in xwidget.c
* src/xwidget.c (xwidget_init_view): Don't assume ttip_widget
is NULL if tooltips have not been initialized.
2022-02-16 Mattias Engdegård <mattiase@acm.org>
Speed up count_size_as_multibyte
This function is used in many places to calculate the length of
a unibyte string converted to multibyte.
* src/character.c (count_size_as_multibyte): Move the overflow test
outside the loop, which makes it much faster. Standard compilers
will even vectorise it if asked to (-O2 in Clang, -O3 in GCC).
2022-02-16 Mattias Engdegård <mattiase@acm.org>
Avoid emacs-module-tests failure on macOS
* test/src/emacs-module-tests.el (module/describe-function-1):
Prevent string mismatch caused by line breaks after filling;
the macOS dynamic library suffix (.dylib) is longer than on other
platforms.
2022-02-16 Po Lu <luangruo@yahoo.com>
Fix frame focus handling with native input
* lisp/term/x-win.el (x-gtk-use-native-input-watcher): Stop
passing frame parameter to `x-internal-focus-input-context'.
* src/xfns.c (Fx_internal_focus_input_context): Focus all focus
frames from all displays.
2022-02-16 Po Lu <luangruo@yahoo.com>
Resolve xwidget scrolling mysteries
* src/xterm.c (x_any_window_to_frame): Handle xwidget views.
(handle_one_xevent): Always increment values array when handling
motion events.
2022-02-15 Po Lu <luangruo@yahoo.com>
* etc/NEWS: Improve the PGTK entry.
2022-02-15 Po Lu <luangruo@yahoo.com>
Decode keyboard input as latin-1 whenever appropriate
* src/keyboard.c (kbd_buffer_get_event_1): Use `coding'
property if present.
* src/termhooks.h (enum event_kind): Document meaning of
`coding' property on text strings.
* src/xterm.c (handle_one_xevent): Set coding property on text
to latin-1 if it was obtained with XLookupString.
2022-02-15 Po Lu <luangruo@yahoo.com>
Don't decode text within XIM callbacks or handle_one_xevent
* src/keyboard.c (kbd_buffer_get_event_1):
(kbd_buffer_get_event_2): New functions.
(kbd_buffer_get_event): Accept a new meaning of
MULTIBYTE_CHAR_KEYSTROKE_EVENT where .arg can be a unibyte
string to be decoded in the locale coding system.
* src/termhooks.h (enum event_kind): Document new meaning of
.arg in a multibyte keystroke event.
* src/xfns.c (struct x_xim_text_conversion_data): New struct.
(x_xim_text_to_utf8_unix_1):
(x_xim_text_to_utf8_unix_2): New functions.
(x_xim_text_to_utf8_unix): Handle decode failure correctly.
(xic_preedit_draw_callback): Abort IM context if text could not
be decoded correctly.
* src/xterm.c (handle_one_xevent): Utilize new meaning of
MULTIBYTE_CHAR_KEYSTROKE_EVENT.
2022-02-15 Michael Albinus <michael.albinus@gmx.de>
Some Tramp cleanup
* doc/misc/tramp.texi (Remote processes): Add also tramp-sshfs.el.
* lisp/net/tramp-adb.el (tramp-adb-handle-make-process):
Error-out for multi-byte `default-directory'.
* lisp/net/tramp.el (tramp-tolerate-tilde): Move it up.
(tramp-handle-abbreviate-file-name): Use it.
(tramp-read-passwd): Show literal passphrase prompt.
2022-02-15 Jim Porter <jporterbugs@gmail.com>
Don't attempt to connect to a remote server during 'abbreviate-file-name'
* lisp/net/tramp.el (tramp-handle-abbreviate-file-name): Only use the
"home-directory" when a connection has been established.
2022-02-15 Lars Ingebrigtsen <larsi@gnus.org>
Allow savehist-additional-variables to truncate lists
* lisp/savehist.el (savehist-save): Allow truncating values (bug#30943).
2022-02-15 Lars Ingebrigtsen <larsi@gnus.org>
Adjust files-test-file-size-human-readable test
* test/lisp/files-tests.el (files-test-file-size-human-readable):
Fix test after recent change.
2022-02-15 Lars Ingebrigtsen <larsi@gnus.org>
Make autoarg obsolete
* lisp/obsolete/autoarg.el: Make obsolete.
2022-02-15 Po Lu <luangruo@yahoo.com>
Fix parsing of some semibold font styles on Haiku
* src/haiku_font_support.cc (font_style_to_flags): Accept
"Semibold" to mean SemiBold as well. Reported by
augiedoggie <augiedoggie@users.noreply.github.com>.
2022-02-15 Po Lu <luangruo@yahoo.com>
Disable auto-lowering and raising on Haiku when a popup is active
* src/haikuterm.c (haiku_new_focus_frame):
(haiku_read_socket): Don't raise or lower if popup is activated.
2022-02-15 Po Lu <luangruo@yahoo.com>
Replace use of `DefaultRootWindow' with our recorded root window
* src/xfns.c (x_relative_mouse_position):
(x_set_parent_frame):
(Fx_mouse_absolute_pixel_position):
(Fx_set_mouse_absolute_pixel_position):
* src/xterm.c (x_iconify_frame): Use dpyinfo->root_window
instead of DefaultRootWindow.
2022-02-14 Po Lu <luangruo@yahoo.com>
Improve the help message for the pgtk configure option
* configure.ac: Describe the purpose of PGTK better.
2022-02-14 Po Lu <luangruo@yahoo.com>
* src/xterm.c (init_xterm): Use more reliable method to disable XI2.
2022-02-14 Po Lu <luangruo@yahoo.com>
Better handle devices being enabled on XI2
* src/xterm.c (handle_one_xevent): Don't abort on DeviceChanged
if the device couldn't be found, instead regenerating the device
hierarchy to see if it was enabled.
2022-02-14 Eric Abrahamsen <eric@ericabrahamsen.net>
Fix docstring and init of Gnus search -remove-prefix options
* lisp/gnus/gnus-search.el (*-remove-prefix): For all engine defaults,
remove incorrect docs stating this is a regexp (it's a string). Also,
use `expand-file-name' to get the correct default value, not `concat'
and (getenv "HOME").
2022-02-14 Eric Abrahamsen <eric@ericabrahamsen.net>
Fix manual documentation of Gnus tool bars
* doc/misc/gnus.texi: The options `gnus-use-toolbar',
`gnus-toolbar-thickness', and `gnus-summary-mail-toolbar' no longer
exist. Other options in this section have been renamed from "toolbar"
to "tool-bar".
2022-02-14 Eric Abrahamsen <eric@ericabrahamsen.net>
Be more explicit about the meaning of "remove prefix" in Gnus search
* doc/misc/gnus.texi (Search Engines): It's easy to get confused about
what we're removing and why.
2022-02-14 Eli Zaretskii <eliz@gnu.org>
Improve recent addition to documentation of face remapping
* doc/lispref/display.texi (Basic Faces): Make the list of basic
faces more complete.
(Face Remapping): Improve wording of a recent addition; add
cross-reference to "Basic Faces".
2022-02-14 Eli Zaretskii <eliz@gnu.org>
Improve format of values returned by 'file-size-human-readable'
* lisp/files.el (file-size-human-readable): Emit one digit of the
fractional part of the size only if there's just one digit before
the decimal point.
2022-02-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in Face Remapping
* doc/lispref/display.texi (Face Remapping): Fix typo.
2022-02-14 Philip Kaludercic <philipk@posteo.net>
Add command to contact maintainer
* package.el (package-menu-mode-map): Add package-contact-maintainer.
(package--query-desc): Extract a common utility function.
(package-browse-url): Use package--query-desc.
(package-contact-maintainer): Add command.
2022-02-14 Philip Kaludercic <philipk@posteo.net>
Allow for packages to be installed directly from VCS
Packages installed via package-fetch are of the kind 'source, and
their extra properties may include a :upstream key (a list consisting
of the VC backend, a remote repository, a branch and a path within the
repository) and :rev key (indicating a specific revision to checkout).
* package.el (package-devel-dir): Add new option.
(package-desc): Allow an empty version string to be passed to
package-desc-from-define.
(package-desc-full-name): Handle source packages.
(vc-working-revision): Declare function for package-devel-commit.
(package-devel-commit): Add function.
(package-load-descriptor): Detect and handle source packages.
(package-load-all-descriptors): Use package-devel-dir.
(vc-clone): Declare function for package-unpack.
(package-unpack): Handle source packages.
(package-generate-description-file): Handle source packages by
ommiting a version number.
(package-install-from-archive): Check if a package is a source
package.
(package-fetch): Add new command
(package-desc-status): Check for source packages.
(package--remove-hidden): Hide regular packages from the package list
if a source package was installed.
(package-status-from-source): Add new face.
(package-menu--print-info-simple): Handle source packages.
(package-menu-mark-delete): Allow deleting source packages.
(package-menu--status-predicate): Sort source packages after
dependencies but before unsigned packages.
(package-menu-filter-by-status): Allow filtering by source packages.
2022-02-14 Philip Kaludercic <philipk@posteo.net>
Implement vc-clone for git
* vc-git.el (vc-git-clone): Add Git implementation
2022-02-14 Philip Kaludercic <philipk@posteo.net>
Add new command to clone a repository
* vc.el (vc-clone): Add command
2022-02-14 Lars Ingebrigtsen <larsi@gnus.org>
Don't signal errors in abbrev-table-p
* lisp/abbrev.el (abbrev-table-p): Ignore the error.
* src/lread.c (oblookup): Signal `wrong-type-argument' instead of
`error' if it turns out that we're not really in an obarray (bug#53988).
2022-02-14 Philip Kaludercic <philipk@posteo.net>
Improve stability of message-hide-headers
* message.el (message-hide-headers): Use a pointer instead of tracking
the "end-of-headers" point manually (bug#53991).
2022-02-14 Po Lu <luangruo@yahoo.com>
Premultiply background color by alpha for images
* src/xterm.c (x_query_frame_background_color): Premultiply
colors as X wants them when built without Cairo.
2022-02-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in previous Face Remapping doc change
* doc/lispref/display.texi (Face Remapping): Fix typo.
2022-02-14 Lars Ingebrigtsen <larsi@gnus.org>
Note caveat about remapping basic faces
* doc/lispref/display.texi (Face Remapping): Note caveat about
basic faces (bug#53636).
2022-02-14 Po Lu <luangruo@yahoo.com>
Improve Haiku selection handling
* lisp/select.el (gui--selection-value-internal): Use X types on
Haiku as well.
* lisp/term/haiku-win.el (haiku--selection-type-to-mime): Update
types to correspond better with X.
* src/haikuselect.c (Fhaiku_selection_data):
(Fhaiku_selection_put): Remove a great deal of ad hoc code now
handled by the regular selection machinery.
2022-02-14 Lars Ingebrigtsen <larsi@gnus.org>
Add a mechanism for querying before executing a command
* doc/emacs/custom.texi (Disabling): Document it.
* doc/lispref/commands.texi (Disabling Commands): Document the
low-level stuff.
* lisp/simple.el (command-execute): Respect the `(query ...)'
value for `disabled'.
(command-execute--query): New function.
(command-query): New function.
2022-02-14 Po Lu <luangruo@yahoo.com>
Handle allocation failures of fringe bitmaps on Haiku
* src/haikuterm.c (haiku_define_fringe_bitmap): Handle
allocation failures.
2022-02-14 Po Lu <luangruo@yahoo.com>
* etc/TODO: Update some entires related to macOS and NS.
Xwidgets have worked on NS for a long time, "smooth scrolling"
is now available as `pixel-scroll-precision-mode' for all GUI
platforms, and some mouse gestures have been implemented on NS
and X.
2022-02-14 Po Lu <luangruo@yahoo.com>
Ensure bad values don't leak into scroll valuators after DeviceChange
* src/xterm.c (xi_reset_scroll_valuators_for_device_id): New
argument `pending_only'.
(handle_one_xevent): Reset pending scroll valuators on XI_Enter
and mark valuators updated via DeviceChanged events as pending.
* src/xterm.h (struct xi_scroll_valuator_t): New field
`pending_enter_reset'.
2022-02-13 Po Lu <luangruo@yahoo.com>
Restore valuator values after receiving a DeviceChanged event
* src/xterm.c (x_init_master_valuators): Generate valuators for
both master and slave devices.
(handle_one_xevent): Find current valuator info and use that to
populate scroll valuators after a device changed.
2022-02-13 Po Lu <luangruo@yahoo.com>
Improve efficency of handling DeviceChanged events
* src/xterm.c (handle_one_xevent): Just update the device that
was changed on DeviceChanged and only do hierarchy recalculation
upon HierarchyChanged events.
2022-02-13 Po Lu <luangruo@yahoo.com>
Try to reduce empty areas on GTK when a frame is being resized
* src/xterm.c (x_fill_rectangle):
(x_clear_rectangle, x_draw_image_glyph_string):
(x_clear_area): Don't use picture if frame background is opaque.
2022-02-13 Po Lu <luangruo@yahoo.com>
Fix wide fringe bitmap processing on Haiku
* src/haiku_support.cc (BBitmap_import_mono_bits): Rewrite to
use ImportBits.
(BBitmap_import_fringe_bitmap): New function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_define_fringe_bitmap): Pass entire
short array to BBitmap_import_fringe_bitmap instead.
2022-02-13 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp's process-file implementations
* lisp/net/tramp-adb.el (tramp-adb-handle-process-file)
* lisp/net/tramp-sh.el (tramp-sh-handle-process-file):
* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
Improve implementation. (Bug#53854)
* test/lisp/net/tramp-tests.el (tramp-test28-process-file)
(tramp--test-check-files, tramp-test47-unload): Extend tests.
2022-02-13 Juri Linkov <juri@linkov.net>
* lisp/faces.el (read-face-name-sample-text): Add defconst (bug#53960).
(read-face-name): Use it instead of hard-coded string.
2022-02-13 Lars Ingebrigtsen <larsi@gnus.org>
Add a new macro `setopt'
* doc/emacs/custom.texi (Examining): Mention it.
(Init Syntax): Ditto.
* doc/emacs/windows.texi (Window Choice): Adjust example.
* doc/lispref/windows.texi (Choosing Window Options): Adjust examples.
* doc/lispref/variables.texi (Setting Variables): Document setopt.
* doc/misc/eudc.texi (Emacs-only Configuration): Adjust examples.
* lisp/cus-edit.el (setopt): New macro.
2022-02-13 Po Lu <luangruo@yahoo.com>
* src/haikuterm.c (haiku_read_socket): Implement auto-lower.
2022-02-13 Po Lu <luangruo@yahoo.com>
Only get rid of IC focus if focus is really gone
* src/xterm.c (x_focus_changed): Only unset IC focus if the
focus state is empty.
2022-02-13 Lars Ingebrigtsen <larsi@gnus.org>
Remove the 'C-k' binding in ido-mode
* lisp/ido.el (ido-file-completion-map): Remove the `C-k' binding,
because it's too dangerous and probably not very useful (bug#44556).
2022-02-13 Po Lu <luangruo@yahoo.com>
Prevent crashes from illegal locale coding systems
* src/xfns.c (xic_preedit_draw_callback):
* src/xterm.c (handle_one_xevent): Don't pass invalid coding
systems to `setup_coding_system'.
2022-02-13 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-u M-x count-words' also give totals
* lisp/simple.el (count-words-region): Adjust callers.
(count-words): If given a prefix, give totals (bug#9959).
(count-words--buffer-format, count-words--format): Rename and
don't message, but return the string.
2022-02-13 Lars Ingebrigtsen <larsi@gnus.org>
Note meaning on nil HIST in Fread_from_minibuffer
* src/minibuf.c (Fread_from_minibuffer): Note the meaning of a nil
HIST parameter (bug#20063).
2022-02-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix mouse clicking in read-face-name
* lisp/faces.el (read-face-name): Put the data in the right
position so that clicking on completions work (bug#53960).
2022-02-13 Bob Rogers <rogers@rgrjr.com>
Fix ietf-drums-remove-whitespace unmatched " and (
* lisp/mail/ietf-drums.el:
+ (ietf-drums-skip-comment): New helper function.
+ (ietf-drums-remove-comments): Use ietf-drums-skip-comment.
+ (ietf-drums-remove-whitespace): Handle unterminated quotes and
comments, as ietf-drums-remove-comments already does.
* test/lisp/mail/ietf-drums-tests.el:
+ Test unterminated quote and comment for
ietf-drums-remove-whitespace and ietf-drums-remove-comments (bug#53965).
2022-02-13 Andreas Schwab <schwab@linux-m68k.org>
* src/eval.c (specpdl_unrewind): Remove empty statement.
2022-02-13 Lars Ingebrigtsen <larsi@gnus.org>
Avoid a compilation warning in eval.c
* src/eval.c (specpdl_unrewind): Avoid a compilation warning.
2022-02-13 Po Lu <luangruo@yahoo.com>
Fix integer overflow with 32-bit visual
* src/xfns.c (x_set_border_pixel):
(x_set_border_color): Use `unsigned long' for border color.
2022-02-12 Po Lu <luangruo@yahoo.com>
Work around tooltip bug on new versions of WebKitGTK
* src/xwidget.c (dummy_tooltip_string): New variable.
(xw_maybe_synthesize_crossing): Call `xg_prepare_tooltip' to
disable tooltips on WebKitGTK 2.34 or later.
(syms_of_xwidget): Make dummy string.
2022-02-12 Po Lu <luangruo@yahoo.com>
Stop quering for Xinerama inside x_get_monitor_attributes
* src/xfns.c (x_get_monitor_attributes): Remove Xinerama check
and use xinerama_supported_p instead.
* src/xterm.c (x_term_init): Set `xinerama_supported_p'
* src/xterm.h (struct x_display_info): New field
`xinerama_supported_p'.
2022-02-12 Po Lu <luangruo@yahoo.com>
* src/pgtkfns.c (Fx_create_frame): Set `was_invisible' flag.
2022-02-12 Po Lu <luangruo@yahoo.com>
Use better GC for visible bell on colormapped visuals
* src/xterm.c (XTflash): Use normal_gc if the visual is not
TrueColor.
2022-02-12 Po Lu <luangruo@yahoo.com>
Fix the Haiku port
* src/haiku_support.h [__cplusplus]: Define `specpdl_ref' type
on C++ since that code cannot include lisp.h.
2022-02-12 Po Lu <luangruo@yahoo.com>
Fix last change in xterm.c
* src/xterm.c (x_update_opaque_region): Remove check that f is
non-NULL.
(handle_one_xevent): If f is NULL and the configure event is for
any's edit widget, use that instead.
2022-02-12 Stefan Monnier <monnier@iro.umontreal.ca>
* src/xterm.c (x_update_opaque_region): Avoid crash at startup in Lucid build
2022-02-12 Stefan Monnier <monnier@iro.umontreal.ca>
Rewrite thread context switch code (bug#48990)
Make the context switch code handle buffer-local variables more
correctly by reusing the code originally written for `backtrace-eval`.
This has the side benefit of making the `saved_value` field unused.
* src/lisp.h (enum specbind_tag): Remove `saved_value` field.
(rebind_for_thread_switch, unbind_for_thread_switch): Delete decls.
(specpdl_unrewind): Declare function.
* src/eval.c (specpdl_saved_value): Delete function.
(specbind): Delete the code related to `saved_value`, and consolidate
common code between the different branches.
(rebind_for_thread_switch, -unbind_for_thread_switch): Move to `thread.c`.
(specpdl_unrewind): New function, extracted from `backtrace_eval_unrewind`.
Use `SET_INTERNAL_THREAD_SWITCH`. Skip the buffer & excursion unwinds
depending on new arg `vars_only`.
(backtrace_eval_unrewind): Use it.
(mark_specpdl): Don't mark `saved_value`.
* src/thread.c (rebind_for_thread_switch, unbind_for_thread_switch):
Move from `eval.c` and rewrite using `specpdl_unrewind`.
* test/src/thread-tests.el (threads-test-bug48990): New test.
* test/Makefile.in (test_template): Add a + as suggested by make:
"warning: jobserver unavailable: using -j1. Add '+' to parent make rule".
2022-02-12 Mattias Engdegård <mattiase@acm.org>
Speed up `=` on fixnums in bytecode
Now that EQ has become expensive, use BASE_EQ where possible.
* src/bytecode.c (exec_byte_code): Use cheaper operation for Beqlsign.
2022-02-12 Eli Zaretskii <eliz@gnu.org>
Optionally allow point to enter composed character sequences
This changeset is based on code originally posted by
Kenichi Handa <handa@gnu.org> as part of discussing bug#20140,
with a few adjustments and changes, mainly to support R2L
text and provide a user option to control the feature.
* src/xdisp.c (compute_stop_pos, next_element_from_buffer)
(composition_reseat_it): Don't allow auto-composing characters
past point when 'composition-break-at-point' is non-nil.
(syms_of_xdisp) <composition-break-at-point>: New boolean variable.
(redisplay_internal, redisplay_window): Disable "just move the
cursor" optimizations when 'composition-break-at-point' is non-nil.
* src/keyboard.c (command_loop_1): Force redisplay when
'composition-break-at-point' is non-nil.
* lisp/cus-start.el (standard): Provide customization form for
'composition-break-at-point'.
* etc/NEWS: Announce the new feature.
2022-02-12 Mattias Engdegård <mattiase@acm.org>
Count bytes, not records, in specpdl_ref
SPECPDL_INDEX becomes much faster because the pointer subtraction,
expensive because of the inconveniently sized specpdl records, is now
gone. This translates to a useful speedup on a wide variety of code.
* src/lisp.h (specpdl_ref, wrap_specpdl_ref, unwrap_specpdl_ref):
Rename member.
(specpdl_count_to_ref, specpdl_ref_to_count)
(specpdl_ref_add, specpdl_ref_to_ptr, SPECPDL_INDEX):
Count offset in bytes rather than in records.
2022-02-12 Mattias Engdegård <mattiase@acm.org>
Turn specpdl_ref into a type of its own
Wrap the specpdl_ref contents in a struct, which gives us some very
useful type checking to make sure that all code that assumed integral
specpdl refs has been converted.
We only do this on 64-bit platforms, since those tend to have modern
ABIs where small structs are optimised as scalars. In other words,
this change should not affect the compiled code.
* src/lisp.h (specpdl_ref): Now a struct on 64-bit platforms.
(wrap_specpdl_ref, unwrap_specpdl_ref): New.
(specpdl_count_to_ref, specpdl_ref_to_count)
(specpdl_ref_eq, specpdl_ref_lt)
(specpdl_ref_valid_p, make_invalid_specpdl_ref): Use new wrappers.
2022-02-12 Mattias Engdegård <mattiase@acm.org>
Replace ptrdiff_t with new specpdl_ref type for specpdl references
The specpdl_ref type is just an alias for ptrdiff_t; the compiled code
remains the same. All operations on specpdl_ref (arithmetic,
comparison etc) now go through inline functions.
The bulk of the change is almost completely mechanical. It is done to
prepare for a type-safe representation and subsequent performance
improvement.
* src/lisp.h (specpdl_ref, specpdl_count_to_ref, specpdl_ref_to_count)
(specpdl_ref_eq, specpdl_ref_lt, specpdl_ref_valid_p)
(make_invalid_specpdl_ref, specpdl_ref_add, specpdl_ref_to_ptr): New.
(SPECPDL_INDEX, struct handler, USE_SAFE_ALLOCA, safe_free)
(safe_free_unbind_to):
* src/alloc.c (run_finalizer_function, inhibit_garbage_collection)
(garbage_collect, Fgarbage_collect, which_symbols):
* src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start):
* src/buffer.c (Fkill_buffer, Fset_buffer_major_mode, Fmove_overlay)
(Fdelete_overlay):
* src/bytecode.c (exec_byte_code):
* src/callint.c (Ffuncall_interactively, Fcall_interactively):
* src/callproc.c (Fcall_process, call_process, create_temp_file)
(Fcall_process_region):
* src/charset.c (load_charset_map_from_file):
* src/coding.c (decode_coding_gap, decode_coding_object)
(encode_coding_object, Fread_coding_system):
* src/comp.c (emit_static_object, helper_unbind_n, load_comp_unit):
* src/composite.c (update_compositions, autocmp_chars):
* src/cygw32.c (conv_filename_to_w32_unicode)
(conv_filename_from_w32_unicode):
* src/data.c (notify_variable_watchers):
* src/decompress.c (Fzlib_decompress_region):
* src/dired.c (directory_files_internal, file_name_completion)
(file_attributes):
* src/dispnew.c (Fredisplay):
* src/doc.c (get_doc_string, Fsnarf_documentation):
* src/editfns.c (Fsave_excursion, Fsave_current_buffer)
(Freplace_buffer_contents, Fsubst_char_in_region, Fsave_restriction)
(styled_format):
* src/emacs-module.c (Fmodule_load, funcall_module):
* src/emacs.c (init_cmdargs, Fdump_emacs):
* src/eval.c (call_debugger, do_debug_on_call, FletX, Flet)
(Ffuncall_with_delayed_message, Funwind_protect)
(internal_lisp_condition_case, signal_or_quit)
(load_with_autoload_queue, Feval, grow_specpdl_allocation)
(record_in_backtrace, eval_sub, Ffuncall, apply_lambda)
(funcall_lambda, clear_unwind_protect, set_unwind_protect)
(set_unwind_protect_ptr, unbind_to, Fbacktrace_eval):
* src/fileio.c (Fmake_temp_file_internal, Fcopy_file, Frename_file)
(Finsert_file_contents, write_region, Fdo_auto_save):
* src/fns.c (Fyes_or_no_p, Frequire, hash_table_user_defined_call):
* src/fringe.c (update_window_fringes):
* src/gtkutil.c (xg_dialog_run):
* src/haiku_io.c (c_specpdl_idx_from_cxx):
* src/haiku_support.cc (be_popup_file_dialog):
* src/haiku_support.h (c_specpdl_idx_from_cxx):
* src/haikufns.c (haiku_create_frame, haiku_create_tip_frame)
(haiku_hide_tip, Fx_show_tip, Fhaiku_read_file_name):
* src/haikumenu.c (haiku_popup_dialog, set_frame_menubar):
* src/image.c (slurp_file):
* src/indent.c (line_number_display_width, Fvertical_motion):
* src/insdel.c (signal_before_change, signal_after_change)
(Fcombine_after_change_execute):
* src/intervals.c (get_local_map):
* src/json.c (lisp_to_json_nonscalar_1, Fjson_serialize, Fjson_insert)
(Fjson_parse_string, Fjson_parse_buffer):
* src/keyboard.c (recursive_edit_1, Frecursive_edit, cmd_error)
(Finternal_track_mouse, command_loop_1, read_menu_command)
(safe_run_hooks, read_event_from_main_queue, read_char, timer_check_2)
(menu_item_eval_property, read_key_sequence, read_key_sequence_vs)
(Fsuspend_emacs):
* src/keymap.c (Fcurrent_active_maps, Fdescribe_vector)
(Fhelp__describe_vector):
* src/lread.c (Fload, save_match_data_load, readevalloop)
(Feval_buffer, Feval_region, grow_read_buffer, read_integer, read1):
* src/macros.c (Fexecute_kbd_macro):
* src/menu.c (x_popup_menu_1):
* src/minibuf.c (read_minibuf, set_minibuffer_mode)
(read_minibuf_unwind, Fread_string, Fread_buffer):
* src/nsfns.m (Fx_create_frame, Fx_show_tip):
* src/nsmenu.m (ns_update_menubar, ns_menu_show, ns_popup_dialog):
* src/pdumper.c (Fdump_emacs_portable):
* src/pgtkfns.c (Fx_create_frame, x_create_tip_frame, x_hide_tip)
(Fx_show_tip, Fpgtk_print_frames_dialog, Fx_file_dialog, Fx_select_font):
* src/pgtkmenu.c (set_frame_menubar, create_and_show_popup_menu)
(pgtk_menu_show, create_and_show_dialog, pgtk_dialog_show)
(pgtk_popup_dialog):
* src/pgtkterm.c (pgtk_cr_export_frames):
* src/print.c (PRINTPREPARE, temp_output_buffer_setup)
(Fprin1_to_string, print_vectorlike):
* src/process.c (Fmake_process, create_process, Fmake_pipe_process)
(Fmake_serial_process, connect_network_socket, Fmake_network_process)
(network_interface_info, server_accept_connection)
(wait_reading_process_output, read_process_output, exec_sentinel):
* src/regex-emacs.c (re_match_2_internal):
* src/search.c (looking_at_1, fast_looking_at, search_buffer_re):
* src/sound.c (Fplay_sound_internal):
* src/sysdep.c (system_process_attributes):
* src/term.c (tty_menu_show):
* src/textprop.c (Fnext_single_char_property_change)
(Fprevious_single_char_property_change, add_text_properties_1)
(set_text_properties, set_text_properties_1, Fremove_text_properties)
(Fremove_list_of_text_properties):
* src/thread.c (Fmutex_lock, invoke_thread_function):
* src/undo.c (truncate_undo_list):
* src/w32fns.c (Fx_create_frame, w32_create_tip_frame, w32_hide_tip)
(Fx_show_tip, Fx_file_dialog):
* src/w32font.c (Fx_select_font):
* src/w32menu.c (set_frame_menubar):
* src/window.c (window_list, next_window, window_list_1)
(run_window_configuration_change_hook, Frun_window_scroll_functions)
(run_window_change_functions, set_window_buffer)
(temp_output_buffer_show, window_scroll, scroll_command)
(Fscroll_other_window, Fscroll_other_window_down):
* src/xdisp.c (safe__call, handle_fontified_prop, handle_face_prop)
(handle_single_display_spec, Fbuffer_text_pixel_size)
(message_dolog, with_echo_area_buffer, setup_echo_area_for_printing)
(display_echo_area, set_message, clear_message, echo_area_display)
(gui_consider_frame_title, prepare_menu_bars, update_menu_bar)
(update_tab_bar, update_tool_bar, redisplay_internal)
(redisplay_preserve_echo_area, run_window_scroll_functions)
(redisplay_window, extend_face_to_end_of_line)
(display_count_lines_logically, display_count_lines_visually)
(display_mode_lines, display_mode_line, Fformat_mode_line)
(decode_mode_spec):
* src/xfns.c (Fx_create_frame, x_create_tip_frame, x_hide_tip)
(Fx_show_tip, Fx_file_dialog, Fx_select_font, Fx_print_frames_dialog):
* src/xmenu.c (set_frame_menubar, create_and_show_popup_menu)
(x_menu_show, create_and_show_dialog, x_dialog_show)
(xw_popup_dialog):
* src/xselect.c (x_get_local_selection, x_reply_selection_request)
(x_handle_selection_request, wait_for_property_change):
* src/xterm.c (x_cr_export_frames, x_connection_closed):
Replace ptrdiff_t with specpdl_ref for referencing specpdl and use the
corresponding functions instead of direct arithmetic.
2022-02-12 Po Lu <luangruo@yahoo.com>
Fix entry and exit events with XI2 grabs on X toolkit menus
* src/xmenu.c (popup_get_selection): Only claim cookie if new
event will be generated.
(create_and_show_popup_menu): Ungrab XI2 device, then
immediately set core grab on the frame's edit widget window.
* src/xterm.c (handle_one_xevent): Use x_any_window_to_frame to
find exit event frame if a popup menu is active.
2022-02-12 Eli Zaretskii <eliz@gnu.org>
Clean up mode-line-* faces handling
* src/xfaces.c (realize_basic_faces):
* src/dispextern.h (enum face_id): Remove MODE_LINE_ID.
2022-02-12 Lars Ingebrigtsen <larsi@gnus.org>
Add documentation on how to delete files from Trash
* doc/emacs/files.texi (Misc File Ops): Note trick to make `D'
work in Trash directories (bug#44059).
2022-02-12 Lars Ingebrigtsen <larsi@gnus.org>
Improve interaction between track-mouse and edebug
* lisp/emacs-lisp/edebug.el (edebug--display-1): Work around
`track-mouse' oddity (bug#675).
2022-02-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix off-by-one file size formatting in ls-lisp
* lisp/ls-lisp.el (ls-lisp-format, ls-lisp-format-file-size): The
human-readable file sizes can be 7 characters wide (e.g.,
"1016.1k") (bug#53937).
2022-02-12 Lars Ingebrigtsen <larsi@gnus.org>
Cross-link message-expand-name-standard-ui-relevant doc strings
* lisp/gnus/message.el (message-expand-name-standard-ui): Mention
the other relevant variables in the doc string (bug#50667).
2022-02-11 Po Lu <luangruo@yahoo.com>
Implement visual bell on Haiku like on X
* src/haiku_draw_support.cc
(BView_FillRectangleForVisibleBell): Delete function.
(BView_InvertRect): New function.
* src/haiku_support.cc (class EmacsView): Delete field
`visible_bell_color' and visible bell related methods.
(EmacsView_do_visible_bell): Delete function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_flash): Implement using
`BView_InvertRect'.
(haiku_beep): Use `haiku_flash' instead.
2022-02-11 Po Lu <luangruo@yahoo.com>
Fix compatibility with ancient versions of libXi
* src/xmenu.c (popup_get_selection): Don't rely on xev->display
being non-NULL.
2022-02-11 Po Lu <luangruo@yahoo.com>
Be less strict about which PointerEmulated button events to ignore
* src/xterm.c (handle_one_xevent): Ignore all PointerEmulated
button events.
2022-02-11 Po Lu <luangruo@yahoo.com>
Never set opaque region without an alpha channel
* src/xfns.c (x_set_alpha_background): Don't modify opaque
region if the visual has no alpha channel.
2022-02-11 Mattias Engdegård <mattiase@acm.org>
Modernise byte-compilation chapters in manual
* doc/lispref/compile.texi (Speed of Byte-Code): More representative
numbers for byte code; the difference is much greater today.
(Compilation Functions, Disassembly): Example output for lexbind
bytecode.
2022-02-11 Po Lu <luangruo@yahoo.com>
Fix the DJGPP port
* config.bat:
* msdos/sed1v2.inp:
* msdos/sedlibmk.inp: Update for present Emacs.
* src/Makefile.in (MAKE_PDUMPER_FINGERPRINT): Fix indentation
to not confuse sed*.inp.
* src/conf_post.h [MSDOS]: Define some things gnulib wants.
2022-02-11 Michael Albinus <michael.albinus@gmx.de>
Tolerate tilde in remote file names when needed
* lisp/net/tramp.el (tramp-tolerate-tilde): New defvar.
(tramp-handle-expand-file-name):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name):
Respect it.
* lisp/net/tramp-adb.el (tramp-adb-tolerate-tilde):
* lisp/net/tramp-sshfs.el (tramp-sshfs-tolerate-tilde): New defuns.
Advice `shell-mode' with them.
(tramp-methods) <sshfs>: Add "-t -t" to `tramp-login-args'.
2022-02-11 Andrew G Cohen <cohen@andy.bu.edu>
Allow searching of nnselect (search) groups
* lisp/gnus/gnus-group.el (gnus-group-make-search-group):
(gnus-group-read-ephemeral-search-group): Ensure the server is
correctly identified even for nnselect groups.
* lisp/gnus/gnus-search.el (gnus-search-nnselect): New function.
(gnus-search-default-engines): Use it.
(gnus-search-make-spec): Queries from nnselect should always be raw.
* lisp/gnus/nnselect.el (gnus-search): Silence the byte-compiler.
2022-02-11 Po Lu <luangruo@yahoo.com>
* etc/PROBLEMS: Document some limitations of Xwayland and PGTK.
2022-02-11 Po Lu <luangruo@yahoo.com>
Don't make cursors affected by background alpha on PGTK
* src/ftcrfont.c (ftcrfont_draw):
* src/pgtkterm.c (x_clear_glyph_string_rect): Make behavior on
PGTK consistent with X.
2022-02-11 Po Lu <luangruo@yahoo.com>
Set _NET_WM_OPAQUE_REGION on non-GTK3 toolkits when using 32 bit visual
* src/xfns.c (x_set_alpha_background): Set opaque region if
opaque.
* src/xterm.c (x_update_opaque_region): New parameter
`configure'. All callers changed.
(handle_one_xevent): Call `x_update_opaque_region' on configure
events.
2022-02-11 Po Lu <luangruo@yahoo.com>
Fix fallout from switch to 32-bit visuals
* src/xfns.c (x_decode_color): Make return type wide enough to
hold any pixel value.
* src/xterm.h (x_make_truecolor_pixel): Simplify.
2022-02-10 Po Lu <luangruo@yahoo.com>
Improve reliability of selection ownership on Haiku
* src/haiku_select.cc (count_clipboard, count_primary)
(count_secondary): Initialize to -1
(BClipboard_set_system_data)
(BClipboard_set_primary_selection_data)
(BClipboard_set_secondary_selection_data): Store count before
saving to the the clipboard.
(BClipboard_owns_clipboard, BClipboard_owns_primary)
(BClipboard_owns_secondary): Adjust tests accordingly.
2022-02-10 Po Lu <luangruo@yahoo.com>
Disable nearest-color allocation on DirectColor visuals
* src/xterm.c (x_alloc_nearest_color_1): Disable such allocation
on DirectColor. The method we use can't possibly work there.
2022-02-10 Mattias Engdegård <mattiase@acm.org>
Silence macOS vfork deprecation warnings
The vfork system call exists and works in macOS 11.6 but the compiler
gives a deprecation message; silence it, because the performance is
still better than that of plain fork. See discussion at
https://lists.gnu.org/archive/html/emacs-devel/2022-02/msg00260.html
* src/conf_post.h (VFORK): New #define.
* src/callproc.c (emacs_spawn):
* src/sysdep.c (sys_subshell): Use it.
2022-02-10 Juri Linkov <juri@linkov.net>
* lisp/mouse.el (context-menu-map): Select only unselected window (bug#53910)
2022-02-10 Juri Linkov <juri@linkov.net>
* lisp/tab-line.el (tab-line-format): Use mode-line-window-selected-p.
Recently 'mode-line-window-selected-p' was added to
'tab-line-tab-name-format-default'. Now add the same to another
place that handles the face 'tab-line-tab-current' (bug#53629).
2022-02-10 Corwin Brust <corwin@bru.st> (tiny change)
Autoload package-installed-p
* lisp/emacs-lisp/package.el (package-installed-p): Add autoload
cookie. (Bug#53885)
2022-02-10 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
# Conflicts:
# lisp/startup.el
2022-02-10 Alan Mackenzie <acm@muc.de>
Note current buffer and restore it in c-force-redisplay.
This fixes bug #52709.
* lisp/progmodes/cc-fonts.el (c-force-redisplay): New parameter BUFFER. Set
current buffer to this before fontifying.
(c-fontify-new-found-type): Give the current buffer as argument to
run-with-timer.
2022-02-10 Lars Ingebrigtsen <larsi@gnus.org>
Restore command-line--load-script messaging
* lisp/startup.el (command-line--load-script): Restore previous
non-messaging behaviour.
2022-02-10 Michael Albinus <michael.albinus@gmx.de>
Improve handling of file modes in Tramp
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-get-remote-uid)
(tramp-gvfs-handle-get-remote-gid): Do not assume that the default
location is owned be the remote uid/gid.
(tramp-gvfs-handle-file-executable-p):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p):
Check also for setuid/setgid bit.
* lisp/net/tramp.el (tramp-check-cached-permissions): Check also
for ?s access type. Check whether remote uid/gid are unknown.
2022-02-10 Lars Ingebrigtsen <larsi@gnus.org>
Don't signal a backtrace on empty --script files
* lisp/startup.el (command-line--load-script): New function that
avoids erroring out if it turns out there's no forms in the buffer
(bug#4616).
* lisp/subr.el (delete-line): New utility function.
* lisp/international/mule.el (load-with-code-conversion): Accept
an eval function.
2022-02-10 Po Lu <luangruo@yahoo.com>
Enable TrueColor allocation optimizations on all visuals
* src/xterm.c (x_alloc_nearest_color): Enable optimizations on
32-bit TrueColor visuals that legitimately don't have an alpha
mask.
2022-02-10 Po Lu <luangruo@yahoo.com>
Correctly premultiply background color of fringe bitmaps
* src/xterm.c (x_draw_fringe_bitmap): Premultiply alphas by
alpha_background.
2022-02-10 Po Lu <luangruo@yahoo.com>
Correctly allocate colors in xftfont
* src/xftfont.c (struct xftface_info): New fields
`bg_allocated_p' and `fg_allocated_p'.
(xftfont_get_colors): Actually allocate colors and tell the
caller whether colors were allocated.
(xftfont_prepare_face): Set allocated fields.
(xftfont_done_face):
(xftfont_draw): Free colors that were allocated.
2022-02-10 Dima Kogan <dima@secretsauce.net>
Make comint-word actually check comint-file-name-quote-list
* lisp/comint.el (comint-word): We were checking for
comint-file-name-quote-list existing, but not actually comparing
to the characters in that list. This patch actually checks the
contents of comint-file-name-quote-list (bug#53911).
2022-02-10 Eli Zaretskii <eliz@gnu.org>
Allow customization of the user's eln-cache directory
* lisp/startup.el (startup-redirect-eln-cache)
(startup--update-eln-cache): New functions.
(startup--original-eln-load-path): New defvar.
(normal-top-level): Record the original value of
'native-comp-eln-load-path' in 'startup--original-eln-load-path'.
Do not amend 'native-comp-eln-load-path' here, as that could
overwrite user customizations.
(command-line): Amend 'native-comp-eln-load-path' after loading
the early-init file, and then again after loading the user init
file. (Bug#53891)
* etc/NEWS: Announce 'startup-redirect-eln-cache'.
2022-02-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
69e82968d7 Fix integer arithmetic miss-compilation (bug#53451)
31af9bca99 Mark flymake as compatible with emacs-26.1
2022-02-10 Po Lu <luangruo@yahoo.com>
Fix disconnect errors on some X servers
* src/xfns.c (x_make_gc): Don't set FillOpaqueStippled on cursor
GC. The reason is that some X servers break on such a fill
style if the operation being performed is not a stiple
operation.
2022-02-09 Po Lu <luangruo@yahoo.com>
Fill in missing pixel after PolyLine on scroll bars
* src/xterm.c (x_scroll_bar_expose): Draw bottom right corner of
scroll bar manually.
2022-02-09 Po Lu <luangruo@yahoo.com>
* src/haikugui.h [_cplusplus]: Remove extern "C" declarations.
These were left over from an old implementation strategy
abandoned long before the port was installed.
2022-02-09 Po Lu <luangruo@yahoo.com>
Improve reliability of hotplugging window managers
* src/xterm.c (x_make_frame_visible): Change the user time
window if the window manager supports something different from
what it did the first time the frame was made visible.
2022-02-09 Po Lu <luangruo@yahoo.com>
Ignore tooltip frames when setting PGTK scrollbar foreground
* src/pgtkfns.c (pgtk_set_scroll_bar_foreground): Ignore tip
frames. (bug#53900)
2022-02-09 Michael Albinus <michael.albinus@gmx.de>
Tilde expansion is not possible for Tramp sshfs method
* lisp/net/tramp.el (tramp-handle-expand-file-name):
Tilde expansion is not possible. (Bug#53847)
2022-02-09 Tassilo Horn <tsdh@gnu.org>
show-paren: Don't show context again after C-g-ing it away.
* lisp/paren.el (show-paren--last-pos): New variable.
(show-paren-function): Don't show context again after C-g-ing it away.
2022-02-09 Po Lu <luangruo@yahoo.com>
Get rid of `register' declarations in X11 related files
* src/xfns.c (XScreenNumberOfScreen): Rewrite K&R declaration.
* src/xterm.c (x_set_offset): Remove `register' from `xoff' and
`yoff'.
2022-02-09 Po Lu <luangruo@yahoo.com>
Fix compiler warning on GTK
* src/xterm.c (x_make_frame_visible): Make some fields that are
set but never used conditioned out on GTK.
2022-02-09 Po Lu <luangruo@yahoo.com>
Add support for _NET_WM_USER_TIME_WINDOW
* src/xterm.c (x_make_frame_visible):
(x_display_set_last_user_time): Use and set user time window if
the WM supports it.
(x_term_init): Intern new atom.
* src/xterm.h (struct x_display_info): New atom
`_NET_WM_USER_TIME_WINDOW'.
(struct x_output): New field `user_time_window'.
2022-02-09 Antoine Levitt <antoine.levitt@gmail.com>
Improve the set-fill-column prompt
* lisp/simple.el (set-fill-column): Improve the prompt (bug#53874).
2022-02-09 Lars Ingebrigtsen <larsi@gnus.org>
Make calendar-exit actually respect the KILL parameter
* lisp/calendar/calendar.el (calendar-exit): Really kill off all
the buffers (if requested) (bug#53870).
2022-02-09 Po Lu <luangruo@yahoo.com>
Implement _NET_WM_USER_TIME protocol
* src/xterm.c (x_display_set_last_user_time): Set user time on
the active window.
(handle_one_xevent): Only set user time when the user actually
interacted with Emacs.
(x_make_frame_visible): Set user time if non-zero.
(x_term_init): Intern `_NET_WM_USER_TIME'.
* src/xterm.h (struct x_display_info): New field
`Xatom_net_wm_user_time'.
(x_display_set_last_user_time): Implement in xterm.c instead.
2022-02-09 Po Lu <luangruo@yahoo.com>
Explictly specify whether or not to respect alpha-background on Cairo
* src/ftcrfont.c (ftcrfont_draw): Don't respect
`alpha-background' if drawing cursor. (bug#53890)
* src/xterm.c (x_set_cr_source_with_gc_foreground):
(x_set_cr_source_with_gc_background): New parameters
`respect_alpha_background'. All callers changed.
* src/xterm.h: Update protoypes.
2022-02-09 Tassilo Horn <tsdh@gnu.org>
Mention `overlay' show-paren-context-when-offscreen value in NEWS
* etc/NEWS: Mention `overlay' value of
show-paren-context-when-offscreen.
2022-02-09 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
82e74e4559 flymake: Ensure compatibility with older Emacsen
2022-02-09 Po Lu <luangruo@yahoo.com>
Make haikufont_list_family actually work
* haikufont.c (haikufont_list_family): Intern returned font
families.
2022-02-08 Po Lu <luangruo@yahoo.com>
Implement `list_family' for the haikufont driver
* src/haiku_font_support.cc (be_list_font_families): New
function.
* src/haiku_support.h: Update prototypes.
* src/haikufont.c (haikufont_list_family): New function.
(haikufont_driver): Add `haikufont_list_family'.
2022-02-08 Po Lu <luangruo@yahoo.com>
Improve selection of fonts available from `mouse-set-font'
People get confused on a build without font dialogs (such as a
Lucid build) if `menu-set-font' and `mouse-set-font' don't
present them a list of the fonts actually available on their
system.
* lisp/mouse.el (mouse-generate-font-name-for-menu)
(mouse-generate-font-menu): New functions.
(mouse-select-font): Allow the user to select from all fonts
available on the system.
(mouse-set-font): Use `mouse-select-font' to display font menu.
2022-02-08 Po Lu <luangruo@yahoo.com>
Make sure the cursor can't move on top of a tooltip on Haiku
* src/haikuterm.c (haiku_read_socket): Work around leave
notification events not being sent on tooltip frames.
2022-02-08 Po Lu <luangruo@yahoo.com>
Fix creation of tooltip frames with a stippled background
* src/xfns.c (x_create_tip_frame): Init faces after creating the
drawable, since that's needed for loading stipple files.
2022-02-08 Tassilo Horn <tsdh@gnu.org>
Allow showing show-paren context in an overlay
* lisp/paren.el (show-paren-context-when-offscreen): Add new
possibility `overlay'.
(show-paren--context-overlay): New defvar.
(show-paren--delete-context-overlay): New function.
(show-paren--show-context-in-overlay): New function.
(show-paren-function): Handle the new `overlay' case.
* lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p):
There's no interference if `show-paren-context-when-offscreen' is
overlay or child-frame.
2022-02-08 Juri Linkov <juri@linkov.net>
* lisp/replace.el (perform-replace): Allow using isearch in recursive-edit.
Let-bind isearch-filter-predicate to the default value before calling
recursive-edit to allow using isearch in a recursive edit (bug#53758).
2022-02-08 Robert Pluim <rpluim@gmail.com>
Improve make-frame-on-display initial values
* doc/emacs/frames.texi (Multiple Displays): Add index entry for
'display server'.
* lisp/frame.el (make-frame-on-display): Specify sensible initial
values when reading display name.
* lisp/menu-bar.el (menu-bar-file-menu): Use 'display server' rather
than 'display' to avoid monitor<->display confusion.
2022-02-08 Robert Pluim <rpluim@gmail.com>
Improve thing-at-point-url-at-point docstring
* lisp/thingatpt.el (thing-at-point-url-at-point): Correct description
of BOUNDS argument.
2022-02-08 Michael Albinus <michael.albinus@gmx.de>
Respect customization nature of `connection-local-*' user options
* lisp/files-x.el (connection-local-set-profiles)
(connection-local-set-profile-variables): Set user options via
`customize-set-variable'.
2022-02-08 Michael Albinus <michael.albinus@gmx.de>
Fix processes on remote default-directory with special characters
* lisp/net/tramp.el (tramp-handle-make-process): Quote `localname'.
* test/lisp/net/tramp-tests.el (tramp--test-check-files):
Test also remote `default-directory' for processes. (Bug#53846)
2022-02-08 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (map_event): Fix last change.
2022-02-08 Po Lu <luangruo@yahoo.com>
Document some problems found during testing on various X servers
* etc/PROBLEMS (General X problems): Document some problems
found during testing on various X servers.
2022-02-08 Po Lu <luangruo@yahoo.com>
Improve robustness of override-redirect on Haiku
* src/haiku_support.cc (class EmacsWindow): New field
`override_redirect_p'.
(BWindow_change_decoration, BWindow_set_override_redirect): Set
and restore from the saved pre-override redirect state fields if
appropriate.
2022-02-08 Po Lu <luangruo@yahoo.com>
Fix frame offset reporting on PGTK
* src/pgtkterm.c (configure_event): Handle changes in window
position. (bug#52697)
2022-02-08 Po Lu <luangruo@yahoo.com>
Implement frame resize synchronization on GTK 3
* src/xterm.c (XTframe_up_to_date):
(handle_one_xevent): Use the GTK frame clock to implement frame
resize synchronization.
* src/xterm.h (struct x_output): New variable
`xg_sync_end_pending_p'.
2022-02-08 Lars Ingebrigtsen <larsi@gnus.org>
Extend find-lisp-object-file-name
* lisp/help-fns.el (find-lisp-object-file-name): Add optional
parameter to always look in the DOC file (bug#17685).
2022-02-08 Lars Ingebrigtsen <larsi@gnus.org>
Document pcase-lambda
* doc/lispref/control.texi (Destructuring with pcase Patterns):
Document pcase-lambda (bug#20268).
2022-02-08 Lars Ingebrigtsen <larsi@gnus.org>
Fix some standard-output/help-buffer confusion in describe-function-1
* lisp/help-fns.el (describe-function-1): We're outputting to
standard-output, so deconfuse slightly.
2022-02-08 Lars Ingebrigtsen <larsi@gnus.org>
Fix describe-function-1 test failure from previous change
* lisp/help-fns.el (describe-function-1): Fix test failure from
previous patch.
2022-02-08 Lars Ingebrigtsen <larsi@gnus.org>
Minor fix to how describe-function-1 displays symbols with spaces
* lisp/help-fns.el (describe-function-1): Ensure that symbols like
`bar\ ' aren't rendered incorrectly (bug#23130).
2022-02-08 martin rudalics <rudalics@gmx.at>
Improve handling of frame-inherited-parameters
* lisp/frame.el (make-frame): Improve handling of
frame-inherited-parameters (bug#24651).
2022-02-08 Lars Ingebrigtsen <larsi@gnus.org>
Make exit from text-scale-adjust less confusing
* lisp/face-remap.el (text-scale-adjust): Clear the prompt after
exiting (bug#25978).
2022-02-08 Po Lu <luangruo@yahoo.com>
Clear mouse highlight when mouse moves outside edit widget
* src/xterm.c (handle_one_xevent): Clear mouse highlight when
leaving the edit widget. Otherwise, it stays around on the
toolbar after the mouse is moved onto the menu bar.
2022-02-08 Andrew G Cohen <cohen@andy.bu.edu>
nnselect.el: Speed up group info updating
* lisp/gnus/nnselect.el (nnselect-request-update-info): Use a hash and
other tricks to speed things up.
(nnselect-request-group-scan): Make sure the artlist is uncompressed.
2022-02-08 Po Lu <luangruo@yahoo.com>
Try harder to preserve cursor when mapping tooltip frames on Haiku
* src/haikufns.c (haiku_set_cursor_color): Fix argument to
`error'.
(Fx_show_tip): Define cursors on both views.
2022-02-07 Po Lu <luangruo@yahoo.com>
Fix menu bar not opening after popup menu is dismissed on Lucid
* lwlib/xlwmenu.c (XlwMenuDestroy): Only set submenu_destroyed
if menu bar widget.
2022-02-07 Po Lu <luangruo@yahoo.com>
* src/pgtkfns.c (Fx_create_frame): Realize frame widgets. (bug#53861)
2022-02-07 Po Lu <luangruo@yahoo.com>
Don't allow tooltips to be transient for override redirect windows
* src/xfns.c (Fx_show_tip): Delete WM_TRANSIENT_FOR if the child
window is override-redirect.
* src/xterm.c (x_term_init): Intern new atom.
* src/xterm.h (struct x_display_info): New atom
`Xatom_wm_transient_for'.
2022-02-07 Po Lu <luangruo@yahoo.com>
Make sure `update_wm_hints' finds the WMShell
* src/widget.c (update_wm_hints): Accept frame separately from
the shell widget.
(widget_update_wm_size_hints): Require WM shell to be explictly
specified.
(EmacsFrameRealize):
(EmacsFrameResize): Update callers to `update_wm_hints'.
* src/widget.h: Update prototypes.
* src/xterm.c (x_wm_set_size_hint): Pass frame widget
(ApplicationShell) and the edit widget (EmacsFrame) to
`widget_update_wm_size_hints'. (bug#53839)
2022-02-07 Stefan Monnier <monnier@iro.umontreal.ca>
minibuffer.el: Try and fix bug#53053
* lisp/minibuffer.el (completion--sifn-requote): Special case for when
`upos` is at the very end.
2022-02-07 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/progmodes/xref.el (xref--marker-ring): Fix typo
2022-02-07 Michael Albinus <michael.albinus@gmx.de>
Make connection-local variables user options
* lisp/files-x.el (connection-local-profile-alist)
(connection-local-criteria-alist): Make them user options.
* doc/lispref/variables.texi (Connection Local Variables):
* etc/NEWS: Document this.
2022-02-07 Stefan Monnier <monnier@iro.umontreal.ca>
lisp-mnt, checkdoc: Reduce run-time dependencies
* lisp/emacs-lisp/lisp-mnt.el: Don't require `mail-parse` at top-level.
(lm-crack-address): Require it here instead.
* lisp/emacs-lisp/checkdoc.el (dired): Don't load at run-time.
(checkdoc-dired): Add corresponding `declare-function`.
2022-02-07 Mattias Engdegård <mattiase@acm.org>
Pin lazily read bytecode (bug#53809)
* src/eval.c (Ffetch_bytecode): Bytecode strings read lazily weren't
pinned as they must be. Do so.
Bug reported by Gregor Zattler.
2022-02-07 Po Lu <luangruo@yahoo.com>
Improve contrast of `custom-button' in the leuven-dark theme
* etc/themes/leuven-dark-theme.el (custom-button): Improve
contrast of custom-button foreground.
2022-02-07 Po Lu <luangruo@yahoo.com>
* lwlib/xlwmenu.c (pop_up_menu): Fix cast.
2022-02-07 Po Lu <luangruo@yahoo.com>
Correct off-by-one errors with frame resizing on Haiku
* src/haiku_support.cc (UnZoom):
(MakeFullscreen):
(BWindow_resize): Fix off-by-one errors in calls to
`BWindow::ResizeTo'.
2022-02-07 Po Lu <luangruo@yahoo.com>
Make menus work better on X toolkit builds with XInput 2
* src/xmenu.c (popup_get_selection): Translate some important
XI2 events into events the toolkit can understand.
(x_activate_menubar):
(create_and_show_popup_menu): Clear grab regardless of reported
status on Motif.
* src/xterm.c (xi_device_from_id): Export function.
* src/xterm.h: Update prototypes.
2022-02-07 Michael Albinus <michael.albinus@gmx.de>
Sanitize ls switches in ange-ftp (bug#53360)
* lisp/net/ange-ftp.el (ls-lisp--sanitize-switches): Declare.
(ange-ftp-ls): Sanitize LSARGS. (Bug#53360)
2022-02-07 Lars Ingebrigtsen <larsi@gnus.org>
Improve indentation of some shell script forms
* lisp/progmodes/sh-script.el (sh-smie--default-backward-token):
Don't skip past things like "true;then" (bug#53817).
2022-02-07 Po Lu <luangruo@yahoo.com>
Really fix extended frame synchronization
* src/xterm.c (XTframe_up_to_date): Make sure the extended
counter ends up even.
2022-02-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix the Scroll key binding on Windows
* lisp/bindings.el (global-map): Fix the binding on Windows
(bug#38007).
* lisp/scroll-lock.el (scroll-lock-mode): The event is `scroll' on
Windows, not `Scroll_Lock'.
2022-02-06 Lars Ingebrigtsen <larsi@gnus.org>
Make the eintr.html target match what's on the web
* doc/lispintro/Makefile.in (HTML_TARGETS, eintr.html): Make the
name match the URL at
https://www.gnu.org/software/emacs/manual/eintr.html (bug#38817).
2022-02-06 Lars Ingebrigtsen <larsi@gnus.org>
Give a better error in locate-default-make-command-line
* lisp/locate.el (locate-default-make-command-line): Error out
more nicely.
2022-02-06 Lars Ingebrigtsen <larsi@gnus.org>
Improve the ediff-diff-options documentation
* lisp/vc/ediff-diff.el (ediff-diff-options):
* doc/misc/ediff.texi (Patch and Diff Programs): Note that setting
this variable directly is probably the wrong thing to do (bug#6512).
2022-02-06 Po Lu <luangruo@yahoo.com>
Respect `x-cursor-fore-pixel' on Haiku
* src/haikufns.c (haiku_set_cursor_color): Respect
`x-cursor-fore-pixel'.
(syms_of_haikufns): Declare variable `x-cursor-fore-pixel'.
2022-02-06 Po Lu <luangruo@yahoo.com>
Clean up more code from PGTK port
* lisp/term/pgtk-win.el (pgtk-disown-selection-internal)
(pgtk-get-selection-internal): Fix declarations for new calling
conventions.
* src/gtkutil.c (xg_frame_set_char_size, x_wm_set_size_hint):
Clean up meaningless variables on PGTK.
* src/pgtkfns.c (Fx_create_frame, syms_of_pgtkfns): Clean up
meaningless variables and fix copied doc strings to use "skip".
* src/pgtkim.c (im_context_commit_cb)
(im_context_retrieve_surrounding_cb)
(im_context_delete_surrounding_cb, make_color_string)
(im_context_preedit_changed_cb, im_context_preedit_end_cb)
(im_context_preedit_start_cb): Fix coding style.
* src/pgtkselect.c (pgtk_selection_usable)
(Fpgtk_disown_selection_internal, Fpgtk_get_selection_internal):
Remove unused arguments.
(syms_of_pgtkselect): Fix doc strings and old style variable
declarations.
* src/pgtkterm.c (x_set_offset, x_set_parent_frame)
(syms_of_pgtkterm): Clean up doc strings and remove meaningless
variables.
2022-02-06 Po Lu <luangruo@yahoo.com>
* doc/emacs/xresources.texi (Table of Resources): Improve wording.
2022-02-06 Po Lu <luangruo@yahoo.com>
Correct implementation of extended frame synchronization
* src/xterm.c (handle_one_xevent): Use value provided in the
extended synchronization message as the current counter value.
2022-02-06 Lars Ingebrigtsen <larsi@gnus.org>
Make dired-directory and dired-subdir-alist buffer-local
* lisp/dired.el (dired-directory):
(dired-subdir-alist): Make buffer-local (bug#7118)
(dired-readin):
(dired-mode):
* lisp/dired-x.el (dired-virtual): Adjust usage.
* lisp/locate.el (locate-mode):
* lisp/find-lisp.el (find-lisp-find-dired-internal):
* lisp/find-dired.el (find-dired): Adjust usage.
2022-02-06 Stefan Monnier <monnier@iro.umontreal.ca>
Fix eval-tests/backtrace-in-batch-mode test
* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Fix the
zero-arg case.
2022-02-06 Lars Ingebrigtsen <larsi@gnus.org>
Make async connect_network_socket failures use Qfailed
* src/process.c (connect_network_socket): Mark the process as
Qfailed instead of using the error symbol (since this is what's
defined for the status) (bug#53814).
2022-02-06 Bob Rogers <rogers-emacs@rgrjr.homedns.org>
Remove outdated comments from ietf-drums.el
* lisp/mail/ietf-drums.el: Remove outdated comments (bug#53811).
2022-02-06 Ioannis Kappas <ioannis.kappas@gmail.com> (tiny change)
ansi-color: don't get stuck on \e
* lisp/ansi-color.el (ansi-color--control-seq-fragment-regexp): New
constant.
* test/lisp/ansi-color-tests.el
(ansi-color-incomplete-sequences-test): Test for \e that doesn't
start a valid ANSI escape sequence (bug#53808).
Code amended (and test code written) by <miha@kamnitnik.top>. Code by
Ioannis Kappas is small enough to be
2022-02-06 Stefan Monnier <monnier@iro.umontreal.ca>
(debug-early-backtrace): Tweak the non-evald output
* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Make the
non-evald output more like what is used in `debug.el`.
2022-02-06 Stefan Monnier <monnier@iro.umontreal.ca>
(debug-early-backtrace): Tweak the non-evald output
* lisp/emacs-lisp/debug-early.el (debug-early-backtrace): Make the
non-evald output more like what is used in `debug.el`.
2022-02-06 Juri Linkov <juri@linkov.net>
Use mode-line-window-selected-p in tab-line-tab-name-format-default.
* lisp/tab-line.el (tab-line-tab-name-format-default):
Use the recently added function 'mode-line-window-selected-p'
for the face 'tab-line-tab-current' (bug#53629).
2022-02-06 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-new-tab-choice): Add const 'window'. Update doc.
(tab-bar-new-tab-to): Remove window parameters 'window-side' and
'window-atom' from the old window. Move split-window/delete-window
inside ignore-window-parameters (bug#53662).
2022-02-06 Michael Albinus <michael.albinus@gmx.de>
Adapt em-tramp-tests.el
* test/lisp/eshell/em-tramp-tests.el (tramp): Require.
(em-tramp-test/su-default, em-tramp-test/su-user)
(em-tramp-test/su-login, em-tramp-test/sudo-basic)
(em-tramp-test/sudo-user): Adapt tests.
2022-02-06 Mattias Engdegård <mattiase@acm.org>
Avoid deprecation warning in NS-specific code
* src/macfont.m (mac_font_create_preferred_family_for_attributes):
CTGetCoreTextVersion is obsolete and its use elicits a warning
in macOS 11.6; use NSProcessInfo instead.
2022-02-06 Wang Chunye <chunywan@xilinx.com> (tiny change)
optimization: constand folding for read-kbd-macro
to boost startup performance, it is better to avoid invoking
`read-kbd-macro` at run time which requires 'cl-lib.
it takes ~20ms to load cl-lib
2022-02-06 Po Lu <luangruo@yahoo.com>
Ensure bar cursors are always visible on Haiku
* src/haikuterm.c (haiku_draw_window_cursor): Adjust bar cursor
colors like X.
2022-02-06 Po Lu <luangruo@yahoo.com>
Fix the GTK 2 build
* src/gtkutil.c (xg_filter_key): Remove call to GTK3-only
function without GTK 3.
* src/xfns.c (select_visual): Avoid 32-bit visuals on GTK 2.
2022-02-06 Po Lu <luangruo@yahoo.com>
Disable extended frame synchronization by default
* doc/emacs/xresources.texi (Table of Resources): Document
new possible value of `synchronizeResize'.
* src/xfns.c (Fx_create_frame): Set synchronization protocol
according to `synchronizeResize'.
2022-02-06 Po Lu <luangruo@yahoo.com>
Add support for EWMH extended frame synchronization
* src/xfns.c (Fx_create_frame): Populate both counter variables.
* src/xterm.c (XTframe_up_to_date):
(handle_one_xevent): Support extended synchronization.
(x_free_frame_resources): Destroy extended counter.
(x_term_init): Intern new atom _NET_WM_FRAME_DRAWN.
* src/xterm.h (struct x_display_info): New atom
`_NET_WM_FRAME_DRAWN'.
(struct x_output): New fields for extended counter tracking.
(FRAME_X_EXTENDED_COUNTER): New macro.
2022-02-06 Eli Zaretskii <eliz@gnu.org>
Fix infloop in 'redisplay_window' when buffer is narrowed
* src/xdisp.c (redisplay_window): Ensure window-start point is in
the accessible portion of the buffer when passing it to
'window_start_acceptable_p'. (Bug#14582)
2022-02-06 Tassilo Horn <tsdh@gnu.org>
Display show-paren-context-when-offscreen in child frame
* etc/NEWS: Extend section about the new
`show-paren-context-when-offscreen' custom option.
* lisp/paren.el (show-paren-context-when-offscreen): Allow special
value `child-frame'.
(show-paren-function): Handle `child-frame' value of
`show-paren-context-when-offscreen'.
(show-paren--context-child-frame): New defvar.
(show-paren--context-child-frame-redirect-focus): New function.
(show-paren--context-child-frame-buffer): New function.
(show-paren--context-child-frame-parameters): New defvar.
(show-paren--delete-context-child-frame): New function.
(show-paren--show-context-in-child-frame): New function.
2022-02-06 Michael Albinus <michael.albinus@gmx.de>
Make usage of su and sudo consistent in eshell (bug#53783)
* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo):
Use `tramp-default-host' instead of "localhost".
2022-02-06 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
821c240075 Fix ietf-drums-get-comment doc string
638247baa4 Fix typo in display.texi
2022-02-06 Po Lu <luangruo@yahoo.com>
* lwlib/xlwmenu.c (pop_up_menu): Work around motion problems on XI2.
2022-02-05 Bob Rogers <rogers@rgrjr.com>
Add ietf-drums tests, fix parse-address decoding
* test/lisp/mail/ietf-drums-tests.el (ietf-drums-tests): Test most of
lisp/mail/ietf-drums.el functionality.
* lisp/mail/ietf-drums.el: (ietf-drums-parse-address): Bug fix:
Require rfc2047 when needed (bug#53811).
2022-02-05 Po Lu <luangruo@yahoo.com>
Allow disabling frame resize synchronization
* doc/emacs/xresources.texi (Table of Resources): Document new
parameter `synchronizeResize'.
* etc/NEWS: Announce frame resize synchronization.
* src/xterm.c (x_term_init): Don't enable XSync if the
X resource `synchronizeResize' is off or false.
2022-02-05 Po Lu <luangruo@yahoo.com>
Clean up lots of #ifdef'd out code in PGTK files
Most of them are either relics from X or from the NS code
pgtkfns.c was copied from whole.
* src/pgtkfns.c (x_icon):
(pgtk_set_scroll_bar_foreground):
(pgtk_set_scroll_bar_background):
(Fx_create_frame):
(pgtk_window_is_ancestor):
(x_create_tip_frame):
* src/pgtkselect.c (syms_of_pgtkselect):
* src/pgtkterm.c (pgtk_iconify_frame):
(x_set_frame_alpha):
(button_event): Remove defined out code that cannot make sense.
* src/pgtkmenu.c (show_help_event): Remove ifdef'd out code and
reword comment.
2022-02-05 Po Lu <luangruo@yahoo.com>
Handle window state changes on PGTK
* src/pgtkterm.c (window_state_event): Set fullscreen, sticky,
and iconification status according to the new window state.
(bug#53793)
2022-02-05 Po Lu <luangruo@yahoo.com>
Minor changes to xsync support
* src/xfns.c (append_wm_protocols): Don't append
_NET_WM_SYNC_REQUEST unless the display supports our version of
XSync.
* src/xterm.c (handle_one_xevent): Don't handle
_NET_WM_SYNC_REQUEST unless the display supports that.
(x_free_frame_resources): Test basic counter against None.
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Improve the elp-instrument-package doc string
* lisp/emacs-lisp/elp.el (elp-instrument-package): Note the effect
of loading further files (bug#13252).
2022-02-05 Mauro Aranda <maurooaranda@gmail.com>
Fix reverting the default face to standard/themed state in GUIs
* lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save)
(custom-face-save): Record the default (standard or themed) attributes
of the default face in a symbol property.
(custom-face-reset-saved, custom-face-mark-to-reset-standard): When
reverting the default face to the standard or themed state, use the
default attributes we recorded, instead of relying in the defface spec
of the default face, since that doesn't give enough information to
reset all attributes, like foreground, family, etc (bug#14635).
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option 'find-library-include-other-files'
* lisp/emacs-lisp/find-func.el (read-library-name--find-files):
New function (bug#15735).
(read-library-name): Use it.
(find-library-include-other-files): New user option.
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how eshell/cd works when cd-ing to ".." from "/"
* lisp/eshell/em-dirs.el (eshell/cd): Make "cd .." from "/" less
confusing (bug#16861).
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Add a :distant-foreground to the lazy-highlight face
* lisp/isearch.el (lazy-highlight): Add a :distant-foreground
colour so that the text is always legible (bug#16969).
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Add new function mode-line-window-selected-p
* doc/lispref/modes.texi (Mode Line Basics): Mention it (bug#53629).
* lisp/bindings.el (mode-line-window-selected-p): New function
from martin rudalics <rudalics@gmx.at>.
2022-02-05 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp to changed unload behavior (bug#53632)
* test/lisp/net/tramp-tests.el (tramp-test47-unload): Check also
for autoloaded macros. Respect `tramp-autoload' function property.
2022-02-05 Po Lu <luangruo@yahoo.com>
Add support for basic syncing with the window manager on resize
This is handled by GTK 3, so the code is disabled on that
specific build. On other builds, this eliminates any unexposed
part of a frame from showing up after a resize when
`frame-resize-pixelwise' is t.
* configure.ac: Check for the X Synchronization Extension if
present.
* src/Makefile.in (EMACS_CFLAGS):
(LIBES): Add XSYNC_LIBS and XSYNC_CFLAGS.
* src/xfns.c (append_wm_protocols): Declare
`_NET_WM_SYNC_REQUEST' support if appropriate.
(x_window): Adjust location of call to `append_wm_protocols' on
Xt version to prevent it from being overwritten.
(Fx_create_frame): Create basic counter.
* src/xterm.c (XTframe_up_to_date): Set counter value to the one
asked for by the window manager.
(handle_one_xevent): Handle _NET_WM_SYNC_REQUEST.
(x_free_frame_resources): Free frame counter if present.
(x_term_init): Test for XSync and set fields accordingly.
* src/xterm.h (struct x_display_info): New fields for XSync
support and new atoms.
(struct x_output): New fields for counter status.
(FRAME_X_BASIC_COUNTER): New macro.
2022-02-05 Po Lu <luangruo@yahoo.com>
* lisp/pixel-scroll.el: Update commentary.
2022-02-05 Eli Zaretskii <eliz@gnu.org>
Fix 'current-column' in the presence of display strings
* src/indent.c (check_display_width): Support calculation of width
of 'display' properties whose values are strings. This fixes the
value returned by 'current-column' when display strings are
present between BOL and point. (Bug#53795)
2022-02-05 Alan Mackenzie <acm@muc.de>
* lisp/emacs-lisp/debug-early.el: Improve the documentation
2022-02-05 Michael Albinus <michael.albinus@gmx.de>
Remove superfluous `font-lock-add-keywords' calls in Tramp
* lisp/net/tramp.el (with-parsed-tramp-file-name)
(with-tramp-progress-reporter, with-tramp-file-property)
(with-tramp-connection-property, with-tramp-locked-connection):
* lisp/net/tramp-gvfs.el (with-tramp-dbus-call-method)
(with-tramp-dbus-get-all-properties): Do not call
`font-lock-add-keywords' for macros, it isn't needed anymore.
2022-02-05 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp to changed unload behavior (bug#53632)
* lisp/net/tramp.el (tramp-autoload-file-name-handler)
(tramp-register-autoload-file-name-handlers)
(tramp-unload-file-name-handlers, tramp-unload-tramp):
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp)
(tramp-archive-autoload-file-name-handler)
(tramp-register-archive-file-name-handler):
Add `tramp-autoload' function property.
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix yank-media utf-16 detection
* lisp/yank-media.el (yank-media--utf-16-p): Factor out into its
own function for easier testing and fix the code.
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Improve the selected-window doc string
* src/window.c (Fselected_window): Add some pointers to other
functions in this area.
2022-02-05 Jim Porter <jporterbugs@gmail.com>
Ensure that the CAR of 'eshell-last-async-procs' always points to a process
Previously, if a non-process was piped to a process, this could end up
being nil, which isn't correct. 'eshell-last-async-procs' should just
ignore non-process commands in a pipeline.
* lisp/eshell/esh-cmd.el (eshell-do-pipelines): Set 'headproc'
correctly.
* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc): New test.
2022-02-05 Brendan O'Dea <bod@debian.org> (tiny change)
Remove kerning escapes in woman mode
* lisp/woman.el (woman-decode-region): Remove kerning escapes
(bug#53770).
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Improve the Archive file names tramp documentation
* doc/misc/tramp.texi (Archive file names): Explicitly say how to
open an archive with Tramp (bug#25076).
2022-02-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix yank-media-types--format decoding
* lisp/yank-media.el (yank-media-types--format): Check that we
really have some nuls.
2022-02-05 Po Lu <luangruo@yahoo.com>
Finish up cursor color merging on Haiku
* src/haikuterm.c (haiku_draw_text_decoration):
(haiku_draw_plain_background):
(haiku_draw_stretch_glyph_string):
(haiku_merge_cursor_foreground): Use merged cursor colors.
2022-02-04 Po Lu <luangruo@yahoo.com>
Fix last change to ftcrfont.c
* src/ftcrfont.c (ftcrfont_draw): Remove relic `face' variable
and use s->face instead.
2022-02-04 Po Lu <luangruo@yahoo.com>
Implement face cursor color merging on Haiku
* src/ftcrfont.c (ftcrfont_draw):
* src/haikufont.c (haikufont_draw): Use
`haiku_merge_cursor_foreground' to calculate cursor HL colors.
* src/haikuterm.c (haiku_merge_cursor_foreground): New function.
* src/haikuterm.h: Update prototypes.
2022-02-04 Po Lu <luangruo@yahoo.com>
Set WM_TRANSIENT_FOR on tooltip frames
Otherwise the decorations get all messed up on GNOME and some
other composited desktops.
* src/xfns.c (Fx_show_tip): Set WM_TRANSIENT_FOR to the window
underneath the tooltip.
2022-02-04 Po Lu <luangruo@yahoo.com>
Implement _NET_WM_PING protocol
* src/xfns.c (append_wm_protocols): New function.
(x_window): Call `append_wm_protocols' after window creation.
* src/xterm.c (handle_one_xevent): Handle _NET_WM_PING client
messages.
(x_term_init): Intern _NET_WM_PING atom.
* src/xterm.h (struct x_display_info): New field
`Xatom_net_wm_ping'.
2022-02-04 Vladimir Panteleev <git@cy.md>
Update the MULTIPLE property with conversion outcomes
Per the ICCCM spec:
> If the owner fails to convert the target named by an atom in the
> MULTIPLE property, it should replace that atom in the property with
> None.
* src/xselect.c (x_handle_selection_request): Do it.
2022-02-04 Vladimir Panteleev <git@cy.md>
Do not delete the MULTIPLE property after reading it
Per the ICCCM spec:
> The requestor should delete [...] the property specified in the
> MULTIPLE request when it has copied all the data.
We are not the requestor, so we should not be deleting this property
(which is what x_get_window_property_as_lisp_data does). The property
needs to remain available as the requestor will generally want to read
it back to see which conversions succeeded or not.
* src/xselect.c (x_get_window_property_as_lisp_data): Add flag which
skips deleting the read property, or handling INCR (which does not
make sense for MULTIPLE).
(x_handle_selection_request): Enable the flag.
2022-02-04 Stefan Monnier <monnier@iro.umontreal.ca>
(with-demoted-errors): Warn on missing `format` arg
The `format` arg has been mandatory for a while, but the backward
compatibility code that handled the case of a missing `format` arg
made it hard to notice when using the old calling convention.
* lisp/subr.el (with-demoted-errors): Warn on missing `format` arg.
* lisp/emacs-lisp/smie.el (smie-indent--separator-outdent): Don't abuse
`with-demoted-errors`.
(smie-indent-line, smie-auto-fill):
* test/lisp/emacs-lisp/ert-tests.el (ert-test-with-demoted-errors):
* lisp/vc/vc-hooks.el (vc-refresh-state):
* lisp/vc/vc-annotate.el (vc-annotate-background-mode):
* lisp/vc/diff-mode.el (diff-syntax-fontify-hunk):
* lisp/textmodes/reftex-toc.el (reftex-re-enlarge):
* lisp/progmodes/sh-script.el (sh-smie-sh-rules):
* lisp/progmodes/octave.el (inferior-octave-startup):
* lisp/pcmpl-gnu.el (pcmpl-gnu-make-all-targets):
* lisp/org/org-refile.el (org-refile):
* lisp/org/org-capture.el (org-capture-store-last-position):
* lisp/nxml/nxml-mode.el (nxml-mode):
* lisp/notifications.el (notifications-notify):
* lisp/gnus/mm-view.el (mm-display-inline-fontify):
* lisp/finder.el (finder-unload-function):
* lisp/files.el (safe-local-variable-p, backup-buffer-copy
* lisp/autorevert.el (auto-revert-notify-handler):
Pass `format` arg to `with-demoted-errors`.
2022-02-04 Stefan Monnier <monnier@iro.umontreal.ca>
python.el: Silence left over warning in last commit
* lisp/progmodes/python.el
(python-shell-calculate-process-environment): Declare
tramp-remote-process-environment before using it.
2022-02-04 Stefan Monnier <monnier@iro.umontreal.ca>
python.el: Try and better split the Tramp code
Massage the Python-Tramp code so that the Tramp part and the Python
part are a bit less intertwined. It's still not quite right, but it's
a bit closer to the point where the Tramp part can be moved to `tramp.el`.
* lisp/progmodes/python.el: Don't require `tramp-sh`.
Do require `subr-x` OTOH. Remove redundant `:group`s.
(python-shell--calculate-process-environment): New function, that only
return the entries to be added.
(python-shell-calculate-process-environment): Rewrite and declare obsolete.
(python-shell-tramp-refresh-remote-path)
(python-shell-tramp-refresh-process-environment): Silence
compiler warnings.
(python-shell-with-environment): Move the bulk of its code to
a new function `python-shell--with-environment` for easier debugging
and to avoid code duplication.
(python-shell--with-environment): New function. Split the Tramp case
into its own function.
(python-shell--tramp-with-environment): New function.
(python-eldoc-function-timeout-permanent): Fix doc's first line.
* test/lisp/progmodes/python-tests.el: Adjust accordingly.
(python-shell-calculate-process-environment-1)
(python-shell-calculate-process-environment-2)
(python-shell-calculate-process-environment-3)
(python-shell-calculate-process-environment-4)
(python-shell-calculate-process-environment-5)
(python-shell-calculate-process-environment-6)
(python-shell-calculate-process-environment-7)
(python-shell-calculate-process-environment-8):
Use `python-shell--calculate-process-environment`.
(python--tests-process-env-canonical, python--tests-process-env-eql):
New functions.
(python-shell-with-environment-2, python-shell-with-environment-3):
Use them.
2022-02-04 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp tests backward compatibility
* test/lisp/net/tramp-tests.el (tramp-test39-detect-external-change):
Improve backward compatibility.
2022-02-04 Andrea Corallo <akrl@sdf.org>
* Have `null' and `not' explicit in LIMPLE so we inline them
* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Generate explicit
`eq' call in LIMPLE for LAP opcode 'not'.
2022-02-04 Eli Zaretskii <eliz@gnu.org>
Fix infloop in redisplay_window due to fix of bug#14582
* src/xdisp.c (window_start_acceptable_p): New function.
(redisplay_window): Call 'window_start_acceptable_p' to determine
whether a given window-start point is acceptable, including when
the window's force_start flag is set -- this fixes infloop in
redisplay_window in that case.
2022-02-04 Po Lu <luangruo@yahoo.com>
Remove misleading "in current buffer" message from auto-raise-mode
* lisp/frame.el (auto-raise-mode): Declare as global to prevent
a misleading message from being displayed. It's actually
frame-local, but declaring it global doesn't hurt since
`frame-parameter' is a gv.
2022-02-04 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler in two tests
* test/lisp/electric-tests.el (electric-pair-define-test-form):
* test/src/buffer-tests.el (buffer-tests--make-test-name): Silence
byte-compiler by defining defuns also at run time.
2022-02-04 Po Lu <luangruo@yahoo.com>
Implement auto-raise on Haiku
* src/haikuterm.c (haiku_read_socket): Implement auto-raising
of frames that have that parameter set.
2022-02-04 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp-gvfs.el (tramp-gvfs-send-command): Fix problem with locale.
2022-02-04 Po Lu <luangruo@yahoo.com>
Fix bit rot in the color allocation code
* src/xterm.c (x_alloc_nearest_color_1): Reintroduce an older
version of the code that would try to allocate a "compromise
delta".
2022-02-04 Po Lu <luangruo@yahoo.com>
* src/xwidget.c (xwidget_button): Always let button events through.
Filtering out emulated events is done in handle_one_xevent, so
all this accomplishes is to filter out legitimate button events.
2022-02-04 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
0591aa6cd3 Revert an erroneous change in tramp-cache.el
2022-02-04 Po Lu <luangruo@yahoo.com>
Fix toggling `x-gtk-use-native-input'.
* lisp/term/x-win.el (x-internal-focus-input-context):
(x-gtk-use-native-input-watcher): Update for changes to
`x-internal-focus-input-context'.
* src/xfns.c (Fx_internal_focus_input_context): New parameter
`focus'.
2022-02-03 Po Lu <luangruo@yahoo.com>
Make Emacs build with some other XLib implementations
* configure.ac (HAVE_XKB): Check for functions that aren't
always implemented by various XLib implementations.
* src/xfns.c (select_visual): Handle NULL values of vinfo.
(XkbRefreshKeyboardMapping):
(XkbFreeNames):
(XDisplayCells):
(XDestroySubwindows): Define replacement functions where they
aren't available.
* src/xterm.c (x_find_modifier_meanings): Handle NULL values of
various fields.
2022-02-03 Po Lu <luangruo@yahoo.com>
* src/xfns.c (Fx_internal_focus_input_context): Fix typo.
2022-02-03 Po Lu <luangruo@yahoo.com>
Make `x-gtk-use-native-input' take effect immediately
* lisp/term/x-win.el (x-internal-focus-input-context): New
declaration.
(x-gtk-use-native-input-watcher): New variable watcher.
* src/xfns.c (Fx_internal_focus_input_context): New function.
(syms_of_xfns): Define new subr.
2022-02-03 Po Lu <luangruo@yahoo.com>
Try to fix input method flicker on GTK builds
* src/xterm.c (x_focus_changed): Only focus GTK context if
native input is on. (bug#53698)
2022-02-03 Andrew G Cohen <cohen@andy.bu.edu>
Improve compression of article lists in gnus/nnselect
* lisp/gnus/nnselect.el (nnselect-compress-artlist): Allow compressed list.
nnselect-uncompress-artlist): Properly loop over rsv values.
2022-02-03 Po Lu <luangruo@yahoo.com>
Improve image depth handling
Emacs defaults to a 32-bit TrueColor visual, but if that happens
on a display which defaults to 16-bit TrueColor, yet happens to
have 32-bit color, and doesn't have the X Render Extension, an
error will occur in x_composite_image as libXpm will load
pixmaps of depth 16 instead of depth 32.
* src/image.c (x_create_x_image_and_pixmap): Explictly specify
display depth.
(x_create_xrender_picture):
(xpm_load):
(gs_load): Use dpyinfo->n_planes instead of
DefaultDepthOfScreen.
2022-02-03 Lars Ingebrigtsen <larsi@gnus.org>
Improve the bookmark-default-handler doc string
* lisp/bookmark.el (bookmark-default-handler): Document the
`buffer' property (bug#20845).
2022-02-03 Lars Ingebrigtsen <larsi@gnus.org>
Remove tarball instructions from gnus-faq.texi
2022-02-03 Lars Ingebrigtsen <larsi@gnus.org>
Make sort-numeric-fields resilient towards blank lines
* lisp/sort.el (sort-numeric-fields): Don't signal an error on
blank lines (bug#31800).
2022-02-03 Jim Porter <jporterbugs@gmail.com>
Use 'require' to load eshell-tests-helpers
* test/lisp/eshell/eshell-tests.el
* test/lisp/eshell/em-extpipe-tests.el: Load eshell-tests-helpers with
'require'.
* test/lisp/eshell/eshell-tests-helpers.el (eshell-history-file-name):
Define this here so individual test files don't have to.
2022-02-03 Jim Porter <jporterbugs@gmail.com>
When executing an Eshell pipeline, send input to the first process
Previously, input was sent to the last process in the pipeline,
resulting in unexpected behavior when running commands like
'tr a-z A-Z | rev'.
* lisp/eshell/esh-util.el (eshell-process-pair-p)
(eshell-make-process-pair): New functions.
* lisp/eshell/esh-cmd.el (eshell-last-async-proc): Rename to...
(eshell-last-async-procs): ... this, and store a pair of processes.
(eshell-interactive-process): Replace with...
(eshell-interactive-process-p, eshell-head-process)
(eshell-tail-process): ... these.
(eshell-cmd-initialize): Set 'eshell-last-async-procs'.
(eshell-do-pipelines): Set 'headproc'.
(eshell-execute-pipeline): Return 'headproc' and 'tailproc'.
(eshell-resume-eval): Use 'eshell-last-async-procs'.
(eshell-do-eval): Make sure we work with a pair of processes.
* lisp/eshell/esh-proc.el (eshell-send-eof-to-process): Move from
here...
* lisp/eshell/esh-mode.el (eshell-send-eof-to-process): ... to here,
and only send EOF to the head process.
* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments)
* lisp/eshell/esh-mode.el (eshell-intercept-commands)
(eshell-watch-for-password-prompt):
Use 'eshell-interactive-process-p'.
* lisp/eshell/em-rebind.el (eshell-delchar-or-maybe-eof)
* lisp/eshell/em-term.el (eshell-term-send-raw-string)
* lisp/eshell/esh-mode.el (eshell-self-insert-command)
(eshell-send-input, eshell-send-invisible):
Use 'eshell-head-process'.
* lisp/eshell/esh-cmd.el (eshell-as-subcommand):
Use 'eshell-tail-process'.
* lisp/eshell/eshell.el (eshell-command):
* test/lisp/eshell/eshell-tests-helpers.el
(eshell-wait-for-subprocess):
Use 'eshell-interactive-process-p' and 'eshell-tail-process'.
* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-headproc-stdin):
New test.
2022-02-03 Jim Porter <jporterbugs@gmail.com>
Ensure that tailproc is set for the last process in an Eshell pipeline
In particular, this used to fail for pipelines where the last process
in the pipeline came from the first element of the pipeline. This
could happen when a process was piped to an ordinary Lisp function,
like in '*echo hi | echo bye'.
* lisp/eshell/esh-cmd.el (eshell-do-pipelines): Set the tailproc even
for the first process in the pipeline.
* test/lisp/eshell/eshell-tests.el (eshell-test/pipe-tailproc): New
test.
2022-02-03 Eli Zaretskii <eliz@gnu.org>
Allow ensuring that a window's starting point is never invisible
* src/xdisp.c (syms_of_xdisp) <make-window-start-visible>: New
buffer-local variable.
(redisplay_window): If 'make-window-start-visible' is non-nil,
don't accept window-start position that is in invisible text or is
covered by a "replacing" 'display' property. (Bug#14582)
2022-02-03 Thomas Fitzsimmons <fitzsim@fitzsim.org>
soap-client: Add minimum supported Emacs version
* lisp/net/soap-client.el: Add Emacs 24.1 to Package-Requires.
Bump version to 3.2.1.
2022-02-03 Michael Albinus <michael.albinus@gmx.de>
Implement file modification check in Tramp
* lisp/net/tramp.el (tramp-handle-lock-file): Check, whether FILE
is modified.
* test/lisp/net/tramp-tests.el (tramp-test39-detect-external-change):
New test.
2022-02-03 Mattias Engdegård <mattiase@acm.org>
Don't use `string-replace` in soap-client (bug#53744)
* lisp/net/soap-client.el (soap-decode-xs-complex-type):
Cease using `string-replace` since it requires Emacs 28.
2022-02-03 Mattias Engdegård <mattiase@acm.org>
Don't use `string-search` in soap-client (bug#53744)
* lisp/net/soap-client.el (soap-decode-xs-complex-type):
Since soap-client is a core ELPA package and may be used with
Emacs versions older than 28, it cannot use `string-search`;
revert to `string-match`.
2022-02-03 Eli Zaretskii <eliz@gnu.org>
Fix "Buffers->Frames" submenu in daemon sessions
* lisp/menu-bar.el (menu-bar-update-buffers): Detect the initial
frame by its special terminal's name. (Bug#53740)
* src/terminal.c (init_initial_terminal): Add comment about using
the initial-terminal's name in menu-bar.el.
2022-02-03 Po Lu <luangruo@yahoo.com>
* src/haikufont.c (haikufont_draw): Allocate string buffer on stack.
2022-02-03 Po Lu <luangruo@yahoo.com>
Stop creating cairo contexts in haiku_begin_cr_clip
* src/haikufont.c (haikufont_draw):
* src/ftcrfont.c (ftcrfont_draw): Stop holding the draw lock.
* src/haiku_support.cc (class EmacsView): New field
`cairo_context'.
(DetachCairoSurface): Destroy cairo_context.
(AttachCairoSurface): Create cairo_context from the surface.
(EmacsView_cairo_surface): Delete function.
(EmacsView_cairo_context): New function.
* src/haiku_support.h: Update prototypes.
* src/haikuterm.c (haiku_begin_cr_clip):
(haiku_end_cr_clip): Retrieve the existing cairo context instead
of creating a new one.
* src/haikuterm.h (FRAME_CR_CONTEXT): New macro.
2022-02-03 Po Lu <luangruo@yahoo.com>
Obtain draw lock outside haiku_start_clip
* src/haikuterm.c (haiku_start_clip):
(haiku_end_clip): Stop obtaining the draw lock.
(haiku_draw_glyph_string): Set draw lock here instead.
2022-02-03 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
ab2f275422 Improve documentation of 'emacs-version'
2022-02-03 Po Lu <luangruo@yahoo.com>
* src/haikuterm.c (haiku_draw_text_decoration): Don't lock for draws.
2022-02-03 Po Lu <luangruo@yahoo.com>
Simplify box display code on Haiku
* src/haikuterm.c (haiku_calculate_relief_colors): Remove
`rgbout_c' parameter.
(haiku_draw_relief_rect): Push state if performing additional
clipping.
(haiku_draw_string_box): Stop passing clip rects to the relief
drawing functions.
(haiku_draw_glyph_string): Fix calls to haiku_draw_string_box
for new parameters.
2022-02-02 Po Lu <luangruo@yahoo.com>
Fix display of text decorations with defaulted foreground on Haiku
* src/haikuterm.c (haiku_draw_text_decoration): Remove parameter
`dcol' and use face->foreground instead. All callers changed.
2022-02-02 Po Lu <luangruo@yahoo.com>
Fix background daemon on Haiku
* src/emacs.c (DAEMON_MUST_EXEC): Define when using the Haiku
application kit.
2022-02-02 Po Lu <luangruo@yahoo.com>
Prevent the initial frame from showing up in the frame menu
* lisp/menu-bar.el (menu-bar-update-buffers): Ignore initial
frame when generating frame list. (bug#53740)
2022-02-02 Stefan Kangas <stefan@marxist.se>
New theme leuven-dark (Bug#53032)
* etc/themes/leuven-dark-theme.el: New file, written by
Fabrice Niessen and Thibault Polge.
2022-02-02 Stefan Kangas <stefan@marxist.se>
* test/lisp/cedet/semantic/bovine/gcc-tests.el (ert-x): Require.
2022-02-02 Lars Ingebrigtsen <larsi@gnus.org>
Adjust test to adjusted code
2022-02-02 Alan Mackenzie <acm@muc.de>
New file lisp/emacs-lisp/debug-early.el for backtraces in early bootstrap
This is also used in batch mode in general.
* lisp/debug-early.el (debug-early-backtrace, debug-early): New functions.
* lisp/loadup.el (top level): Load debug-early.el as first file.
* src/eval.c (signal_or_quit): Remove the condition in the batch mode section
of not being in dumping or bootstrap, since it is no longer needed. Test that
'debug-early's symbol-function is bound. Ensure there is enough working space
in specpdl and eval_depth.
(syms_of_eval): New DEFSYM for Qdebug_early. Initialise Vdebugger to
Qdebug_early rather than Qnil.
2022-02-02 Juri Linkov <juri@linkov.net>
* lisp/replace.el (query-replace-read-from): Use default for empty input.
Set 'default' from non-empty 'query-replace-read-from-default'.
Use the default in non-regexp prompt and return it for empty input.
https://lists.gnu.org/archive/html/emacs-devel/2022-02/msg00044.html
2022-02-02 Lars Ingebrigtsen <larsi@gnus.org>
Improve the describe-key doc string
* lisp/help.el (describe-key): Say something about prefix keys
(bug#33320).
2022-02-02 Lars Ingebrigtsen <larsi@gnus.org>
Add some indexing for "compiler macro"
* doc/lispref/functions.texi (Inline Functions): Add a link to
where compiler macros are defined.
(Declare Form): Add a concept index.
2022-02-02 Lars Ingebrigtsen <larsi@gnus.org>
Mark vt-control and vc100-led obsolete since Emacs 29.1
Move vt-control and vt100-led to obsolete (bug#37562)
2022-02-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix decoding error in ietf-drums-parse-address
* lisp/mail/ietf-drums.el (ietf-drums-parse-address): Don't try to
decode the name if there is no name (bug#53716).
2022-02-02 Alan Mackenzie <acm@muc.de>
Fix bug with M-x compile-defun in a defconst/defvar
* lisp/emacs-lisp/bytecomp.el (compile-defun): Have symbols-with-pos-enabled
bound to non-nil when the eval takes place.
2022-02-02 Po Lu <luangruo@yahoo.com>
Improve correctness of generated xwidget events
* src/xwidget.c (xw_maybe_synthesize_crossing): Add new
parameters for controlling the crossing mode. Also improve the
accuracy of generated crossing events when the mouse pointer
moves outside the toplevel from an inferior of it. All callers
changed.
(xw_notify_virtual_upwards_until):
(xw_notify_virtual_downwards_until): New parameters for crossing
mode. All callers changed.
2022-02-02 Po Lu <luangruo@yahoo.com>
Send button events before setting xwidget passive grab
* src/xwidget.c (xwidget_button_1): Send button event before
any grab processing.
2022-02-02 Po Lu <luangruo@yahoo.com>
* src/nsselect.m (ns_get_foreign_selection): Fix GCC warning.
2022-02-02 Po Lu <luangruo@yahoo.com>
Make behaviour of `mouse-autoselect-window' consistent with X on NS
* src/nsterm.m ([EmacsView mouseMoved:]): Ignore if
`selected_window' is a minibuffer window.
2022-02-02 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9ab0b43a72 * etc/NEWS: Apply final fixes after proofreading.
# Conflicts:
# etc/NEWS
2022-02-01 Po Lu <luangruo@yahoo.com>
Improve behaviour of `mouse-autoselect-window' on Haiku
* src/haikuterm.c (haiku_read_socket): Don't select windows if
the selected window is a minibuffer window or a popup is
activated.
2022-02-01 Po Lu <luangruo@yahoo.com>
Fix display of vertical window dividers on Haiku
* src/haikuterm.c (haiku_draw_window_divider): Make drawing
consistent with X.
2022-02-01 Po Lu <luangruo@yahoo.com>
Don't use XRender to fill rectangles unless an alpha channel exists
* src/xterm.c (x_clear_area): Don't use XRender unless
`alpha_bits' is set.
2022-02-01 Juri Linkov <juri@linkov.net>
* lisp/replace.el (query-replace-read-from-default): New variable.
(query-replace-read-from-regexp-default): New variable.
(query-replace-read-from): Use new variables.
* lisp/progmodes/project.el (project-query-replace-regexp):
Let-bind query-replace-read-from-regexp-default to find-tag-default-as-regexp.
* lisp/progmodes/xref.el (xref-find-references-and-replace):
Let-bind query-replace-read-from-default to find-tag-default.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01909.html
2022-02-01 Juri Linkov <juri@linkov.net>
* lisp/tab-line.el: Support non-buffer tabs in some tab face functions.
(tab-line-tab-face-special, tab-line-tab-face-modified): For non-buffer tabs
when 'tab-line-tabs-function' is e.g. 'tab-line-tabs-buffer-groups',
try to get the buffer from the property 'buffer'.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg01923.html
2022-02-01 Andrea Corallo <akrl@sdf.org>
* Improve 'maybe_defer_native_compilation'
* src/comp.c (maybe_defer_native_compilation): Always store the
function name in Vcomp_deferred_pending_h if pending for deferred
compilation.
2022-02-01 Andrea Corallo <akrl@sdf.org>
* lisp/startup.el (startup--require-comp-safely): Fix typo in a92c6191b0
2022-02-01 Mattias Engdegård <mattiase@acm.org>
Speed up calls to C primitives
* src/eval.c (funcall_subr): Test most likely cases first (conforming
calls to finite-arity or n-adic SUBRs), and the error cases last,
instead of doing it the other way around. Simplify.
2022-02-01 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (pgtk_draw_rectangle): Fix trivial typo. (bug#53677)
2022-02-01 Andreas Schwab <schwab@linux-m68k.org>
Remove extra \= from obsoletion message
* lisp/emacs-lisp/eieio.el (defclass): Remove \= from obsoletion
message.
* lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload)
(eieio-defclass-internal): Likewise.
2022-02-01 Andrea Corallo <akrl@sdf.org>
Rename `comp--loadable' into `comp--compilable'
* lisp/startup.el (comp--compilable): Rename from `comp--loadable'.
(startup--require-comp-safely): Update accordingly.
(startup--honor-delayed-native-compilations): Likewise.
* src/comp.c (syms_of_comp): Update.
(maybe_defer_native_compilation): Likewise.
2022-02-01 Andrea Corallo <akrl@sdf.org>
* Fix `startup--require-comp-safely' (bug#53675)
* lisp/startup.el (startup--require-comp-safely): Remove unnecessary
check.
2022-02-01 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
31ef751f94 Clarify documentation of a "face's font"
29bdedf12f Bind Qdebugger to Qdebug in signal_or_quit.
2022-02-01 Po Lu <luangruo@yahoo.com>
Clean up Haiku display structures
* src/haikufns.c (haiku_set_parent_frame): Set `parent_desc'
correctly.
* src/haikuterm.h (C_FRAME, C_FONT, C_TERMINAL):
(struct haiku_display_info):
(struct haiku_output): Get rid of C_* preprocessor defines,
since these files are no longer included in any way by C++ files.
2022-02-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2022-01-27 20:16:15 UTC.
2022-01-31 Po Lu <luangruo@yahoo.com>
Display images with a mask correctly when `alpha-background' is set
* src/xterm.c (x_query_frame_background_color): Return value
adjusted for background alpha.
(x_draw_image_glyph_string): Respect `alpha-background' when
generating background pixmap.
2022-01-31 Po Lu <luangruo@yahoo.com>
Only apply last change to the clipboard
* lisp/select.el (gui--selection-value-internal): Only return
nil if we own the clipboard.
2022-01-31 Po Lu <luangruo@yahoo.com>
Avoid extraneous selection querying if we own the selection
* lisp/select.el (gui--selection-value-internal): Return nil if
`gui-backend-selection-owner-p' on window systems where it is
reliable.
2022-01-31 Po Lu <luangruo@yahoo.com>
Make fringe bitmaps respect alpha-background
* src/xterm.c (x_draw_fringe_bitmap): Respect alpha-background
on non-overlay fringe bitmaps.
* src/xterm.h (struct x_display_info): New field `alpha_mask'.
2022-01-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix nnregistry byte compilation warning
* lisp/gnus/nnregistry.el (nnregistry-server-opened)
(nnregistry-open-server): Fix byte compilation warning.
2022-01-31 Stefan Monnier <monnier@iro.umontreal.ca>
(byte-compile-eval): Adjust to changes in `load-history`
The `function-history` patch introduced a regression which caused
spurious compiler warnings. Fix it.
The new code also fixes a bug in the old code, thus causing some
new non-spurious warnings. Fix them as well.
* lisp/emacs-lisp/bytecomp.el (byte-compile-eval): Adjust to changes in
`load-history`.
* lisp/gnus/gnus-group.el (nnrss-discover-feed)
(nnrss-save-server-data): Use `declare-function`.
* lisp/cedet/semantic/wisent/comp.el (wisent-defcontext)
(wisent-with-context):
* lisp/emacs-lisp/comp.el (comp-op-case): Silence compiler warning.
2022-01-31 Alan Mackenzie <acm@muc.de>
Enlarge max-specpdl-size for generation of files in .../admin/grammars
* admin/grammars/Makefile.in: Add a --eval clause to set max-specpdl-size to
5000 (previously 2500) for these targets.
2022-01-31 Eric Abrahamsen <eric@ericabrahamsen.net>
Don't remove dummy.group from gnus-newsrc-alist on Gnus save
bug#53352
* lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): This
function was removing dummy.group from the global value of
`gnus-newsrc-alist' on save; we only wanted to remove it temporarily.
2022-01-31 Eric Abrahamsen <eric@ericabrahamsen.net>
Obsolete gnus-registry-enabled in favor of checking gnus-registry-db
* lisp/gnus/gnus-registry.el (gnus-registry-enabled): Obsolete this
variable; recommend using `gnus-registry-db' as a boolean instead.
(gnus-registry-load, gnus-registry-register-message-ids,
gnus-registry-article-marks-to-chars,
gnus-registry-article-marks-to-names, gnus-registry-clear,
gnus-registry-install-p): In all these functions, test
`gnus-registry-db' instead of `gnus-registry-enabled'. We no longer
set or clear that variable.
2022-01-31 Juri Linkov <juri@linkov.net>
* lisp/vc/vc.el (vc-diff-internal): Assume revert-buffer is in current buffer.
Support the case when reverting is in the buffer with a name other than
the default name "*vc-diff*". Then don't try to switch to the buffer
"*vc-diff*" with an assumption that revert-buffer is always performed
in the current buffer (bug#28852).
2022-01-31 Alan Mackenzie <acm@muc.de>
* lisp/progmodes/cc-mode.el (c-common-init): Bind case-fold-search to nil
This fixes bug #53605.
2022-01-31 Lars Ingebrigtsen <larsi@gnus.org>
Adjust toggle-menu-bar-mode-from-frame doc string
* lisp/menu-bar.el (toggle-menu-bar-mode-from-frame): Adjust the
doc string to reflect what it does (bug#43383).
2022-01-31 Eli Zaretskii <eliz@gnu.org>
Minor copyedits of 'function-history' documentation
* doc/lispref/loading.texi (Where Defined): Fix indexing and
punctuation.
2022-01-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix misplaced braces in loading.texi
* doc/lispref/loading.texi (Where Defined): Fix misplaced braces.
2022-01-31 Lars Ingebrigtsen <larsi@gnus.org>
Make more ranges sort properly in describe-keymap
* lisp/subr.el (keymap-canonicalize): Don't consider two-character
ranges as a range (bug#11325).
2022-01-31 Stefan Monnier <monnier@iro.umontreal.ca>
(function-history): New symbol property (bug#53632)
Rework the code we have in Fdefalias that tries to keep track
of definitions so as to be able to undo them later.
We used to store in `load-history` when an autoload is redefined as
a non-autoload and in the `autoload` symbol property we used to store
the autoload data that used to be used before it got overriden.
Instead, store the history of the function definition of
a symbol in its `function-history` symbol property.
To make this list cheap in the default case, the latest value is not stored
in the list (since it's in the `symbol-function`) and neither is the first
file. So if there's only been a single definition (the most common case),
the list is empty and the property is just not present at all.
The patch also gets rid of the `autoload` vs `defun` distinction in
`load-history` which seems unnecessary (a significant part of the
motivation for this patch was to get rid of the special handling of
autoloads in this part of the code).
* src/data.c (add_to_function_history): New function.
(defalias): Use it. Don't add the `t` entries for autoloads and always
use `defun` regardless of the kind of definition.
Change `Vautoload_queue` to only hold the function
symbols since the rest is now available from `function-history`.
* src/eval.c (un_autoload): Adjust accordingly.
* src/lread.c (load-history): Udate docstring.
* lisp/loadhist.el (loadhist-unload-filename): New var.
(unload-feature): Bind it.
(loadhist-unload-element): Document its availability.
(loadhist--restore-autoload): Delete var.
(loadhist--unload-function): Delete function.
(loadhist-unload-element): Delete the `t` and `autoload` methods.
Rewrite the `defun` method using `function-history`.
* lisp/help-fns.el: Require `seq`.
(help-fns--autoloaded-p): Rewrite.
(help-fns-function-description-header): Adjust call accordingly.
* doc/lispref/loading.texi (Where Defined): Remove `autoload` and `t`
entries from `load-history` since we don't generate them any more.
Document the `function-history` which replaces the `autoload` property.
(Unloading): Adjust symbol property name accordingly.
* test/lisp/loadhist-resources/loadhist--bar.el:
* test/lisp/loadhist-resources/loadhist--foo.el: New files.
* test/lisp/loadhist-tests.el (loadhist-tests-unload-feature-nested)
(loadhist-tests-unload-feature-notnested): New tests.
2022-01-31 Lars Ingebrigtsen <larsi@gnus.org>
Make Gnus address checking more resilient
* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
Check that we have an email address before checking the validity
(bug#53651).
2022-01-31 Lars Ingebrigtsen <larsi@gnus.org>
Clarify that INSTALL isn't for Git checkouts (bug#53627)
2022-01-31 Michael Albinus <michael.albinus@gmx.de>
Extend filelock-tests.el for bug#53207
* test/src/filelock-tests.el (filelock-tests--fixture): Make it a
defmacro. Adapt callees.
(filelock-tests-unlock-spoiled, filelock-tests-kill-buffer-spoiled):
Simplify.
(filelock-tests-detect-external-change): New test
2022-01-31 Po Lu <luangruo@yahoo.com>
Fix artifacting on PGTK when bits are copied with an alpha channel
* src/pgtkterm.c (x_draw_stretch_glyph_string): Draw background
respecting `alpha-background'.
(pgtk_copy_bits): Use CAIRO_OPERATOR_SOURCE to draw onto the
destination surface.
2022-01-31 Eli Zaretskii <eliz@gnu.org>
Improve 'latin1-display-ucs-per-lynx'
* lisp/international/latin1-disp.el (latin1-display-ucs-per-lynx):
Don't judge display-ability of all the characters by testing just
one of them. Instead, install an ASCII equivalent of every
character that the terminal cannot display.
2022-01-31 Po Lu <luangruo@yahoo.com>
Implement `alpha-background' on PGTK
* src/ftcrfont.c (ftcrfont_draw): Respect alpha-background where
appropriate.
* src/gtkutil.c (xg_create_frame_widgets): Swap some
conditionals around to get the right visual and signal handlers
on PGTK.
(xg_widget_style_updated): Likewise.
* src/pgtkfns.c (pgtk_set_alpha_background): New function.
(pgtk_frame_parm_handlers): Add it instead of the generic param
handler.
(Fx_create_frame): Fix typo.
* src/pgtkterm.c (pgtk_fill_rectangle):
(pgtk_set_cr_source_with_gc_foreground):
(pgtk_set_cr_source_with_gc_background):
(pgtk_set_cr_source_with_color): New argument
`respect_alpha_backend'. All callers changed.
* src/pgtkterm.h: Update function prototypes.
2022-01-31 Po Lu <luangruo@yahoo.com>
Fix accesses to GTK structures on tooltip frames
* src/xfns.c (xic_set_preeditarea): Don't set the GTK context on
tooltip frames.
(x_set_alpha_background): Don't make tooltip frames paintable.
* src/xterm.c (x_xr_ensure_picture): Get rid of GDK visual code.
This is now done in a better way inside xg_create_frame_widgets.
(bug#53654)
2022-01-31 Po Lu <luangruo@yahoo.com>
* src/haikufns.c (Fx_display_visual_class): Return correct values.
2022-01-31 Po Lu <luangruo@yahoo.com>
Improve portability of GDK visual code
* src/gtkutil.c (xg_create_frame_widgets): Look up the visual
instead of assuming it based on the depth.
2022-01-31 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_term_init): Avoid freeze with 24-bit visuals.
2022-01-31 Po Lu <luangruo@yahoo.com>
Improve portability of alpha channel handling on TrueColor visuals
* src/xfns.c (select_visual): Always ask for a TrueColor visual.
* src/xfont.c (xfont_draw):
* src/xftfont.c (xftfont_draw): Test `alpha_bits' instead of
n_planes.
* src/xterm.c (x_fill_rectangle, x_clear_rectangle): Likewise.
(x_query_colors, x_alloc_nearest_color): Remove code that
hard-coded alpha mask.
(x_term_init): Calculate alpha bits and offset and populate
field appropriately.
* src/xterm.h (struct x_display_info): New fields `alpha_bits'
and `alpha_offset'.
(x_make_truecolor_pixel): Stop hardcoding the value of the alpha
mask.
2022-01-31 Stefan Kangas <stefan@marxist.se>
Factor out function to check for clang in tests
This also stops a flymake test from failing on my machine.
* lisp/emacs-lisp/ert-x.el (ert-gcc-is-clang-p): New function
factored out from ...
* test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang):
* test/lisp/cedet/semantic/bovine/gcc-tests.el
(semantic-gcc-test-output-parser-this-machine): ... here.
* test/lisp/progmodes/flymake-tests.el (different-diagnostic-types)
(included-c-header-files):
* test/lisp/cedet/semantic/bovine/gcc-tests.el
(semantic-gcc-test-output-parser-this-machine): Use above new function.
2022-01-31 Stefan Kangas <stefan@marxist.se>
* lisp/image.el (image-map): Use defvar-keymap.
2022-01-31 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
6f282b31ad Update to Org 9.5.2-13-gdd6486
6636231b2c ; * lisp/international/latin1-disp.el: Update commentary.
f22e9ba9ac Fix regression in Occur Edit mode
2022-01-31 Po Lu <luangruo@yahoo.com>
Fix motion not being reported on GTK when mouse moves over toolbar
* src/gtkutil.c (xg_event_is_for_scrollbar): Make code
consistent between XI2 and Core Input.
2022-01-31 Po Lu <luangruo@yahoo.com>
Make cursor alpha consistent with a transparent background
* src/xfont.c (xfont_draw):
* src/xftfont.c (xftfont_shape):
* src/xterm.c (x_clear_glyph_string_rect): Don't respect
background alpha when drawing the cursor.
2022-01-30 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_xrender_color_from_gc_foreground): Fix omission error.
2022-01-30 Po Lu <luangruo@yahoo.com>
Fix the X toolkit build
* src/xterm.c (x_after_update_window_line): Update calls to
`x_fill_rectangle'.
2022-01-30 Po Lu <luangruo@yahoo.com>
Fix tooltip frame creation with 32-bit visuals
* src/xfns.c (x_create_tip_frame): Define CWColormap and
CWBorderPixel to use a 32-bit visual if available.
2022-01-30 Po Lu <luangruo@yahoo.com>
* etc/NEWS: Announce the 'alpha-background' frame parameter.
2022-01-30 Po Lu <luangruo@yahoo.com>
Fix the no toolkit build.
* src/xfns.c (x_window): Use n_planes instead of CopyFromParent
for depth.
2022-01-30 Lars Ingebrigtsen <larsi@gnus.org>
Fix with-suppressed-warnings edebug spec
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Fix
edebug spec.
2022-01-30 Po Lu <luangruo@yahoo.com>
Fix builds without GTK
* src/xfns.c (x_set_alpha_background): Don't call
gtk_widget_set_app_paintable without GTK.
2022-01-30 Po Lu <luangruo@yahoo.com>
Implement `alpha-background' on non-Cairo builds
* src/frame.c (gui_set_alpha_background): Recompute basic faces
so xft face ext info gets reset.
* src/gtkutil.c (xg_create_frame_widgets): Attach to style
updated signal.
(xg_update_frame_menubar): Set menu bar visual correctly.
(xg_widget_style_updated): New function.
* src/xfns.c (x_set_alpha_background): New function.
(x_frame_parm_handlers): Use x_set_alpha_background instead.
* src/xfont.c (xfont_draw):
* src/xftfont.c (xftfont_draw): Handle `alpha-background'
parameter.
* src/xterm.c (x_xr_ensure_picture): Export function.
(x_update_opaque_region): New function.
(x_fill_rectangle): New parameter `respect_alpha_background'.
All callers changed.
(handle_one_xevent): Set opaque region on ConfigureNotify.
(x_drop_xrender_surfaces): Set opaque region.
(x_xrender_color_from_gc_foreground):
(x_xrender_color_from_gc_background): Premultiply alpha with
components if asked for.
* src/xterm.h (struct x_display_info): New atom
`Xatom_net_wm_opaque_region'.
2022-01-30 Juri Linkov <juri@linkov.net>
* lisp/frame.el (undelete-frame--save-deleted-frame): Handle initial frame.
The function undelete-frame--save-deleted-frame is renamed
from undelete-frame--handle-delete-frame (bug#51883).
2022-01-30 Juri Linkov <juri@linkov.net>
* lisp/frame.el: Don't require 'frameset.el' (bug#51883).
(clone-frame): Use frame-internal-parameters.
(undelete-frame--handle-delete-frame): Instead of using frameset-save,
save frame-parameters except frame-internal-parameters and 'display'
on non-graphic display. Also save window-state from window-state-get.
(undelete-frame): Instead of using frameset-restore,
set default-frame-alist for make-frame (like in clone-frame),
and restore window-state with window-state-put.
* lisp/frameset.el (frameset-session-filter-alist): Append
parameters from frame-internal-parameters with the filter :never.
Remove :name that is now in frame-internal-parameters.
(frameset-persistent-filter-alist): Remove outer-window-id,
parent-id, window-id that are now in frame-internal-parameters,
included here via frameset-session-filter-alist.
* src/frame.c (frame-internal-parameters): New variable.
2022-01-30 Alan Mackenzie <acm@muc.de>
Enlarge max-specpdl-size for generation of leim-list.el in bootstrap
* leim/Makefile.in (${leimdir}/leim-list.el): Add a --eval clause to set
max-specpdl-size to 5000 (previously 2500) for this target.
2022-01-30 Po Lu <luangruo@yahoo.com>
Handle correctly errors during frame creation on Haiku
* src/haikufns.c (haiku_create_frame): Only block input where
required.
* src/haiku_support.cc (BCursor_delete): Accept NULL values of
`cursor'.
2022-01-30 Po Lu <luangruo@yahoo.com>
Use XRender to composite fringe bitmaps
This will allow us to apply transforms such as scaling in the
future.
* src/xterm.c (x_draw_fringe_bitmap): Composite fringe bitmaps
with XRender if available.
2022-01-30 Po Lu <luangruo@yahoo.com>
Fix some problems with inconsistent visuals on GDK
* src/xterm.c (x_xr_ensure_picture): Use the visual GDK used
instead of our own.
2022-01-30 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e81e375539 ; Yet another minor fix of Malayalam composition rules.
94f38cbec4 Fix last change of Malayalam composition rules
ed3bbeb80d Fix rendering of Malayalam script
5ef3a52342 Improve documentation of Occur mode
2022-01-30 Po Lu <luangruo@yahoo.com>
Use consistent font when displaying menu equivalent keys on Haiku
* src/haiku_support.cc (DrawContent): Set plain font when
drawing key text.
2022-01-29 Po Lu <luangruo@yahoo.com>
Add support for ARGB visuals on non-Xt builds
* src/gtkutil.c (xg_create_frame_widgets): Enable RGBA visual
on non-PGTK builds.
* src/xfns.c (select_visual): Select 32-bit visuals on non-Xt
builds.
* src/xterm.c (x_draw_fringe_bitmap):
(x_draw_image_glyph_string): Stop using DefaultDepthOfScreen.
(x_query_colors):
* src/xterm.h (x_make_truecolor_pixel): Make colors opaque on
32-bit visuals.
2022-01-29 Po Lu <luangruo@yahoo.com>
Some adjustments to last change
* src/gtkutil.c (xg_set_undecorated): Only set ARGB visual on
Cairo builds wtihout PGTK.
* src/xfns.c (select_visual): Likewise.
2022-01-29 Håkon Flatval <hkon20@hotmail.com>
Add background transparency support for GTK+Cairo
2022-01-29 Stefan Monnier <monnier@iro.umontreal.ca>
package.el: Fix bug#53529
* lisp/emacs-lisp/package.el (package-autoload-ensure-default-file):
Enforce Unix EOLs.
2022-01-29 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-menu-bar-button): New variable (bug#51648).
(tab-bar-format-menu-bar): Use it.
2022-01-29 Juri Linkov <juri@linkov.net>
* lisp/isearch.el: Put 'isearch-scroll' property on two new symbols.
Put 'isearch-scroll' property on new commands 'recenter-other-window'
and 'context-menu-open'.
2022-01-29 Lars Ingebrigtsen <larsi@gnus.org>
Modernise the security section in the efaq a bit
* doc/misc/efaq.texi (Security risks with Emacs): Remove the X
bit, and add a bit about browsing the web (bug#24489).
2022-01-29 Lars Ingebrigtsen <larsi@gnus.org>
Allow redirecting `message' output to a different buffer
* doc/lispref/display.texi (Logging Messages): Document it.
* src/xdisp.c (message_dolog): Add sanity checking.
(syms_of_xdisp): Make Vmessages_buffer_name into a defvar
(bug#27170).
2022-01-29 Eli Zaretskii <eliz@gnu.org>
Don't require mouse for prompting via dialog boxes
* lisp/subr.el (use-dialog-box-p): Don't require mouse support,
and allow dialog boxes when invoked via the TTY menus without a
mouse.
(from--tty-menu-p): New internal variable.
* lisp/menu-bar.el (popup-menu): Bind 'from--tty-menu-p' when
invoking a command from the menu.
2022-01-29 Charles A. Roelli <charles@aurox.ch>
Make revert-buffer ('g') keep point in VC diff buffers
* lisp/vc/vc.el (vc-diff-restore-buffer): New function.
(vc-diff-finish): Update its calling convention to include an
optional 'oldbuf' parameter, and handle it.
(vc-diff-internal): Pass a clone of the incumbent vc-diff
buffer to 'vc-diff-finish' (bug#28852).
2022-01-29 Lars Ingebrigtsen <larsi@gnus.org>
Clarify Fmatch_data doc string
* src/search.c (Fmatch_data): Note quirk about non-matching
optional groups in the doc string (bug#29343).
2022-01-29 Jae-hyeon Park <jhpark@kias.re.kr> (tiny change)
Make gnus-icalendar-with-decoded-handle more DWIM
* lisp/gnus/gnus-icalendar.el
(gnus-icalendar-with-decoded-handle): Assume that calendars with
no charset is utf-8.
2022-01-29 Po Lu <luangruo@yahoo.com>
Fix error after merge
* src/filelock.c (lock_file): Fix test against I_OWN_IT.
2022-01-29 Po Lu <luangruo@yahoo.com>
Merge from origin/emacs-28
611736f3bc Remove debug logging
ddba3c3dba Fix error in filelock.c
# Conflicts:
# src/filelock.c
2022-01-29 Po Lu <luangruo@yahoo.com>
Fix error at startup with recent change
* lisp/startup.el (normal-top-level): Don't access
`native-comp-eln-load-path' if not (featurep 'native-compile).
2022-01-29 Po Lu <luangruo@yahoo.com>
Fix unrelated help text tooltips if a popup is shown during the delay
* doc/lispref/frames.texi (Pop-Up Menus): Document new hook.
* etc/NEWS: Announce `x-pre-popup-menu-hook'.
* lisp/tooltip.el (tooltip-mode): Make sure `tooltip-hide' is
run before any popup menu is displayed to prevent unrelated help
text from obscuring the popup menu if it pops up during the
tooltip delay.
* src/menu.c (x_popup_menu_1): Run said hook right before the
popup menu is displayed.
(syms_of_menu): New hook `x-pre-popup-menu-hook'.
2022-01-29 Eli Zaretskii <eliz@gnu.org>
Allow <Delete> key to delete entire grapheme clusters
* lisp/simple.el (delete-forward-char): If deleting forward,
delete complete grapheme clusters as single units.
* etc/NEWS: Announce the change.
2022-01-29 Eli Zaretskii <eliz@gnu.org>
Fix native-compilation at startup
* lisp/startup.el (normal-top-level): Set up the initial value of
'native-comp-eln-load-path' early into startup, then amend it
after calling 'command-line'. (Bug#53497)
2022-01-29 Po Lu <luangruo@yahoo.com>
Write a dummy event on each popup menu event
* src/haiku_io.c (haiku_len): Add new event.
* src/haiku_support.cc (be_popup_menu_thread_entry):
(Highlight): Write a dummy event to the event port.
* src/haiku_support.h (enum haiku_event_type): New `DUMMY_EVENT'
type.
(struct haiku_dummy_event): New structure.
* src/haikuterm.c (haiku_read_socket): Handle dummy events.
2022-01-29 Eli Zaretskii <eliz@gnu.org>
Fix compiler warning due to a recent change
* src/data.c (Ffset): Avoid compiler warning about 'function'.
2022-01-29 Po Lu <luangruo@yahoo.com>
Fix a default value of the `:underline' face attribute
* lisp/cus-face.el (custom-face-attributes): Add `:position' t
default value of "On" for underlines.
2022-01-29 Po Lu <luangruo@yahoo.com>
Improve menu drag tracking on Haiku
* src/haikuterm.c (haiku_read_socket): Ignore all button events
when popup_activated_p.
2022-01-29 Po Lu <luangruo@yahoo.com>
Make menus on Haiku work better
* src/haikuterm.c (haiku_read_socket): Don't send up events for
ungrabbed buttons.
2022-01-29 Po Lu <luangruo@yahoo.com>
Implement real menu help-echo text on Haiku
* lisp/tooltip.el (tooltip-show-help): Remove Haiku-specific
conditional since that's now taken care of by C code.
* src/haiku_io.c (haiku_read_size):
(haiku_read_with_timeout):
(haiku_write_without_signal): Add parameter `popup_p'. All
callers changed.
(port_popup_menu_to_emacs): New variable.
* src/haiku_support.cc (struct be_popup_menu_data): New
structure.
(be_popup_menu_thread_entry): New function.
(class EmacsMenuItem): New field `menu_ptr'.
(Highlight): Send help text to the popup port if this item
isn't for a menu bar.
(BMenu_add_item): Set menu_ptr appropriately.
(BMenu_run): Complete rewrite that allows to read help text from
the menu bar port.
* src/haiku_support.h (struct haiku_menu_bar_help_event): New
fields for popup menus.
* src/haikumenu.c (digest_menu_items): Only set help tooltip on
popup menus when system tooltips are enabled.
(haiku_menu_show_help):
(haiku_process_pending_signals_for_menu): New functions.
(haiku_menu_show): Pass new callbacks.
2022-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
* src/data.c (Ffset, defalias): Complete last change
Somehow part of the autoload history handling was left behind in `Ffset`
when the rest was moved to `defalias`. Finish the job.
* src/data.c (Ffset): Don't set the `autoload` property here...
(defalias): ... set it here instead.
2022-01-28 Hugo Heagren <hugo@heagren.com>
bind-keys-form: error for repeat sub-keywords without :repeat-map
Error descriptively if :continue or :exit is specified without
:repeat-map.
2022-01-28 Hugo Heagren <hugo@heagren.com>
bind-key-form: allow :continue keyword inside repeat map
Purely syntactic sugar, using :continue is the same as not using any
keyword inside :repeat-map at all.
Amend end of function to pass repeat-map value onto next invocation in
recursive uses. This allows for the same repeat map to be used for
:exit and :continue.
2022-01-28 Hugo Heagren <hugo@heagren.com>
bind-key-form: allow :exit keyword inside repeat map
Keys bound inside the scope of :exit are bound inside the repeat map,
but do not have their repeat-map property set (so they run a function,
but 'exit' the map).
2022-01-28 Hugo Heagren <hugo@heagren.com>
bind-keys-form: new keyword :repeat-map, for defining repeat maps
use-package-normalize/:bind: allow keyword :repeat-map.
bind-keys-form: Add keyword :repeat-map. Specifying a symbol as the
repeat-map defines a keymap with that name (and with the docstring
`repeat-doc', if specified). Symbols for functions bound to keys under
the scope of :repeat-map have their 'repeat-map property set to this
map. Update docstring (and that of `bind-keys') to reflect changes.
Rename `doc' to `prefix-doc' for clarity and consistency with
'repeat-doc'.
2022-01-28 Stefan Monnier <monnier@iro.umontreal.ca>
Reduce code duplication in parts of (auto)load&defalias
* src/data.c (defalias): New function, extracted from `Fdefalias`.
(Fdefalias): Use it.
(Ffset): Don't handle `Vautoload_queue` here, handle it in
`defalias` instead.
* src/comp.c (comp--register-subr): Use `defalias` instead of
duplicating its code.
* src/eval.c (load_with_autoload_queue): New function, extracted from
`Fautoload_do_load`.
(Fautoload_do_load): Use it.
(un_autoload): Mark it as static.
* src/fns.c (Frequire): Use it as well.
* src/lisp.h (defalias, load_with_autoload_queue): New declarations.
(un_autoload): Remove declaration.
2022-01-28 Sebastian Urban <mrsebastianurban@gmail.com>
Make where-is correctly identify aliases
* lisp/help.el (where-is): Make aliases correctly say which
function is an alias for what (bug#37325).
2022-01-28 Sebastian Urban <mrsebastianurban@gmail.com> (tiny change)
Fix manual points about tex-latex-block/latex-insert-block
* doc/emacs/text.texi (LaTeX Editing):
(LaTeX Editing): Update documentation of
tex-latex-block/latex-insert-block to what they really point to
(bug#37325).
2022-01-28 Lars Ingebrigtsen <larsi@gnus.org>
Improve the read-file-name doc string slightly
* lisp/minibuffer.el (read-file-name): Note that the semantics of
INITIAL are odd (bug#37883).
2022-01-28 Michael Albinus <michael.albinus@gmx.de>
Clarify where the shell-command output goes
* lisp/simple.el (shell-command):
* doc/emacs/misc.texi (Single Shell): Clarify where the output
goes if the specified buffer isn't the current one (bug#40896).
2022-01-28 Lars Ingebrigtsen <larsi@gnus.org>
Allow using dired-hide-details-mode in wdired buffers
* lisp/dired.el (dired-hide-details-mode): Also work in
wdired-mode buffers (bug#45127).
* lisp/wdired.el (wdired-mode-map): Add a key binding.
2022-01-28 Lars Ingebrigtsen <larsi@gnus.org>
Move native-comp-eln-load-path setting earlier again
* lisp/startup.el (normal-top-level): Move
`native-comp-eln-load-path' earlier because hooks called may need
the setting (bug#53596).
2022-01-28 Lele Gaifax <lele@metapensiero.it>
Fix copyright-fix-years, use a dash to separate years in a range
Commit 7a46fa9c751f7c3147cd9b27fe84c1ce25419d3b, allowing en-dash as
years separator, changed the way the years range is composed taking the
separator from the `sep' variable instead of always using an hardwired
hyphen. Since the code explicitly avoid to touch (that is, extend)
existing ranges, that `sep' variable is almost always a space, or
whatever character precedes the last parsed year, thus generating a
range like "2020 2022" instead of "2020-2022".
* lisp/emacs-lisp/copyright.el (copyright-fix-years): Always use an dash
to separate years in a range.
* test/lisp/emacs-lisp/copyright-tests.el (with-copyright-fix-years-test):
(copyright-fix-years-tests--data):
(text-copyright-fix-years): New test cases (bug#53597).
2022-01-28 Lars Ingebrigtsen <larsi@gnus.org>
Fix merge error in doc-view-pdf/ps->png
* lisp/doc-view.el (doc-view-pdf/ps->png): Fix merge error from
previous epub patch.
2022-01-28 Po Lu <luangruo@yahoo.com>
Prevent duplicate grab setting with xwidgets
* src/xwidget.c (xwidget_show_view): Don't set passive grab if
already set.
2022-01-28 Po Lu <luangruo@yahoo.com>
Use the real cursor beneath the pointer on xwidgets
* src/xwidget.c (define_cursors): Make manual cursor definition
code PGTK-only.
(xw_update_cursor_for_view):
(xw_last_crossing_cursor_cb): New functions.
(xw_maybe_synthesize_crossing): Attach and disconnect cursor
signal handler where appropriate.
(xwidget_init_view): Set the default cursor to the nontext
cursor.
(Fxwidget_delete_view): Disconnect last crossing signal if
appropriate.
* src/xwidget.h (struct xwidget_view): New field
`last_crossing_cursor_signal'.
2022-01-28 Po Lu <luangruo@yahoo.com>
Fix xwidget build on PGTK
* src/xwidget.c (xw_forward_event_translate): Adjust calls to
`find_widget_at_pos' for recent changes.
2022-01-28 Po Lu <luangruo@yahoo.com>
Fix duplicate scroll events without XI2
* src/xwidget.c (xwidget_button): Only generate scroll events
when the button was released.
2022-01-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
3dd47bde7a * lisp/frame.el (clone-frame): Filter out 'parent-id' (bug...
2022-01-27 Po Lu <luangruo@yahoo.com>
Clear xwidget passive grab whenever a drag begins
* src/xwidget.c (xv_drag_begin_cb): New function.
(xwidget_view_from_window): Attach said function to grab widget
when a grab starts.
* src/xwidget.h (struct xwidget_view): New field
`passive_grab_drag_signal'.
2022-01-27 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Remove obsolete workaround.
2022-01-27 Po Lu <luangruo@yahoo.com>
Fix inappropriate use of killed xwidgets
* src/xwidget.c (x_draw_xwidget_webkit_view): Don't record
embedder or synthesize focus events if the widget is killed.
2022-01-27 Po Lu <luangruo@yahoo.com>
Implement xwidget passive grabs
* src/xwidget.c (find_widget_at_pos): New parameters for
controlling whether to respect grabs. All callers changed.
(window_coords_from_toplevel): Make work when the widget is
the toplevel.
(find_widget): Fix coding style.
(xwidget_button_1): Set and clear passive grabs if appropriate.
(xw_maybe_synthesize_crossing): Allow current_window to be NULL
if the mode is XW_CROSSING_LEFT.
2022-01-27 Lars Ingebrigtsen <larsi@gnus.org>
Add new switch --init-directory
* doc/emacs/cmdargs.texi (Initial Options): Mention it.
* lisp/startup.el (normal-top-level): Move the eln init to after
we've processed the command line arguments.
(command-line): Interpret the --init-directory switch.
* src/emacs.c (standard_args): Add.
2022-01-27 Glenn Morris <rgm@gnu.org>
* lisp/doc-view.el (doc-view-epub-font-size): Fix type; add version.
Flagged by test-custom-opts.
2022-01-27 Andrea Corallo <akrl@sdf.org>
Fix potential native compiler circular dependencies during load
* lisp/startup.el (startup--require-comp-safetly): New function.
(startup--honor-delayed-native-compilations): Make use of
`startup--require-comp-safetly'.
* src/comp.c (CALL0I): New define.
(maybe_defer_native_compilation): Make use of
`startup--require-comp-safetly'.
2022-01-27 Lars Ingebrigtsen <larsi@gnus.org>
Fix up previous "Quit Emacs" from menu logic
* lisp/files.el (files--buffers-needing-to-be-saved): Separated
out into its own function...
(save-some-buffers): ... from here.
(save-buffers-kill-emacs): Check that we have anything to save
before prompting the user.
2022-01-27 Lars Ingebrigtsen <larsi@gnus.org>
Make the save buffers prompt from Quit Emacs menu more understandable
* lisp/files.el (save-buffers-kill-emacs): Use a much simpler (and
more understandable) prompt when exiting Emacs from the menu bar
(bug#4980).
* lisp/subr.el (use-dialog-box-p): Separate out into its own
function for reuse...
(y-or-n-p): ... from here.
2022-01-27 Eli Zaretskii <eliz@gnu.org>
Improve detection of glyphless characters on TTY frames
* src/term.c (produce_glyphs): If the terminal can report for
which characters it has glyphs, use that to determine whether
a given character should be displayed as glyphless.
2022-01-27 Arni Magnusson <thisisarni@gmail.com>
Add setx highlighting to bat-mode
* lisp/progmodes/bat-mode.el (bat-font-lock-keywords):
(bat-font-lock-keywords): Highlight setx (bug#53568).
2022-01-27 Lars Ingebrigtsen <larsi@gnus.org>
Move some of the doc-view variables around to fix load errors
2022-01-27 Daniel Nicolai <dalanicolai@gmail.com>
Add support for EPUB, CBZ, FB2 and (O)XPS extension to doc view
* doc/emacs/misc.texi (Document View): Add requirements for new
extensions (i.e. mutool).
* lisp/doc-view.el (doc-view): Additionally update preliminary comment
(doc-view-custom-set-epub-font-size): redraw image after setting
(doc-view-unoconv-program): Put code all on one line
(doc-view-doc-type): Update docstring.
(doc-view-kill-proc): Fix comment indentation
(doc-view-mode-p):
Add check for new extensions and alternative check for PDF
(doc-view-pdf/ps->png): Associate new extension with png converter
(doc-view-convert-current-doc): Handle new extensions like PDF's
(doc-view-set-doc-type): Set correct doc-type for new extensions.
* lisp/files.el (auto-mode-alist):
Associate new extension types with doc-view.
2022-01-27 Lars Ingebrigtsen <larsi@gnus.org>
Tweak href/superscript fix in tex-mode
* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-1): Fix
superscripts in href in a better way.
2022-01-27 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Don't output spurious prefixes in read-char-exclusive"
This reverts commit 701ec0bda2b15fc97af6ca68fb842fb1ec9aac35.
This change broke display of `C-q-' when doing the `C-q' command,
so it has to be fixed a different way.
2022-01-27 Po Lu <luangruo@yahoo.com>
Improve xwidget window ancestry calculations
* src/xwidget.c (xw_find_common_ancestor):
(xw_notify_virtual_upwards_until)
(xw_notify_virtual_downwards_until): New functions.
(xw_maybe_synthesize_crossing): Synthesize virtual events like
GTK does for non-linear changes.
2022-01-27 Andreas Schwab <schwab@linux-m68k.org>
* src/pdumper.c (dump_vectorlike): Handle PVEC_SYMBOL_WITH_POS.
2022-01-27 Andrea Corallo <akrl@sdf.org>
* Fix `startup--honor-delayed-native-compilations' for (bug#53497)
* lisp/startup.el (startup--honor-delayed-native-compilations): Don't
forget to set `comp--loadable' when `comp--delayed-sources' is empty.
2022-01-27 Andrea Corallo <akrl@sdf.org>
* Have `benchmark-run-compiled' use the native compiler when available
* lisp/emacs-lisp/benchmark.el (benchmark-run-compiled): Use native
compiler when available.
2022-01-27 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c9524819ea Partially revert a fill-region-as-paragraph regression
6075ea0b79 Fix 'make_lispy_position' when there's an image at EOB
# Conflicts:
# test/lisp/textmodes/fill-tests.el
2022-01-27 Po Lu <luangruo@yahoo.com>
* lisp/xwidget.el (xwidget-webkit-edit-mode-map): Pass C-backspace.
2022-01-27 Po Lu <luangruo@yahoo.com>
Implement crossing event generation between windows for xwidgets on X
* src/xwidget.c (enum xw_crossing_mode): New enum.
(xwidget_motion_notify):
(xwidget_motion_or_crossing): Synthesize crossing events if the
pointer moved between different windows.
(window_coords_from_toplevel):
(xw_maybe_synthesize_crossing): New functions.
(xwidget_init_view): Initialize new field to NULL.
(Fdelete_xwidget_view): Clear last crossing window.
* src/xwidget.h (struct xwidget_view): New field
`last_crossing_window'.
2022-01-26 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler slightly in tests
* test/src/comp-resources/comp-test-45603.el
(comp-test-45603--call-marked):
* test/src/comp-resources/comp-test-funcs.el
(comp-tests-discardn-f, comp-test-42360-f, comp-test-46824-1-f)
(comp-test-silly-frame2): Silence byte-compiler.
2022-01-26 Stefan Kangas <stefan@marxist.se>
Don't use obsolete second argument to byte-compile-file
* test/src/comp-resources/comp-test-funcs.el
(comp-test-big-interactive): Don't use obsolete second argument to
byte-compile-file.
2022-01-26 Stefan Kangas <stefan@marxist.se>
Don't discourage auto-mode-alist entries in autoloads
* lisp/files.el (auto-mode-alist, interpreter-mode-alist): Delete
comment discouraging entries in autoload directives. (Bug#8158)
2022-01-26 Po Lu <luangruo@yahoo.com>
Improve XI2 valuator reset logic
* src/xterm.c (handle_one_xevent): Clear valuators on XI_Leave
instead of XI_Enter.
2022-01-26 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_focus_frame): Set input focus on outer window.
2022-01-26 Po Lu <luangruo@yahoo.com>
Get rid of unnecessary draw locking in haikumenu.c
* src/haikumenu.c (Fhaiku_menu_bar_open): Stop holding the draw
lock.
2022-01-26 Po Lu <luangruo@yahoo.com>
Apply fix for bug#52761 to GTK native input as well
* src/xgselect.c (xg_select): Apply said fix on regular GTK
builds when native input is being used.
2022-01-26 Glenn Morris <rgm@gnu.org>
* Makefile.in (install-etc): Remove unnecessary chown.
Not needed since this rule was changed to not use tar, 2012-05-11.
2022-01-26 Lars Ingebrigtsen <larsi@gnus.org>
Make smerge-refine-ignore-whitespace into defcustom
* lisp/vc/smerge-mode.el (smerge-refine-ignore-whitespace): Make
into defcustom (bug#12585).
2022-01-26 Mattias Engdegård <mattiase@acm.org>
Add tests for concat, vconcat and append
* test/src/fns-tests.el (fns-tests-concat)
(fns-concat, fns-vconcat, fns-append): New.
2022-01-26 Mattias Engdegård <mattiase@acm.org>
Minor `concat` tweaks
* src/fns.c (concat): Do things in the right order for speed.
(concat_strings): Initialise variable.
2022-01-26 Lars Ingebrigtsen <larsi@gnus.org>
Fix copyright-find-copyright when searching from the end
* lisp/emacs-lisp/copyright.el (copyright-find-copyright): Make
the double check also work when searching from the end (bug#7179).
2022-01-26 Lars Ingebrigtsen <larsi@gnus.org>
Fix copyright.el comment and add a test
* lisp/emacs-lisp/copyright.el (copyright-find-copyright): Fix
comment (bug#7179).
2022-01-26 Sean Whitton <spwhitton@spwhitton.name>
Fix input of sharp-quoted symbols in Eshell with em-extpipe
* lisp/eshell/em-extpipe.el (eshell-parse-external-pipeline): Fix
misinterpreting sharp-quoted symbols as the beginning of single-quoted
strings (Bug#53518). Add protection against a possible infinite loop.
* test/lisp/eshell/em-extpipe-tests.el (em-extpipe-test-17): New
test (bug#53518).
2022-01-26 Michael Albinus <michael.albinus@gmx.de>
Adapt tramp-tests
* test/lisp/net/tramp-tests.el (tramp--test-special-characters):
Adapt test candidates.
2022-01-26 Michael Albinus <michael.albinus@gmx.de>
Fix insert-file-contents for tramp-crypt
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
Use `tramp-handle-insert-file-contents'.
2022-01-26 Po Lu <luangruo@yahoo.com>
Add workaround for super modifier misconfiguration to non-XKB code
* src/xterm.c (x_find_modifier_meanings): Don't let a modifier
be both Hyper and Super.
2022-01-26 Andrea Corallo <akrl@sdf.org>
Make use of NILP where possible
* src/w32menu.c (menubar_selection_callback, w32_menu_show): Use NILP
where possible.
* src/w32fns.c (w32_set_mouse_color): Likewise.
* src/w16select.c (Fw16_selection_exists_p): Likewise.
* src/process.c (Fnetwork_lookup_address_info): Likewise.
* src/cygw32.c (Fcygwin_convert_file_name_to_windows)
(Fcygwin_convert_file_name_from_windows): Likewise.
2022-01-26 Po Lu <luangruo@yahoo.com>
Simplify Haiku scrolling code
* src/haikuterm.c (haiku_scroll_run): Remove code that can never
be reached since Cairo frames are always double buffered.
2022-01-26 Po Lu <luangruo@yahoo.com>
Fix GTK menu bar height reporting when scaled
* src/gtkutil.c (xg_update_frame_menubar): Multiply requisition
height by GDK scale.
2022-01-26 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
7eca80b204 ; * src/composite.c (syms_of_composite) <auto-composition-...
2022-01-26 Po Lu <luangruo@yahoo.com>
Simplify Haiku underline code
* src/haikuterm.c (haiku_draw_text_decoration): Remove code left
over from when mouse face had to be set manually.
2022-01-25 Po Lu <luangruo@yahoo.com>
Make `haiku-menu-bar-open' faster
* src/haikumenu.c (Fhaiku_menu_bar_open): Get draw lock before
updating the menu bar.
* src/haikuterm.c (haiku_read_socket): Don't update menu bar if
b->no_lock.
2022-01-25 Stefan Kangas <stefan@marxist.se>
* src/image.c (parse_image_spec): Use NILP.
2022-01-25 Lars Ingebrigtsen <larsi@gnus.org>
Improve how change-log-mode fills all-file-name lines
* lisp/vc/add-log.el (change-log-fill-file-list): New function to
improve how we fill all-file-name ChangeLog lines (bug#19341).
(change-log-indent): Use it.
2022-01-25 Lars Ingebrigtsen <larsi@gnus.org>
Fix up Gnus FAQ entry
* doc/misc/gnus-faq.texi (FAQ 3-9): Remove mention of
nnimap-list-pattern, which was removed some years ago (bug#53522).
2022-01-25 Andrea Corallo <akrl@sdf.org>
* src/comp.c (emit_lisp_obj_rval): Make use of NILP.
;* src/fns.c (concat_strings): Add missing space.
2022-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
* src/comp.c (emit_limple_insn): Fix another int/Lisp_Object mixup
2022-01-25 Glenn Morris <rgm@gnu.org>
Tag an mml-sec test
* test/lisp/gnus/mml-sec-tests.el (mml-secure-en-decrypt-3):
Tag unstable on hydra.nixos.org due to repeated intermittent failures.
2022-01-25 Andrea Corallo <akrl@sdf.org>
* src/fns.c (concat_strings): Clean-up unused variable.
2022-01-25 Andrea Corallo <akrl@sdf.org>
* `batch-byte+native-compile' produce .eln younger than .elc (bug#52912)
* lisp/emacs-lisp/comp.el (batch-native-compile): Add return
value.
(batch-byte+native-compile): Touch the produced .eln after the
corresponding .elc is produced.
2022-01-25 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/comp.el (batch-byte+native-compile): Fix unwind form
2022-01-25 Stefan Monnier <monnier@iro.umontreal.ca>
* src/lisp.h (lisp_h_EQ, lisp_h_NILP): Fix length and indent
2022-01-25 Mattias Engdegård <mattiase@acm.org>
Faster concat, append, vconcat, copy-sequence, etc
Split the C auxiliary function `concat` into separate functions for
string and list/vector as target types, respectively. This makes them
simpler and faster.
Implement `Fcopy_sequence` more efficiently for strings, lists and
vectors instead of using `concat`.
The result is a significant performance increase for the Lisp
built-ins concat, append, vconcat, copy-sequence and anything using
them such as mapconcat, copy-alist and propertize.
* src/fns.c (concat2, concat3, Fconcat): Use concat_strings.
(Fappend, Fvconcat): Adapt to changed signature of concat.
(Fcopy_sequence): Faster implementation for lists, strings, and vectors.
(concat_strings): New.
(concat): Strip code for string target, simplify, optimise.
(Fcopy_alist): Use Fcopy_sequence.
2022-01-25 Lars Ingebrigtsen <larsi@gnus.org>
Don't mutate literals in tabulated-list-widen-current-column
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-widen-current-column): Avoid mutating constants
(bug#53501).
2022-01-25 Lars Ingebrigtsen <larsi@gnus.org>
Fix widening some columns in tabulated-list-widen-current-column
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-widen-current-column): Don't bug out on list-based
columns (bug#53498).
2022-01-25 Jim Porter <jporterbugs@gmail.com>
Treat "-" as a positional arg in 'eshell-eval-using-options'
* lisp/eshell/esh-opt.el (eshell--process-args): Treat "-" as a
positional arg.
* lisp/eshell/em-tramp.el (eshell/su): Simplify checking for "-".
* test/lisp/eshell/esh-opt-tests.el
(esh-opt-test/eval-using-options-stdin): New test.
2022-01-25 Jim Porter <jporterbugs@gmail.com>
Don't manipulate args in-place for 'eshell-eval-using-options'
This is necessary for preserve the original arguments to forward on to
:external commands. Previously, when :preserve-args was also set, the
original argument list could be altered, changing the meaning of the
command.
* lisp/eshell/esh-opt.el (eshell-eval-using-options): Copy MACRO-ARGS
when :preserve-args is set, and pass the original value to
'eshell--do-opts'.
(eshell--do-opts): Use the original arguments when calling an external
command.
* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo): Don't copy the
original arguments, since 'eshell-eval-using-options' does this for
us.
* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test):
Split this test into...
(esh-opt-test/process-args)
(esh-opt-test/process-args-parse-leading-options-only)
(esh-opt-test/process-args-external): ... these.
(test-eshell-eval-using-options): Split this test into...
(esh-opt-test/eval-using-options-short)
(esh-opt-test/eval-using-options-long)
(esh-opt-test/eval-using-options-constant)
(esh-opt-test/eval-using-options-user-specified)
(esh-opt-test/eval-using-options-short-single-token)
(esh-opt-test/eval-using-options-terminate-options)
(esh-opt-test/eval-using-options-parse-leading-options-only)
(esh-opt-test/eval-using-options-unrecognized): ... these.
(esh-opt-test/eval-using-options-external): New test.
* test/lisp/eshell/em-tramp-tests.el: New tests.
2022-01-25 Lars Ingebrigtsen <larsi@gnus.org>
Improve the term-clear-full-screen-programs doc string
* lisp/term.el (term-clear-full-screen-programs): Improve the doc
string.
2022-01-25 Po Lu <luangruo@yahoo.com>
Improve reliability of menu bar updates on Haiku
* src/haiku_support.cc (class EmacsWindow): New fields
`menu_update_cv', `menu_update_mutex' and `menu_updated_p'.
(~EmacsWindow): Destroy cv and mutex.
(MenusBeginning): Release lock and wait for condition to be
become true.
(EmacsWindow_signal_menu_update_complete): New function.
* src/haiku_support.h (struct haiku_menu_bar_state_event): New
field `no_lock'.
* src/haikumenu.c (Fhaiku_menu_bar_open): Always update menu
bar.
* src/haikuterm.c (haiku_read_socket): Always update menu bar
and signal the window thread after update completion.
2022-01-25 Po Lu <luangruo@yahoo.com>
* src/haiku_support.cc (Highlight): Send events if !highlight_p.
2022-01-25 Po Lu <luangruo@yahoo.com>
Don't send menu help events on Haiku if the pointer isn't in the menu
* src/haiku_support.cc (Highlight): Only send help events
if the mouse cursor is actually in the menu.
2022-01-25 Po Lu <luangruo@yahoo.com>
Fix tool bar size reporting on GTK when the display is scaled
* src/gtkutil.c (xg_update_tool_bar_sizes): Multiply sizes to
turn them into device pixels.
2022-01-25 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c34d06e3d7 * configure.ac (LIBSECCOMP): Bump minimum version for facc...
335a5a9e0f Make the `f' command work in image-mode again
2022-01-24 Po Lu <luangruo@yahoo.com>
Improve portability of X11 IM code
* configure.ac: Test for XICCallback.callback if X11R6 or later.
* src/xfns.c (Xxic_preedit_start_callback): Use XICCallback if
present.
2022-01-24 Stefan Monnier <monnier@iro.umontreal.ca>
Remove some dubious uses of `interactive-form`
* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): `commandp` and
`interactive-form` are for function values, not for source code.
* lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag):
Prefer `commandp` over `interactive-form`.
2022-01-24 Po Lu <luangruo@yahoo.com>
Fix invalid picture after toggling the tool bar or menu bar on GTK
* src/xterm.c (x_drop_xrender_surfaces): New function.
(handle_one_xevent): Call x_drop_xrender_surfaces instead of
just font_drop_xrender_surfaces.
2022-01-24 Po Lu <luangruo@yahoo.com>
Fix GTK native input on scaled displays
* src/xfns.c (xic_set_preeditarea): Scale preedit spot rectangle
before giving it to GTK.
2022-01-24 Sean Whitton <spwhitton@spwhitton.name>
Add Eshell syntax to more easily bypass Eshell's own pipelining
* etc/NEWS:
* doc/misc/eshell.texi (Input/Output): Document the new syntax.
* lisp/eshell/em-extpipe.el: New module (Bug#46351).
* test/lisp/eshell/em-extpipe-tests.el: New tests.
* lisp/eshell/esh-module.el (eshell-modules-list): Add `eshell-extpipe'.
2022-01-24 Sean Whitton <spwhitton@spwhitton.name>
Rework eshell-match-result for testing asynchronous commands
When using eshell-match-result via eshell-command-result-p to examine
the output of asynchronous Eshell commands, a newly emitted prompt is
included in the text against which the regexp is matched. This makes
it awkward to match against the whole output; for example, to check
whether it is empty. Rework the function to exclude the prompt.
* test/lisp/eshell/eshell-tests-helpers.el (eshell-match-result):
Exclude any newly emitted prompt from the text against which the
regexp is matched. Additionally, the function no longer moves point.
* test/lisp/eshell/eshell-tests.el (eshell-test/flush-output): Update
and simplify test given how eshell-match-result no longer moves point.
2022-01-24 Sean Whitton <spwhitton@spwhitton.name>
Move Eshell test helpers to their own file
* test/lisp/eshell/eshell-tests.el:
* test/lisp/eshell/eshell-tests-helpers.el: Move helpers to own file.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Make hi-lock-face-defaults into a defcustom
* lisp/hi-lock.el (hi-lock-face-defaults): Make into defcustom.
2022-01-24 Juri Linkov <juri@linkov.net>
* lisp/hi-lock.el (hi-lock-use-overlays): New variable.
(hi-lock-set-pattern): Use it. Set overlay priority to 1.
(bug#53155)
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS entry for term-clear-full-screen-programs
2022-01-24 Miha Rihtaršič <miha@kamnitnik.top>
Implement alternative sub-buffer support in term.el
* etc/e/eterm-color.ti: Added termcaps for entering and leaving an
alternative sub-buffer.
* lisp/term.el (term-reset-size): Resize correctly in an alternative
sub-buffer is in use.
(term-clear-full-screen-programs): New user option.
(term-handle-ansi-escape):
(term-termcap-format): Handle termcaps for entering and leaving an
alternative sub-buffer.
(term-switch-to-alternate-sub-buffer): New (used to be commented out)
function to enter or leave an alternative sub-buffer.
bug#53485
2022-01-24 Juri Linkov <juri@linkov.net>
* lisp/info.el (Info-link-keymap): Fix repetitive clicks on the header line.
Rebind [header-line mouse-1] from mouse-select-window to
Info-mouse-follow-link. It selects the window anyway,
but also allows repetitively clicking on the Next button
on the Info header line (bug#53170).
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Don't list the default hi-lock faces twice in the future history
* lisp/hi-lock.el (hi-lock-read-face-name): Don't include faces
twice in the defaults (bug#19877).
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix gnus-article-truncate-lines doc string
* lisp/gnus/gnus-art.el (gnus-article-truncate-lines): Fix doc
string.
2022-01-24 Juri Linkov <juri@linkov.net>
* etc/NEWS: Mention 'replace-regexp-function' (bug#52558).
2022-01-24 Juri Linkov <juri@linkov.net>
* lisp/faces.el (read-face-name): Support a list of defaults for M-n.
When MULTIPLE is nil and the arg DEFAULT is a list, keep its elements
in the "future history" of the minibuffer retrieved by `M-n M-n ...'.
(bug#53255)
2022-01-24 Glenn Morris <rgm@gnu.org>
* lisp/minibuffer.el (completions-sort): Fix type.
Flagged by test-custom-opts.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Don't output spurious prefixes in read-char-exclusive
* src/keyboard.c (read_char): Don't touch the echo area if
Vecho_keystrokes is nil.
* src/lread.c (read_filtered_event): Bind echo_keystrokes to nil
to avoid outputting prefixes we're not going to act on anyway
(bug#19718).
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Allow sorting in electric-buffer-list with `S'
* lisp/ebuff-menu.el (electric-buffer-menu-mode-map): Add the `S'
sorting command here, too (bug#20178).
2022-01-24 Amin Bandali <bandali@gnu.org>
ERC: Add new comaintainer, F. Jason Park
* lisp/erc/erc*.el: Add J.P. as my comaintainer to headers.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix \href{a_b} in tex-mode
* lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): Fontify
href parameters like constants so that _ aren't fontified like
subscripts.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix tex-mode handling of _ chars in href{} commands"
This reverts commit 487a0be7f7eb0ca9402247f13a11e39aa2946d05.
This will be fixed a different way.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Add derived-mode test for bug#24176
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Make anonymous functions work in auto-mode-alist
* lisp/files.el (set-auto-mode--apply-alist): Don't infloop on
anonymous functions in auto-mode-alist (bug#20709).
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Don't loop so much in gud-query-cmdline on remote systems
* lisp/progmodes/gud.el (gud-query-cmdline): Avoid looping over
large numbers of files on remote systems (bug#21528).
2022-01-24 Protesilaos Stavrou <info@protesilaos.com>
Make Completions sorting a user option
* etc/NEWS: Document the new user option.
* lisp/minibuffer.el (completions-sort): Add new user option.
(minibuffer-completion-help): Implement it for the Completions
buffer. (Bug#53362)
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Allow jumping to ert failure definitions
* lisp/emacs-lisp/ert.el (ert-test):
(ert-deftest): Store the file name.
(ert-test-location): New function.
(ert-run-tests-batch): Use it.
* lisp/emacs-lisp/find-func.el (find-ert-deftest-regexp): New
variable.
(find-function-regexp-alist): Add ert-deftest (bug#22471).
Based on code by Phillip Lord <phillip.lord@russet.org.uk>.
2022-01-24 Yuuki Harano <masm+github@masm11.me>
* configure.ac: Remove forgotten GLIB_GSETTINGS call
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Add NEWS item for `I' command
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Add a *Help* command that'll take you to the lispref manual
* doc/emacs/help.texi (Help Mode): Document it.
* lisp/help-mode.el (help-mode-map): Add an `I' keystroke.
(help-goto-lispref-info): New command.
* lisp/info-look.el (:mode): Add an entry for the lispref manual.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix tex-mode handling of _ chars in href{} commands
* lisp/textmodes/tex-mode.el (tex--current-command): New function
(bug#23102).
(tex-font-lock-suscript): Don't subscript _ chars in href.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Make `font-lock-add-keywords' work in derived modes
* lisp/font-lock.el (font-lock-set-defaults): Make
`font-lock-add-keywords' work in derived modes (bug#24176).
2022-01-24 Po Lu <luangruo@yahoo.com>
Remove redundant declarations from keyboard.h that are now in lisp.h
* src/keyboard.h (process_pending_signals)
(pending_signals): Remove declarations.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Inline maybe_quit
Since `maybe_quit` is called on many critical paths, inline a slightly
cheaper condition (that ignores Vinhibit_quit).
* src/eval.c (maybe_quit): Rename to `probably_quit`.
* src/lisp.h (maybe_quit): New simplified inline function.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Bump specpdl inline, move reallocation out of line
The common case is just to increment `specpdl_ptr`; do that in-line,
but move the uncommon reallocation to a separate subroutine.
* src/eval.c (grow_specpdl): Now inline, most code moved...
(grow_specpdl_allocation): ...here.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Implement Ffuncall in terms of funcall_general
* src/eval.c (funcall_general, Ffuncall): Delegate the actual work in
Ffuncall to funcall_general which does exactly this.
This slows down some less used function call paths by a small amount
but the code duplication was just silly.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Open-code aref and aset in bytecode interpreter
* src/bytecode.c (exec_byte_code): Inline aref and aset for
vectors and records, since this is important for code that makes heavy
use of arrays and/or objects.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Remove the unused unbind-all bytecode
It was implemented but never generated, originally intended for
TCO in the pre-lexbind era (which was semantically dubious anyway).
Removing it speeds up the interpreter because there is no longer any
need for the outermost `count` variable unless checking is enabled.
* lisp/emacs-lisp/bytecomp.el:
* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst):
* src/bytecode.c (BYTE_CODES, exec_byte_code):
Remove definition and implementation of unbind-all, freeing up the opcode
for other purposes.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Move a runtime interpreter check to debug mode
* src/bytecode.c (exec_byte_code): Perform bytecode unwinding error
check only when building with debugging (NDEBUG not defined, checking
enabled, or BYTE_CODE_SAFE enabled). This improves speed in several
ways.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Remove nil check in exec_byte_code
Since we pass no arguments to a non-lexbind bytecode function, we can
specify its arity as 0 instead of nil and save a test and branch.
* src/bytecode.c (Fbyte_code, exec_byte_code):
* src/eval.c (fetch_and_exec_byte_code, funcall_lambda):
* src/lisp.h:
Change the args_template parameter type to ptrdiff_t, since it is now
always a small integer, in exec_byte_code and
fetch_and_exec_byte_code, all callers adjusted.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Byte code arity check micro-optimisation
* src/bytecode.c (exec_byte_code): Slight simplification.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Pin bytecode strings to avoid copy at call time
Avoid making a copy (in the interpreter C stack frame) of the bytecode
string by making sure it won't be moved by the GC. This is done by
reallocating it to the heap normally only used for large strings,
which isn't compacted.
This requires that we retain an explicit reference to the bytecode
string object (`bytestr`) lest it be GCed away should all other
references vanish during execution. We allocate an extra stack slot
for that, as we already do for the constant vector object.
* src/alloc.c (allocate_string_data): Add `immovable` argument.
(resize_string_data, make_clear_multibyte_string): Use it.
(pin_string): New.
* src/pdumper.c (dump_string): Fix incorrect comment.
Update hash for Lisp_String (only comments changed, not contents).
* src/lread.c (read1):
* src/alloc.c (Fmake_byte_code, purecopy):
* src/bytecode.c (Fbyte_code): Pin bytecode on object creation.
(exec_byte_code): Don't copy bytecode. Retain `bytestr` explicitly.
* src/lisp.h (Lisp_String): Explain special size_byte values.
(string_immovable_p): New.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Inline setcar and setcdr in byte-code interpreter
The function call overhead is nontrivial in comparison to the actual
code which makes this worthwhile.
* src/bytecode.c (exec_byte_code):
Inline code from Fsetcar and Fsetcdr.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Inline fixnum operations in bytecode interpreter
Since numeric operations are mostly done on fixnums, this gives a
speed-up for common code.
* src/bytecode.c (exec_byte_code): Inline fixnum comparisons and
operations with fixnum results: =, >, <, <=, >=, -, +, -, *, /, %, max
and min.
2022-01-24 Mattias Engdegård <mattiase@acm.org>
Short-circuit the recursive bytecode funcall chain
Inline parts of the code for function calls to speed up the common
case of calling lexbound byte-code. By eliminating intermediate
functions, this also reduces C stack usage a little.
* src/bytecode.c (exec_byte_code): Inline parts of Ffuncall,
funcall_lambda and fetch_and_exec_byte_code in the Bcall opcode
handler.
* src/eval.c (backtrace_debug_on_exit): Inline and move to lisp.h.
(do_debug_on_call): Make global so that it can be called from
bytecode.c.
(funcall_general): New function, essentially the meat of Ffuncall.
* src/lisp.h (backtrace_debug_on_exit): Moved here from eval.c.
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Add "then" to sh--completion-keywords
* lisp/progmodes/sh-script.el (sh--completion-keywords): Allow
completing over "then" (bug#53490).
2022-01-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix Gnus registry key bindings
* lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts):
Don't overwrite all other M M commands (bug#53492).
2022-01-24 Martin Rudalics <rudalics@gmx.at>
Orderly inhibit frame resizing when activating tool or tab bar (Bug#52986)
* src/xdisp.c (redisplay_tab_bar, redisplay_tool_bar): If we do
not display a tool or tab bar in these functions, still set
f->tool/tab_bar_redisplayed and f->tool/tab_bar_resized. This
avoids that when one of these are initially turned off, a later
activation resizes the frame despite of the fact that
'frame-inhibit-implied-resize' should prevent it (Bug#52986).
2022-01-24 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_composite_image): Use the display's picture format.
2022-01-24 Po Lu <luangruo@yahoo.com>
Scale coordinates when checking if a touch event falls inside menu bar
* src/xterm.c (handle_one_xevent): Apply scale to touch event
coordinates before intersecting them with the menu bar.
2022-01-24 Paul Eggert <eggert@cs.ucla.edu>
Avoid glitches in ELC lines in build output
* src/verbose.mk.in (AM_V_ELC, AM_V_ELN): Use ifneq not ifdef, as
we want have_working_infos value expanded (Bug#53358).
2022-01-23 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Drop frame picture on configure.
2022-01-23 Po Lu <luangruo@yahoo.com>
Add some code for transparent frame backgrounds without Cairo
* src/image.c (svg_load_image): Fix build without native image
transforms.
* src/xfns.c (set_up_x_back_buffer):
(tear_down_x_back_buffer): Free XR picture if present.
* src/xftfont.c (xftfont_get_xft_draw): Fix formatting issue.
* src/xterm.c (x_xr_ensure_picture): New function.
(FRAME_CR_CONTEXT, FRAME_CR_CONTEXT):
(FRAME_CR_SURFACE_DESIRED_WIDTH)
(FRAME_CR_SURFACE_DESIRED_HEIGHT): Move to separate USE_CAIRO
block so the ext data code can be used on builds with XRender as
well.
(x_xr_apply_ext_clip):
(x_xr_reset_ext_clip): New functions.
(x_set_clip_rectangles):
(x_reset_clip_rectangles): Set ext data on XRender as well.
(x_term_init): Look for a picture format appropriate for our
purposes.
(x_clear_area): Use XRenderFillRectangle to draw backgrounds if
available.
(x_xrender_color_from_gc_foreground):
(x_xrender_color_from_gc_background): New functions.
* src/xterm.h (FRAME_X_PICTURE):
(FRAME_X_PICTURE_FORMAT)
(FRAME_CHECK_XR_VERSION): New macros.
(struct x_gc_ext_data): Define on XRender as well.
(struct x_display_info): Define ext_codes when using XRender and
add new field `pict_format'.
(struct x_output): New field `picture'.
2022-01-23 Po Lu <luangruo@yahoo.com>
Get rid of compose status on XI2
* src/xterm.c (handle_one_xevent): Stop assuming compose
processing will occur on XI2.
2022-01-23 Alan Mackenzie <acm@muc.de>
Expunge read-with-symbol-position and read-symbol-positions-list
These are remnants of the old way of determining byte compiler warning
positions.
* src/lread.c (read_internal_start, read1): Remove initializations amd
manipulations of these variables.
(syms_of_lread): Remove the declarations of the variables.
* lisp/emacs-lisp/bytecomp.el (compile-defun, byte-compile-from-buffer):
Remove bindings of the variables.
2022-01-23 Po Lu <luangruo@yahoo.com>
Set IC preedit area on ConfigureNotify
* src/xterm.c (handle_one_xevent): Set the preedit spot when a
ConfigureNotify event is received.
2022-01-23 Alan Mackenzie <acm@muc.de>
Bind print-symbols-bare to t in byte-compile-from-buffer
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Bind
print-symbols-bare to t here for the benefit of non-defining forms in buffers.
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Make message in hack-local-variables-confirm clearer
* lisp/files.el (hack-local-variables-confirm): Mention the
.dir-locals.el file in the message to be slightly less confusing
(bug#27066).
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-x M-x insert-kbd-macro RET RET' work better
* lisp/macros.el (insert-kbd-macro): Don't give bogus output on
names that have no function definition (bug#30309).
2022-01-23 Thuna <thuna.cing@gmail.com> (tiny change)
Fix tabulated-list-widen-current-column widening wrong column
* tabulated-list.el (tabulated-list-widen-current-column): Use correct
comparison operation when checking if point is within the column
bounds (bug#53375).
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Allow using outline minor mode in `M-x apropos-value'
* lisp/apropos.el (apropos-mode): Set up outline minor mode
(bug#31094).
(apropos-value): Don't add "---" separators, because it doesn't
really seem to add anything much.
(apropos-value-internal): Escape newlines so that no values can be
confused for headings.
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Make apropos-print-doc more resilient
* lisp/apropos.el (apropos-print-doc): Don't bug out on doc
strings that have invalid command key syntaxes.
2022-01-23 Brian Leung <bkleung89@gmail.com>
Properly check the completionitem.deprecated property
* eglot.el (eglot-completion-at-point): Check the :deprecated property
is `t'. We do this so that a :deprecated property of :json-false does
not cause a completion candidate to be incorrectly marked as deprecated.
2022-01-23 Alan Mackenzie <acm@muc.de>
Fix position argument to macroexp--warn-wrap in cconv--convert-funcbody
* lisp/emacs-lisp/cconv.el (cconv--convert-funcbody): Change the position
argument to macroexp--warn-wrap from BODY to ARG, to give correct positions in
warning messages.
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Improve `M-x speedbar' under emacs -nw very slightly
* lisp/speedbar.el (speedbar-frame-mode): `M-x speedbar' doesn't
seem to do anything visible under -nw, so issue a message in that
case to tell the user how to proceed (bug#32597).
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Make kill-process into a command
* doc/lispref/processes.texi (Signals to Processes): Document it.
* src/process.c (Fkill_process): Make into a command (bug#32640).
2022-01-23 Phil Sainty <psainty@orcon.net.nz>
Add new function to prompt a user for a process name
* lisp/emacs-lisp/subr-x.el (read-process-name): New function
(bug#32640).
2022-01-23 Po Lu <luangruo@yahoo.com>
Make sure cursors are drawn correctly after haiku_clear_frame
* src/haikuterm.c (haiku_clear_frame): Mark all cursors as off.
2022-01-23 Alex Kost <alezost@gmail.com>
Improve scheme-imenu-generic-expression
* lisp/progmodes/scheme.el (scheme-imenu-generic-expression):
Improve so that we match `define-public' etc (bug#33117).
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Make occur edit mode more resilient
* lisp/replace.el (occur-engine): Make the prefix read-only so
that it's preserved in edit mode (bug#53419).
2022-01-23 Lars Ingebrigtsen <larsi@gnus.org>
Revert the other bits related to `load-read-file'
* src/lread.c (syms_of_lread): Revert the other bits related to
reverting `byte-compile-from-buffer'/`load-read-file'.
2022-01-23 Po Lu <luangruo@yahoo.com>
Fix menus on the no-toolkit build when using XI2
* src/xmenu.c (x_activate_menubar):
(create_and_show_popup_menu): Only ungrab the device if it is
actually grabbed.
(x_menu_show): Release XI2 passive grab.
2022-01-23 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
6d3608be88 Seccomp: improve support for newer versions of glibc (Bug#...
e58ecd01d5 EUDC: Fix a quoting bug in the BBDB backend
2022-01-22 Po Lu <luangruo@yahoo.com>
Fix documentation formatting error
* doc/lispref/streams.texi (Input Functions): Remove extraneous
@end defun.
2022-01-22 Po Lu <luangruo@yahoo.com>
* src/haikumenu.c (run_menu_bar_help_event): Fix bounds sanity check.
2022-01-22 Po Lu <luangruo@yahoo.com>
Clean up some of the X extension related code
* src/image.c (Fimage_transforms_p): Remove unused variables.
* src/xterm.c (x_probe_xfixes_extension):
(x_term_init): Probe for xfixes during terminal initialization
instead.
* src/xterm.h (struct x_display_info): New fields for xfixes
support.
2022-01-22 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (pgtk_flash): Fix input blocking.
2022-01-22 Eli Zaretskii <eliz@gnu.org>
Minor copyedits in "Symbols with Position"
* doc/lispref/symbols.texi (Symbols with Position): Fix wording
and improve indexing.
2022-01-22 Alan Mackenzie <acm@muc.de>
Merge branch 'master' of /home/acm/emacs/emacs.git/master
2022-01-22 Alan Mackenzie <acm@muc.de>
Don't use 'load-read-function' in byte-compile-from-buffer
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Call
read-positioning-symbols directly, rather than binding load-read-function to
it. This is so that a lower level use of load-read-function will not return a
form containing symbols with position.
2022-01-22 Alan Mackenzie <acm@muc.de>
Merge branch 'scratch/correct-warning-pos'
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix print-unreadable-function documentation
* doc/lispref/streams.texi (Output Variables): Fix description of
non-string values.
2022-01-22 Michael Albinus <michael.albinus@gmx.de>
Add direct remote copying in Tramp's scp support
* doc/misc/tramp.texi: Use @trampfn{} function where possible.
(Top, Configuration): Insert section 'Ssh setup' and remove
section 'Windows setup hints' in menu.
(Default Method): Mention tramp-use-scp-direct-remote-copying.
(Ssh setup): New node.
(Windows setup hints): Move it to that new node.
(Frequently Asked Questions): Move items about ssh config to that node.
* etc/NEWS: Add Tramp's direct remote copying feature. Fix typos.
* lisp/net/tramp-sh.el (tramp-use-scp-direct-remote-copying):
New defcustom.
(tramp-methods) <scp, scpx>: Add "%y" marker.
(tramp-scp-direct-remote-copying): New defun.
(tramp-do-copy-or-rename-file-out-of-band): Extend for direct
remote copying.
* lisp/net/tramp.el (tramp-methods): Extend docstring.
(tramp-password-prompt-not-unique): New defvar.
(tramp-read-passwd): Adapt docstring.
(tramp-read-passwd-without-cache): New defun.
(tramp-action-password): Call it.
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Mark nil vc-follow-symlinks as safe
* lisp/vc/vc-hooks.el (vc-follow-symlinks): A nil value should be
safe for file-local (bug#33264).
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Use load-read-function in byte-compile-from-buffer
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Use
load-read-function.
* src/lread.c (syms_of_lread): Adjust doc string (bug#33723).
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Clarify Vprint_unreadable_function doc string
* src/print.c (syms_of_print): Clarify Vprint_unreadable_function
doc string
2022-01-22 Eli Zaretskii <eliz@gnu.org>
Fix documentation of 'unprintable' stuff
* src/print.c (syms_of_print) <print-unreadable-function>:
* doc/lispref/streams.texi (Input Functions, Output Variables):
Improve the documentation of 'print-unreadable-function' and
'readablep'. Add indexing and cross-references.
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Improve dired-do-create-files slightly
* lisp/dired-aux.el (dired-do-create-files): Expand slightly upon
the doc string (bug#35367). Suggested by Mike Kupfer
<mkupfer@alum.berkeley.edu>.
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Speed up multisession--set-value-sqlite slightly
* lisp/emacs-lisp/multisession.el
(multisession--set-value-sqlite): Use `readablep'.
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Add new function 'readablep'
* doc/lispref/streams.texi (Input Functions): Document it.
* lisp/subr.el (readablep): New function (bug#52566).
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Add new variable print-unreadable-function
* doc/lispref/streams.texi (Output Variables): Document it.
* src/print.c (print_vectorlike): Use the variable.
(syms_of_print): New variable print-unreadable-function
(bug#52566).
2022-01-22 Po Lu <luangruo@yahoo.com>
Add some menu bar help code on GNUstep
* src/nsmenu.m ([EmacsMenu menu:willHighlightItem:]): Implement
help event generation for GNUstep.
2022-01-22 Po Lu <luangruo@yahoo.com>
Fix PGTK build with xwidgets
* src/xwidget.c: Swap some preprocessor definitions around.
Reported by Iñigo Serna <inigoserna@gmail.com>.
2022-01-22 Po Lu <luangruo@yahoo.com>
Fix GNUstep build warnings
* src/nsmenu.m
([EmacsMenu menu:updateItem:atIndex:shouldCancel:])
([EmacsMenu menuHasKeyEquivalent:forEvent:target:action:])
([EmacsMenu numberOfItemsInMenu:]): New methods.
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix HTML target marking in shr
* lisp/net/shr.el (shr-descend): Use a marker (because we may be
altering the text later for indentation), and mark the start, not
the end of the tag (bug#53409).
(shr-tag-a): Ditto.
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Put the old label into the future history in reftex-change-label
* lisp/textmodes/reftex-global.el (reftex-change-label): Put the
old label into the future history so that it can be edited easily
(bug#53417).
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Fix the prompt in hi-lock-read-face-name
* lisp/hi-lock.el (hi-lock-read-face-name): Fix the prompt after
recent changes (bug#53255).
2022-01-22 Matthias Meulien <orontee@gmail.com>
Fix some doc strings in outline.el
* lisp/outline.el (outline-default-state): Fix doc string.
(outline-default-rules): Fix doc string.
2022-01-22 Alan Mackenzie <acm@muc.de>
Merge branch 'master' into scratch/correct-warning-pos
2022-01-22 Lars Ingebrigtsen <larsi@gnus.org>
Make the test for existing multisession variables more sensible
* lisp/emacs-lisp/multisession.el (multisession-edit-value):
Unconfuse the code.
2022-01-22 Alan Mackenzie <acm@muc.de>
Miscellaneous amendments to the scratch/correct-warning-pos branch
* lisp/cedet/semantic/fw.el (semantic-alias-obsolete)
(semantic-varalias-obsolete): Replace calls to byte-compile-warn with calls to
byte-compile-warn-x (when it exists).
* lisp/emacs-lisp/bytecomp.el (byte-compile-log-warning-function)
(byte-compile--log-warning-for-byte-compile): Make the POSITION parameter no
longer &optional (for the benefit of flymake on *.el).
(byte-compile-log-warning): Replace a nil POSITION argument with an actual
position.
(byte-compile-file-form-require): Push the required symbol onto
byte-compile-form-stack, for the benefit of `do-after-load-evaluation'.
* lisp/keymap.el (define-keymap--compile): Replace four calls to
byte-compile-warn with byte-compile-warn-x.
* doc/lispref/elisp.texi (master menu): Add entries for Shorthands and Symbols
with position.
* doc/lispref/streams.texi (Input Functions): Document
read-positioning-symbols.
* doc/lispref/symbols.texi (Symbols): Add new menu entry.
(Symbols with Position): New @section.
2022-01-22 Eli Zaretskii <eliz@gnu.org>
Improve detection of suspicious uses of bidi controls
* lisp/international/textsec.el
(textsec-bidi-controls-suspicious-p): New function.
(textsec-name-suspicious-p): Use it.
* test/lisp/international/textsec-tests.el (test-suspicious-name):
Enable the test that was previously failing with
'bidi-find-overridden-directionality'.
2022-01-22 Po Lu <luangruo@yahoo.com>
Prevent raw bytes from being displayed as help text on Haiku
* src/haikumenu.c (digest_menu_items): Don't set encoded text
into the menu item vector.
2022-01-22 Po Lu <luangruo@yahoo.com>
Use locale coding system to decode XIM preedit text
* src/xfns.c (x_xim_text_to_utf8_unix): XIMs typically return
text in the locale coding system, so use that instead.
2022-01-22 Eli Zaretskii <eliz@gnu.org>
Change visibility of "Undelete Frame"
* lisp/menu-bar.el (menu-bar-file-menu): Make "Undelete Frame"
always visible. Suggested by Gregory Heytings <gregory@heytings.org>.
2022-01-22 Po Lu <luangruo@yahoo.com>
Get rid of some unnecessary code in handle_one_xevent
* src/xterm.c (handle_one_xevent): Stop mutating event->xkey.
2022-01-21 Stefan Kangas <stefankangas@gmail.com>
* eglot.el (eglot-handle-notification): silence byte-compiler.
2022-01-21 Brian Leung <bkleung89@gmail.com>
Add support for optional completionitem.tags
* eglot.el (eglot--lsp-interface-alist): Add optional CompletionItem.tags.
(eglot-completion-at-point): Add :company-deprecated key and value,
checking for either the appropriate tag (1) in the :tags property, or
a truthy value for the :deprecated property.
(eglot-client-capabilities): Advertise tagSupport (for tag == 1) and
deprecatedSupport.
Also load an updated version of seq.el in Emacsen < 27.
* Makefile (ELPA_DEPS): Require latest seq.el.
2022-01-21 Stefan Kangas <stefankangas@gmail.com>
Don't use :exclusive no
See https://github.com/joaotavora/eglot/issues/812 for background, in particular:
https://github.com/joaotavora/eglot/issues/812#issuecomment-1014821345
* eglot.el (eglot-completion-at-point): Don't use :exclusive no, as it
leads to breakage in many cases.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/812
2022-01-21 Po Lu <luangruo@yahoo.com>
Fix recent changes to visible bell code
* src/gtkutil.c (xg_create_scroll_bar):
(xg_create_horizontal_scroll_bar): Stop ensuring an X window
before the widget is realized.
(xg_update_scrollbar_pos):
(xg_update_horizontal_scrollbar_pos): Ensure such a window here
instead.
2022-01-21 Po Lu <luangruo@yahoo.com>
Clean up visible bell code on X
* src/gtkutil.c (xg_create_scroll_bar):
(xg_create_horizontal_scroll_bar): Ensure that the scroll bars
have their own X windows.
* src/xterm.c (XTflash): Remove use of GDK functions for
drawing.
2022-01-21 Po Lu <luangruo@yahoo.com>
Fix crash when the visible bell is rung but there is no cairo surface
* src/pgtkterm.c (pgtk_flash): Return if the cairo surface is
not present. (bug#53420)
(pgtk_cr_update_surface_desired_size): Reformat comment.
2022-01-21 Paul Eggert <eggert@cs.ucla.edu>
Avoid glitches in ELC lines in build output
* src/verbose.mk.in (have_working_info): New macro.
(AM_V_ELC, AM_V_ELN): Use 'echo' rather than $(info ...)
on buggy versions of GNU Make.
2022-01-21 Paul Eggert <eggert@cs.ucla.edu>
Simplify AM_V_ELC setup
* src/verbose.mk.in (AM_V_ELC, AM_V_ELN): Use simpler Make ifs.
2022-01-21 Glenn Morris <rgm@gnu.org>
* lisp/cus-start.el (polling-period): Update type.
Flagged by test-custom-opts.
2022-01-21 Glenn Morris <rgm@gnu.org>
* src/keyboard.c (start_polling): Fix type mixup.
Flagged by --enable-check-lisp-object-type.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Disable background image fetching from asking for passwords
* lisp/url/url-queue.el (url-queue-start-retrieve): Inhibit
prompting for passwords from these background requests.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Further emake tweaks
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous emake change
* admin/emake (cores): Fix typo in previous change.
2022-01-21 Po Lu <luangruo@yahoo.com>
* src/keyboard.c (syms_of_keyboard): Fix build without input polling.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Improve the completion-category-overrides doc string
* lisp/minibuffer.el (completion-category-overrides): Clarify what
this variable does (bug#22324).
(completion-category-defaults): Mention the overrides variable.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Remove text mistakenly added to the diff--iterate-hunks doc string
* lisp/vc/diff-mode.el (diff--iterate-hunks): Remove text added by
mistake to the doc string.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Followup fix to previous message-update-smtp-method-header change
* lisp/gnus/message.el (message-update-smtp-method-header): Narrow
to the headers first.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Allow From to be part of message-hidden-headers
* lisp/gnus/message.el (message-update-smtp-method-header): Don't
bug out if the From header is part of `message-hidden-headers'
(bug#52871).
2022-01-21 Jim Porter <jporterbugs@gmail.com>
Don't use 'eshell-eval-using-options' for 'eshell/source' or 'eshell/.'
This makes 'source' and '.' in Eshell more compatible with regular
shells, which just treat the first argument as the file to source and
all subsequent arguments as arguments to that file.
* lisp/eshell/em-script.el (eshell/source, eshell/.): Don't use
'eshell-eval-using-options'.
* etc/NEWS: Announce the change (bug#53293)
2022-01-21 Jim Porter <jporterbugs@gmail.com>
Raise an error from 'eval-eval-using-options' for unknown options
* lisp/eshell/em-basic.el (eshell/echo): Add -E option.
* lisp/eshell/esh-opt.el (eshell--process-option): Raise an error if
an unknown option is encountered, even when :external is nil.
* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test)
(test-eshell-eval-using-options): Add test cases for this.
2022-01-21 Theodor Thornhill <theo@thornhill.no>
Fix indentation in NEWS of cl-flet item
* etc/NEWS: Correct description of indentation of 'cl-flet' and
'cl-labels (bug#53410).
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Clarify Splitting Mail in the Gnus manual
* doc/misc/gnus.texi (Splitting Mail): Clarify what happens when
crossposting or not (bug#53307).
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Interpret a "" value of EMACS_TEST_VERBOSE as "off"
* doc/misc/ert.texi (Running Tests in Batch Mode): Adjust doc.
* lisp/emacs-lisp/ert.el (ert-run-tests-batch): Allow overriding
the EMACS_TEST_VERBOSE variable by setting it to "" (bug#53313).
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Make the edebug-all-defs user option work more reliably
* lisp/emacs-lisp/edebug.el (edebug-all-defs): This user option
has no effect unless edebug is loaded (because that loads the
advice needed for the commands in question) (bug#53331).
2022-01-21 Po Lu <luangruo@yahoo.com>
Make xwidgets work on builds that don't use Cairo drawing
* configure.ac: Check for the parts of Cairo that are needed for
xwidgets when they are enabled without cairo drawing.
* src/xterm.c:
* src/xwidget.c: Always include cairo-xlib headers when xwidgets
are enabled.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Clean up mm-display-inline-fontify slightly
* lisp/gnus/mm-view.el (mm-display-inline-fontify): Remove some
left-over compat code.
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Make diff--iterate-hunks more resilient
* lisp/vc/diff-mode.el (diff--iterate-hunks): Ignore malformed
hunks instead of signalling errors (bug#53343).
2022-01-21 Shuguang Sun <shuguang79@qq.com>
Use the correct converter for odf files in doc-view
* lisp/doc-view.el (doc-view-pdf/ps->png): Use the correct
converter for odf files (bug#53354).
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Update multisession variables when editing the values
* lisp/emacs-lisp/multisession.el (multisession-edit-value):
Update multisession variables when editing the values (bug#53361).
2022-01-21 Jim Porter <jporterbugs@gmail.com>
Further improve determination of when commands can be invoked directly
This covers the case when a subcommand is to be invoked in more places
than before, for example when a subcommand is concatenated in an
argument.
* lisp/eshell/esh-cmd.el (eshell--find-subcommands): New fuction.
(eshell--invoke-command-directly): Use 'eshell-find-subcommands'.
* test/lisp/eshell/eshell-tests.el
(eshell-test/interp-cmd-external-concat): New test (bug#30725).
2022-01-21 Lars Ingebrigtsen <larsi@gnus.org>
Adjust emake after recent changes
2022-01-21 Po Lu <luangruo@yahoo.com>
Synchronize XI2 code with Core Input code
* src/xterm.c (handle_one_xevent): Apply recent changes for XI2
events as well.
2022-01-21 Po Lu <luangruo@yahoo.com>
Merge from origin/emacs-28
11ea45c9e4 Fix UB in ebrowse
ba57b78064 Fix execute-extended-command-for-buffer in fundamental-mode
ef0c1d4c2c Add workaround to handle a problem with Enlightenment WM (...
2022-01-21 Po Lu <luangruo@yahoo.com>
Work around GTK changing window backgrounds on colormapped displays
* src/xterm.c (x_clear_window):
(x_clear_area): Fill the contents with the reverse GC instead of
using XClearArea and XClearWindow when not double buffered.
2022-01-20 Po Lu <luangruo@yahoo.com>
Fix BadValue crash when looking up empty color names on some X servers
* src/xterm.c (x_parse_color): Avoid parsing empty color names.
2022-01-20 Dmitry Gutov <dgutov@yandex.ru>
ruby-toggle-block-space-before-parameters: New user option
* lisp/progmodes/ruby-mode.el (ruby-toggle-block-space-before-parameters):
New user option (bug#53321).
(ruby-do-end-to-brace): Handle it.
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-toggle-block-to-brace-no-space): New test.
2022-01-20 Po Lu <luangruo@yahoo.com>
Update menu bars when `use-system-tooltips' changes on Haiku
* lisp/term/haiku-win.el: Add new function as variable watcher
for `use-system-tooltips'.
(haiku-use-system-tooltips-watcher): New function.
2022-01-20 Po Lu <luangruo@yahoo.com>
Allow fractional values of `polling-period'
This allows C-g to be handled faster in the NS port at the cost
of some extra CPU time on slow machines.
* etc/NEWS: Announce new feature.
* src/keyboard.c (start_polling):
(bind_polling_period): Handle floating point values of
`polling-period'.
(syms_of_keyboard): Make `polling-period' a Lisp variable
instead of an int variable.
2022-01-20 Po Lu <luangruo@yahoo.com>
Avoid FOCUS_IN_EVENTS not being sent on NS
* src/nsterm.m ([EmacsView windowDidBecomeKey]): Work around
emacs_event being NULL by storing focus in events directly
into the keyboard buffer. (bug#52376)
2022-01-20 Theodor Thornhill <theo@thornhill.no>
Enable lsp project-wide diagnostics via flymake
* eglot.el (eglot-handle-notification): Pass on diagnostics from
unvisited files to flymake. Enables project-wide-diagnostics, so that
we can view all diagnostics in a given workspace. Uses new
functionality from flymake 1.2.1, hence the version bump.
* eglot-tests.el (project-wide-diagnostics-typescript): New tests
showcasing the possibility to see all related diagnostics in a
workspace.
* eglot-tests.el (project-wide-diagnostics-rust-analyzer): New tests
showcasing the possibility to see all related diagnostics in a
workspace.
* NEWS.md: Mention the new functionality
* README.md: Mention the new functionality
2022-01-20 Alan Mackenzie <acm@muc.de>
In early bootstrap, use byte-compiled compiler to native compile first files
This speeds up a make bootstrap by around 15%.
* lisp/Makefile.in (BYTE_COMPILE_FLAGS): set a value specific to compile-first
which doesn't contain the setting of Emacs variable load-prefer-newer.
Add a new make hunk which byte-compiles (rather then native compiles) when the
environment variable ANCIENT is "yes". Set the date of the .elc files built
to 1971-01-01 to cause a second compilation of them later.
* src/Makefile.in: Add an extra invocation of directory lisp's MAKE with
target compile-first and the flag environment variable ANCIENT set to yes.
* src/verbose.mk.in: When ANCIENT is yes, output ELC, not ELC+ELN for
AM_V_ELC.
2022-01-20 Arash Esbati <arash@gnu.org>
Remove matching of whitespaces in LaTeX environment names
* lisp/textmodes/ispell.el (ispell-tex-skip-alists): Don't match
arbitrary number of whitespaces in LaTeX environment names.
(bug#53390)
2022-01-20 Eli Zaretskii <eliz@gnu.org>
Update documentation of 'clone-indirect-buffer-hook'
* doc/emacs/buffers.texi (Indirect Buffers):
* src/buffer.c (syms_of_buffer) <clone-indirect-buffer-hook>:
Update the documentation of 'clone-indirect-buffer-hook' due the
recent changes.
* etc/NEWS: Mention the change in where the hook is run.
* lisp/face-remap.el (face-attrs--make-indirect-safe): Doc fix.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Make textsec-link-suspicious-p less mistrustful
* lisp/international/textsec.el (textsec-link-suspicious-p): Scale
back the suspicion -- only warn about texts that contain a full
explicit link.
2022-01-20 Thuna <thuna.cing@gmail.com> (tiny change)
Fix tabulated-list-widen-current-column widening wrong column
* tabulated-list.el (tabulated-list-widen-current-column): Account
for the padding and the content width when calculating column
width (bug#53375).
2022-01-20 Peter Münster <pm@a16n.net>
Make image-dired-delete-marked more resilient
* lisp/image-dired.el (image-dired-delete-marked): Don't bug out
on empty buffers (bug#53385).
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Fix thinko in previous hi-lock-read-face-name change
* lisp/hi-lock.el (hi-lock-read-face-name): Fix the string/symbol
logic.
2022-01-20 Andrew Hyatt <ahyatt@gmail.com>
Fix indirect font changes incorrectly affecting original buffer
* lisp/face-remap.el (face-attrs--make-indirect-safe):
(clone-indirect-buffer-hook): Set up a face remapping alist
(bug#53294).
* lisp/simple.el (clone-indirect-buffer): Move the point the hook
is run.
* src/buffer.c (Fmake_indirect_buffer, syms_of_buffer): Move the
place where the clone-indirect-buffer-hook variable is defined, so
that we can call it from C.
2022-01-20 Jim Porter <jporterbugs@gmail.com>
Consider subcommands when deciding to invoke Eshell command directly
When an Eshell command contains an asynchronous subcommand (such as
calling an external process), it must be evaluated iteratively. See
bug#30725.
* lisp/eshell/esh-cmd.el (eshell-invoke-command): Move most of the
logic from here...
(eshell--invoke-command-directly): ... to here. Also add checks for
subcommands.
* test/lisp/eshell/eshell-tests.el (eshell-test--max-subprocess-time):
New variable.
(eshell-wait-for-subprocess): New function.
(eshell-command-result-p): Use 'eshell-wait-for-subprocess'.
(eshell-test/interp-cmd-external): New test (bug#30725).
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Rename the textsec-check function to textsec-suspicious-p
* lisp/net/shr.el (shr-tag-a):
* lisp/international/textsec-check.el (textsec-suspicious-p):
* lisp/gnus/message.el (message-send-mail):
* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
* etc/NEWS (like):
* doc/lispref/text.texi (Suspicious Text):
(Suspicious Text): Rename the textsec-check function to
textsec-suspicious-p.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Make the read-face-name completion buffer display samples
* lisp/faces.el (read-face-name): Display face samples when
completing (bug#53255).
* lisp/hi-lock.el (hi-lock-read-face-name): Use read-face-name.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Improve the textsec-domain-suspicious-p warning message
* lisp/international/textsec.el (textsec-domain-suspicious-p):
Improve warning message.
2022-01-20 Po Lu <luangruo@yahoo.com>
Fix error when describing menu items that don't have equivalent keys
* lisp/help-fns.el (help-fns--key-bindings): Never pass nil to
insert.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Make textsec-link-suspicious-p have fewer false positives
* lisp/international/textsec.el (textsec-link-suspicious-p):
Attempt to improve the domain-guessing logic.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Improve how menus are described in *Help*
* lisp/help-fns.el (help-fns--insert-bindings): New function.
(help-fns--key-bindings): Split menu/key handling and output menu
bindings separately (bug#52870).
2022-01-20 Po Lu <luangruo@yahoo.com>
Make system tooltips display in the menu bar on Haiku
* doc/emacs/haiku.texi (Haiku Basics): Update documentation.
* src/haiku_support.cc (Highlight): Apply the hack used for
regular menus to the menu bar as well.
* src/haikumenu.c (digest_menu_items): Set help text on menu bar
if `tooltip-mode' is t and system tooltips are used.
(syms_of_haikumenu): New symbol `tooltip-mode'.
2022-01-20 Mattias Engdegård <mattiase@acm.org>
Fix Fchar_syntax for non-ASCII in unibyte buffers
Fchar_syntax did not convert unibyte characters to multibyte when the
current buffer was unibyte, in contrast to `char-syntax` in
byte-compiled code (bug#53260).
* src/bytecode.c (exec_byte_code): Call out to Fchar_syntax;
the dynamic frequency is too low to justify inlining here, and it
did lead to implementations diverging.
* src/syntax.c (Fchar_syntax): Convert non-ASCII unibyte values to
multibyte.
* test/src/syntax-tests.el (syntax-char-syntax): New test.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Re-enable some textsec-tests after recent bidi.c fix
2022-01-20 Jim Porter <jporterbugs@gmail.com>
In Eshell, allow "-n" to suppress the trailing newline for "plain" echo
* doc/misc/eshell.texi (Built-in commands): Expand on the
documentation of echo (bug#27361).
* lisp/eshell/em-basic.el (eshell-echo): Respect OUTPUT-NEWLINE even
when 'eshell-plain-echo-behavior' is non-nil.
(eshell/echo): Add "-N" option and recommend its use over "-n" in
Lisp-friendly echo.
(eshell/printnl): Simplify; 'eshell-stringify' is equivalent to
calling 'eshell-echo' here.
2022-01-20 Eli Zaretskii <eliz@gnu.org>
Fix 'bidi-find-overridden-directionality' for Lisp strings
* src/bidi.c (bidi_find_first_overridden): Don't use ZV for Lisp
strings. Reported by Lars Ingebrigtsen <larsi@gnus.org>.
2022-01-20 Po Lu <luangruo@yahoo.com>
Make the undelete-frame-mode menu item a toggle
* lisp/menu-bar.el (menu-bar-file-menu): Make the undelete frame
mode option a toggle. (bug#53382)
Also enable some options that were disabled on NS, but should no
longer be since NS now supports the tab bar.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Make key-valid-p work in Turkey
* lisp/keymap.el (key-valid-p): Inhibit case folding, otherwise
(key-valid-p "I") would return nil in tr_TR environments.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Tweak textsec-link-suspicious-p
* lisp/international/textsec.el (textsec-link-suspicious-p): Don't
mark dates as suspicious.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Add test for bug#51733
2022-01-20 Eli Zaretskii <eliz@gnu.org>
Improve documentation of textsec
* lisp/international/textsec-check.el (textsec-check): Doc fixes.
* doc/lispref/text.texi (Suspicious Text): Improve wording and
indexing.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Allow suspicious names with some forms of bidi controls
* lisp/international/textsec.el (textsec-name-suspicious-p): Allow
names with bidi-find-overridden-directionality.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Improve textsec-domain-suspicious-p message
* lisp/international/textsec.el (textsec-domain-suspicious-p):
Improve warning message.
2022-01-20 Eli Zaretskii <eliz@gnu.org>
Allow disabling 'undelete-frame-mode' from the menu bar
* lisp/menu-bar.el (menu-bar-file-menu): Add
'disable-undelete-frame-mode' menu item. (Bug#53382)
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Document textsec
* doc/lispref/elisp.texi (Top): Add menu.
* doc/lispref/text.texi (Text): Add menu.
(Suspicious Text): New node.
* lisp/international/textsec-check.el (textsec-check): Adjust doc
string.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Check link text domain suspiciousness
* lisp/international/textsec.el (textsec-link-suspicious-p): Check
whether the domain in the link text is suspicious.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Expand textsec-link-suspicious-p checking
* lisp/international/textsec.el (textsec-link-suspicious-p): Check
the text more thoroughly for link-like things.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Improve textsec-domain-suspicious-p message
* lisp/international/textsec.el (textsec-domain-suspicious-p):
Ensure that we're not confusing the user if there's a directional
override in the string we're checking.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Add new bidi-string-strip-control-characters function
* lisp/international/characters.el
(bidi-string-strip-control-characters): New function.
2022-01-20 Lars Ingebrigtsen <larsi@gnus.org>
Make article--check-suspicious-addresses more resilient
* lisp/gnus/gnus-art.el (article--check-suspicious-addresses): Be
more resilient to junk in headers. (But all this should be rewritten
eventually, because the entire process is way too convoluted.)
2022-01-20 Po Lu <luangruo@yahoo.com>
Make `nil' values of the `:position' underline property work correctly
* src/xfaces.c (Finternal_set_lisp_face_attribute): Handle cases
where the underline property `:position' is nil.
2022-01-19 Po Lu <luangruo@yahoo.com>
Port hourglass display to XCB
* src/xterm.c (x_show_hourglass):
(x_hide_hourglass): Use straightforward translations to XCB if
available.
2022-01-19 Po Lu <luangruo@yahoo.com>
Get rid of calls to XRenderQueryExtension after terminal initialization
* src/image.c (x_create_xrender_picture):
(Fimage_transforms_p): Use `xrender_supported_p'.
* src/xterm.c (x_term_init): Query for XRender support and
extension versions.
* src/xterm.h (struct x_display_info): New fields
`xrender_supported_p', `xrender_major' and `xrender_minor'.
2022-01-19 Po Lu <luangruo@yahoo.com>
Implement selection ownership on Haiku
* lisp/term/haiku-win.el (haiku-selection-owner-p): New
declaration.
(gui-backend-selection-owner-p): Implement using newly exposed
primitive.
* src/haiku_select.cc
(count_clipboard, count_primary, count_secondary): New
variables for tracking selection ownership.
(BClipboard_set_system_data):
(BClipboard_set_primary_selection_data):
(BClipboard_set_secondary_selection_data): Set ownership
variables.
(BClipboard_owns_clipboard):
(BClipboard_owns_primary):
(BClipboard_owns_secondary): New functions.
* src/haikuselect.c (Fhaiku_selection_owner_p): New function.
(syms_of_haikuselect): Define new subr.
* src/haikuselect.h: New prototypes.
2022-01-19 Derek Passen <dpassen1@gmail.com> (tiny change)
Add clojure-lsp support for clojure
* eglot.el (eglot-server-programs): Add clojure-lsp for Clojure.
* README.md: Document the above change.
2022-01-19 Andrea Corallo <akrl@sdf.org>
Suspend temp .elc production when native compiling till when necessary
* lisp/emacs-lisp/bytecomp.el (byte-to-native-output-buffer-file):
Rename from `byte-to-native-output-file'.
(byte-write-target-file): Update.
(byte-compile-file): Write the temporary .elc only when not native
compiling.
(byte-compile-file): Kill the .elc buffer only when not native
compiling.
* lisp/emacs-lisp/comp.el (batch-byte+native-compile): Instead of just
renaming the temporary .elc make use of `byte-write-target-file' to
write it down and kill the temporary buffer.
2022-01-19 Andrea Corallo <akrl@sdf.org>
* Move some code in in `byte-write-target-file'.
* lisp/emacs-lisp/bytecomp.el (byte-write-target-file): New function
spilling code from `byte-compile-file'.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Make article--check-suspicious-addresses more resilient
* lisp/gnus/gnus-art.el (article--check-suspicious-addresses):
Don't bug out on mbox-less addresses.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Tweak the previous suspicious Message change
* lisp/gnus/message.el (message-check-recipients)
(message-send-mail): Move the check to after encoding.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Make Message check for invalid recipients before sending
* lisp/gnus/message.el (message-check-recipients): Check for
suspicious addresses before sending (bug#51733).
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Make textsec-mixed-numbers-p actually work
* lisp/international/textsec.el (textsec-mixed-numbers-p): Fix the
test.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Make Gnus check for suspicious headers
* lisp/gnus/gnus-art.el (gnus-treat-suspicious-headers): New user
option.
(gnus-article-treat-suspicious-headers): New function.
(article-decode-encoded-words): Hook into the machinery to check
headers.
(article--check-suspicious-addresses): New function.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Add text for suspicious links
* lisp/international/textsec-check.el (textsec-check): Note `link'.
(textsec-propertize): Fix typo.
* lisp/international/textsec.el (textsec-link-suspicious-p): New
function.
* lisp/net/shr.el (shr-tag-a): Check for sus links.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Don't overwrite the link text in shr-tag-a for suspicious URLs
* lisp/net/shr.el (shr-tag-a): Tweak how the suspiciousness
warning is handled.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix thinko in textsec-url-suspicious-p
* lisp/international/textsec.el (textsec-url-suspicious-p): Don't
bug out on non-HTTP URLs.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Make shr mark links with suspicious URLs
* lisp/international/textsec-check.el (textsec-propertize): New
function.
(textsec-check): Only check, don't alter STRING.
* lisp/international/textsec.el (textsec-url-suspicious-p): New
function.
* lisp/net/shr.el (shr-tag-a): Mark suspicious links.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Add new file textsec-check.el
* lisp/international/textsec-check.el: New file.
* lisp/international/textsec.el
(textsec-email-address-header-suspicious-p): Rename.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Mark whole-script confusables as suspicious domains
* lisp/international/textsec.el (textsec-domain-suspicious-p):
Consider domain names that are whole-script confusables with ASCII
to be suspicious. (I think this is what the Unicode standard is
recommending, but I'm not 100% sure.)
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Split textsec-email-address-suspicious-p into two functions
* lisp/international/textsec.el
(textsec-email-address-suspicious-p): Made into its own function.
(textsec-email-suspicious-p): Use it and adjust doc strings.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Make textsec-suspicious-nonspacing-p work on marks
* lisp/international/textsec.el (textsec-suspicious-nonspacing-p):
We're only interested in nonspacing marks, not control characters
in this test.
2022-01-19 Po Lu <luangruo@yahoo.com>
Fix recent change for big endian systems where `Atom' is 64 bits
* src/xfns.c (x_create_tip_frame): Cast atoms to xcb_atom_t
and pass a reference to that to xcb_change_property instead.
2022-01-19 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/cus-face.el (custom-face-attributes): Expose the lambdas
2022-01-19 Po Lu <luangruo@yahoo.com>
Port some X11 tooltip code to XCB
* configure.ac: Require `xcb-aux' to be present before using
XCB.
* src/xfns.c (x_sync):
(x_create_tip_frame):
(Fx_show_tip): Port window related code to XCB.
2022-01-19 Lars Ingebrigtsen <larsi@gnus.org>
Deconfuse textsec doc strings slightly
* lisp/international/textsec.el (textsec-name-suspicious-p):
(textsec-domain-suspicious-p):
(textsec-local-address-suspicious-p):
(textsec-name-suspicious-p):
(textsec-suspicious-nonspacing-p):
(textsec-email-suspicious-p): Suspiciosness isn't only about
homoglyphs, so don't claim so in the doc strings.
2022-01-19 Robert Pluim <rpluim@gmail.com>
Improve textsec doc strings
* lisp/international/textsec.el (textsec-domain-suspicious-p)
(textsec-local-address-suspicious-p, textsec-name-suspicious-p)
(textsec-suspicious-nonspacing-p): Improve doc strings.
2022-01-19 Po Lu <luangruo@yahoo.com>
Use Cairo XCB surfaces when XCB is available
This lets us get at goodies such as shm support, which aren't
available with the xlib surface. (bug#52120)
* configure.ac: Test for cairo-xcb if cairo is available on X.
* src/xterm.c (USE_CAIRO_XCB_SURFACE): New define.
(x_begin_cr_clip): Create XCB surfaces if available.
(x_try_cr_xlib_drawable):
(x_scroll_run): Handle XCB surfaces.
(x_term_init): Find XCB visualtype structure.
* src/xterm.h (struct x_display_info): New field `xcb_visual'.
* src/xwidget.c (x_draw_xwidget_glyph_string): Fix integer
overflow.
2022-01-19 Eli Zaretskii <eliz@gnu.org>
Minor improvement in textsec diagnostics
* lisp/international/textsec.el (textsec-suspicious-nonspacing-p):
Clarify wording of the strings returned to explain the suspicious
use of nonspacing characters.
2022-01-19 Michael Albinus <michael.albinus@gmx.de>
Respect structure of Tramp archive file names
* lisp/net/tramp.el (tramp-make-tramp-file-name):
Respect structure of archive file names.
2022-01-19 Po Lu <luangruo@yahoo.com>
* src/haikufns.c (Fx_display_mm_width): Fix copy-paste error.
2022-01-19 Po Lu <luangruo@yahoo.com>
Rename system tooltip variables to `use-system-tooltips'
* doc/emacs/frames.texi (Tooltips):
* doc/emacs/haiku.texi (Haiku Basics):
* doc/lispref/display.texi (Tooltips): Document
`use-system-tooltips' instead.
* etc/NEWS: Announce new option.
* lisp/cus-start.el (standard): Add new option.
* lisp/term/haiku-win.el (haiku-use-system-tooltips):
* lisp/term/pgtk-win.el (x-gtk-use-system-tooltips):
* lisp/term/x-win.el (x-gtk-use-system-tooltips): Add aliases
for old options.
* src/frame.c (syms_of_frame): New variable
`use-system-tooltips'.
* src/haikufns.c (Fx_show_tip):
(syms_of_haikufns):
* src/pgtkfns.c (x_hide_tip):
(Fx_show_tip):
(syms_of_pgtkfns):
* src/xfns.c (x_hide_tip):
(Fx_show_tip):
(syms_of_xfns): Use `use-system-tooltips' instead of the old
platform dependent options.
2022-01-18 Po Lu <luangruo@yahoo.com>
Use more reliable timestamps for some kinds of events on Haiku
* src/haiku_support.cc (DispatchMessage):
(MouseMoved):
(MouseDown):
(MouseUp): Set `time' field of event structures to input server
time.
* src/haiku_support.h (struct haiku_key_event):
(struct haiku_mouse_motion_event):
(struct haiku_button_event): New field `time'.
* src/haikuterm.c (haiku_read_socket): Use input server time
if provided.
2022-01-18 Po Lu <luangruo@yahoo.com>
Fix event timestamp generation on Haiku
* src/haikuterm.c (haiku_read_socket): Use miliseconds for event
time.
2022-01-18 Stefan Monnier <monnier@iro.umontreal.ca>
cl-generic-tests.el: Fix warning
* test/lisp/emacs-lisp/cl-generic-tests.el (ert): Require at run-time
for `ert--get-explainer`.
2022-01-18 Stefan Monnier <monnier@iro.umontreal.ca>
VC: Fix tests for SCCS and Mtn
* test/lisp/vc/vc-tests.el: Prefer closures to `(lambda ...).
(vc-test-mtn05-rename-file, vc-test-mtn06-version-diff): Skip.
* lisp/vc/vc.el (vc-responsible-backend): Fix vc-test--register on SCCS.
2022-01-18 Stefan Monnier <monnier@iro.umontreal.ca>
autoload.el: Fix corner case and avoid encoding issues
* lisp/emacs-lisp/autoload.el (autoload-print-form): Don't burp when
autoloading a `cl-defmethod`.
(autoload-rubric): Support non-UTF-8 chars and enforce Unix EOLs.
2022-01-18 Eli Zaretskii <eliz@gnu.org>
Improve doc strings in textsec.el
* lisp/international/textsec.el (textsec-mixed-numbers-p)
(textsec-ascii-confusable-p, textsec-resolved-script-set)
(textsec-single-script-confusable-p)
(textsec-mixed-script-confusable-p)
(textsec-whole-script-confusable-p, textsec-domain-suspicious-p)
(textsec-local-address-suspicious-p, textsec-name-suspicious-p)
(textsec-suspicious-nonspacing-p): Doc fix.
2022-01-18 Eli Zaretskii <eliz@gnu.org>
Remove 'cuneiform-numbers-and-punctuation' from w32font.c
* src/w32font.c (syms_of_w32font, font_supported_scripts): Remove
'cuneiform-numbers-and-punctuation'. Reported by Kévin Le Gouguec
<kevin.legouguec@gmail.com>.
2022-01-18 Lars Ingebrigtsen <larsi@gnus.org>
The name in textsec-email-suspicious-p is optional
* lisp/international/textsec.el (textsec-email-suspicious-p): The
name is optional.
2022-01-18 Lars Ingebrigtsen <larsi@gnus.org>
Add textsec functions for verifying email addresses
* lisp/international/characters.el (bidi-control-characters):
Rename from glyphless--bidi-control-characters for use in textsec,
and add LRM/RLM/ALM.
(update-glyphless-char-display): Adjust the code.
* lisp/international/textsec.el (textsec-local-address-suspicious-p)
(textsec-name-suspicious-p, textsec-suspicious-nonspacing-p)
(textsec-email-suspicious-p): New functions.
2022-01-18 Po Lu <luangruo@yahoo.com>
Intern virtual modifier atoms the smart way on X
* src/xterm.c (x_find_modifier_meanings): Get rid of calls to
XInternAtom.
(x_term_init): Initialize atom refs for virtual modifiers and
make sure to only call `x_find_modifier_meanings' after they
are interned.
* src/xterm.h (struct x_display_info): New fields for virtual
modifier atoms.
2022-01-18 Lars Ingebrigtsen <larsi@gnus.org>
Add textsec-domain-suspicious-p
* .gitignore: Ignore idna-mapping.el.
* admin/notes/unicode: Note idna-mapping file.
* admin/unidata/IdnaMappingTable.txt: New file.
* admin/unidata/Makefile.in (all): Generate idna-mapping.el.
* admin/unidata/unidata-gen.el (unidata-gen-idna-mapping): Generate.
* lisp/international/textsec.el (textsec-domain-suspicious-p): New
function.
2022-01-18 Michael Albinus <michael.albinus@gmx.de>
Morka handling of multi-hops in Tramp more consistent
* lisp/net/tramp.el (tramp-make-tramp-file-name): Adapt argument list.
Add hops to `tramp-default-proxies-alist'.
(tramp-find-foreign-file-name-handler): Adapt argument list.
(tramp-handle-abbreviate-file-name): Abbreviate multi-hops.
(tramp-handle-file-remote-p): Adapt handling of hops.
(tramp-add-hops): New defun.
(tramp-compute-multi-hops): Use it.
* lisp/net/tramp.el (tramp-make-tramp-hop-name, tramp-get-buffer)
(tramp-file-name-handler, tramp-handle-file-truename)
(tramp-handle-insert-file-contents, tramp-local-host-p)
(tramp-read-passwd, tramp-clear-passwd):
* lisp/net/tramp-archive.el (tramp-archive-dissect-file-name)
(tramp-archive-gvfs-file-name):
* lisp/net/tramp-cache.el (tramp-get-hash-table):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-truename)
(tramp-sh-handle-make-process, tramp-sh-handle-process-file)
(tramp-sh-file-name-handler-p, tramp-get-remote-path):
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-truename):
Adapt callees.
* test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate)
(tramp-test07-abbreviate-file-name): Adapt tests.
2022-01-18 Po Lu <luangruo@yahoo.com>
* src/haikuterm.c (haiku_read_socket): Add work for frame size bug.
BWindow::ResizeTo seems to have the same rounding issues that
BRect has, but I have no idea how to solve it there. As a
temporary workaround until a solution has been found, avoid
garbaging tooltip frames when FrameResized reports different
dimensions from what they were set to.
2022-01-18 Lars Ingebrigtsen <larsi@gnus.org>
Add textsec predicates for different types of confusability
* lisp/international/textsec.el (textsec-resolved-script-set)
(textsec-single-script-confusable-p)
(textsec-mixed-script-confusable-p)
(textsec-whole-script-confusable-p): New functions.
2022-01-18 Lars Ingebrigtsen <larsi@gnus.org>
Add textsec support for confusable characters
* admin/notes/unicode: Note the confusables.txt file.
* admin/unidata/Makefile.in (${unidir}/uni-confusable.el):
Generate the confusable file.
* admin/unidata/README (https): Add confusables.txt.
* admin/unidata/confusables.txt: New file.
* admin/unidata/unidata-gen.el (unidata-gen-confusable): Parse the
confusables.txt file.
* lisp/international/textsec.el (textsec-ascii-confusable-p)
(textsec-unconfuse-string): New functions.
2022-01-18 Lars Ingebrigtsen <larsi@gnus.org>
Improve textsec-restriction-level doc string
* lisp/international/textsec.el (textsec-restriction-level):
Improve doc string.
2022-01-18 Po Lu <luangruo@yahoo.com>
* src/haikufns.c (Fx_show_tip): Fix typo.
2022-01-18 Po Lu <luangruo@yahoo.com>
Fix default value of `no-special-glyphs' frame parameter on Haiku
* src/haikufns.c (haiku_create_frame): Make `no-special-glyphs'
nil by default.
2022-01-18 Po Lu <luangruo@yahoo.com>
Improve tooltip implementation on Haiku
This fixes several issues: tooltips having no right internal
border, reusing tooltips occasionally freezing Emacs, and
inconsistent behaviour when compared to X.
* src/haiku_support.cc (BWindow_resize): Revert a recent change.
(BView_move_frame):
(BWindow_set_avoid_focus): Stop sync'ing when locked. This
tends to cause lockups for an unknown reason.
* src/haikufns.c (initial_setup_back_buffer): New function.
(haiku_create_frame): Remove tooltip related code.
(haiku_set_internal_border_width): Handle cases where the face
cache is NULL and/or the window has not been created.
(haiku_set_inhibit_double_buffering): Likewise.
(haiku_create_tip_frame): New function.
(Fx_create_frame): Remove tooltip specific code.
(Fx_show_tip): Synchronize code with X.
* src/haikuterm.c (haiku_new_font): Don't adjust size on tooltip
frames.
(haiku_read_socket): Draw internal border on tooltip frames
during resize.
(haiku_clear_under_internal_border): Handle cases where the face
cache is NULL.
2022-01-18 Po Lu <luangruo@yahoo.com>
* lisp/tooltip.el (tooltip-show-help): Fix typo.
2022-01-17 Po Lu <luangruo@yahoo.com>
* lisp/tooltip.el: Fix warning when built on a non-Haiku system.
2022-01-17 Po Lu <luangruo@yahoo.com>
Fix system tooltips above menus
* src/haikufns.c (Fx_show_tip): Disable frame reuse inside a
menu.
(syms_of_haikufns): New symbol `tooltip-reuse-hidden-frame'.
2022-01-17 Po Lu <luangruo@yahoo.com>
Allow non-system tooltips to display above menus on Haiku
* doc/emacs/haiku.texi (Haiku Basics): Document that tooltips
can now be displayed above the menu bar.
* lisp/tooltip.el (tooltip-show-help): Only display help text in
the echo area if Haiku system tooltips are enabled.
* src/haiku_support.cc (FlipBuffers): Stop flushing view.
* src/haikufns.c (Fx_show_tip): Fix a sizing bug leading to
tooltips needing two redisplays to display correctly.
* src/haikuterm.c (haiku_read_socket): Ignore resize events on
tooltips.
2022-01-17 Stefan Monnier <monnier@iro.umontreal.ca>
(hack-local-variables--find-variables): Use `user-error`
* lisp/files.el (hack-local-variables--find-variables):
Incorrect formatting are not coding errors.
2022-01-17 Stefan Kangas <stefankangas@gmail.com>
Change rust language server to rust-analyzer
rust-analyzer is the officially blessed Language Server for Rust:
https://github.com/rust-lang/rfcs/pull/2912
Also drop the special support code for RLS.
* eglot.el (eglot-server-programs): Add rust-mode language server
"rust-analyzer" and prefer it to the older "rls".
(eglot-rls, jsonrpc-connection-ready-p)
(eglot-handle-notification): Delete special support for "rls".
* eglot-tests.el (rls-analyzer-watches-files)
(rls-analyzer-hover-after-edit): Rename to ...
(rust-analyzer-watches-files)
(rust-analyzer-hover-after-edit): ... this. Update tests to work
with rust-analyzer.
* README.md: Update references for RLS to point to rust-analyzer.
* NEWS.md: Announce above change.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/803
2022-01-17 Eli Zaretskii <eliz@gnu.org>
Fix minor inconsistencies in 'char-script-table'
* admin/unidata/blocks.awk (name2alias): Map some obscure blocks
to their native scripts, to follow Scripts.txt.
* lisp/international/characters.el (char-script-table): Add
few exceptions.
* lisp/international/fontset.el (script-representative-chars):
Remove scripts no longer used.
2022-01-17 Eli Zaretskii <eliz@gnu.org>
Doc fixes in textsec.el
* lisp/international/textsec.el (textsec-scripts)
(textsec-single-script-p, textsec-covering-scripts): Clarify "script".
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Change textsec-mixed-numbers-p to use recommended algorithm
* lisp/international/textsec.el (textsec-mixed-numbers-p): New
function.
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Add new function textsec-mixed-numbers-p
* lisp/international/textsec.el (textsec-mixed-numbers-p): New
function.
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Add some textsec-restriction-level comments
* lisp/international/textsec.el (textsec-restriction-level): Add
comment about source of the list of languages.
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Add textsec-restriction-level function
* lisp/international/textsec.el (textsec-restriction-level): New
function.
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix some doc strings in textsec.el
* lisp/international/textsec.el (textsec-single-script-p): Fix
typo in doc string.
(textsec-covering-scripts): Improve doc string and sort the results.
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Avoid loading the possibly stale unidata-gen.elc file
* admin/unidata/Makefile.in (${unidir}/uni-scripts.el): Fix .elc
staleness. (Should probably be fixed in a different way.)
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Add support for functions that deal with Unicode scripts
* admin/unidata/Makefile.in (${unidir}/uni-scripts.el): Build
uni-scripts.el.
* admin/unidata/Scripts.txt:
* admin/unidata/ScriptExtensions.txt:
* admin/unidata/PropertyValueAliases.txt: New files from Unicode.
* admin/unidata/README: Update.
* admin/unidata/unidata-gen.el (unidata-gen-charprop): Allow
writing other data, too.
(unidata-gen-scripts, unidata-gen--read-script-aliases)
(unidata-gen--insert-file): New functions to parse the Script* files.
* lisp/international/textsec.el: Implement some functions that
work on scripts.
2022-01-17 Lars Ingebrigtsen <larsi@gnus.org>
Move the Gnus range functions to a new range.el file
* lisp/emacs-lisp/range.el: New file.
* lisp/gnus/gnus-agent.el (range):
(gnus-agent-synchronize-group-flags):
(gnus-agent-possibly-alter-active):
(gnus-agent-fetch-headers):
(gnus-agent-read-agentview):
(gnus-agent-fetch-group-1):
(gnus-agent-read-p):
(gnus-agent-expire-group-1):
(gnus-agent-retrieve-headers): Adjust callers.
* lisp/gnus/gnus-art.el (range):
(gnus-article-describe-bindings):
* lisp/gnus/gnus-cloud.el (range):
(gnus-cloud-available-chunks):
* lisp/gnus/gnus-draft.el (gnus-group-send-queue):
* lisp/gnus/gnus-group.el (range):
(gnus-group-line-format-alist):
(gnus-number-of-unseen-articles-in-group):
(gnus-group-update-eval-form):
(gnus-group-read-group):
(gnus-group-delete-articles):
(gnus-group-catchup):
(gnus-group-expire-articles-1):
(gnus-add-marked-articles):
* lisp/gnus/gnus-int.el (gnus-request-marks):
* lisp/gnus/gnus-kill.el (gnus-apply-kill-file-internal):
* lisp/gnus/gnus-range.el (gnus-range-difference)
(gnus-sorted-range-intersection, gnus-uncompress-range)
(gnus-add-to-range, gnus-remove-from-range)
(gnus-member-of-range, gnus-list-range-intersection)
(gnus-list-range-difference, gnus-range-length, gnus-range-add)
(gnus-range-map): Make into obsolete aliases.
* lisp/gnus/gnus-start.el (gnus-make-articles-unread):
(gnus-convert-old-ticks):
(gnus-read-old-newsrc-el-file):
* lisp/gnus/gnus-sum.el (gnus-select-newsgroup):
(gnus-articles-to-read):
(gnus-articles-to-read):
(gnus-killed-articles):
(gnus-adjust-marked-articles):
(gnus-update-marks):
(gnus-update-marks):
(gnus-compute-read-articles):
(gnus-list-of-read-articles):
(gnus-summary-update-info):
(gnus-summary-move-article):
(gnus-summary-expire-articles):
(gnus-update-read-articles):
(gnus-summary-insert-old-articles):
(gnus-summary-insert-old-articles):
(gnus-summary-insert-old-articles):
* lisp/gnus/mail-source.el (gnus-range):
(gnus-compress-sequence):
* lisp/gnus/nnheader.el (range):
(gnus-range-add):
(nnheader-update-marks-actions):
* lisp/gnus/nnimap.el (nnimap-update-info):
(nnimap-update-info):
(nnimap-update-info):
(nnimap-update-qresync-info):
(nnimap-update-qresync-info):
(nnimap-update-qresync-info):
(nnimap-parse-copied-articles):
* lisp/gnus/nnmaildir.el (nnmaildir-request-update-info):
(nnmaildir-request-update-info):
(nnmaildir-request-expire-articles):
(nnmaildir-request-expire-articles):
(nnmaildir-request-set-mark):
* lisp/gnus/nnmairix.el (nnmairix-request-set-mark):
* lisp/gnus/nnmbox.el (nnmbox-record-active-article):
(nnmbox-record-deleted-article):
* lisp/gnus/nnml.el (nnml-request-compact-group):
* lisp/gnus/nnvirtual.el (nnvirtual-request-expire-articles):
* lisp/gnus/nnselect.el (numbers-by-group):
(nnselect-request-update-info):
(nnselect-push-info):
2022-01-17 Po Lu <luangruo@yahoo.com>
Merge from origin/emacs-28
f393d0d441 Fix regression leading to flickering tooltips when the mou...
2022-01-17 Eli Zaretskii <eliz@gnu.org>
Revert "Add undelete-frame-max instead of undelete-frame-mode (bug#51883)"
This reverts commit 714e11d53534416b6519396a9df5d62054731810.
That commit was unilateral and disregarded past discussions.
2022-01-17 Eli Zaretskii <eliz@gnu.org>
Revert "* etc/NEWS: Improve wording of 'undelete-frame-max' (bug#51883)."
This reverts commit 65666c47863c4ad2ed4bacd1a0bc5e638269df52.
The original commit was unilateral and disregarded past
discussions.
2022-01-17 Po Lu <luangruo@yahoo.com>
Fix Emacs icon not appearing on Haiku
* lib-src/be_resources.cc (main): Scale input bitmap
appropriately before setting it as the mini and large icons.
* src/Makefile.in (Emacs): Add dependency on
`lib-src/be-resources'.
2022-01-17 Po Lu <luangruo@yahoo.com>
Use BControlLook to determine scroll bar size on Haiku
* src/haiku_support.cc (BScrollBar_default_size): Use
BControlLook instead of legacy constants.
2022-01-17 Po Lu <luangruo@yahoo.com>
Display override redirect frames in all workspaces on Haiku
* src/haiku_support.cc (class EmacsWindow): New field
`pre_override_redirect_workspaces'.
(BWindow_set_override_redirect): Set window to display on all
workspaces.
2022-01-17 Michael Albinus <michael.albinus@gmx.de>
Improve handling of INFILE in tramp*-process-file (Bug#53284)
* lisp/net/tramp-adb.el (tramp-adb-handle-process-file):
* lisp/net/tramp-sh.el (tramp-sh-handle-process-file):
* lisp/net/tramp-smb.el (tramp-smb-handle-process-file):
* lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file):
Improve handling of INFILE. Fix thinko using
`process-file-side-effects'. (Bug#53284)
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
Use `tramp-sshfs-handle-set-file-times'.
(tramp-sshfs-handle-set-file-times): New defun.
* test/lisp/net/tramp-tests.el (tramp-test28-process-file): Extend test.
2022-01-17 Juri Linkov <juri@linkov.net>
* etc/NEWS: Improve wording of 'undelete-frame-max' (bug#51883).
2022-01-17 Po Lu <luangruo@yahoo.com>
* src/haikufns.c (Fx_show_tip): Sync after making window visible.
2022-01-16 Po Lu <luangruo@yahoo.com>
Really eliminate tooltip flicker on Haiku
* src/haikufns.c (tip_frame): Make non-static.
* src/haikuterm.c (haiku_read_socket): Ignore motion events that
didn't actually move when a tip frame is visible.
* src/haikuterm.h (tip_frame): Declare.
2022-01-16 Po Lu <luangruo@yahoo.com>
Translate timestamps when using GTK native input
* src/gtkutil.c (xg_widget_key_press_event_cb): Use timestamp
specified in key event.
(xg_filter_key): Translate timestamps.
2022-01-16 Po Lu <luangruo@yahoo.com>
Exercise wire right after event is filtered for native input
* src/xterm.c (handle_one_xevent): Run a no-op immediately after
an event was filtered by GDK.
2022-01-16 Juri Linkov <juri@linkov.net>
Add undelete-frame-max instead of undelete-frame-mode (bug#51883)
* doc/emacs/frames.texi (Frame Commands): Replace
undelete-frame-mode with undelete-frame-max.
* lisp/frame.el (undelete-frame-max): New defcustom, by default 1.
(undelete-frame--handle-delete-frame): Use undelete-frame-max
instead of hard-coded 16.
(undelete-frame-mode): Remove function.
(after-init-hook): Add hook undelete-frame--handle-delete-frame to
delete-frame-functions using after-init-hook to not store the
initial frame.
(undelete-frame): Remove undelete-frame-mode. Use undelete-frame-max
instead of hard-coded 16.
* lisp/menu-bar.el (menu-bar-file-menu): Remove menu item undelete-frame-mode.
* src/frame.c (Fdelete_frame): Replace `undelete-frame-mode' with
`undelete-frame-max' in the docstring.
2022-01-16 Matthias Meulien <orontee@gmail.com>
Extend Outline mode with default visibility state
* etc/NEWS: Announce support for default visibility state (bug#51809).
* lisp/outline.el (outline-mode, outline-minor-mode): Ensure default
visibility state is applied with outline-apply-default-state.
(outline-default-state, outline-default-rules)
(outline-default-long-line, outline-default-line-count): New defcustoms.
(outline-apply-default-state, outline-show-only-headings)
(outline--show-headings-up-to-level): New functions.
2022-01-16 Po Lu <luangruo@yahoo.com>
Fix XI2 event filtering for very old versions of libXi
* src/xterm.c (handle_one_xevent): Handle cases where
xev->display is NULL.
2022-01-16 Stefan Kangas <stefankangas@gmail.com>
* eglot.el (eglot--server-capable): don't use obsolete name.
2022-01-16 Stefan Kangas <stefankangas@gmail.com>
Obsolete eglot--plist-keys in favor of map-keys
* eglot.el (eglot--plist-keys): Make into obsolete function alias
for map-keys.
2022-01-16 Po Lu <luangruo@yahoo.com>
Fix the xft build
* src/xsettings.h [!HAVE_PGTK]: Include dispextern.h and remove
duplicate definition of Display_Info.
2022-01-16 Po Lu <luangruo@yahoo.com>
Use kMenuWindowFeel on Haiku toolkip windows
* src/haiku_support.cc (BWindow_set_tooltip_decoration): Use
kMenuWindowFeel and set flags here.
* src/haikufns.c (Fx_show_tip): Don't set_avoid_focus manually
since setting tooltip decorations already does that.
2022-01-16 Po Lu <luangruo@yahoo.com>
Make help event generation on Haiku behave closer to X
* src/haikuterm.c (haiku_read_socket): Generate help events more
like how X does it.
2022-01-16 Po Lu <luangruo@yahoo.com>
Reduce poll time for Haiku file dialogs
* src/haiku_support.c (be_popup_file_dialog): Reduce idle
processor load by increasing timeout. The timeout is still too
low to be noticable by the user.
2022-01-16 Po Lu <luangruo@yahoo.com>
* src/gtkutil.c (xg_widget_key_press_event_cb): Also raise input signal.
2022-01-16 Yuuki Harano <masm+github@masm11.me>
* src/pgtkterm.c (evq_flush): Shift events one by one
2022-01-16 Po Lu <luangruo@yahoo.com>
Avoid focus and allow monospace text in tooltip frames on Haiku
* src/haikufns.c (Fx_show_tip): Set avoid focus on tooltip
frames.
* src/haikuterm.c (haiku_default_font_parameter): Don't special
case the default font on tooltip frames, since the bug that was
supposed to work around has already been fixed.
2022-01-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e488601849 Update to Org 9.5.2-9-g7ba24c
95640360f0 * lisp/net/dictionary.el (dictionary-context-menu): Use pa...
2022-01-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
7f36aca99d * lisp/indent.el (tab-first-completion): Fix incorrect cho...
2022-01-16 Po Lu <luangruo@yahoo.com>
Update modifier meanings even if an xkb_desc was not available
* src/xterm.c (handle_one_event): Always update modifiers after
the keyboard mapping is refreshed.
2022-01-15 Po Lu <luangruo@yahoo.com>
* src/xwidget.c (webkit_js_to_lisp): Use correct constant to check size.
2022-01-15 Po Lu <luangruo@yahoo.com>
Fix a minor snafu when resizing frames on Haiku
* src/haiku_support.cc (BWindow_resize): Adjust for minor snafu
where BWindow::ResizeTo uses BRect-style width and height
instead of actual width and height.
2022-01-15 Tassilo Horn <tsdh@gnu.org>
Add some more mailcap tests.
* test/lisp/net/mailcap-resources/mailcap: New file.
* test/lisp/net/mailcap-resources/test.test: New file.
* test/lisp/net/mailcap-tests.el (with-pristine-mailcap): New macro.
(mailcap-parsing-and-mailcap-mime-info): New test for parsing mailcap
files and selecting the right viewer.
(mailcap--test-result): New variable.
(mailcap--test-viewer): New function.
(mailcap-view-file): New test for mailcap-view-file.
2022-01-15 Stefan Kangas <stefankangas@gmail.com>
Remove unnecessary compatibility code
* eglot.el (eglot-mode-map): Remove unnecessary compatibility
code. We already depend on eldoc 0.11.0.
2022-01-15 Juri Linkov <juri@linkov.net>
* lisp/mouse.el (context-menu-map): Select clicked window (bug#53249).
2022-01-15 Juri Linkov <juri@linkov.net>
More fixes for recently committed context-menu additions from bug#52973
* lisp/hi-lock.el (highlight-symbol-at-mouse): New defalias.
(hi-lock-face-symbol-at-mouse): Rename from hi-lock-symbol-at-mouse.
(hi-lock-context-menu): Use thing-at-mouse and middle-separator.
* lisp/man.el (Man-context-menu): Fix Man-at-mouse and use middle-separator.
* lisp/mouse.el (context-menu-functions): Remove context-menu-online-search.
Add occur-context-menu and dictionary-context-menu (bug#50552).
2022-01-15 Stefan Kangas <stefankangas@gmail.com>
Improve backwards-compatibility of eglot-mode-map
* eglot.el (eglot-mode-map): Only bind to eldoc-doc-buffer in Emacs
28.1 or later.
2022-01-15 Juri Linkov <juri@linkov.net>
* doc/emacs/search.texi (Special Isearch): Move isearch-char-by-name item back
Put it at the end of the list and still closer to isearch-emoji-by-name.
2022-01-15 Alan Mackenzie <acm@muc.de>
Remove the remnants of old position mechanism from scratch/correct-warning-pos
Also correct one or two positions in macroexp-warn-and-return invocations.
* lisp/emacs-lisp/bytecomp.el (byte-compile-read-position)
(byte-compile-last-position, byte-compile-set-symbol-position): Remove.
(byte-compile-warning-prefix, byte-compile-function-warn)
(byte-compile-emit-callargs-warn, byte-compile-arglist-warn)
(byte-compile-warn-about-unresolved-functions, compile-defun)
(byte-compile-from-buffer, byte-compile-from-buffer)
(byte-compile-file-form-defmumble, byte-compile-check-lambda-list)
(byte-compile-lambda, byte-compile-form, byte-compile-normal-call)
(byte-compile-check-variable, byte-compile-push-constant)
(byte-compile-subr-wrong-args, byte-compile-negation-optimizer)
(byte-compile-condition-case, byte-compile-defvar, byte-compile-autoload)
(byte-compile-lambda-form): Remove the remnants of the old warning position
mechanism.
(byte-compile-function-warn): Replace byte-compile-last-position by a
symbol-with-pos-pos call.
(compile-defun): Use local variable start-read-position to fulfil purpose of
old byte-compile-read-position. Push the just read FORM onto
byte-compile-form-stack.
* lisp/emacs-lisp/eieio.el (defclass): New mechanism to get the correct
source warning position to macroexp-warn-and-return.
* lisp/emacs-lisp/macroexp.el (macroexp--unfold-lambda): Correct
the position argument given to macroexp-warn-and-return.
2022-01-15 Stefan Kangas <stefankangas@gmail.com>
* eglot.el (eglot-strict-mode): very minor docfix.
2022-01-15 Stefan Monnier <monnier@iro.umontreal.ca>
* pcvs-info.el (cvs-mode-toggle-mark): Typo
2022-01-15 Eli Zaretskii <eliz@gnu.org>
Fix setting cursor in pixel-scrolling modes
* src/xdisp.c (redisplay_window): Don't set cursor to any glyph
row past the one that contains EOB. (Bug#53275)
2022-01-15 Lars Ingebrigtsen <larsi@gnus.org>
Don't strip properties in show-paren-function
* lisp/paren.el (show-paren-function): Don't strip text properties
(bug#51606) because that makes the offscreen context less
informative.
2022-01-15 Stefan Kangas <stefankangas@gmail.com>
* eglot.el (eglot--connect): display seconds on timeout.
2022-01-15 Po Lu <luangruo@yahoo.com>
Use preferred XIM style without trying to detect if it's supported
The old code would in general fall back to the default if the
preferred style wasn't available, which is usually worse than
what the user specified
* src/xfns.c (best_xim_style): Stop checking if the preferred
input style is supported.
2022-01-15 Stefan Kangas <stefankangas@gmail.com>
Print server command to events buffer
* eglot.el (eglot--connect): Print server command to events
buffer.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/476
2022-01-15 Lars Ingebrigtsen <larsi@gnus.org>
Add emoji-alternate-names variable
* lisp/international/emoji.el (emoji-alternate-names): New
variable (bug#52860).
(emoji-search): Note usage.
(emoji--choose-emoji): Use it.
2022-01-15 Tassilo Horn <tsdh@gnu.org>
mailcap: Docfix & handle function-viewer case in mailcap-view-file
* lisp/net/mailcap.el (mailcap-mime-data): Fix docstring: if viewer is
a symbol/function, it should have zero args and expect the file's
contents to be in the current buffer.
(mailcap-view-file): Implement the case where the chosen viewer is a
function and not a shell command.
2022-01-15 Po Lu <luangruo@yahoo.com>
Prevent pre-edit overlay text from being displayed after a command
This works around buggy input methods causing the overlay to be
displayed alongside newly inserted text for a brief period.
* lisp/term/x-win.el (x-clear-preedit-text): New function.
(x-preedit-text): Add said function to pre-command-hook. It
will remove itself when triggered.
2022-01-15 Po Lu <luangruo@yahoo.com>
* src/emacsgtkfixed.c (XSetWMSizeHints): Remove some useless code.
2022-01-15 Lars Ingebrigtsen <larsi@gnus.org>
Don't bug out on improper lists in pp-emacs-lisp-code
* lisp/emacs-lisp/pp.el (pp--format-list): Don't bug out on
improper lists (bug#52917).
2022-01-15 Tom Tromey <tom@tromey.com>
Use "server complete" instead of "complete" in gud-gdb-completions
* lisp/progmodes/gud.el (gud-gdb-completions): gud-gdb sends a
"complete" command to gdb to implement command line completion. It
would be better to send "server complete". This is what Emacs does
for other behind-the-scenes commands it sends (bug#52922).
2022-01-15 Alex Bochannek <alex@bochannek.com>
(gnus-summary-hide-thread): Fix thread hiding for dummy roots.
* lisp/gnus/gnus-sum.el (gnus-summary-hide-thread): Make thread
hiding work when using dummy `gnus-summary-make-false-root'
(bug#52923).
2022-01-15 Lars Ingebrigtsen <larsi@gnus.org>
Improve the with-output-to-temp-buffer doc string
* lisp/subr.el (with-output-to-temp-buffer): Clarify the point of
the macro (bug#53265).
2022-01-15 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Add command to invoke a search engine"
This reverts commit 3f36d0836274a01d3cfc73f53ddbc76afc1d8a5e.
Similar functionality has been added to webjump, so this commit duplicated that.
2022-01-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
5990148860 * lisp/simple.el (undo-no-redo): Fix customization group
ac2cdb8a46 * lisp/progmodes/xref.el (xref-file-name-display): Fix doc...
c05864dd25 Avoid another segfault in 'face_at_buffer_position'
2022-01-15 Po Lu <luangruo@yahoo.com>
Find a way to make lowering frames work on Haiku
* doc/lispref/frames.texi (Raising and Lowering): Document that
lowering frames is now supported on Haiku.
* src/haikuterm.c (haiku_frame_raise_lower): Implement a hack to
lower frames.
2022-01-15 Po Lu <luangruo@yahoo.com>
Filter key release events when using native input without having XIM
* src/xterm.c (handle_one_xevent): Also check for XI key
release events when using native input on a build without XIM.
2022-01-14 Po Lu <luangruo@yahoo.com>
Fix native input when using core input events
* src/gtkutil.c (xg_filter_key): Test for core key press events
correctly.
* src/xterm.c (handle_one_xevent): Also check for KeyRelease
events.
2022-01-14 Po Lu <luangruo@yahoo.com>
Remove non-functional configure test
It cannot work anymore, leading to compiler warnings when
building xterm.c.
* configure.ac: Remove test for whether
XRegisterIMInstantiateCallback wants XPointer or XPointer * as
the client_data.
* src/xterm.c (xim_initialize):
(xim_close_dpy): Just cast client data to void * and hope that
the compiler keeps quiet.
2022-01-14 Stefan Monnier <monnier@iro.umontreal.ca>
pcvs-info.el: Prefer `declare-function` over `autoload`
* lisp/vc/pcvs-info.el (cvs-mode-toggle-mark): Use `declare-function`
to silence the byte-compiler warning.
2022-01-14 Philipp Stephani <phst@google.com>
* lisp/indent.el (indent-for-tab-command): Use 'eq' for symbols.
2022-01-14 Philipp Stephani <phst@google.com>
indent-for-tab-command: Deal with large point or modiff values.
* lisp/indent.el (indent-for-tab-command): Don't use 'eq' to compare
integers that aren't guaranteed to be fixnums.
2022-01-14 Philipp Stephani <phst@google.com>
Simplify code for 'indent-for-tab-command' slightly.
* lisp/indent.el (indent-for-tab-command): Don't use a one-element
list for SYN.
2022-01-14 Alan Mackenzie <acm@muc.de>
Merge branch 'master' into scratch/correct-warning-pos
Merge branch:
commit d29291d665e808307126bf52c3e748fef78f0f9c (HEAD -> master,
origin/master, origin/HEAD)
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date: Fri Jan 14 12:26:30 2022 -0500
(macroexp--expand-all): Fix bug#53227 and bug#46636
2022-01-14 Alan Mackenzie <acm@muc.de>
Commit fixes and enhancements to the scratch/correct-warning-pos branch
No longer strip positions from symbols before each use of a form, instead
relying on the low level C routines to do the right thing. Instead strip them
from miscellaneous places where this is needed. Stip them alson in
`function-put'.
Push forms onto byte-compile-form-stack and pop them "by hand" rather than by
binding the variable at each pushing, so that it will still have its data
after an error has been thrown and caught by a condition case. This gives an
source position to the ensuing error message.
* lisp/emacs-lisp/byte-run.el (byte-run--ssp-seen, byte-run--circular-list-p)
(byte-run--strip-s-p-1, byte-run-strip-symbol-positions): New functions and
variables, which together implement stripping of symbol positions. The latest
(?final) version modifies the argument in place rather than making a copy.
(function-put): Strip symbol positions from all of the arguments before doing
the `put'.
* lisp/emacs-lisp/bytecomp.el (byte-compile--form-stack): has been renamed to
byte-compile-form-stack and moved to macroexp.el.
(byte-compile-initial-macro-environment (eval-and-compile)): Replace
macroexpand-all-toplevel with macroexpand--all-toplevel.
(displaying-byte-compile-warnings): bind byte-compile-form-stack here.
(byte-compile-toplevel-file-form, byte-compile-form): Push the top level form
onto byte-compile-form-stack (whereas formally the variable was bound at each
pushing). Manually pop this from of the variable at the end of the function.
* lisp/emacs-lisp/cl-macs.el (cl-define-compiler-macro): Remove the symbol
stripping.
* lisp/emacs-lisp/comp.el (comp--native-compile): Set max-specpdl-size to at
least 5000 (previously it was 2500). Bind print-symbols-bare to t.
* lisp/emacs-lisp/macroexp.el (byte-compile-form-stack): Definition move here
from bytecomp.el for easier compilation.
(byte-compile-strip-symbol-positions and associated functions): Removed.
(macro--expand-all): push argument FORM onto byte-compile-form-stack at the
start of this function, and pop it off at the end.
(internal-macroexpand-for-load): No longer strip symbol positions. Bind
symbols-with-pos-enabled and print-symbols-bare to t.
* lisp/help.el (help--make-usage): Strip any position from argument ARG.
* src/fns.c (Fput): No longer strip symbol positions from any of the
arguments.
2022-01-14 Stefan Monnier <monnier@iro.umontreal.ca>
(macroexp--expand-all): Fix bug#53227 and bug#46636
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Don't mis-expand
invalid funcalls.
2022-01-14 Stefan Kangas <stefan@marxist.se>
image-dired: Use MD5 for thumb filename generation
* lisp/image-dired.el (image-dired-thumb-name): Revert back to MD5 for
file name generation to preserve backwards-compatibility. (Bug#53229)
2022-01-14 Po Lu <luangruo@yahoo.com>
* src/xterm.c: Add a small writeup on input handling on X.
Hopefully I will extend this section with details about more
aspects of X11 support in the future.
2022-01-14 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
Skip ffap test on some systems
2022-01-14 Lars Ingebrigtsen <larsi@gnus.org>
Make function-alias-p use a better error symbol
* lisp/subr.el (function-alias-p): Use the same error symbol as
`indirect-function'.
2022-01-14 Lars Ingebrigtsen <larsi@gnus.org>
Don't have ffap interpret ":/bin" as the current directory
* lisp/ffap.el (ffap-file-at-point): Don't interpret :/bin as the
current directory (bug#52441).
2022-01-14 Lars Ingebrigtsen <larsi@gnus.org>
Add a `shortdoc' convenience alias
* lisp/emacs-lisp/shortdoc.el (shortdoc): Add a convenience alias
(bug#52968).
2022-01-14 Po Lu <luangruo@yahoo.com>
Fix leak when refs are sent to a frame during destruction on Haiku
* src/haikuterm.c (haiku_read_socket): Free b->ref if it was
sent from a frame that was destroyed.
2022-01-14 Po Lu <luangruo@yahoo.com>
Make sure the X mouse position hook always looks at an X frame
* src/xterm.c (XTmouse_position): Check that f1 is an X frame.
2022-01-14 Robert Pluim <rpluim@gmail.com>
spelling-tests.el: use ert-with-temp-directory
* test/lisp/so-long-tests/spelling-tests.el (so-long-spelling): Use
;ert-with-temp-directory' instead of passing :directory to
'ert-with-temp-file', and restore the prefix/suffix values used
originally with 'make-temp-file'.
2022-01-14 Robert Pluim <rpluim@gmail.com>
spelling-tests.el: ignore errors when checking for ispell
ispell-valid-dictionary-list can signal an error, eg when the local
hunspell installation cannot find any dictionaries, so it's best to
ignore that error.
* test/lisp/so-long-tests/spelling-tests.el (so-long-spelling): Wrap
ispell check in ignore-errors, as ispell-valid-dictionary-list can
signal an error.
2022-01-14 Lars Ingebrigtsen <larsi@gnus.org>
Add new context menu functions to the context-menu-functions type
* lisp/mouse.el (context-menu-functions): Add new menu functions
to the defcustom type list (bug#52973).
2022-01-14 Philip Kaludercic <philipk@posteo.net>
Add command to invoke a search engine
* mouse.el (context-menu-online-search): Add new function
(eww-search-prefix): Declare variable from eww.el
(mouse-online-search-at-point): Add new command
2022-01-14 Philip Kaludercic <philipk@posteo.net>
Implement context-menu-mode support for hi-lock
* hi-lock.el (hi-lock-symbol-at-mouse): Add new command
(hi-lock-context-menu): Add new function
2022-01-14 Philip Kaludercic <philipk@posteo.net>
Implement context-menu-mode support for man pages
* man.el (Man-at-mouse): Add new command
(Man-context-menu): Add new function
2022-01-14 Juri Linkov <juri@linkov.net>
Fix @item in the Emacs manual
* doc/emacs/maintaining.texi (Identifier Search): Replace @itemx with @item.
* doc/emacs/search.texi (Special Isearch): Remove @item.
2022-01-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix mailcap setup when no mailcap files exist
* lisp/net/mailcap.el (mailcap-parse-mailcaps): Ensure that we
populate mailcap--computed-mime-data even if none of the files
exist (bug#53009).
2022-01-14 Lucien Cartier-Tilet <lucien@phundrak.com> (tiny change)
(battery-status-function) Fix errors in Termux
* lisp/battery.el (battery-status-function): In Termux, neither
/sys/ or /proc/ are readable on phones that are not rooted. This
patch makes Emacs verify if they are readable before it attemps
reading them (bug#53026).
2022-01-14 Robert Pluim <rpluim@gmail.com>
Improve some nntp/nnimap error messages
* lisp/gnus/nntp.el (nntp-send-string):
(nntp-wait-for):
(nntp-accept-process-output):
(nntp-possibly-change-group):
* lisp/gnus/nnimap.el (nnimap-retrieve-headers): Improve error
messages (bug#53070).
2022-01-14 Juri Linkov <juri@linkov.net>
* lisp/progmodes/xref.el (xref-query-replace-in-results): Fix prefix-arg.
Use current-prefix-arg.
2022-01-14 Juri Linkov <juri@linkov.net>
* doc/emacs/search.texi (Special Isearch): Put related items together.
Move isearch-char-by-name closer to isearch-emoji-by-name.
2022-01-14 Eli Zaretskii <eliz@gnu.org>
Update docs of 'xref-query-replace-in-results'
* doc/emacs/maintaining.texi (Identifier Search): Update the
documentation of 'xref-query-replace-in-results'.
2022-01-14 Sergey Vinokurov <serg.foo@gmail.com>
Use assq_no_quit on all local_var_alist accesses
* src/data.c (Fkill_local_variable):
* src/buffer.c (buffer_local_value): Use assq_no_quit instead of
Fassoc/Fassq on local_var_alist (bug#53242).
* src/data.c (Flocal_variable_p): Use assq_no_quit instead of
open-coding the search on local_var_alist.
2022-01-14 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'xref-find-references-and-replace'
* etc/NEWS: Clarify the 'xref-find-references-and-replace' entry.
* doc/emacs/maintaining.texi (Identifier Search): Document
'xref-find-references-and-replace'.
2022-01-14 Miha Rihtaršič <miha@kamnitnik.top>
Fix python-eldoc affecting unrelated comint processes
* lisp/progmodes/python.el (python-shell-send-string-no-output): Don't
let-bind comint-preoutput-filter-functions globally for all comint
processes. Modify the behaviour of only the current python
process (bug#53219).
2022-01-14 Robert Pluim <rpluim@gmail.com>
Improve function-alias-p documentation
* doc/lispref/functions.texi (Defining Functions): Improve the text.
2022-01-14 Po Lu <luangruo@yahoo.com>
Try to make sure an XKB desc is always available
* src/xterm.c (handle_one_xevent): Re-retrieve XKB map if it's
unavailable for some reason upon handling an XKB map or keyboard
notify event.
2022-01-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix byte-compilation warning in pcvs-info
* lisp/vc/pcvs-info.el (cvs-mode-toggle-mark): Fix
byte-compilation warning.
2022-01-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
34ca4ff9a5 Fix Edebug specification for inline functions (Bug#53068).
3c06c37a8b Remove mention of removed `gnus-treat-play-sounds' variabl...
2022-01-13 Po Lu <luangruo@yahoo.com>
* INSTALL: Document using Emacs on alternative window systems.
2022-01-13 Dmitry Gutov <dgutov@yandex.ru>
xref-find-references-and-replace: New command
* lisp/progmodes/xref.el (xref-find-references-and-replace):
New command.
2022-01-13 Dmitry Gutov <dgutov@yandex.ru>
Steamline xref-query-replace-in-results
* lisp/progmodes/xref.el (xref-query-replace-in-results):
Steamline the most common scenario
(https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00864.html).
2022-01-13 Po Lu <luangruo@yahoo.com>
Fix out of bounds bitmap access on Haiku
* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): Fix
out of bounds access to bitmap data.
2022-01-13 Po Lu <luangruo@yahoo.com>
Refresh keyboard mapping upon receiving new XKB map
* src/xterm.c (handle_one_xevent): Call
XkbRefreshKeyboardMapping where required.
2022-01-13 Stefan Kangas <stefan@marxist.se>
Prefer defvar-keymap to easy-mmode-defmap
* lisp/progmodes/gud.el (gud-minibuffer-local-map):
* lisp/vc/pcvs-info.el (cvs-status-map): Use defvar-keymap.
* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap): Document as
deprecated.
2022-01-13 Theodor Thornhill <theo@thornhill.no>
João Távora <joaotavora@gmail.com>
Change from symbol-at-point to thing-at-point
* eglot.el (eglot-rename): Change from symbol-at-point to
thing-at-point to avoid interning a symbol. Add "unknown symbol" to
prompt when no symbol is found.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/385
2022-01-13 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'isearch-emoji-by-name'
* lisp/isearch.el (isearch-menu-bar-map, isearch-emoji-by-name):
Fix wording of documentation.
* etc/NEWS: Fix wording of the 'isearch-emoji-by-name' entry.
* doc/emacs/search.texi (Special Isearch): Fix wording of the
documentation of 'isearch-emoji-by-name'; move it out of the
enumeration that deals with non-ASCII characters in general.
2022-01-13 Eli Zaretskii <eliz@gnu.org>
Fix frame-undeletion menu items
* lisp/menu-bar.el (menu-bar-file-menu): Fix wording of the new
menu items and their help-echo. Don't show "Undelete Frame"
in the menu unless there is a frame to undelete.
2022-01-13 Eli Zaretskii <eliz@gnu.org>
Avoid scrolling display when point moves into invisible text
* src/xdisp.c (try_cursor_movement): Handle point moving into
invisible text. (Bug#53215)
2022-01-13 Michael Albinus <michael.albinus@gmx.de>
* doc/lispref/functions.texi (Defining Functions): Fix thinko.
2022-01-13 Brian Leung <bkleung89@gmail.com>
Support optional diagnostic.tags
https://microsoft.github.io/language-server-protocol/specifications/specification-3-17/#diagnosticTag
A DiagnosticTag can be either 1 (DiagnosticTag.Unnecessary) or
2 (DiagnosticTag.Deprecated). Following the rendering suggestions in
the protocol, we fade out Unnecessary code and strike-through
Deprecated code.
* eglot.el (eglot-diagnostic-tag-unnecessary-face)
(eglot-diagnostic-tag-deprecated-face): New faces.
(eglot--tag-faces): New defconst.
(eglot--lsp-interface-alist): Add Diagnostic.tags.
(eglot-client-capabilities): Advertise supported tags.
(eglot-handle-notification): Assign the appropriate properties.
* eglot-tests.el (diagnostic-tags-unnecessary-code): New test.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/794
2022-01-13 Eli Zaretskii <eliz@gnu.org>
Improve preserving X coordinate during scroll commands
* src/window.c (window_scroll_pixel_based): Don't unnecessarily
move the iterator. (Bug#53220)
2022-01-13 Stefan Kangas <stefan@marxist.se>
* lisp/jsonrpc.el (Version): Bump to 1.0.15.
2022-01-13 Po Lu <luangruo@yahoo.com>
Fix passive input focus when the pointer moves over inferiors
* src/xterm.c (handle_one_xevent): Don't detect focus on entry
and exit events if we're not on the top window.
2022-01-13 Stefan Kangas <stefankangas@gmail.com>
* eglot.el: improve commentary section.
2022-01-13 Stefan Kangas <stefankangas@gmail.com>
Support racket-langserver
* eglot.el (eglot-server-programs): Support racket-langserver.
* README.md:
* NEWS.md: Update for above changes.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/694
2022-01-13 Robert Pluim <rpluim@gmail.com>
spelling-tests.el: actually create a temp directory
This test was creating a file, but actually needs a directory, and
fails otherwise.
* test/lisp/so-long-tests/spelling-tests.el (so-long-spelling):
Pass the :directory arg to ert-with-temp-file so we actually
create a directory.
2022-01-13 Po Lu <luangruo@yahoo.com>
Filter key release events through GTK when using native input
* src/gtkutil.c (xg_filter_key): Set correct event type for key
release events.
* src/xterm.c (x_filter_event): Also filter release events.
2022-01-13 Lars Ingebrigtsen <larsi@gnus.org>
Make ert explainers work on function aliases
* lisp/emacs-lisp/ert.el: New function.
(ert--expand-should-1): Use it (bug#53178).
2022-01-13 Lars Ingebrigtsen <larsi@gnus.org>
Avoid infloops in help-fns--analyze-function with aliases
* lisp/help-fns.el (help-fns--analyze-function): Use
function-alias-p to avoid infloops.
2022-01-13 Lars Ingebrigtsen <larsi@gnus.org>
Add new function function-alias-p
* doc/lispref/functions.texi (Defining Functions): Document it.
* lisp/subr.el (function-alias-p): New function (bug#53178).
2022-01-13 Gregory Heytings <gregory@heytings.org>
Undelete deleted frames.
* lisp/frame.el (undelete-frame): New command.
(undelete-frame--handle-delete-frame): New auxiliary function.
(undelete-frame--deleted-frames): New auxiliary variables.
(undelete-frame-mode): New minor mode.
(ctl-x-5-map): Bind the new command.
* etc/NEWS: Document the new command and minor mode.
* src/frame.c (Fdelete_frame): Update docstring, and mention the
minor mode.
* lisp/menu-bar.el (menu-bar-file-menu): Add an entry for the
new command.
* doc/emacs/frames.tex (Frame Commands): Document the new command
and minor mode.
See bug#51883.
2022-01-12 Po Lu <luangruo@yahoo.com>
Fix GTK native input methods randomly freezing input
* src/gtkutil.c (xg_widget_key_press_event_cb): Exercise the X11
connection causing pselect to return immediately from input.
(bug#53160)
2022-01-12 Po Lu <luangruo@yahoo.com>
Block input when drawing fringe bitmaps on Haiku
* src/haikuterm.c (haiku_draw_fringe_bitmap): Block input.
2022-01-12 Po Lu <luangruo@yahoo.com>
Use XI2 focus events on X toolkit builds
* src/xfns.c (setup_xi_event_mask): Set focus masks on both the
shell window and the frame window.
* src/xterm.c (x_detect_focus_change): Enable XI2 focus code on
Xt.
2022-01-12 Stefan Kangas <stefan@marxist.se>
* lisp/jsonrpc.el (jsonrpc--debug): Use apply on format args list.
2022-01-12 Eric Abrahamsen <eric@ericabrahamsen.net>
Rework setting/unsetting of gnus-registry-enabled
The basic idea is, we're moving the setting/unsetting of
`gnus-registry-enabled' so that it is a more reliable indicator of
whether the registry is actually available or not.
* lisp/gnus/gnus-registry.el (gnus-registry-load): Move the setting of
`gnus-registry-enabled' here, after we're sure the registry actually
has been loaded.
(gnus-registry-initialize): Move it out of here. All this function
does is conditionally call `gnus-registry-load'.
(gnus-registry-register-message-ids): Only check
`gnus-registry-enabled', since we'd more confident about this
now. Sort checks in order of increasing complexity.
(gnus-registry-clear): Unset `gnus-registry-enabled'.
(gnus-registry-install-hooks): This function should only install
hooks, not set variables.
(gnus-registry-unload-hook): Change the unload hook to call
`gnus-registry-clear', as that will do all the necessary
work (including calling `gnus-registry-unload-hook')
2022-01-12 Stefan Monnier <monnier@iro.umontreal.ca>
Merge remote-tracking branch 'origin/emacs-28' into trunk
2022-01-12 Juri Linkov <juri@linkov.net>
* lisp/subr.el (remove-hook): Use set-variable-value-history for value history
2022-01-12 Stefan Kangas <stefankangas@gmail.com>
Bump eglot version to 1.8
* eglot.el (Version): Bump to 1.8.
* NEWS.md (1.8): Rename header from "(upcoming)".
2022-01-12 Juri Linkov <juri@linkov.net>
* lisp/leim/quail/emoji.el: New file (bug#52605).
2022-01-12 Daniel Martín <mardani29@yahoo.es>
Add isearch-emoji-by-name
* lisp/isearch.el (isearch-emoji-by-name): Add a new command to insert
Emoji characters into incremental search strings. (Bug#52605)
(isearch-mode-map): Bind it to 'C-x 8 e RET'.
(isearch-menu-bar-map): Add it to the menu bar.
* doc/emacs/search.texi (Special Isearch): Update the documentation to
mention the new command.
* etc/NEWS: And advertise it.
2022-01-12 Glenn Morris <rgm@gnu.org>
Prefer unexport in Makefiles
* admin/grammars/Makefile.in, leim/Makefile.in:
* lisp/Makefile.in, test/Makefile.in:
Use unexport for EMACSLOADPATH.
2022-01-12 Glenn Morris <rgm@gnu.org>
Avoid user environment interfering with bootstrap
* Makefile.in, admin/unidata/Makefile.in:
* doc/misc/Makefile.in, lib-src/Makefile.in:
Don't export user environment variables that can affect running
emacs. (Bug#53038)
2022-01-12 Jim Porter <jporterbugs@gmail.com>
Follow POSIX/GNU argument conventions for 'eshell-eval-using-options'
* lisp/eshell/esh-opt.el (eshell--split-switch): New function.
(eshell-set-option): Allow setting a supplied value instead of always
consuming from 'eshell--args'.
(eshell--process-option): Support consuming option values specified as
a single token.
(eshell--process-args): For short options, pass full switch token to
'eshell--process-option'.
* test/lisp/eshell/esh-opt-tests.el (esh-opt-process-args-test): Fix
test.
(test-eshell-eval-using-options): Add tests for various types of
options.
* doc/misc/eshell.texi (Defining new built-in commands): New
subsection, describe how to use 'eshell-eval-using-options'.
* etc/NEWS: Announce the change.
2022-01-12 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations with variable-weight fonts
* src/font.c (font_score, font_delete_unmatched): Don't assume
weight, slant, and width properties of the font must be fixnums:
some variable-weight fonts violate that assumption. Reported
by Sean Whitton <spwhitton@spwhitton.name>. This is for builds
with Fontconfig < v2.11.91, for which the fix in
'ftfont_pattern_entity' cannot work. (Bug#52888)
2022-01-12 Sean Whitton <spwhitton@spwhitton.name>
Skip virtual FcPattern entries for variable weight fonts
* src/ftfont.c (ftfont_list): Pass FC_VARIABLE to FcObjectSetBuild.
* src/ftfont.c (ftfont_pattern_entity): Skip meta/virtual FcPattern
entries for variable weight fonts (Bug#52888).
2022-01-12 Po Lu <luangruo@yahoo.com>
Use correct coordinates when translating XI2 crossing events
* src/xwidget.c (xwidget_motion_or_crossing): Use displaced
position instead of event position.
2022-01-12 Po Lu <luangruo@yahoo.com>
Ignore scroll lock key on Haiku
* src/haiku_support.cc (keysym_from_raw_char): Return special
value for keys that shouldn't be sent to Emacs.
(DispatchMessage): Respect said value.
2022-01-12 Brian Leung <bkleung89@gmail.com>
Don't error out on unsupported diagnostic.codedescription
A codeDescription property is, at the time of writing, an object with
an href property (of type URI, or a string), denoting a "URI to open
with more information about the diagnostic error".
It's not obvious how best to put this into a Flymake diagostic
aside from simply appending it to the diagnostic message, so we'll
worry about it some other time.
* eglot.el (eglot--lsp-interface-alist)
(eglot-client-capabilities): Don't error out on unsupported
Diagnostic.codeDescription.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/768
2022-01-12 Po Lu <luangruo@yahoo.com>
Translate more keys on Haiku
* src/haiku_support.cc (keysym_from_raw_char): Translate print,
scroll lock, and pause/break.
2022-01-12 Lars Ingebrigtsen <larsi@gnus.org>
Don't do Gnus article emphasis in text/html parts
* lisp/gnus/gnus-art.el (gnus-treat-emphasize): Don't do emphasis
in text/html parts, because this leads to mis-filled text
(especially with *...* that's boldified, which typically becomes
much wider).
2022-01-11 Po Lu <luangruo@yahoo.com>
Fix arity error when trying to add a file to an automake project
* lisp/cedet/ede/project-am.el (project-add-file): Add ignored
_FILE parameter like the other `project-add-file' methods.
2022-01-11 Po Lu <luangruo@yahoo.com>
Fix display of text decorations in the mode line
This is considered a temporary fix until the cause of
fringe-overwriting underlines is established.
* src/xterm.c (x_draw_glyph_string): Don't constrain decorations
if the row is a tab or modeline.
2022-01-11 Po Lu <luangruo@yahoo.com>
Avoid unnecessary lookup of min and max keycodes when XKB is present
* src/xterm.c (x_emacs_to_x_modifiers): Avoid calling
XDisplayKeycodes when that information is available in the xkb
desc and is not needed anyway.
2022-01-11 Po Lu <luangruo@yahoo.com>
Ignore resetting devices upon some events we don't have to handle
* src/xterm.c (handle_one_xevent): Ignore SlaveSwitch
DeviceChanged events.
2022-01-11 Alan Mackenzie <acm@muc.de>
Merge branch 'master' into scratch/correct-warning-pos
2022-01-11 Alan Mackenzie <acm@muc.de>
Remove the filename argument from the command line after an ELC+ELN build
This fixes bug #53164. Without this fix, bootstrap-emacs loads the source
file uselessly into a buffer after completing the compilation.
2022-01-11 Juri Linkov <juri@linkov.net>
* lisp/window.el (display-comint-buffer-action): Move to the end of file.
Move closer to pop-to-buffer-same-window after its default value
display-buffer--same-window-action is defined.
2022-01-11 Juri Linkov <juri@linkov.net>
* lisp/vc/vc.el (vc-shrink-buffer-window): New function (bug#51062).
(vc-diff-finish-functions): New variable.
(vc-diff-finish): Use it.
(vc-log-finish-functions): New variable.
(vc-log-internal-common): Use it.
2022-01-11 Juri Linkov <juri@linkov.net>
* src/window.c (other-window-scroll-default): New variable (bug#51210).
(Fother_window_for_scrolling): Use it.
2022-01-11 Juri Linkov <juri@linkov.net>
More fixes for display-comint-buffer-action
* lisp/window.el (display-comint-buffer-action):
Use display-buffer--same-window-action as the default value.
* lisp/progmodes/sh-script.el (sh-show-shell):
* lisp/shell.el (shell): Add display-comint-buffer-action to pop-to-buffer.
* lisp/progmodes/project.el (project-shell, project-eshell): Use
`bound-and-true-p display-comint-buffer-action' for backward-compatibility.
https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg02964.html
2022-01-11 Morgan Smith <Morgan.J.Smith@outlook.com>
Fix display-comint-buffer-action default behavior (closes bug#52878)
* lisp/window.el (display-comint-buffer-action): Make it an alist.
2022-01-11 Paul Eggert <eggert@cs.ucla.edu>
Clean up filelock code related to errno
Reduce dependency on Haiku internals, by not assuming that
Haiku errno values (which are negative) are neither -1 nor -2.
This removes an #ifdef HAIKU while still maintaining
portability to Haiku.
* src/filelock.c (NEGATIVE_ERRNO, ANOTHER_OWNS_IT, I_OWN_IT):
New constants, which should work regardless of whether
we are on Haiku or B_USE_POSITIVE_POSIX_ERRORS is defined.
(current_lock_owner, lock_if_free, lock_file, unlock_file)
(Ffile_locked_p): Use them, without assuming anything about errno
value sign.
2022-01-11 Paul Eggert <eggert@cs.ucla.edu>
Fix userlock diagnostic
* lisp/userlock.el (ask-user-about-lock):
Fix typo (missing paren) in diagnostic.
2022-01-11 Po Lu <luangruo@yahoo.com>
Stop ungrabbing when freeing XI devices
This breaks when x_free_xi_devices is called from a
HierarchyChange event where a master device has been removed or
a slave device has been detached, and it should no longer be
required since we now rely on passive grabs.
* src/xterm.c (x_init_master_valuators): Stop calling
XIUngrabDevice on all devices.
2022-01-11 Po Lu <luangruo@yahoo.com>
Make native input work on GTK 2
* src/gtkutil.c (xg_create_frame_widgets): Allow focusing fixed
widget.
2022-01-11 Po Lu <luangruo@yahoo.com>
Stop decoding GTK event strings when using native input
* src/gtkutil.c (xg_widget_key_press_event_cb): Stop decoding
event strings.
2022-01-11 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-minor-mode-cycle--bind): Fix outline-on-heading-p.
When calling outline-on-heading-p, set its argument INVISIBLE-OK to t,
so when <backtab> (bound to outline-cycle-buffer) hides the current outline
at a deep level, <backtab> should continue cycling outlines even when
the current outline heading is invisible. It worked this way before
the recent change that moved cycling keys from font-lock text properties
to outline-minor-mode keymap with :filter.
2022-01-11 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
8db5f82d45 ; Fix tabulated-list-mode tests after revert
2022-01-11 Po Lu <luangruo@yahoo.com>
Fix creating GUI frames in an automatically started server on Haiku
* lisp/term/haiku-win.el: Correct specification of
`display-format-alist'.
2022-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
(files-tests--with-buffer-offer-save): Turn it into a function
* test/lisp/files-tests.el (files-tests--with-buffer-offer-save):
Turn it into a function.
(files-tests-save-buffers-kill-emacs--asks-to-save-buffers)
(files-tests-buffer-offer-save): Adjust calls accordingly
2022-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
(hack-one-local-variable-constantp): Mark as obsolete
* lisp/files.el (hack-one-local-variable-constantp): Mark as obsolete.
(hack-one-local-variable-eval-safep): Use `macroexp-const-p` instead.
2022-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
Merge remote-tracking branch 'origin/emacs-28' into trunk
2022-01-10 Fredrik Bergroth <fbergroth@gmail.com>
Support autoimporttext from pyright language server
* eglot.el (eglot-completion-at-point): show autoImportText via company-docsig.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/769
2022-01-10 Sam Steingold <sds@gnu.org>
Use 'auth-info-password' in tests
* test/lisp/auth-source-tests.el (auth-source-test-searches):
(auth-source-test-secrets-create-secret):
(auth-source-test-netrc-create-secret, auth-source-delete):
Use 'auth-info-password' instead of ad hoc code.
2022-01-10 Sam Steingold <sds@gnu.org>
Update for the recent change
* doc/misc/auth.texi (Help for developers): Document
'auth-source-pick-first-password' and 'auth-info-password'.
Update the 'auth-source-search' example.
2022-01-10 Po Lu <luangruo@yahoo.com>
Use window beneath mouse for determining scroll deltas on Haiku
* src/haikuterm.c (haiku_read_socket): Use window underneath
wheel for calculating scroll deltas.
2022-01-10 Po Lu <luangruo@yahoo.com>
* src/filelock.c (lock_if_free): Fix Haiku positive errno check.
2022-01-10 Paul Eggert <eggert@cs.ucla.edu>
Assume C99 when defining pD
* src/lisp.h (pD): Assume C99 or later, to simplify the ifdefs.
2022-01-10 Felicián Németh <felician.nemeth@gmail.com>
Add tooltip describing pending requests
* eglot.el (eglot--mode-line-format): Add tooltip to `pending'.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/784
2022-01-10 Karl Fogel <kfogel@red-bean.com>
Document external maintenance of some packages
Document the fact that some packages in Emacs are externally
maintained, and specifically document Org Mode's external maintenance.
For more context, see the thread that starts here:
https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00366.html
From: Karl Fogel
To: Emacs Devel
Subject: Improving documentation of Org Mode integration into Emacs.
Date: Sat, 04 Dec 2021 15:14:59 -0600
Message-ID: <87zgpgax7w.fsf@red-bean.com>
2022-01-10 Juri Linkov <juri@linkov.net>
Add diff-mode-read-only to enable shorter keys in diff-mode
To be able to use outline-minor-mode-cycle keys in diff-mode,
outline-minor-mode should be higher in minor-mode-map-alist,
and a new variable diff-mode-read-only should be set
when the diff-mode buffer is read-only.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00740.html
* lisp/vc/diff-mode.el: Add diff-mode-read-only to minor-mode-map-alist.
(diff-mode-read-only): New buffer-local variable.
(diff-mode): Set diff-mode-read-only to t when buffer-read-only is non-nil.
Update diff-mode-read-only in read-only-mode-hook.
Remove buffer-read-only from minor-mode-overriding-map-alist.
Remove view-mode-hook because now view-mode is higher than
diff-mode-read-only in minor-mode-map-alist.
* lisp/vc/vc-git.el (vc-git-stash-show):
* lisp/vc/vc.el (vc-diff-internal): Set buffer-read-only to t
before calling diff-mode that will set diff-mode-read-only.
2022-01-10 Juri Linkov <juri@linkov.net>
* lisp/outline.el: Don't set outline-minor font-lock text property 'keymap'.
Instead of adding font-lock text property 'keymap' with
outline-minor-mode-cycle on headings in outline-minor-mode,
check for outline-minor-mode-cycle and outline-on-heading-p
in :filter on keys from the keymap of outline-minor-mode.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00180.html
(outline-minor-mode-cycle--bind): Add a condition on outline-minor-mode-cycle
and outline-on-heading-p in :filter.
(outline-font-lock-keywords): Remove if-branches for outline-minor-mode-cycle
that added keymap.
(outline-minor-mode-highlight-buffer): Don't put keymap on overlays.
(outline-minor-mode): Rewrite :keymap setting to rely on
easy-mmode-define-keymap, and add :inherit outline-minor-mode-cycle-map.
Don't check for outline-minor-mode-cycle to add font-lock keywords.
(outline--insert-open-button, outline--insert-close-button):
Remove :parent outline-minor-mode-cycle-map.
2022-01-10 Eli Zaretskii <eliz@gnu.org>
Fix 'exchange-point-and-mark' in 'transient-mark-mode'
* lisp/simple.el (exchange-point-and-mark): Don't deactivate mark
when 'transient-mark-mode' is ON. (Bug#53150)
2022-01-10 Po Lu <luangruo@yahoo.com>
Implement recent improvements to underline display on PGTK
* src/pgtkterm.c (pgtk_draw_glyph_string): Respect new underline
face fields.
2022-01-10 Po Lu <luangruo@yahoo.com>
Prevent text decorations from overwriting surrounding areas on X
* src/xterm.c (x_draw_underwave): New parameter
`decoration_width'.
(x_draw_glyph_string): Constrain decoration width to current
text area.
2022-01-10 Po Lu <luangruo@yahoo.com>
Allow controlling the underline position of faces
* doc/lispref/display.texi (Face Attributes): Document new
`:position' property of the `:underline' attribute.
* etc/NEWS: Announce new property.
* lisp/cus-face.el (custom-face-attributes): Implement
customization for new face attribute.
* src/dispextern.h (struct face): New fields
`underline_pixels_above_descent_line' and
`underline_at_descent_line_p'.
* src/haikuterm.c (haiku_draw_text_decoration):
* src/nsterm.m (ns_draw_text_decoration):
* src/w32term.c (w32_draw_glyph_string):
* src/xterm.c (x_draw_glyph_string): Respect new face fields.
* src/xfaces.c (realize_gui_face): Handle new `:position'
keyword.
(syms_of_xfaces): New symbol `:position'.
2022-01-10 Po Lu <luangruo@yahoo.com>
* doc/emacs/xresources.texi (GTK resources): Fix dead links.
2022-01-10 Po Lu <luangruo@yahoo.com>
Load X resources from a settings file like other programs on Haiku
* doc/emacs/haiku.texi (Haiku Basics): Document how X resources
are discovered on Haiku.
* src/haiku_support.cc (class Emacs): Load settings file.
(be_find_setting): New function.
* src/haiku_support.h (be_find_setting): New prototype.
* src/haikuterm.c (get_string_resource): Look in the settings
file if there's nothing in the in-memory resource database.
2022-01-10 Michael Albinus <michael.albinus@gmx.de>
* admin/MAINTAINERS: Add Tramp compatibility note
2022-01-10 Po Lu <luangruo@yahoo.com>
Use phys cursor height instead of font base to set spot Y
* src/xfns.c (xic_set_xfontset): Use `phys_cursor_height' to
avoid the spot potentially appearing at an incorrect position.
2022-01-10 Po Lu <luangruo@yahoo.com>
Don't set callbacks on XIC when adjusting spot if callbacks are off
* src/xfns.c (xic_set_preeditarea): Don't set callbacks if the
XIC style is not XIMPreeditCallbacks. (bug#53146)
2022-01-09 Po Lu <luangruo@yahoo.com>
Make toggling native input methods via shift work again
* src/xterm.c (handle_one_xevent): Start filtering XI key
release events again, but drop the event if the IM asked.
2022-01-09 Stefan Kangas <stefan@marxist.se>
Make old elide-head commands wrappers for mode
* lisp/elide-head.el (elide-head, elide-head-show): Make into
wrappers around elide-head-mode.
2022-01-09 Po Lu <luangruo@yahoo.com>
Don't hard code key codes on Haiku
* src/haiku_support.cc (keysym_from_raw_char): New function.
(DispatchMessage): Map raw character to keysym if applicable.
(be_map_key): Delete function.
* src/haiku_support.h (struct haiku_key_event): Update fields
to hold keysym and character instead.
* src/haikuterm.c (haiku_read_socket): Don't call be_map_key,
and use keysym field if provided instead.
2022-01-09 Po Lu <luangruo@yahoo.com>
Map some more keypad keys on Haiku
* src/haiku_support.cc (BMapKey): Rename to `be_map_key'.
(be_map_key): Recognize more key codes.
* src/haiku_support.h (BMapKey, be_map_key): Adjust accordingly.
* src/haikuterm.c (haiku_read_socket): Likewise.
2022-01-09 Po Lu <luangruo@yahoo.com>
Fix build without X11 I18N
* src/xterm.c (event_handler_gdk):
(handle_one_xevent):
(x_draw_window_cursor):
(x_term_init): Fix build without HAVE_X_I18N.
2022-01-09 Po Lu <luangruo@yahoo.com>
Fix off-by-one errors in caret position application
* src/gtkutil.c (xg_im_context_preedit_changed):
* src/xfns.c (xic_preedit_caret_callback):
(xic_preedit_draw_callback): Constrain caret position to
SCHARS (arg) - 1.
2022-01-09 Stefan Kangas <stefan@marxist.se>
* lisp/abbrev.el (edit-abbrevs-mode-map): Use defvar-keymap.
2022-01-09 Stefan Kangas <stefan@marxist.se>
Do interactive mode tagging for edit-abbrevs-mode
* lisp/abbrev.el (edit-abbrevs-redefine)
(abbrev-edit-save-to-file, abbrev-edit-save-buffer): Interactive mode
tagging for edit-abbrevs-mode.
(edit-abbrevs-mode): Make non-interactive.
2022-01-09 Brian Leung <bkleung89@gmail.com>
Properly print error message of eglot-alternatives
* eglot.el (eglot-alternatives): Work with the listified form. This
allows presumed executables provided as (EXECUTABLE &rest ARGS...)
to be displayed in the error.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/786
2022-01-09 Brian Leung <bkleung89@gmail.com>
Add up-to-date server executables for html/css/json
* README.md: Advertise updated executables.
* eglot.el (eglot-server-programs): Prioritize the alternatives.
The {html,css,json}-languageserver executables that are distributed
outside VS Code are not regularly updated by Microsoft; any relevant
updates to the VS Code source tree reach VS Code users without the
need for VS Code developers to go out of their way to publish new
versions of the executables. Consequently, users of other editors who
have been using the server executables from the most obvious NPM
packages are likely using stale versions.
@hrsh7th, a Vim user, created an NPM package with updated versions of these
executables taken straight from VS Code's source tree. We therefore
prefer to direct users to the corresponding repo, which contains
appropriate installation instructions, in the README.
2022-01-09 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/gnus/nnnil.el (nnnil-close-server): Add new `defs` arg
2022-01-09 Ivan Sokolov <ivan-p-sokolov@ya.ru>
Add doc-string indices to easy-mmode-{defmap,defsyntax}
* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap)
(easy-mmode-defsyntax): Declare third argument as doc-string.
(Bug#52978)
2022-01-09 Po Lu <luangruo@yahoo.com>
Fix filelock.c for Haiku
This was found during the investigation surrounding bug#53136,
but is not directly related.
* src/filelock.c (lock_if_free): Explictly test err against -1
or -2, and reverse sign of system errors on Haiku. (No Haiku
error occupies -1 or -2.)
2022-01-09 Po Lu <luangruo@yahoo.com>
Add an option to display the cursor at the beginning of any preedit text
Believe it or not, people actually want this, because it makes
Emacs behave closer to some other editors such as WPS Office.
* lisp/term/x-win.el
(x-display-cursor-at-start-of-preedit-string): New user option.
(x-preedit-text): Respect new option.
2022-01-09 Po Lu <luangruo@yahoo.com>
Pass through caret position from native GTK input methods
* src/gtkutil.c (xg_im_context_preedit_changed): Set caret
position appropriately.
* src/xfns.c (xg_widget_key_press_event_cb): Ignore modifier
keys.
(xic_preedit_caret_callback, xic_preedit_draw_callback):
Constrain caret position to the string length as well.
2022-01-09 Po Lu <luangruo@yahoo.com>
Fix specification of caret position
* src/xfns.c (xic_preedit_caret_callback):
(xic_preedit_draw_callback): Use `cursor' property correctly.
* src/xterm.c (handle_one_xevent): Stop filtering XI release
events. This caused more problems than it fixed.
2022-01-09 Po Lu <luangruo@yahoo.com>
Add missing part of last commit
* src/xterm.h (struct x_output): Add field `preedit_caret'.
2022-01-09 Po Lu <luangruo@yahoo.com>
Display caret in preedit text where the input method asked
* src/xfns.c (xic_preedit_start_callback): Clear caret position.
(xic_preedit_caret_callback): Record new caret position and
announce it.
(xic_preedit_done_callback): Clear caret position.
(xic_preedit_draw_callback): Set caret position appropriately.
2022-01-09 Po Lu <luangruo@yahoo.com>
Fix native GTK input for cyrillic input methods
* src/gtkutil.c (xg_widget_key_press_cb): Get unicode mapping of
keyval if string doesn't exist.
* src/xterm.c (handle_one_xevent): Fix build without
HAVE_X_I18N.
2022-01-09 Stefan Kangas <stefan@marxist.se>
New minor mode elide-head-mode
* lisp/elide-head.el (elide-head-mode): New minor mode. (Bug#52980)
(elide-head--delete-overlay, elide-head--show)
(elide-head--hide): New functions factored out from ...
(elide-head, elide-head-show): ... here. Make obsolete in favor
of elide-head-mode.
(elide-head-headers-to-hide): Doc fix.
* test/lisp/elide-head-tests.el (ert-x): Require.
(elide-head-tests-elide-head-mode)
(elide-head-tests-elide-head-mode/enable-disable)
(elide-head-tests-elide-head-mode/normal-mode)
(elide-head-tests-elide-head-mode/revert-buffer): New tests.
(elide-head--add-test): Update test to use elide-head-mode.
(elide-head-tests-elide-head)
(elide-head-tests-elide-head-with-prefix-arg)
(elide-head-tests-show): Make obsolete.
2022-01-09 Po Lu <luangruo@yahoo.com>
* lisp/term/x-win.el (x-preedit-text): Make edit overlay window local.
2022-01-09 Brian Leung <bkleung89@gmail.com>
Add vim-language-server for vimrc-mode
* README.md: Advertise.
* eglot.el (eglot-server-programs): Add vim-language-server.
2022-01-09 Brian Leung <bkleung89@gmail.com>
Add cmake-language-server for cmake-mode
* README.md: Advertise.
* eglot.el (eglot-server-programs): Add cmake-language-server.
2022-01-09 Po Lu <luangruo@yahoo.com>
Reduce flicker on Haiku Emacs tooltips
* src/haikuterm.c (haiku_read_socket): Ignore motion events from
tooltip frames.
2022-01-09 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
30f1bdb41f Clarify docstring of package-native-compile
c54fda643d Fix Subject "simplification" in Rmail
2022-01-09 Po Lu <luangruo@yahoo.com>
* src/image.c (syms_of_image): Declare support for webp on Haiku.
2022-01-08 Po Lu <luangruo@yahoo.com>
Add support for native webp images on Haiku
* src/haikuimage.c (haiku_can_use_native_image_api): Add support
for `webp' images.
2022-01-08 Po Lu <luangruo@yahoo.com>
Make caps lock work on Haiku
* src/haiku_support.cc (map_caps):
(map_caps_shift): New functions.
(DispatchMessage): Map keys with the appropriate map if caps
lock is on.
2022-01-08 Po Lu <luangruo@yahoo.com>
Fix some problems with Haiku font display
* src/haiku_font_support.cc (BFont_char_bounds): Fix rounding
errors.
(BFont_open_pattern): Set size before setting family and style.
2022-01-08 Stefan Kangas <stefankangas@gmail.com>
Un-reverse references in xref buffer
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/763
2022-01-08 Po Lu <luangruo@yahoo.com>
Implement override redirect on Haiku
* src/haiku_support.cc (pre_override_redirect_style):
(pre_override_redirect_feel): New variables.
(BWindow_set_override_redirect):
* src/haiku_support.h (BWindow_set_override_redirect): New
functions.
* src/haikufns.c (haiku_create_frame): Set override redirect.
(haiku_set_override_redirect): New function.
(haiku_frame_parm_handlers): Add `haiku_set_override_redirect'
2022-01-08 Martin Carlson <spearalot@gmail.com> (tiny change)
Add variable to withhold the init req process id
* eglot.el (eglot-withhold-process-id): New defvar.
(eglot--connect): Don't send pid to language server if above new
defvar has a non-nil value.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/722
2022-01-08 Po Lu <luangruo@yahoo.com>
Fix some portability bugs in gtkutil.c
* src/gtkutil.c (xg_widget_key_press_event_cb): Surround raising
SIGIO with USABLE_SIGIO.
2022-01-08 NA <na@aisrntairetnraoitn.com> (tiny change)
Support language server for html, css, json and docker
* eglot.el (eglot-server-programs): Support html-languageserver,
css-languageserver, json-languageserver, and docker-langserver.
* README.md: Update documentation for above changes.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/204
2022-01-08 Stefan Kangas <stefankangas@gmail.com>
Minor checkdoc fixes
* eglot.el (eglot, eglot--when-buffer-window, eglot--widening)
(eglot-initialization-options, eglot--current-flymake-report-fn)
(eglot-handle-notification, eglot-handle-request)
(eglot--highlight-piggyback, eglot-register-capability)
(eglot-unregister-capability):
* eglot-tests.el (auto-detect-running-server, auto-shutdown)
(auto-reconnect, eglot--tests-force-full-eldoc, rename-a-symbol)
(basic-completions, non-unique-completions, basic-xref)
(snippet-completions, snippet-completions-with-company)
(eglot-eldoc-after-completions, python-yapf-formatting)
(javascript-basic, json-basic, eglot-ensure)
(eglot--guessing-contact): Doc fixes; formatting.
* eglot.el (xref-backend-identifier-completion-table): Fix error
format.
2022-01-08 Omar Polo <op@omarpolo.com>
Add lua-lsp support for lua-mode
* eglot.el (eglot-server-programs): Add support for the lua-lsp server for lua.
* README.md: Document the above change.
2022-01-08 jgart <47760695+jgarte@users.noreply.github.com> (tiny change)
Add support for the mint language server
* eglot.el (eglot-server-programs): Add support for the mint language server.
* README.md: Document the above change.
2022-01-08 Illia Danko <illia@aigent.com> (tiny change)
Add pyright language server support for python-mode
* eglot.el (eglot-server-programs): Add pyright support for
python-mode.
* README.md: Document the above change.
2022-01-08 Philipp Edelmann <edelmann@fs.tum.de> (tiny change)
Use fortls also for fortran-mode
* eglot.el (eglot-server-programs): Use fortls also for fortran-mode.
2022-01-08 Brian Leung <bkleung89@gmail.com>
Add yaml-language-server for yaml-mode
* eglot.el (eglot-server-programs): Add yaml-language-server.
* README.md: Mention yaml-language-server.
2022-01-08 lorniu/sz <lorniu@gmail.com> (tiny change)
Use `locate-user-emacs-file` instead of `concat`
* eglot.el (eglot--eclipse-jdt-contact): Use locate-user-emacs-file.
2022-01-08 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d2284b0353 ; Update files for 28.0.91 pretest
# Conflicts:
# lisp/ldefs-boot.el
2022-01-08 Po Lu <luangruo@yahoo.com>
Make sure native keypresses are received immediately on GTK
* src/gtkutil.c (xg_widget_key_press_event_cb): Send input
available signal.
2022-01-08 Po Lu <luangruo@yahoo.com>
Fix pinch-to-scale on real X servers and NS
* lisp/face-remap.el (text-scale-pinch): Stop waiting for
more events.
2022-01-08 Po Lu <luangruo@yahoo.com>
Correctly translate GDK virtual modifiers when using native input
* src/gtkutil.c (xg_virtual_mods_to_x): New function.
(xg_widget_key_press_event_cb): Translate modifiers to X first.
2022-01-08 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp for `auth-info-password'
* lisp/net/tramp-compat.el (tramp-compat-auth-info-password):
New defalias.
* lisp/net/tramp.el (tramp-read-passwd): Use it.
2022-01-08 Po Lu <luangruo@yahoo.com>
* src/haikuterm.c (haiku_clear_frame): Fix clipping.
2022-01-08 Po Lu <luangruo@yahoo.com>
Add an option to rely on passive touch grabs on X
This prevents crashes with three-finger touch gestures on
Xwayland running on GNOME Shell, and also when running some
programs that make use of an Emacs window's XID on the same X
server.
* src/xterm.c (handle_one_xevent): Respect
`x-input-grab-touch-events'.
(syms_of_xterm): New option `x-input-grab-touch-events.
2022-01-08 Eli Zaretskii <eliz@gnu.org>
Improve documentation of native input methods
* doc/emacs/mule.texi (International, Input Methods)
(Unibyte Mode): Document user-level features of native input
methods.
2022-01-08 Po Lu <luangruo@yahoo.com>
* lisp/cus-start.el (standard): Fix standard customizables for PGTK.
2022-01-08 Po Lu <luangruo@yahoo.com>
Fix build on PGTK
* src/gtkutil.c (xg_mark_data):
* src/gtkutil.h (xg_filter_key): Ifdef out definitions on PGTK.
2022-01-08 Po Lu <luangruo@yahoo.com>
Allow using GTK+ to handle input methods on X
* doc/emacs/xresources.texi (Table of Resources): Document new
value of `inputStyle'.
* etc/NEWS: Announce new option.
* lisp/cus-start.el (standard): Add `x-gtk-use-native-input'.
* src/gtkutil.c (xg_mark_data): Mark xg_pending_quit_event.
(xg_add_virtual_mods):
(xg_im_context_commit):
(xg_im_context_preedit_changed):
(xg_im_context_preedit_end):
(xg_widget_key_press_event_cb):
(xg_filter_key): New functions.
* src/gtkutil.h: Add prototype for `xg_filter_key'.
* src/xfns.c (xic_set_preeditarea): Set cursor location for the
GTK IM context as well.
* src/xterm.c (xg_pending_quit_event): New variable.
(x_focus_changed): Set focus on the GTK input context as well.
(x_filter_event): Filter events through GTK if the user asked
for it.
(handle_one_xevent): Likewise.
(XTread_socket): Set hold_quit to xg_pending_quit_event if it
exists.
(x_draw_window_cursor): Always set preedit area even if XIC
doesn't exist.
* src/xterm.h (struct x_display_info): New field
`prefer_native_input'.
(struct x_output): New field `im_context'.
2022-01-07 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (pgtk_enqueue_string): Free return of g_utf8_to_ucs4.
2022-01-07 Po Lu <luangruo@yahoo.com>
Call EVENT_INIT in some places
* src/xfns.c (xic_preedit_done_callback):
(xic_preedit_draw_callback): Call EVENT_INIT.
2022-01-07 Sam Steingold <sds@gnu.org>
Add `auth-info-password' and use it instead of ad hoc code
* lisp/auth-source.el (auth-info-password):
Extract from `auth-source-pick-first-password'.
(auth-source-pick-first-password, auth-source-secrets-create)
(auth-source-user-and-password): Use `auth-info-password'.
* lisp/erc/erc-services.el (erc-nickserv-get-password):
Use `auth-source-pick-first-password'.
* lisp/erc/erc.el (erc-open, erc-server-join-channel): Likewise.
* lisp/gnus/mail-source.el (mail-source-set-1): Add a comment.
* lisp/gnus/nnimap.el (nnimap-credentials): Use `auth-info-password'.
* lisp/gnus/nntp.el (nntp-send-authinfo): Likewise.
* lisp/mail/rmail.el (rmail-get-remote-password): Likewise.
* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Likewise.
* lisp/net/sieve-manage.el (sieve-sasl-auth): Likewise.
* lisp/net/tramp.el (tramp-read-passwd): Likewise.
* lisp/net/rcirc.el (rcirc): Likewise (fixes a bug: the possibility
that password might be a function was not handled).
2022-01-07 Eli Zaretskii <eliz@gnu.org>
Fix "C-SPC C-SPC" after "C-x C-x"
* lisp/simple.el (exchange-point-and-mark): Fix what the command
does when 'transient-mark-mode' is OFF. (Bug#52896)
2022-01-07 Eli Zaretskii <eliz@gnu.org>
Minor improvements for 'pgtk' documentation
* src/dispnew.c (syms_of_display) <initial-window-system>
<window-system>:
* src/frame.c (Fwindow_system):
* doc/lispref/display.texi (Defining Faces, Window Systems):
* doc/lispref/frames.texi (Frames): Mention/explain 'pgtk'/'haiku'.
* doc/lispref/commands.texi (Misc Events): Fix @example and
markup.
2022-01-07 Yuuki Harano <masm+github@masm11.me>
Handle internal events specially on PGTK
* src/xgselect.c (xg_select): If there are pending events already,
don't sleep.
2022-01-07 Yuuki Harano <masm+github@masm11.me>
Write documentation about ARG of the preedit-text event on PGTK
* doc/lispref/commands.texi (Misc Events):
2022-01-07 Po Lu <luangruo@yahoo.com>
Fix special-cased cursor foreground and background correctly on PGTK
* src/pgtkfns.c (x_set_foreground_color):
(x_set_background_color): Set cursor color as well if
appropriate. (bug#53073)
2022-01-07 Po Lu <luangruo@yahoo.com>
Add documentation for the `none' input style
* doc/emacs/xresources.texi (Table of Resources): Document
missing value of `inputStyle'.
2022-01-07 Protesilaos Stavrou <info@protesilaos.com>
* admin/MAINTAINERS: Describe Modus themes as externally maintained package
2022-01-07 Po Lu <luangruo@yahoo.com>
* doc/lispref/display.texi (Face Attributes): Update doc for new values.
2022-01-07 Po Lu <luangruo@yahoo.com>
Improve documentation of the preedit-text event
* doc/lispref/commands.texi (Misc Events): Document how
`preedit-text' events are used.
2022-01-07 Po Lu <luangruo@yahoo.com>
Disable new input method behaviour by default on X
* src/xfns.c (supported_xim_styles): Default to STYLE_NONE.
2022-01-07 Po Lu <luangruo@yahoo.com>
Allow controlling the X input method style
* doc/emacs/xresources.texi (Table of Resources): Document new
resource `inputStyle'.
* etc/NEWS: Announce new resource.
* src/xfns.c (create_frame_xic): Give the display info to
`best_xim_style'.
(best_xim_style): Take the display's preferred style into
account.
* src/xterm.c (x_term_init): Parse the preferred style if
inputStyle is set.
* src/xterm.h (struct x_display_info): New field
`preferred_xim_style'.
(STYLE_OFFTHESPOT, STYLE_OVERTHESPOT, STYLE_ROOT):
(STYLE_CALLBACK, STYLE_NONE): New macros.
2022-01-07 Po Lu <luangruo@yahoo.com>
* src/haikuselect.c: Fix implicit declaration of free.
2022-01-07 Po Lu <luangruo@yahoo.com>
Display pre-edit information from X input methods
This also repurposes the `pgtk-preedit-text' event to be
meaningful on X, renames it `preedit-text', and documents it.
* doc/lispref/commands.texi (Misc Events): Document
`preedit-text'.
* lisp/term/pgtk-win.el (pgtk-preedit-text): Bind to
`preedit-text' instead.
* lisp/term/x-win.el (x-preedit-overlay): New variable.
(x-preedit-text): New command, bound as a special event to
`preedit-text'.
* src/keyboard.c (kbd_buffer_get_event):
(make_lispy_event): Rename PGTK_PREEDIT_TEXT_EVENT
PREEDIT_TEXT_EVENT.
(syms_of_keyboard): New defsym `preedit-text'.
* src/pgtkterm.c (pgtk_enqueue_preedit): Use PREEDIT_TEXT_EVENT
instead.
* src/termhooks.h (enum event_kind): Rename
`PGTK_PREEDIT_TEXT_EVENT' `PREEDIT_TEXT_EVENT'.
* src/xfns.c (Xxic_preedit_draw_callback):
(Xxic_preedit_caret_callback):
(Xxic_preedit_done_callback):
(Xxic_preedit_start_callback): New callback variables.
(STYLE_OFFTHESPOT, STYLE_OVERTHESPOT):
(STYLE_ROOT, STYLE_CALLBACK, STYLE_NONE): New macros.
(supported_xim_styles): Use reasonable values. This also serves
as a better fix for bug#10867.
(best_xim_style): Restore code deleted as part of the original
fix for bug#10867.
(create_frame_xic): Add preedit callbacks.
(xic_set_preeditarea): Add preedit callbacks.
(x_xic_to_frame):
(xic_preedit_start_callback):
(xic_preedit_caret_callback):
(xic_preedit_done_callback):
(x_xim_text_to_utf8_unix):
(xic_preedit_draw_callback): New functions.
* src/xterm.c (x_detect_focus_change): Fix type of XI event.
(x_free_frame_resources): Free preedit text buffer if still
present.
* src/xterm.h (struct x_output): New fields `preedit_size',
`preedit_chars' and `preedit_active'.
2022-01-06 Po Lu <luangruo@yahoo.com>
* admin/MAINTAINERS: Add myself for some things.
2022-01-06 Philip Kaludercic <philipk@posteo.net>
Add rcirc-when command
* doc/misc/rcirc.texi: Document rcirc-when.
* etc/NEWS: Document rcirc-when.
* lisp/net/rcirc.el (rcirc-when): Add command.
2022-01-06 Eli Zaretskii <eliz@gnu.org>
Improve documentation of font-related face attributes
* lisp/faces.el (set-face-attribute): Mention aliases of face
attributes. (Bug#53050)
2022-01-06 Michael Albinus <michael.albinus@gmx.de>
* admin/MAINTAINERS: Describe Tramp as externally maintained package
2022-01-06 Eli Zaretskii <eliz@gnu.org>
Revert "Fix selection of fonts that don't have regular weight"
This reverts commit 1b2511fa2aed460120a36765ba16c14e355eef1d.
That commit caused unintended regressions which are worse
than the problem it attempted to fix. See the discussion at
https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg01643.html
for the details.
2022-01-06 Po Lu <luangruo@yahoo.com>
Remove some more useless clipping stack calls on Haiku
* src/haikuterm.c (haiku_draw_box_rect):
(haiku_draw_relief_rect):
(haiku_draw_text_decoration): Get rid of calls to
BView_StartClip and BView_EndClip.
2022-01-06 Po Lu <luangruo@yahoo.com>
Generate TOUCH_END_EVENTs on NS when mwheel momentum is disabled
* src/nsterm.m ([EmacsView mouseDown:]): Generate
TOUCH_END_EVENTs on the first event whose momentum phase is not
NSEventPhaseNone.
2022-01-06 Po Lu <luangruo@yahoo.com>
Make sure touch end events aren't sent too many times
* src/xterm.c (handle_one_xevent): Don't send touch end events
twice if two valuators have their masks set without a change in
value.
2022-01-06 Po Lu <luangruo@yahoo.com>
Add group to xkey state before filtering it on XI_KeyRelease
* src/xterm.c (handle_one_xevent): Add group to xkey.state
before filtering an XI2 key release event. This fixes fcitx on
some systems.
2022-01-06 Po Lu <luangruo@yahoo.com>
Fix GNUstep compilation warnings
* src/Makefile.in (NON_OBJC_CFLAGS): Add `-Wnested-externs'.
* src/emacs.c (load_pdump): Only define exec_bufsize if
!NS_SELF_CONTAINED.
* src/image.c (ARGB_TO_ULONG): Don't define if HAVE_NS.
* src/nsterm.m (ns_destroy_window): Pacify incorrect GCC
warning.
(ns_query_color): Make static.
(ns_run_loop_break): Fix old-style definition.
([EmacsView toggleFullScreen:]): Remove unused variable.
2022-01-06 Po Lu <luangruo@yahoo.com>
Fix duplicate overhang display on GNUstep
* src/nsfont.m (nsfont_draw): Stop saving DPS clip and remove
workaround for bad clipping.
* src/nsterm.m (ns_draw_glyph_string): Clip to glyph string rect
when displaying overhangs.
2022-01-05 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Check for errors when kbd map.
2022-01-05 Stefan Monnier <monnier@iro.umontreal.ca>
cl-generic.el: Fix bug#46722
Fix longstanding bug due to unexpected interference via side-effect.
* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher):
Copy the `dispatch` arg before storing it into the hash-table.
2022-01-05 Juri Linkov <juri@linkov.net>
* lisp/textmodes/paragraphs.el (repunctuate-sentences): Use filter variable.
(repunctuate-sentences-filter)<defun>:
Reimplement without using match data.
(repunctuate-sentences-filter)<defvar>: New variable.
(repunctuate-sentences): Use new variable.
Remove regexp group from spaces as was before.
https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00395.html
2022-01-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in cvs-status-mode-map keymap
* lisp/vc/cvs-status.el (cvs-status-mode-map): Fix typo in keymap
definition.
2022-01-05 Eli Zaretskii <eliz@gnu.org>
Fix info-lookup docs and "C-h S" in major-modes with no manuals
* lisp/info-look.el (info-lookup-alist, info-lookup-add-help)
(info-lookup-symbol, info-lookup-file, info-lookup)
(info-lookup-interactive-arguments): Clarify and expand the doc
strings.
(info-lookup-change-mode): Topic values can have their `:mode' as
a cons cell, not just a mode's symbol; support that.
2022-01-05 Po Lu <luangruo@yahoo.com>
Enable subpixel antialiasing on the Cairo font driver on Haiku
* src/ftcrfont.c (ftcrfont_open): Manually enable subpixel
antialiasing on Haiku.
* src/haiku_support.cc
(get_subpixel_antialiasing): New function declaration.
(be_use_subpixel_antialising):
* src/haiku_support.h (be_use_subpixel_antialising): New
functions.
2022-01-05 Stefan Kangas <stefan@marxist.se>
* lisp/buff-menu.el (Buffer-menu-mode-map): Use defvar-keymap.
2022-01-05 Po Lu <luangruo@yahoo.com>
Resolve clipping related mysteries on Haiku
* src/ftcrfont.c (ftcrfont_draw):
* src/haikufont.c (haikufont_draw): Remove workarounds for
previously broken clipping code.
* src/haikuterm.c (haiku_clip_to_string): Handle empty clipping
rectangles correctly.
(haiku_clip_to_string_exactly): Stop setting num_clips.
(haiku_draw_glyph_string): Stop saving face when drawing
overhangs.
2022-01-05 Po Lu <luangruo@yahoo.com>
Make sure mouse face doesn't stay on the cursor after it is cleared
cursor_in_mouse_face_p will still return true when the phys
cursor is drawn inside show_mouse_face when called by
clear_mouse_face, since that drawing happens before
hlinfo->mouse_face_window can be set to nil.
However, the row's mouse_face_p will be adjusted before the
cursor is drawn in show_mouse_face, so it can be used to
determine if the cursor is actually under mouse face.
* src/xdisp.c (fill_composite_glyph_string):
(fill_gstring_glyph_string):
(fill_glyphless_glyph_string):
(fill_glyph_string):
(fill_xwidget_glyph_string):
(fill_stretch_glyph_string): Only apply mouse face when
DRAW_CURSOR if the row is also mouse_face_p.
(set_glyph_string_background_width): Only adjust width if the
row holding the cursor is also mouse_face_p.
2022-01-05 Po Lu <luangruo@yahoo.com>
Simply conditions for mouse face display when drawing cursor on Haiku
* src/haikuterm.c (haiku_draw_stretch_glyph_string): Simplify
conditions for mouse face display.
2022-01-05 Po Lu <luangruo@yahoo.com>
Remove some unnecessary graphics state saves on Haiku
* src/haikufont.c (haikufont_draw):
* src/haikuterm.c (haiku_draw_box_rect):
(haiku_draw_relief_rect):
(haiku_draw_underwave):
(haiku_draw_text_decoration):
(haiku_draw_plain_background):
(haiku_draw_glyph_string_foreground):
(haiku_draw_glyphless_glyph_string_foreground):
(haiku_draw_stretch_glyph_string):
(haiku_draw_composite_glyph_string_foreground):
(haiku_draw_image_glyph_string): Remove unnecessary calls to
BView_StartClip and BView_EndClip.
2022-01-05 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e7aa3ece52 Fix vc-git with old Git over Tramp and cygwin-mount.el
c0cfbca311 * lisp/emacs-lisp/checkdoc.el (bytecomp): Add missing require
# Conflicts:
# etc/NEWS
2022-01-04 Po Lu <luangruo@yahoo.com>
Fix xwidgets setting their own signal handlers
* src/xgselect.c (release_select_lock):
(acquire_select_lock): Fix coding style.
(xg_select): Call `catch_child_signal' if xwidgets are enabled.
* src/xwidget.c (kill_xwidget):
(kill_buffer_xwidgets): Call `catch_child_signal'. (bug#53013)
2022-01-04 Po Lu <luangruo@yahoo.com>
Fix display of internal border in child frames on pgtk
* src/pgtkfns.c (Fx_create_frame): Fix child frame border
resource names.
* src/pgtkterm.c (pgtk_clear_under_internal_border): Fix test
for child frames. (bug#53018)
2022-01-04 Po Lu <luangruo@yahoo.com>
Correctly set up XI key input mask on X Toolkit builds
* src/xfns.c (setup_xi_event_mask): Also set the key event mask
on the outer window, which might also have the input focus.
(x_window) [USE_X_TOOLKIT]: Set up XI event mask a bit later.
2022-01-04 Daniel Mendler <mail@daniel-mendler.de>
completion--nth-completion: Throw meaningful error
If a configured completion style does not exist, throw a meaningful
error. Also make completion-styles-alist a defvar, since completion
styles like orderless extend it.
* lisp/minibuffer.el (completion-styles-alist): Make it a defvar.
(completion--nth-completion): Give a more meaningful error.
2022-01-04 Paul Eggert <eggert@cs.ucla.edu>
Update from gnulib
2022-01-04 Robert Pluim <rpluim@gmail.com>
Remove ambiguity from key-valid-p docstring
* lisp/keymap.el (key-valid-p): Be explicit about the separator
being one and only one space.
2022-01-04 Lars Ingebrigtsen <larsi@gnus.org>
Improve pp-emacs-lisp-code for #'
* lisp/emacs-lisp/pp.el (pp--insert-lisp): Format (function ...)
as #'.
2022-01-04 Eli Zaretskii <eliz@gnu.org>
A cleaner fix for display bug#52947
* src/xdisp.c (tab_bar_height, redisplay_tab_bar): Don't call
set_iterator_to_next here...
(display_tab_bar_line): ...call it here, even if we exit the loop
because we encounter a newline.
2022-01-04 Jimmy Aguilar Mena <spacibba@aol.com>
Autoload decorator for windmove-mode
2022-01-04 Po Lu <luangruo@yahoo.com>
Translate more modifiers to GDK ones in xwidgets
* src/xwidget.c (xw_translate_x_modifiers): Also handle Control
and ShiftMask.
2022-01-04 Po Lu <luangruo@yahoo.com>
Stop assuming X kbd state works with GDK when forwarding events to xwidgets
* src/xwidget.c (xw_translate_x_modifiers): New function.
(Fxwidget_perform_lispy_event): Translate X modifiers to GDK
modifiers before sending them to the xwidget.
2022-01-04 Po Lu <luangruo@yahoo.com>
Make `x-file-dialog' arity match documentation on Haiku
* lisp/term/haiku-win.el (x-file-dialog): Fix arity.
2022-01-04 Alan Third <alan@idiocy.org>
Remove macOS drop-shadows on some frames (bug#28512)
* src/nsterm.m ([EmacsWindow setParentChildRelationships]): Remove
shadows on undecorated child frames.
2022-01-04 Stefan Kangas <stefan@marxist.se>
Remove unnecessary autoload cookie in font-core.el
* lisp/font-core.el (font-lock-defaults): Remove autoload of
risky-local-variable property; this file is preloaded.
2022-01-04 Yuuki Harano <masm+github@masm11.me>
Remove gsettings.m4 and write directly into Makefile.in
* configure.ac (HAVE_PGTK): Declare substitution
(HAVE_GSETTINGS): Declare substitution
* Makefile.in (HAVE_PGTK): New variable
(HAVE_GSETTINGS): New variable
(gsettingsschemadir): Don't use value from gsettings.m4
(distclean): Add clean-gsettings-schemas
(install-gsettings-schemas): Implement instead of gsettings.m4
(uninstall-gsettings-schemas): Implement instead of gsettings.m4
(clean-gsettings-schemas): Implement instead of gsettings.m4
($(gsettings_SCHEMAS:.xml=.valid)): Implement instead of gsettings.m4
* m4/gsettings.m4: Remove
2022-01-04 Jim Porter <jporterbugs@gmail.com>
Prevent further cases of duplicated separators in context menus
In some cases, context menu items are added before the overall prompt
string. This could cause multiple consecutive separators to appear if
they "surround" the prompt string. (Bug#52293)
* lisp/mouse.el (context-menu-map): Improve the de-duplication logic
to ignore non-menu-items when checking for consecutive separators.
* test/lisp/mouse-tests.el
(context-menu-map-remove-consecutive-separators)
(context-menu-map-remove-separators-at-beginning-or-end): New tests.
2022-01-04 Po Lu <luangruo@yahoo.com>
Fix unused variable warning in last change
* src/haiku_draw_support.c (BBitmap_transform_bitmap): Fix
unused variable warning.
2022-01-04 Po Lu <luangruo@yahoo.com>
Rationalize Haiku rectangle handling
* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp):
(BView_DrawMask):
(rotate_bitmap_270):
(rotate_bitmap_90):
(BBitmap_transform_bitmap):
* src/haiku_support.cc (UnZoom):
(GetParentWidthHeight):
(MakeFullscreen):
(AttachCairoSurface):
(AfterResize):
(DrawContent):
(BView_cr_dump_clipping): Use new rectangle handling macros.
* src/haiku_support.h (BE_RECT_WIDTH, BE_RECT_HEIGHT): New
macros.
2022-01-04 Po Lu <luangruo@yahoo.com>
Make menu bar key navigation work on Haiku
* src/haiku_support.cc (menu_bar_active_p): New variable.
(DispatchMessage): Pass through key events if the menu bar is
active.
(MenusBeginning, MenusEnd): Set `menu_bar_active_p' according
to the state of the menu bar.
(BMenuBar_delete): Clear `menu_bar_active_p'.
* src/haikufns.c (haiku_free_frame_resources): Block input only
after checking that F is a window system frame.
* src/haikumenu.c (Fhaiku_menu_bar_open): Update doc string.
2022-01-04 Po Lu <luangruo@yahoo.com>
Improve Haiku frame restacking logic
* src/haiku_support.cc (BWindow_is_active):
* src/haiku_support.h (BWindow_is_active): New functions.
* src/haikufns.c (Fhaiku_frame_restack): Prevent the newly
raised frame from being sent to the back of the display.
2022-01-04 Po Lu <luangruo@yahoo.com>
Find a way to make restacking frames work on Haiku
* doc/lispref/frames.texi (Raising and Lowering): Update
documentation to reflect that restacking frames is now
supported on Haiku.
* lisp/frame.el (haiku-frame-restack): New declaration.
(frame-restack): Use `haiku-frame-restack' on Haiku.
* src/haiku_support.cc (BWindow_send_behind):
* src/haiku_support.h (BWindow_send_behind):
* src/haikufns.c (Fhaiku_frame_restack): New functions.
(syms_of_haikufns): New subr `haiku-frame-restack'.
2022-01-03 Stefan Kangas <stefan@marxist.se>
* test/src/doc-tests.el: New file.
2022-01-03 Po Lu <luangruo@yahoo.com>
Add effective group to xkey events when handling XI key press events
* src/xterm.c (handle_one_xevent): Add effective group to
xkey.state when translating XI key events.
2022-01-03 Stefan Kangas <stefan@marxist.se>
Fix two unused variable warnings in make-docfile.c
* lib-src/make-docfile.c (scan_lisp_file): Fix unused variable
warnings.
2022-01-03 Stefan Kangas <stefan@marxist.se>
Test that buffer exists in shortdoc-all-groups-work
* test/lisp/emacs-lisp/shortdoc-tests.el
(shortdoc-all-groups-work): Test that the shortdoc buffer was created.
2022-01-03 Po Lu <luangruo@yahoo.com>
Fix Haiku bitmap sanity checks
* src/haikufns.c (haiku_get_pixel, haiku_put_pixel): Fix sanity
checking of coordinate values.
2022-01-03 Po Lu <luangruo@yahoo.com>
Fix fringe bitmap display on haiku again
* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp): Fix
off-by-one errors.
2022-01-03 Po Lu <luangruo@yahoo.com>
Fix duplicate file panel display on Haiku
* lisp/term/haiku-win.el (x-file-dialog): Fix up prompt to look
better.
* src/haiku_support.cc (be_popup_file_dialog): Remove duplicate
call to `Show'.
2022-01-03 Stefan Kangas <stefan@marxist.se>
New test shortdoc-all-groups-work
* test/lisp/emacs-lisp/shortdoc-tests.el
(shortdoc-all-groups-work): New test. See Bug#52969.
2022-01-03 Stefan Monnier <monnier@iro.umontreal.ca>
Revert part of 59732a83c8 to fix bug#52969
While we don't need to put docstrings of .elc files into etc/DOC,
we still need to put those of `loaddefs.el` there since we don't have
a "dynamic docstring" feature for the non-compiled files and keeping
the actual docstrings in the heap would be prohibitive.
* src/Makefile.in ($(etc)/DOC): Scan `lisp/loaddefs.el` still.
* lib-src/make-docfile.c (scan_lisp_file): New function.
(scan_file): Use it.
(skip_white, read_lisp_symbol, search_lisp_doc_at_eol): New functions.
2022-01-03 Po Lu <luangruo@yahoo.com>
* src/haiku_font_support.cc (BFont_char_bounds): Fix bearings.
2022-01-03 Po Lu <luangruo@yahoo.com>
Synchronize at a better place when making a frame visible on Haiku
* src/haiku_support.cc (BWindow_set_visible): Stop synchronizing
here.
* src/haikufns.c (haiku_visualize_frame):
(haiku_unvisualize_frame): Sychronize after visibility changes.
2022-01-03 Po Lu <luangruo@yahoo.com>
Implement AC line status for the Haiku battery function
* lisp/battery.el (battery--search-haiku-acpi-status): Return
`fully-charged' instead of `normal'.
(battery-haiku-acpi-battery): Implement %L for AC line status.
2022-01-03 Stefan Kangas <stefan@marxist.se>
elide-head: Make GPL regexp more forgiving
* lisp/elide-head.el (elide-head-headers-to-hide): Make GPL regexp
more forgiving.
* test/lisp/elide-head-tests.el (elide-head--add-test): New macro.
(elide-head--test-headers-to-hide/gpl2-1)
(elide-head--test-headers-to-hide/gpl3-1)
(elide-head--test-headers-to-hide/gpl3-2)
(elide-head--test-headers-to-hide/gpl3-3)
(elide-head--test-headers-to-hide/gpl3-4): New tests.
2022-01-03 Po Lu <luangruo@yahoo.com>
Fix battery load calculation on Haiku
* lisp/battery.el (battery-haiku-acpi-battery): Fix load
calculation.
2022-01-03 Po Lu <luangruo@yahoo.com>
Add support for the Haiku ACPI battery driver
* lisp/battery.el (battery-status-function): Choose
`battery-haiku-acpi-battery' if the Haiku ACPI driver is
available.
(battery--search-haiku-acpi-status):
(battery-haiku-acpi-battery): New functions.
2022-01-03 Stefan Kangas <stefan@marxist.se>
* lisp/elide-head.el (elide-head-headers-to-hide): Simplify.
2022-01-02 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler in eieio tests
This is a temporary workaround for Bug#52971.
* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el
(eieio-compat)
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-compat):
Silence byte-compiler by wrapping require in with-no-warnings.
2022-01-02 Po Lu <luangruo@yahoo.com>
Don't try to guess a delta if a scroll valuator's state is unknown
* src/xterm.c (x_get_scroll_valuator_delta): Return DBL_MAX if
the scroll valuator's value is unknown.
2022-01-02 Po Lu <luangruo@yahoo.com>
Revert "Stop sending touch-end events if coalescing scroll events"
This reverts commit a6952f78f3962ac2d9a5add580a130f0abd31429.
2022-01-02 Po Lu <luangruo@yahoo.com>
Use XKB to find modifiers on x
* src/xterm.c (x_find_modifier_meanings): Look for virtual
modifiers with Xkb instead.
(handle_one_xevent): Add group when translating XI2 keycodes and
handle Xkb keymap events.
(x_term_init): Populate dpyinfo->xkb_event_type.
* src/xterm.h (struct x_display_info): New field
`xkb_event_type', and change modifier masks to `unsigned int'.
2022-01-02 Po Lu <luangruo@yahoo.com>
* src/haikumenu.c (haiku_menu_show): Fix input blocking.
2022-01-02 Stefan Kangas <stefan@marxist.se>
Move define-keymap and defvar-keymap to keymap.el
These functions deal with the "new" keymap binding interface, so they
belong in keymap.el rather than in subr.el.
* lisp/subr.el (define-keymap--compile, define-keymap)
(defvar-keymap): Move from here ...
* lisp/keymap.el (define-keymap--compile, define-keymap)
(defvar-keymap): ... to here.
2022-01-02 Stefan Monnier <monnier@iro.umontreal.ca>
Merge remote-tracking branch 'origin/emacs-28' into trunk
2022-01-02 Stefan Kangas <stefan@marxist.se>
elide-head: Add support for modified BSD license
* lisp/elide-head.el (elide-head-headers-to-hide): Add support for
the modified BSD license (3-clause BSD).
2022-01-02 Stefan Kangas <stefan@marxist.se>
New :type key for defcustom
As compared to the old type key-sequence that deals with raw key
sequences, this :type conforms to the format used by the new keymap-*
functions.
* lisp/wid-edit.el (key): New widget type. (Bug#52523)
(widget-key-prompt-value-history): New variable.
(widget-key-validate): New function.
(key-sequence): Doc fix.
* doc/lispref/customize.texi (Simple Types): Document above new type.
2022-01-02 Mattias Engdegård <mattiase@acm.org>
Don't fail flymake-tests if `gcc` actually is Clang
* test/lisp/progmodes/flymake-tests.el (flymake-tests--gcc-is-clang)
(different-diagnostic-types, included-c-header-files): Skip tests that
depend on the `gcc` command really being GCC and not Clang.
2022-01-02 Po Lu <luangruo@yahoo.com>
Add column width to tooltip frame width on pgtk
* src/pgtkfns.c (Fx_show_tip): Add column width to width to
avoid an odd problem in the GTK allocation code. (bug#52705)
2022-01-02 Po Lu <luangruo@yahoo.com>
Fix mouse wheel scroll direction on pgtk
* src/pgtkterm.c (scroll_event): Fix scroll modifiers when
`mwheel-coalesce-scroll-events' is nil.
2022-01-02 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
efb1c7ec37 ; * admin/notes/years: More known problems.
f475c5823a ; Copyright year fixes
2684def348 ; Run set-copyright from admin.el
2558b37b5e ; * admin/notes/years: Mention known problems with 'update...
2022-01-01 Po Lu <luangruo@yahoo.com>
Fix XRegisterIMInstantiateCallback function argument configure test
* configure.ac: Use XIDProc where XIMProc was mistakenly used.
2022-01-01 Po Lu <luangruo@yahoo.com>
Stop sending touch-end events if coalescing scroll events
* src/xterm.c (handle_one_xevent): Don't generate touch-end
events if mwheel_coalesce_scroll_events is non-nil.
2022-01-01 Po Lu <luangruo@yahoo.com>
Fix mouse face problems when moving between two frames on Haiku
* src/haiku_support.cc (movement_locker): New locker.
(MouseMoved): Lock that locker.
(BWindow_new):
(BWindow_quit): Use LockLooper instead of Lock.
* src/haikuterm.c (haiku_read_socket): Clear mouse face if
a motion event is received for a frame other than the one
that is currently displaying the mouse face.
2022-01-01 Po Lu <luangruo@yahoo.com>
Make quitting actually work in Haiku file dialogs
* src/haiku_support.h: (be_popup_file_dialog)
* src/haiku_support.cc (be_popup_file_dialog): New parameter
`maybe_quit_function'.
* src/haikufns.c (Fhaiku_read_file_name): Pass `maybe_quit' as
the maybe_quit_function.
2022-01-01 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
58b0ada20b Update more copyright years
2022-01-01 Stefan Kangas <stefan@marxist.se>
elide-head: Support more licenses
* lisp/elide-head.el (elide-head-headers-to-hide): Add support for the
Expat License, and more variants of the BSD-2-Clause License.
Add old FSF address. This fixes a bug reported in 2003:
https://lists.gnu.org/r/bug-gnu-emacs/2003-01/msg00142.html
2022-01-01 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year.
86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year
ebe8772f65 ; Minor fixes related to copyright years
23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye...
8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t.
19dcb237b5 ; Add 2022 to copyright years.
# Conflicts:
# etc/NEWS
# etc/refcards/ru-refcard.tex
# lib/cdefs.h
# lisp/erc/erc-dcc.el
# lisp/erc/erc-imenu.el
# lisp/erc/erc-replace.el
# lisp/image-dired.el
# lisp/progmodes/xref.el
# m4/alloca.m4
# m4/byteswap.m4
# m4/errno_h.m4
# m4/getopt.m4
# m4/gnulib-common.m4
# m4/inttypes.m4
# m4/stddef_h.m4
# m4/stdint.m4
# m4/sys_socket_h.m4
2022-01-01 Po Lu <luangruo@yahoo.com>
Increase size of precision scrolling momentum ring
* lisp/pixel-scroll.el
(pixel-scroll-precision-initial-velocity-factor): Fix
calculation of last timestamp.
(pixel-scroll-precision):
(pixel-scroll-kinetic-state):
(pixel-scroll-accumulate-velocity):
(pixel-scroll-start-momentum):
(pixel-scroll-calculate-velocity): Increase default ring size
to 30.
2022-01-01 Po Lu <luangruo@yahoo.com>
Make last change compile
* src/haiku_support.cc (EmacsShow): Fix last change.
(TearDownDoubleBuffering): Likewise.
(Draw): Draw normally if not double buffered even if shown_flag
is true.
2022-01-01 Po Lu <luangruo@yahoo.com>
Fix expose events in non-double-buffered child frames on Haiku
* src/haiku_support.cc (EmacsShow): Set shown_flag to 1 only if
this view is double buffered.
(TearDownDoubleBuffering): Clear shown_flag.
2022-01-01 Po Lu <luangruo@yahoo.com>
Fix some more off-by-one errors in Haiku image code
* src/haiku_draw_support.cc (BView_DrawBitmapWithEraseOp):
(BView_DrawMask):
(BBitmap_transform_bitmap):
* src/haiku_support.cc (AttachCairoSurface): Adjust calculations
to take account of BRect width and height functions returning
(start - end) instead of the actual width and height of the
rectangle.
2022-01-01 Po Lu <luangruo@yahoo.com>
Fix deadlocks with invisible frames and threads in Haiku
* src/haiku_support.cc (class EmacsWindow): New field
`was_shown_p'.
(EmacsShow): Lock looper if the window wasn't ever visible.
(BWindow_new): Unlock window looper after creating it.
2022-01-01 Po Lu <luangruo@yahoo.com>
Set display last user time when handling pinch events
* src/xterm.c (handle_one_xevent): Set last user time for XI
pinch events.
2022-01-01 Po Lu <luangruo@yahoo.com>
Fix child frame synchronization order on Haiku
* src/haiku_support.cc (DoMove):
(FrameMoved): Fix locking and sync order semantics.
2022-01-01 Po Lu <luangruo@yahoo.com>
Implement numeric values of `mouse-highlight' on Haiku
* src/haikuterm.c (haiku_read_socket): Clear mouse face on
keyboard input if `mouse-highlight' is a fixnum.
2022-01-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2021-12-31 02:56:06 UTC.
2022-01-01 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
67400da412 Improve doc strings of fringe indicator variables
a6adfe21e4 * lisp/tab-line.el (tab-line--get-tab-property): New funct...
2022-01-01 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f2031d0ddb Minor improvement in user documentation of completion style
1e3076e2db Fix bug where bookmark-jump used (point), not (point-at-bol)
2022-01-01 Po Lu <luangruo@yahoo.com>
Flush frames after mouse face is cleared on a child frame in Haiku
* src/haiku_support.cc (~EmacsWindow):
(UpwardsSubsetChildren):
(UpwardsUnSubsetChildren): Fix locking semantics.
* src/haikuterm.c (haiku_read_socket): Flush dirty back buffers
after clearing mouse face because the pointer was moved out of a
frame.
2021-12-31 Po Lu <luangruo@yahoo.com>
Print dead xwidgets specially
* src/print.c (print_vectorlike) <PVEC_XWIDGET>: Print "killed
xwidget" for dead xwidgets.
2021-12-31 Alan Mackenzie <acm@muc.de>
Try to make scratch/correct-warning-pos build on Windows and not segfault
* src/comp.c (emit_EQ): Replace calls to gcc_jit_context_new_location with
NULLs.
(Fcomp__init_ctxt): Remove the register_emitter call for Qsymbol_with_pos_p,
which was causing a segfault.
2021-12-31 Alan Mackenzie <acm@muc.de>
Miscellaneous enhancements to scratch/correct-warning-pos.
1. Check the type (symbol with position) of the argument given to the native
compiled version of SYMBOL_WITH_POS_SYM.
2. Handle infinite recursion caused by circular lists, etc., in
macroexp-strip-symbol-positions by using hash tables.
3. Read byte compiled functions without giving symbols positions.
* lisp/emacs-lisp/comp.el (comp-finalize-relocs): Add symbol-with-pos-p into
the list of relocated symbols.
* lisp/emacs-lisp/macroexp.el (macroexp--ssp-conses-seen)
(macroexp--ssp-vectors-seen, macroexp--ssp-records-seen): Renamed, and
animated as hash tables.
(macroexp--strip-s-p-2): Optionally tests for the presence of an argument in
one of the above hash tables, so as to handle otherwise infinite recursion.
(byte-compile-strip-s-p-1): Add a condition-case to handle infinite recursion
caused by circular lists etc., using the above hash tables as required.
* src/comp.c (comp_t): New element symbol_with_pos_sym.
(emit_SYMBOL_WITH_POS_SYM): Amend just to call the new SYMBOL_WITH_POS_SYM.
(emit_CHECK_SYMBOL_WITH_POS, define_SYMBOL_WITH_POS_SYM): New functions.
(Fcomp__init_ctxt): Register an emitter for Qsymbol_with_pos_p.
(Fcomp__compile_ctxt_to_file): Call define_SYMBOL_WITH_POS_SYM.
(syms_of_comp): Define Qsymbol_with_pos_p.
* src/data.c (syms_of_data): Define a new error symbol Qrecursion_error, an
error category for the new error symbols Qexcessive_variable_binding and
Qexcessive_lisp_nesting.
* src/eval.c (grow_specpdl): Change the signal_error call to an xsignal0 call
using the new error symbol Qexcessive_variable_binding.
(eval_sub, Ffuncall): Change the `error' calls to xsignal using the new error
symbol Qexcessive_lisp_nesting.
* src/lread.c (read1): When reading a compiled function, read the components
of the vector without giving its symbols a position.
2021-12-31 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in play/*.el
* lisp/play/5x5.el (5x5-mode-map):
* lisp/play/blackbox.el (blackbox-mode-map):
* lisp/play/bubbles.el (bubbles-mode-map):
* lisp/play/decipher.el (decipher-mode-map):
* lisp/play/doctor.el (doctor-mode-map):
* lisp/play/gametree.el (gametree-mode-map):
* lisp/play/gomoku.el (gomoku-mode-map):
* lisp/play/mpuz.el (mpuz-mode-map):
* lisp/play/pong.el (pong-mode-map):
* lisp/play/solitaire.el (solitaire-mode-map): Use defvar-keymap.
2021-12-31 Lars Ingebrigtsen <larsi@gnus.org>
`make-finalizer' now has to be called with a function, so adjust test
2021-12-31 Michael Albinus <michael.albinus@gmx.de>
Documentation update for Secret Service
* doc/misc/auth.texi (Secret Service API): Precise "session" collection.
* lisp/auth-source.el (auth-sources): Adapt custom label.
* lisp/net/secrets.el: Adjust comments.
2021-12-31 Po Lu <luangruo@yahoo.com>
Fix copyright dates in some files belonging to the pgtk port
* src/pgtkgui.h:
* src/pgtkim.c:
* src/pgtkmenu.c:
* src/pgtkselect.c:
* src/pgtkselect.h:
* src/pgtkterm.c:
* src/pgtkterm.h: Fix copyright dates to say '2021'.
2021-12-31 Po Lu <luangruo@yahoo.com>
On Haiku, sync a frames's connection to the app sever after raising
* src/haiku_support.h: (BWindow_sync)
* src/haiku_support.cc (BWindow_sync): New function.
* src/haikuterm.c (haiku_frame_raise_lower): Synchronize window
after raising it to avoid situations where raising windows is
done out-of-order, such as when ediff raises a frame.
2021-12-31 Po Lu <luangruo@yahoo.com>
Fix child frame unlinking on Haiku
* src/haiku_support.cc (UnlinkChild): Fix obvious mistake.
(DoMove): Lock child frame window before moving it.
2021-12-31 Po Lu <luangruo@yahoo.com>
Use a single global lock for the child frame state on Haiku
Each BWindows (and various system callbacks) runs in a separate
thread, so there are very complicated locking semantics that
used to be handled manually. This changes child frame state to
use a single global lock, which makes things much easier.
* src/haiku_support.cc (child_frame_lock): New variable.
(class EmacsWindow):
(~EmacsWindow):
(Unparent):
(ParentTo):
(MoveChild):
(FrameMoved):
(EmacsHide):
(EmacsShow):
(GetParentWidthHeight):
(OffsetChildRect):
(MakeFullscreen):
(SetUpDoubleBuffering): Use a single lock for controlling access
to child frame state.
2021-12-31 Stephen Berman <stephen.berman@gmx.net>
Fix handling of webkit xwidget bookmarks
Make jumping to a bookmarked webkit xwidget in another window or
another frame show the xwidget only in that window or frame and
refactor new session code used by the bookmark code (bug#52856).
In addition, make xwidget-webkit-clone-* commands work.
* lisp/xwidget.el (xwidget-webkit-clone-and-split-below)
(xwidget-webkit-clone-and-split-right): Unbreak these functions by
passing just the URL to them, not the message displaying it.
(xwidget-webkit-bookmark-jump-new-session): Adjust doc string,
rephrasing and removing a customization suggestion that cannot
take effect.
(xwidget-webkit-bookmark-jump-handler): New autoloaded function.
(xwidget-webkit-bookmark-make-record): Use it.
(xwidget-webkit--create-new-session-buffer): New function
extracted from `xwidget-webkit-new-session'.
(xwidget-webkit-new-session): Use it.
2021-12-31 Eli Zaretskii <eliz@gnu.org>
Minor improvements of 'lisp-directory' docs
* lisp/startup.el (lisp-directory):
* etc/NEWS:
* doc/lispref/loading.texi (Library Search): Improve wording of
documentation of 'lisp-directory' and related features.
2021-12-31 Po Lu <luangruo@yahoo.com>
Prevent double buffering from being disabled on USE_BE_CAIRO builds
The direct rendering code used in that situation never
completely worked, and the BDirectWindow destructor is also
buggy. Completely remove that code in order to let us inherit
from BWindow, so as to prevent the buggy destructor from being
run.
* src/haiku_support.cc (cairo_format_from_color_space): Delete
function.
(class EmacsWindow): Inherit from BWindow.
(EmacsWindow): Call BWindow constructor instead.
(MessageReceived):
(DispatchMessage):
(FrameResized):
(FrameMoved):
(Zoom): Call BWindow functions instead.
(EmacsView_cairo_surface): Stop looking for surfaces in the
window.
(EmacsWindow_begin_cr_critical_section):
(EmacsWindow_end_cr_critical_section): Stop locking the window.
* src/haikufns.c (haiku_set_inhibit_double_buffering): Always
enable double buffering on Cairo builds.
2021-12-31 Po Lu <luangruo@yahoo.com>
Don't select for gesture events on xwidgets if the server is too old
* src/xwidget.c (x_draw_xwidget_glyph_string): Only select for
XI gesture events if the server supports XI 2.4 or later.
2021-12-31 Stefan Monnier <monnier@iro.umontreal.ca>
(Fmake_finalizer): Check the arg is a function
* src/eval.c (syms_of_eval): Add `Qfunctionp`.
* src/alloc.c (Fmake_finalizer): Check the arg is a function.
2021-12-31 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/package.el (package-get-version): Add fallback
2021-12-30 Stefan Monnier <monnier@iro.umontreal.ca>
Don't store docstrings of preloaded .el files in etc/DOC
Since the location of those files changes between build time and
installation time, this requires to tweak the file name used in those
(#$ . NNN) references during the dump so they don't hardcode the build
directory. We do it in the same way as was already done for those
same file names in `load-history`, except we convert them back to
absolute file names more lazily (i.e. when fetching the actual
docstring rather than at startup), which requires remembering the
`lisp-dir` computed at startup in the new `lisp-directory` variable.
* src/Makefile.in ($(etc)/DOC): Don't scan Lisp files any more.
* src/lread.c (Fload): Use relative file names for `load-file-name`
when preloading for the dump, like we already did for `current-load-list`.
(read_list): Don't zero-out dynamic docstring references during the
preload since they won't be filled later by Snarf-documentation any more.
(read1): Remove the hash-hack for doc references that were zeroed.
* lisp/startup.el (lisp-directory): New variable.
(command-line): Set it.
* src/doc.c (get_doc_string): Use `lisp-directory` for dynamic
docstring references using relative file names.
(syms_of_doc): Add `Qlisp_directory`.
* lib-src/make-docfile.c (scan_file): Don't handle `.el` or `.elc`
files any more.
(IS_SLASH): Remove macro, not used any more.
(skip_white, read_lisp_symbol, search_lisp_doc_at_eol)
(scan_lisp_file): Remove functions, not used any more.
* doc/lispref/loading.texi (Library Search): Mention `lisp-directory`.
2021-12-30 Po Lu <luangruo@yahoo.com>
Add pinch event support to xwidgets
* src/xterm.c (handle_one_xevent): Pass through pinch events to
xwidgets and provide root coordinates when translating motion
events.
* src/xwidget.c (xwidget_motion_notify): Use provided root
window coordinates.
(xwidget_pinch): New function.
* src/xwidget.h (xwidget_motion_notify): Update prototype.
(xwidget_pinch): New function prototype.
2021-12-30 Po Lu <luangruo@yahoo.com>
Restore original xwidget embedder after performing a lispy event
* src/xwidget.c (Fxwidget_perform_lispy_event): Restore original
embedder after performing event.
(Fdelete_xwidget_view): Block input around non-reentrant
section.
2021-12-30 Po Lu <luangruo@yahoo.com>
* src/xwidget.c (Fxwidget_perform_lispy_event): Use FRAME_WINDOW_P.
2021-12-30 Glenn Morris <rgm@gnu.org>
* lisp/window.el (display-comint-buffer-action): Fix type.
2021-12-30 Philipp Stephani <phst@google.com>
* lisp/emacs-lisp/ert.el (ert-select-tests): Document new error.
* lisp/emacs-lisp/ert.el (ert-select-tests): Simplify nested switch
2021-12-30 Philipp Stephani <phst@google.com>
Properly report errors about unbound ERT test symbols.
Assertions should only be used to check internal consistency within a
package, not to check arguments passed by callers. Instead, define
and use a new error symbol.
* lisp/emacs-lisp/ert.el (ert-test-unbound): New error symbol.
(ert-select-tests): Use it.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-select-undefined): New
unit test.
* etc/NEWS: Document new behavior.
2021-12-30 Eli Zaretskii <eliz@gnu.org>
Fix multisession-tests on MS-Windows
* test/lisp/emacs-lisp/multisession-tests.el
(multi-test-files-simple): On MS-Windows and Haiku, wait before
invoking the Emacs sub-process, not after, to ensure the later
update is detected with 1-sec file time resolution.
2021-12-30 Po Lu <luangruo@yahoo.com>
Make sure widget buttons always have a left box line
* lisp/wid-edit.el (widget-specify-button): Add an invisible
before-string to the button overlay. (bug#51550)
2021-12-30 Alan Mackenzie <acm@muc.de>
CC Mode: Prevent rapid alternation of fontification of "found types"
This fixes bug #52863.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When a new type is
found, postpone entering it into c-found-types (and thus triggering the
fontification of that type throughout the buffer) until the end of the
function, when we're sure that the "type" found actually is a type.
2021-12-30 Eli Zaretskii <eliz@gnu.org>
Fix previous change in 'pop_it'
* src/xdisp.c (restore_face_box_flags): New function.
(pop_it): Use 'restore_face_box_flags'. (Bug#51550)
2021-12-30 Eli Zaretskii <eliz@gnu.org>
Fix start-of-box-face display after display and overlay strings
* src/xdisp.c (pop_it): Recompute the 'start_of_box_run_p' flag,
like we do in 'handle_fontified_prop', when faces change while
iterating over a buffer or string. (Bug#51550)
2021-12-30 Alan Mackenzie <acm@muc.de>
Make symbols with positions work with native compilation
This version of the software should bootstrap Emacs successfully with native
compilation enabled.
* lisp/emacs-lisp/bytecomp.el (byte-compile-strip-s-p-1)
(byte-compile-strip-symbol-positions): Rename and move to macroexp.el. Rename
calls to these functions throughout the file.
(byte-compile-initial-macro-environment): In the code sections for
eval-when-compile and eval-and-compile, call macroexp-strip-symbol-positions
before evaluating code.
(byte-compile-file, byte-compile-output-file-form)
(byte-compile-file-form-defmumble, byte-compile, batch-byte-compile): Call
macroexp-strip-symbol-positions from code being passed to the native compiler.
* lisp/emacs-lisp/cl-macs.el (cl-macs--strip-s-p-1)
(cl-macs--strip-symbol-positions): Remove, replacing them with the renamed
functions in macroexp.el.
(cl-define-compiler-macro): Apply macroexp-strip-symbol-positions to ARGS and
BODY.
* lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Use `null' to compile
byte-not rather than a compilation of `eq'.
(comp--native-compile): bind symbols-with-pos-enabled to t.
* lisp/emacs-lisp/macroexp.el (byte-compile--ssp-conses-seen)
(byte-compile--ssp-vectors-seen, byte-compile--ssp-records-seen): Provisional
auxiliary variables to support the following functions.
(macroexp--strip-s-p-2, byte-compile-strip-s-p-1)
(macroexp-strip-symbol-positions): Functions moved from bytecomp.el, renamed,
and further developed.
(macroexp--compiler-macro): Bind symbol-with-pos-enabled to t around the call
to `handler'.
(internal-macroexpand-for-load): Strip symbol positions from the form being
eagerly expanded for macros.
* src/comp.c (F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM): New macro for a
relocation symbol.
(comp_t): New elements bool_ptr_type, f_symbols_with_pos_enabled_ref,
lisp_symbol_with_position, lisp_symbol_with_position_header,
lisp_symbol_with_position_sym, lisp_symbol_with_position_pos,
lisp_symbol_with_position_type, lisp_symbol_with_position_ptr_type,
get_symbol_with_position.
(helper_GET_SYMBOL_WITH_POSITION): New function.
(emit_BASE_EQ): Function rename from emit_EQ.
(emit_AND, emit_OR, emit_BARE_SYMBOL_P, emit_SYMBOL_WITH_POS_P)
(emit_SYMBOL_WITH_POS_SYM): New functions.
(emit_EQ): New function which handles symbols with position correctly.
(emit_NILP): Use emit_BASE_EQ rather than emit_EQ.
(emit_limple_insn): When emitting a conditional branch, check each operand for
being a literal Qnil, and if one of them is, use emit_BASE_EQ rather than
emit_EQ.
(declare_runtime_imported_funcs): Declare helper_GET_SYMBOL_WITH_POSITION.
(emit_ctxt_code): Export the global F_SYMBOLS_WITH_POS_ENABLED_RELOC_SYM.
(define_lisp_symbol_with_position, define_GET_SYMBOL_WITH_POSITION): New
functions.
(Fcomp__init_ctxt): Initialise comp.bool_ptr_type, call the two new
define_.... functions.
(load_comp_unit): Initialise **f_symbols_with_pos_enabled_reloc.
* src/fns.c (Fput): Strip positions from symbols in PROPNAME and VALUE.
2021-12-30 Juri Linkov <juri@linkov.net>
* lisp/tab-line.el (tab-line-tab-name-format-default): Add help-echo.
(bug#52889)
2021-12-30 Po Lu <luangruo@yahoo.com>
Make xwidget motion commands hscroll the window of wide widgets
* lisp/xwidget.el (xwidget-info): New function declaration.
(xwidget-webkit-scroll-forward):
(xwidget-webkit-scroll-backward): Hscroll the window if the
widget is wider than the text area. (bug#52885)
* src/xwidget.c (xwidget_scroll, xwidget_motion_notify): Apply
clip offsets to coordinates.
2021-12-30 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
06545bc0cc CC Mode: c-update-brace-stack: After struct foo *, do not ...
f11779f01b Improve documentation of 'M-X' and related features
# Conflicts:
# etc/NEWS
2021-12-29 Po Lu <luangruo@yahoo.com>
Work around xwidgets releasing the passive grab on an entry event
* src/xterm.c (handle_one_xevent): Don't send XI_Enter events to
xwidgets if button 1 is pressed.
2021-12-29 Po Lu <luangruo@yahoo.com>
Use XRandR 1.5 to generate monitor attributes if available
* src/xfns.c (x_get_monitor_attributes_xrandr): Use XRR 1.5 if
present.
(xlw_monitor_dimensions_at_pos_1): Remove redundant XRR 1.5
code.
(xlw_monitor_dimensions_at_pos): Rely on
`x_get_monitor_attributes_xrandr' to retrieve the workarea
instead.
2021-12-29 Po Lu <luangruo@yahoo.com>
Translate crossing event mode when sending them to xwidgets
* src/xwidget.c (xi_translate_notify_detail): Use XI constants
instead.
(xwidget_motion_or_crossing): Translate XI entry event mode.
2021-12-29 Juri Linkov <juri@linkov.net>
* lisp/textmodes/paragraphs.el (repunctuate-sentences-filter): New function.
(repunctuate-sentences): Use it on isearch-filter-predicate
to skip unnecessary matches. (bug#52769)
2021-12-29 Juri Linkov <juri@linkov.net>
* lisp/textmodes/sgml-mode.el (sgml-mode): Set skeleton-end-newline to nil.
Prevent skeleton.el from adding a newline to each inserted
skeleton. Those which do want a newline do that explicitly in
their define-skeleton form. This is what texinfo-mode does (bug#52864).
2021-12-29 Eli Zaretskii <eliz@gnu.org>
Fix documentation of 'define-keymap'
* doc/lispref/keymaps.texi (Creating Keymaps)
(Changing Key Bindings): Fix typos, improve wording.
2021-12-29 Eli Zaretskii <eliz@gnu.org>
Fix recent changes in 'keymap-lookup' documentation
* doc/lispref/keymaps.texi (Functions for Key Lookup): Improve
wording, correct typos.
2021-12-29 Tassilo Horn <tsdh@gnu.org>
Revert "Revert "Fix fontification in diff--font-lock-prettify""
This reverts commit 3cadd72673d8095df7eeb8e847db87ae42b5e2f6.
2021-12-29 Tassilo Horn <tsdh@gnu.org>
Revert "Fix fontification in diff--font-lock-prettify"
This reverts commit 1da392d62d1ae743151f7fda83d0725ec6053686.
2021-12-29 Matthias Meulien <orontee@gmail.com>
Fix fontification in diff--font-lock-prettify
* lisp/vc/diff-mode.el (diff--font-lock-prettify): Fix
diff--font-lock-prettify on created or deleted files
(bug#52810).
2021-12-29 Lars Ingebrigtsen <larsi@gnus.org>
Document keymap-set-after in Modifying Menus in lispref
* doc/lispref/keymaps.texi (Modifying Menus): Document
keymap-set-after (bug#52819).
2021-12-29 Lars Ingebrigtsen <larsi@gnus.org>
Document `keymap-lookup' in the lipsref manual
* doc/lispref/keymaps.texi (Functions for Key Lookup): Document
`keymap-lookup' instead of `lookup-key' (bug#52820).
2021-12-29 Lars Ingebrigtsen <larsi@gnus.org>
Move define-keymap manual entry to Creating Keymaps
* doc/lispref/keymaps.texi (Creating Keymaps)
(Changing Key Bindings): Move `define-keymap'/`defvar-keymap' to
the Creating Keymaps node.
2021-12-29 Lars Ingebrigtsen <larsi@gnus.org>
Allow the user to specify shr-width in mm-shr
* lisp/gnus/mm-decode.el (mm-shr): Allow the user to specify the
width by setting `shr-width' (bug#52825).
2021-12-29 Lars Ingebrigtsen <larsi@gnus.org>
Make multi-test-files-busy shorter
Ignore manual/ directory made by admin/make-manuals
2021-12-29 Lars Ingebrigtsen <larsi@gnus.org>
Adjust multi-test-files-simple test for Windows
* test/lisp/emacs-lisp/multisession-tests.el
(multi-test-files-simple): Adjust test to Emacs timestamp
resolution on Windows.
2021-12-29 Po Lu <luangruo@yahoo.com>
Fix a hang on servers that don't support the X Keyboard Extension
* src/xfns.c (Fx_backspace_delete_keys_p): Don't block input
before checking for Xkb.
2021-12-29 Po Lu <luangruo@yahoo.com>
Translate state of XI2 entry events when sending them to xwidgets
* src/xwidget.c (xi_translate_notify_detail): New function.
(xwidget_motion_or_crossing): Translate detail and state of
GenericEvents before sending them to the widget.
2021-12-29 Po Lu <luangruo@yahoo.com>
Get rid of obsolete xwidget-related code on PGTK
* src/emacsgtkfixed.c (emacs_fixed_class_init): Stop setting
obsolete methods.
(EMACS_FIXED_GET_CLASS, struct GtkFixedPrivateL):
(emacs_fixed_gtk_widget_size_allocate): Delete obsolete things.
* src/xwidget.c (x_draw_xwidget_glyph_string): Work around
mysterious bug.
2021-12-29 Po Lu <luangruo@yahoo.com>
Test for Xkb support when opening a display
* src/xfns.c (Fx_backspace_delete_keys_p): Use
dpyinfo->supports_xkb instead of testing for its presence
manually.
* src/xterm.c (x_term_init): Test for Xkb presence
and set supports_xkb appropriately.
* src/xterm.h (struct x_display_info): New field `supports_xkb'.
2021-12-29 Po Lu <luangruo@yahoo.com>
Queue xwidget views for allocation in more places
* src/xwidget.c (Fmake_xwidget) [HAVE_PGTK]:
(Fxwidget_resize) [HAVE_PGTK]: Queue xwidgets and views for
allocation.
2021-12-29 Po Lu <luangruo@yahoo.com>
Improve xwidget event handling on XI2
* src/xterm.c (handle_one_xevent): Pass XI2 entry and leave
events to xwidgets and fix scroll valuator reset logic for
xwidgets.
* src/xwidget.c (xwidget_button_1): Stop ungrabbing all devices
XI2 builds.
(xwidget_motion_or_crossing): Learn to pass through XI2 crossing
events.
(x_draw_xwidget_glyph_string): Add crossing events to the XI2
event mask.
2021-12-29 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
06dcd2be5d Improve rectangle-mark-mode documentation regarding mark a...
2021-12-29 Po Lu <luangruo@yahoo.com>
Translate buttons when sending XI2 motion events to xwidgets
* src/xterm.c (handle_one_xevent): Translate all three buttons
when passing XI2 motion events to xwidgets.
2021-12-29 Po Lu <luangruo@yahoo.com>
Use XI2 to handle xwidget button events
* src/xterm.c (handle_one_xevent): Handle xwidget views when
handling XI_ButtonPress or XI_ButtonRelease events.
* src/xwidget.c (x_draw_xwidget_glyph_string): Add appropriate
values to the XI2 event mask.
2021-12-28 Po Lu <luangruo@yahoo.com>
Fix embedder calculation for xwidgets on PGTK
* src/xwidget.c (Fmake_xwidget):
(x_draw_xwidget_glyph_string): Defer focus event synthesis on
PGTK as well.
(record_osr_embedder): Use view window on PGTK.
(to_embedder):
(from_embedder): Rectify accordingly.
2021-12-28 Po Lu <luangruo@yahoo.com>
Fix NS xwidget build
* src/xwidget.c (kill_frame_xwidget_views):
* src/xwidget.h (kill_frame_xwidget_views): Disable on NS.
2021-12-28 Po Lu <luangruo@yahoo.com>
* src/xwidget.c (syms_of_xwidget): Fix typo.
2021-12-28 Po Lu <luangruo@yahoo.com>
Add support for xwidgets to the PGTK port
* src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS): New function.
(struct GtkFixedPrivateL): New struct.
(emacs_fixed_gtk_widget_size_allocate):
(emacs_fixed_class_init): New functions.
* src/keyboard.h: Declare lispy_function_keys also when
HAVE_PGTK.
* src/pgtkterm.c (x_free_frame_resources): Destroy all xwidget
views.
(pgtk_scroll_run): Move xwidget views that overlap with the
scrolled area.
(pgtk_emacs_to_gtk_modifiers): Expose function.
* src/pgtkterm.h: Wrap in include guard.
(pgtk_emacs_to_gtk_modifiers): New prototype.
* src/xwidget.c (xw_forward_event_translate):
(xw_forward_event_from_view): New functions.
(Fmake_xwidget): Remove obsolete PGTK specific code.
(Fxwidget_perform_lispy_event): Convert modifiers correctly on
PGTK.
(define_cursors): Use GDK functions to define cursors on PGTK.
(xwidget_view_from_window): Disable on non-PGTK builds.
(xwidget_show_view):
(xwidget_hide_view): Implement on PGTK.
(xv_do_draw): Disable on non-PGTK builds.
(offscreen_damage_event): Queue xwidget views for draw.
(xwidget_expose): Disable on non-PGTK builds.
(xwidget_init_view):
(x_draw_xwidget_glyph_string):
(Fdelete_xwidget_view): Implement for PGTK.
(syms_of_xwidget): Don't initialize XID to widget table on PGTK.
(lower_frame_xwidget_views): Disable on PGTK.
* src/xwidget.h (struct xwidget_view): New fields for PGTK
builds.
(kill_frame_xwidget_views): Enable on PGTK.
2021-12-28 Sam Steingold <sdsg@amazon.com>
Fix bug#52467 by adding a new custom variable 'display-comint-buffer-action'
* lisp/window.el (display-comint-buffer-action): New `defcustom`,
defaults to 'display-buffer-same-window' for backward compatibility.
* lisp/cmuscheme.el (run-scheme, switch-to-scheme): Pass
'display-comint-buffer-action' to 'pop-to-buffer' instead
of using 'pop-to-buffer-same-window'.
* lisp/eshell/eshell.el (eshell): Likewise.
* lisp/shell.el (shell): Likewise.
* lisp/org/ol-eshell.el (org-eshell-open): Likewise.
* lisp/progmodes/inf-lisp.el (inferior-lisp): Likewise.
* lisp/progmodes/project.el (project-shell, project-eshell): Likewise.
* lisp/textmodes/tex-mode.el (tex-display-shell, tex-compile-default)
(tex-recenter-output-buffer): Pass 'display-comint-buffer-action'
to 'pop-to-buffer'.
2021-12-28 Philipp Stephani <phst@google.com>
Fix test lisp/cedet/semantic/bovine/gcc-tests on macOS (Bug#52431)
* test/lisp/cedet/semantic/bovine/gcc-tests.el
(semantic-gcc-test-output-parser-this-machine): Also detect Apple
clang on macOS Monterey.
2021-12-28 Juri Linkov <juri@linkov.net>
* lisp/textmodes/paragraphs.el (repunctuate-sentences): Region for NO-QUERY.
Use region boundaries also for the case when NO-QUERY arg is non-nil
(bug#52769).
2021-12-28 Juri Linkov <juri@linkov.net>
* lisp/textmodes/paragraphs.el (repunctuate-sentences): Support region.
Add optional args 'start' and 'end', and pass them as region boundaries
to query-replace-regexp (bug#52769).
2021-12-28 Juri Linkov <juri@linkov.net>
* lisp/replace.el (replace-regexp-function): New function (bug#52558).
(replace-search, replace-highlight): Use it.
2021-12-28 Andrea Corallo <akrl@sdf.org>
* Fix native comp for non trivial function names (bug#52833)
* lisp/emacs-lisp/comp.el (comp-c-func-name): Fix native compilation
for functions with function names containing non trivial
characters (bug#52833).
2021-12-28 Stefan Monnier <monnier@iro.umontreal.ca>
* etc/NEWS (eieio-compat): Rewrite
2021-12-28 Po Lu <luangruo@yahoo.com>
* lwlib/xlwmenu.c (fit_to_screen): Adjust correctly for child menus.
2021-12-28 Juri Linkov <juri@linkov.net>
* lisp/vc/vc.el (vc-revert): Use generate-new-buffer, not just new buffer name
2021-12-28 Po Lu <luangruo@yahoo.com>
Document a problem with IBus and the C-. key
* etc/PROBLEMS: Document an IBus emoji panel problem.
2021-12-28 Po Lu <luangruo@yahoo.com>
Add support for pinch events to NS
* lisp/face-remap.el (text-scale-pinch): Remove mistaken
assumption that angle is always 1.0 at the beginning of
a sequence.
* src/nsterm.c (- magnifyWithEvent): New function.
2021-12-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c0815aca18 Fix typos in in 'reset-language-environment'
ea65de7577 eshell-complete-parse-arguments: don't use string-match on...
2021-12-27 Po Lu <luangruo@yahoo.com>
Fix menu placement on multiple-display setups when using lwlib
* lwlib/xlwmenu.c (fit_to_screen):
(pop_up_menu): Adjust menu position based on dimensions of the
current monitor's workarea. (bug#52809)
* src/xfns.c (x_get_monitor_attributes): Stop testing for the
RandR extension here.
(xlw_monitor_dimensions_at_pos_1):
(xlw_monitor_dimensions_at_pos): New functions.
* src/xterm.c (x_term_init): Query for the RandR extension when
connecting to a display.
* src/xterm.h (xlw_monitor_dimensions_at_pos): New prototype.
2021-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
Replace uniquify.el's advice with direct calls
This fixes bug#1338.
* src/buffer.c (Frename_buffer): Call `uniquify--rename-buffer-advice`.
* lisp/files.el (create-file-buffer):
Call`uniquify--create-file-buffer-advice`.
* lisp/uniquify.el (uniquify--rename-buffer-advice)
(uniquify--create-file-buffer-advice): Don't add them as advice any more.
Adjust their calling convention accordingly.
2021-12-27 Po Lu <luangruo@yahoo.com>
Only rely on passive device grabs on XI2
* src/xterm.c (xi_grab_or_ungrab_device): Remove function.
(handle_one_xevent): Stop setting non-passive grabs.
2021-12-27 Stefan Kangas <stefan@marxist.se>
Fix read-multiple-choice tests
* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Fix typo.
* test/lisp/emacs-lisp/rmc-tests.el
(test-rmc--add-key-description)
(test-rmc--add-key-description/with-attributes)
(test-rmc--add-key-description/non-graphical-display): Fix tests.
2021-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
Fix EIEIO tests to account for eieio-compat move
* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
Require `eieio-compat` explicitly.
* test/manual/cedet/tests/test.el (a-method, a-generic):
* doc/misc/srecode.texi (Compound Dictionary Values):
* doc/misc/ede.texi (ede-generic-project): Update sample code to use
cl-generic syntax.
2021-12-27 Stefan Kangas <stefan@marxist.se>
admin.el: Move etc/NEWS to etc/NEWS.NN in one commit
This should preserve git history better for git blame, etc.
* admin/admin.el (admin-git-command): New variable.
(set-version): Move etc/NEWS to etc/NEWS.NN and prompt to commit
it immediately. (Bug#52420)
2021-12-27 Stefan Kangas <stefan@marxist.se>
disabled-command: Explain what SPC means again
* lisp/novice.el (disabled-command-function): Explain what SPC means
again, an explanation that was lost in a recent change.
2021-12-27 Stefan Kangas <stefan@marxist.se>
read-multiple-choice: Improve key formatting
* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve
formatting of key missing in the description. Use face help-key-name
on terminals that can't display underline.
2021-12-27 Juri Linkov <juri@linkov.net>
* etc/NEWS: Mention completion-wrap-movement.
* doc/emacs/search.texi (Lax Search): Add char-fold-include.
* lisp/tab-bar.el (tab-bar-history-mode-map): New defvar-keymap.
2021-12-27 Michael Albinus <michael.albinus@gmx.de>
The temprary "session" collection might not exist in Secret Service
* doc/misc/auth.texi (Secret Service API):
* test/lisp/net/secrets-tests.el (secrets--test-delete-all-session-items)
(secrets-test02-collections, secrets-test03-items)
(secrets-test04-search): The temporary "session" collection might
not exist.
* lisp/net/secrets.el (secrets-struct-secret-content-type):
Remove compatibility hack.
(secrets-create-item): Adapt accordingly.
2021-12-27 Michael Albinus <michael.albinus@gmx.de>
Use `permission-denied' in Tramp tests, and more
* lisp/net/tramp-crypt.el (tramp-crypt-maybe-open-connection):
Simplify code.
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info):
Adapt for "mtp" method.
* test/lisp/net/tramp-tests.el (tramp-test18-file-attributes):
Use `permission-denied' error. Simplify code.
(tramp-test24-file-acl, tramp-test26-file-name-completion):
Simplify code.
2021-12-27 Stefan Kangas <stefan@marxist.se>
Doc fix; fix terminology in key binding functions
* lisp/keymap.el (keymap-set, key-valid-p):
* lisp/subr.el (define-keymap): Doc fix; improve terminology.
2021-12-27 Po Lu <luangruo@yahoo.com>
Fix precision scrolling inside terminal buffers
* lisp/term.el (term-goto-process-mark-maybe): Don't move point
to process mark if the event is a vertical wheel event.
2021-12-27 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-list/eieio-compat.el: Really move to obsolete
2021-12-27 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d4e2850b32 Update to Org 9.5.2-3-geb9f34
2021-12-26 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (pgtk_handle_event): Add pinch event support.
2021-12-26 Stefan Kangas <stefan@marxist.se>
perl-mode: Recognize "when"/"given" keywords
* lisp/progmodes/perl-mode.el (perl-font-lock-keywords-2): Add
keywords "when", "given" and "default". (Bug#10560)
(perl--syntax-exp-intro-keywords): Add "printf".
* test/manual/indent/perl.perl: Add test for "when"/"given".
2021-12-26 Po Lu <luangruo@yahoo.com>
Fix menu window persistence and entry/leave events on Lucid on XI2
* src/xmenu.c (x_activate_menubar): Always clear the XI2 grab on
Xt.
* src/xterm.c (handle_one_xevent): On XI2, ignore LeaveNotify
events coming from the shell widget and use `x_window_to_frame'
to find the frame when handling XI_Leave events.
2021-12-26 Po Lu <luangruo@yahoo.com>
Fix Lucid popup menu being stuck on XI2 builds
* src/xmenu.c (x_activate_menubar): Make some changes
conditional on XI2.
(create_and_show_popup_menu): Clear XI2 grab before showing
popup.
* src/xterm.c (xi_grab_or_ungrab_device): Don't grab device
if popup is activated on Lucid.
2021-12-26 Po Lu <luangruo@yahoo.com>
Store sign separately when accumulating precision scroll momentum
* lisp/pixel-scroll.el (pixel-scroll-kinetic-state): Return
vector in new format.
(pixel-scroll-accumulate-velocity): Use new sign field.
2021-12-26 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in tests
* test/lisp/button-tests.el (button-tests--map):
* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-keymap):
* test/lisp/help-tests.el (help-tests-remap-map)
(help-tests-major-mode-map, help-tests-minor-mode-map):
* test/lisp/kmacro-tests.el (kmacro-tests-keymap):
* test/lisp/repeat-tests.el (repeat-tests-map)
(repeat-tests-repeat-map):
* test/src/keymap-tests.el (keymap-tests-minor-mode-map)
(keymap-tests-major-mode-map): Use defvar-keymap.
2021-12-26 Stefan Kangas <stefan@marxist.se>
Prefer the defcustom :risky property in gnus
* lisp/gnus/gnus-art.el (gnus-button-alist)
(gnus-header-button-alist):
* lisp/gnus/gnus-group.el (gnus-group-highlight)
(gnus-group-icon-list):
* lisp/gnus/gnus-sum.el (gnus-summary-highlight):
* lisp/gnus/mm-util.el (mm-charset-eval-alist): Prefer the
defcustom :risky property to setting 'risky-local-variable
manually.
2021-12-26 Stefan Kangas <stefan@marxist.se>
Rewrite disabled-command to use read-multiple-choice
* lisp/novice.el (disabled-command-function): Rewrite to use
read-multiple-choice. Use command substitutions.
2021-12-26 Stefan Kangas <stefan@marxist.se>
read-multiple-choice: Display "SPC" instead of " "
* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Improve display
of the keys TAB, RET, SPC, DEL, and ESC. This fixes a bug where " "
was highlighted in the description in a confusing way.
* test/lisp/emacs-lisp/rmc-tests.el
(test-rmc--add-key-description)
(test-rmc--add-key-description/with-attributes): Update tests for the
above change.
2021-12-26 Stefan Kangas <stefan@marxist.se>
read-multiple-choice: Add optional argument show-help
* lisp/emacs-lisp/rmc.el (rmc--show-help): Factor out new function
from read-multiple-choice.
(read-multiple-choice): Add new optional argument show-help.
* doc/lispref/commands.texi (Reading One Event): Document above new
optional argument.
2021-12-26 Stefan Kangas <stefan@marxist.se>
read-multiple-choice: Add face when key not in name string
* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Add face
property also when key is not in the name string.
* test/lisp/emacs-lisp/rmc-tests.el
(test-rmc--add-key-description/with-attributes)
(test-rmc--add-key-description/non-graphical-display): Update tests.
2021-12-26 Stefan Kangas <stefan@marxist.se>
Factor out new function rmc--add-key-description
* lisp/emacs-lisp/rmc.el (rmc--add-key-description): Factor out
new function from...
(read-multiple-choice): ...here.
* test/lisp/emacs-lisp/rmc-tests.el (test-rmc--add-key-description)
(test-rmc--add-key-description/with-attributes)
(test-rmc--add-key-description/non-graphical-display): New tests.
2021-12-26 Po Lu <luangruo@yahoo.com>
* INSTALL: Document `--with-xinput2'.
2021-12-26 Po Lu <luangruo@yahoo.com>
Accumulate deltas in pinch events that were skipped
* src/keyboard.c (kbd_buffer_get_event): Accumulate relative deltas
inside skipped events when coalescing them.
2021-12-26 Po Lu <luangruo@yahoo.com>
Clarify situations where pinch events can be sent.
* doc/lispref/commands.texi (Misc Events): Clarify the
conditions under which pinch events will be sent.
2021-12-26 Po Lu <luangruo@yahoo.com>
Coalesce pinch gestures in the keyboard buffer
* src/keyboard.c (kbd_buffer_get_event): Coalesce consecutive
pinch gesture events.
2021-12-26 Po Lu <luangruo@yahoo.com>
Document the representation of DX and DY in pinch events
* doc/lispref/commands.texi (Misc Events): Document
the precise meaning of DX and DY in pinch events.
2021-12-26 Po Lu <luangruo@yahoo.com>
Document some missing commands related to text scaling
* doc/emacs/display.texi (Text Scale): Document
`text-scale-pinch' and `mouse-wheel-text-scale'.
2021-12-26 Po Lu <luangruo@yahoo.com>
Fix some issues with a recent change
* doc/lispref/commands.texi (Misc Events): Improve documentation
on pinch events.
* etc/NEWS: Update documentation status for some recent changes
and describe pinch events in more detail.
* lisp/face-remap.el (text-scale-pinch): Prevent pinch events
from being received in too quick succession.
2021-12-26 Eli Zaretskii <eliz@gnu.org>
Minor improvements in multisession.el
* lisp/emacs-lisp/multisession.el (multisession--read-file-value):
Handle 'file-missing' error when reading values from files.
(multisession--backend-values, multisession--backend-set-value)
(multisession--read-file-value): Use 'utf-8-emacs' encoding.
2021-12-26 Po Lu <luangruo@yahoo.com>
Change `x-server-input-version' to `x-server-input-extension-version'
* src/xfns.c (Fx_server_input_version)
(Fx_server_input_extension_version): Rename to
`x-server-input-extension-version'.
(syms_of_xfns): Update defsubr.
2021-12-26 Po Lu <luangruo@yahoo.com>
Add configure tests for faulty XI2 installations
* configure.ac: Detect cases where XI 2.4 headers are installed
without the correct event structures.
* src/xterm.c (handle_one_xevent): Don't use structures that
might not exist unless configure found them.
2021-12-26 Po Lu <luangruo@yahoo.com>
Only focus frame implicitly if focus flag is set
* src/xterm.c (x_detect_focus_change): Test for focus flag on
XI entry events.
2021-12-26 Stefan Kangas <stefan@marxist.se>
Add test for text-char-description
* test/src/keymap-tests.el (keymap-text-char-description): New
test.
2021-12-26 Po Lu <luangruo@yahoo.com>
Add support for pinch gestures to the XI2 build
* doc/lispref/commands.texi (Misc Events): Document new event
type `pinch'.
* etc/NEWS: Announce new event `pinch'.
* etc/PROBLEMS: Document problems with mismatched libXi
versions.
* lisp/face-remap.el (text-scale--pinch-start-scale): New
variable.
(text-scale-pinch): New command.
* src/keyboard.c (make_lispy_event): Handle PINCH_EVENTs.
(syms_of_keyboard): New symbol `pinch'.
* src/termhooks.h (enum event_kind): New enum `PINCH_EVENT'.
* src/xfns.c (setup_xi_event_mask): Add pinch events to event
mask if available.
* src/xterm.c (handle_one_xevent): Handle pinch events.
2021-12-26 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
89a82182cb Improve documentation of read-multiple-choice
5fccd1e371 Explain why we remove stuff from 'user-full-name'
2021-12-25 Po Lu <luangruo@yahoo.com>
Allow interpolating scrolls via the Page Down and Page Up keys
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Define
new commands.
(pixel-scroll-precision-interpolate-page): New user option.
(pixel-scroll-interpolate-down):
(pixel-scroll-interpolate-up): New functions.
2021-12-25 Po Lu <luangruo@yahoo.com>
Don't clear internal border if frame isn't realized
* src/pgtkterm.c (pgtk_clear_under_internal_border): Don't clear
border if frame isn't realized. (bug#52705)
2021-12-25 Stefan Kangas <stefan@marxist.se>
Make read-multiple-choice-face inherit help-key-binding
* lisp/faces.el (read-multiple-choice-face): Inherit
help-key-binding in addition to underline.
2021-12-25 Sam Steingold <sds@gnu.org>
Use the standard `quit-window' binding from `special-mode' for "q"
* epa.el (epa-info-mode-map): Remove `defvar'.
2021-12-25 Protesilaos Stavrou <info@protesilaos.com>
Update modus-themes to version 2.0.0
* doc/misc/modus-themes.org (Overview): Update the description of the
themes.
(Enable and load): Reflow text.
(Customization Options): Update the code sample with all customization
options.
(Option for color-coding success state)
(Option for red-green color deficiency or deuteranopia): Document the
new user option 'modus-themes-deuteranopia'.
(Option for mode line presentation, Option for mode line padding):
Update documentation about mode line padding.
(Option for completion framework aesthetics): Minor rewording.
(Option for diff buffer looks): Update section to exclude the
discontinued "foreground-only" diff styles.
(Option for Org agenda constructs): Expand documentation pertaining to
the 'modus-themes-org-agenda' user option.
(Option for the headings' overall style, Option for scaled headings):
Document how heading scaling is now done directly with the
'modus-themes-headings' user option.
(Option for variable-pitch font in headings): Remove section on
'modus-themes-variable-pitch-headings'. Its functionality is merged
into 'modus-themes-headings'.
(A theme-agnostic hook for theme loading): Add section on how users
can add their own "foreground-only" diff styles.
(Full support for packages or face groups, Indirectly covered
packages): Update list of supported packages.
(Note on god-mode.el): Reflow text.
(Frequently Asked Questions): Remove invalid characters from heading.
(Acknowledgements): Update list of contributors to code, ideas, etc.
* etc/themes/modus-themes.el (modus-themes-operandi-colors)
(modus-themes-vivendi-colors): Update theme color palettes.
(modus-themes-variable-pitch-headings): Make it obsolete. Use
'modus-themes-headings' instead.
(modus-themes--headings-choice): Accept float to adjust heading
height.
(modus-themes-headings, modus-themes-org-agenda): Update doc strings
to cover new features.
(modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2)
(modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-5)
(modus-themes-scale-title, modus-themes-scale-small): Deprecate them.
Use 'modus-themes-headings' directly.
(modus-themes-org-habit): Remove long-deprecated user option
(modus-themes-mode-line): Update doc string about padding the mode
line.
(modus-themes-mode-line-padding): Deprecate user option. Use
'modus-themes-mode-line' directly.
(modus-themes-diffs): Update doc string to omit discontinued
"foreground-only" styles.
(modus-themes-completions): Remove outdated reference.
(modus-themes-intense-hl-line): Delete long-deprecated form.
(modus-themes-lang-checkers, modus-themes-hl-line)
(modus-themes-paren-match, modus-themes-syntax, modus-themes-links)
(modus-themes-region): Update syntax of code sample in doc string.
(modus-themes-success-deuteranopia): Deprecate it and alias it as
'modus-themes-deuteranopia'.
(modus-themes--variable-pitch, modus-themes--lang-check)
(modus-themes--prompt, modus-themes--paren)
(modus-themes--syntax-foreground, modus-themes--syntax-extra)
(modus-themes--syntax-string, modus-themes--syntax-comment)
(modus-themes--heading, modus-themes--agenda-structure)
(modus-themes--agenda-date, modus-themes--agenda-event)
(modus-themes--agenda-habit, modus-themes--org-block-delim)
(modus-themes--mode-line-padding, modus-themes--mode-line-attrs)
(modus-themes--diff, modus-themes--diff-deuteran)
(modus-themes--success-deuteran, modus-themes--link)
(modus-themes--link-color, modus-themes--scale, modus-themes--region)
(modus-themes--hl-line): Update private functions to parse the updated
user options and to simplify/refine their code.
(modus-themes-faces): Remove some faces, add a few others, and
generally clean up the code to avoid overusing private functions for
the expansion of attributes with user-facing options.
(modus-themes-custom-variables): Remove support for 'highlight-tail'
variable.
* etc/themes/modus-operandi-theme.el:
* etc/themes/modus-vivendi-theme.el: Bump file version.
The change log entry for this release is available here:
<https://protesilaos.com/codelog/2021-12-24-modus-themes-2-0-0/>.
2021-12-25 Stefan Kangas <stefan@marxist.se>
Fix unused variable warning in xfns.c
* src/xfns.c (Fx_server_input_version): Fix unused variable
warning.
2021-12-25 Stefan Kangas <stefan@marxist.se>
* lisp/net/webjump.el: Add TODO section. (Bug#14624)
2021-12-25 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in ido.el
* lisp/ido.el (ido-common-completion-map)
(ido-file-dir-completion-map, ido-file-completion-map)
(ido-buffer-completion-map): Use defvar-keymap.
2021-12-25 Michael Albinus <michael.albinus@gmx.de>
* lisp/url/url-handlers.el (directory-files): Adapt ARGS list.
* lisp/net/browse-url.el (browse-url-of-file): Improve browsing remote files.
* lisp/simple.el (completion-auto-select): Fix docstring.
2021-12-25 Po Lu <luangruo@yahoo.com>
Add a utility function to query the XI2 version on a display
* src/xfns.c (Fx_server_input_version): New function.
(syms_of_xfns): Define new subr.
2021-12-25 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c09ad0cabd Fix the bug with duplicate entries in xref output
2021-12-24 Stefan Kangas <stefan@marxist.se>
Move mouse key bindings to gametree-mode-map
* lisp/play/gametree.el (gametree-mode-map): Move mouse key
bindings here.
2021-12-24 Po Lu <luangruo@yahoo.com>
Add support for XI 2.4
We will be able to use touchpad (not touchscreen) gestures, such
as pinch and swipe gestures after this change, but they are not
yet exposed to Lisp.
* src/xterm.c (x_term_init): Declare support for XI 2.4 if
present.
2021-12-24 Po Lu <luangruo@yahoo.com>
Fix Emacs tooltips on PGTK
* src/pgtkfns.c (x_create_tip_frame): Don't set cursor and
show window.
(Fx_show_tip): Set cursor and show window.
2021-12-24 Stefan Kangas <stefan@marxist.se>
Simplify command remapping in play/blackbox.el
* lisp/play/blackbox.el (blackbox-redefine-key): Make obsolete.
(blackbox-mode-map): Simplify.
2021-12-24 Stefan Kangas <stefan@marxist.se>
Prefer the defcustom :risky property in eshell
* lisp/eshell/em-banner.el (eshell-banner-message):
* lisp/eshell/em-hist.el (eshell-input-filter):
* lisp/eshell/em-pred.el (eshell-predicate-alist)
(eshell-modifier-alist):
* lisp/eshell/esh-cmd.el (eshell-subcommand-bindings):
* lisp/eshell/esh-io.el (eshell-virtual-targets):
* lisp/eshell/esh-var.el (eshell-variable-aliases-list): Prefer
defcustom :risky property to setting 'risky-local-variable manually.
2021-12-24 Stefan Kangas <stefan@marxist.se>
* lisp/eshell/em-hist.el (eshell-hist-match-partial): Minor doc fix.
2021-12-24 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in eshell
* lisp/eshell/em-cmpl.el (eshell-cmpl-mode-map):
* lisp/eshell/em-hist.el (eshell-isearch-map, eshell-hist-mode-map):
* lisp/eshell/em-pred.el (eshell-pred-mode-map):
* lisp/eshell/em-prompt.el (eshell-prompt-mode-map):
* lisp/eshell/em-rebind.el (eshell-rebind-mode-map):
* lisp/eshell/esh-arg.el (eshell-arg-mode-map):
* lisp/eshell/esh-mode.el (eshell-mode-map, eshell-command-map):
* lisp/eshell/esh-proc.el (eshell-proc-mode-map):
* lisp/eshell/esh-var.el (eshell-var-mode-map): Use defvar-keymap.
2021-12-24 Stefan Kangas <stefan@marxist.se>
Respect changes in eshell-hist-match-partial
* lisp/eshell/em-hist.el (eshell-hist--update-keymap): New function.
(eshell-hist-match-partial): Add :set property with above new
function.
(eshell-hist-mode-map): Update for eshell-hist-match-partial using
eshell-hist--update-keymap.
2021-12-24 Yuuki Harano <masm+github@masm11.me>
* etc/PROBLEMS: Add a problem when PGTK started in systemd unit file
2021-12-24 Michael Albinus <michael.albinus@gmx.de>
Add tag :tramp-asynchronous-processes to tramp-tests.el
* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process)
(tramp--test--deftest-direct-async-process)
(tramp-test30-make-process, tramp-test31-interrupt-process)
(tramp-test34-explicit-shell-file-name)
(tramp-test44-asynchronous-requests):
Add :tramp-asynchronous-processes tag.
(tramp--test-asynchronous-processes-p): New defun.
(tramp-test32-shell-command, tramp-test33-environment-variables):
Use it.
(tramp--test-expensive-test-p): Rename from
`tramp--test-expensive-test'. Make it a defun. Adapt all callees.
2021-12-24 Sebastian Fieber <sebastian.fieber@web.de>
verify signed content in smime encrypted and signed message
* lisp/gnus/gnus-art.el (gnus-mime-display-part): Parse pkcs7
parts (bug#40397).
(gnus-mime-security-verify-or-decrypt):
(gnus-insert-mime-security-button): Handle these parts.
* lisp/gnus/mm-decode.el (mm-verify-function-alist): Add pkcs7
functions.
(mm-decrypt-function-alist): Handle them.
(mm-possibly-verify-or-decrypt): Ditto.
* lisp/gnus/mm-view.el (mm-view-pkcs7-decrypt): Handle pkcs7.
Changes:
- structure the result of mm-dissect-buffer of application/pkcs7-mime
like a multipart mail so there is no loosing of information of
verification and decryption results which can now be displayed by
gnus-mime-display-security
- adjust gnus-mime-display-part to handle application/pkcs7-mime like
multipart/encrypted or multipart/signed
- add dummy entries to mm-verify-function-alist and
mm-decrypt-function-alist so gnus-mime-display-security correctly
displays "S/MIME" and not "unknown protocol"
- don't just check for multipart/signed in
gnus-insert-mime-security-button but also for the pkcs7-mime mimetypes
to print "Encrypted" or "Signed" accordingly in the security button
- adjust mm-possibly-verify-or-decrypt to check for smime-type to ask
wether to verify or decrypt the part and not to always ask to decrypt
- adjust mm-view-pkcs7-decrypt and verify to call mm-sec-status so
success information can be displayed by gnus-mime-display-security
- adjust gnus-mime-security-verify-or-decrypt to handle pkcs7-mime
right with the done changes
2021-12-24 Lars Ingebrigtsen <larsi@gnus.org>
Simplify whitespace stripping in shr-expand-url
* lisp/net/shr.el (shr-expand-url): Simplify whitespace stripping.
2021-12-24 Po Lu <luangruo@yahoo.com>
Fix text decoration display on stretch glyphs with no box on NS
* src/nsterm.m (ns_dumpglyphs_stretch): Draw decorations if
there is no box.
2021-12-24 Po Lu <luangruo@yahoo.com>
Make precision scrolling work on margins and fringes
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Add
missing key definitions.
2021-12-24 Po Lu <luangruo@yahoo.com>
Remove useless functions from PGTK port that were breaking emacsbug
* src/pgtkfns.c (Fx_server_vendor, Fx_server_version): Remove
useless functions that returned invalid values.
(syms_of_pgtkfns): Stop defining removed subrs.
2021-12-24 Po Lu <luangruo@yahoo.com>
Grab the server when warping the client pointer
* src/xfns.c (Fx_set_mouse_absolute_pixel_position):
* src/xterm.c (x_make_frame_invisible): Avoid race conditions
where the client pointer is destroyed between when it is
obtained and when XIWarpPointer is called.
2021-12-24 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
04be23f19f Improve Xref documentation
edb1d491d9 * lisp/net/shr.el (shr-expand-url): Also strip trailing wh...
2021-12-23 Po Lu <luangruo@yahoo.com>
Acquire draw lock when updating menubar on Haiku
* src/haikumenu.c (digest_menu_items): Acquire draw lock.
2021-12-23 Po Lu <luangruo@yahoo.com>
Fix menu grabs on XI2 Motif builds
* src/xmenu.c (x_activate_menubar) [USE_MOTIF]: Clear XI grab.
* src/xterm.c (xi_grab_or_ungrab_device) [USE_MOTIF]: Always
ungrab if a popup is active.
2021-12-23 Po Lu <luangruo@yahoo.com>
Fix some more incorrect valuator clearing
* src/xterm.c (handle_one_xevent): Improve detection of stray
ungrab events.
2021-12-23 Po Lu <luangruo@yahoo.com>
Drop scrollbar motion events when valuators are found
* src/xterm.c (handle_one_xevent): Drop XI_Motion if it's on
top of a scroll bar and a valuator is found.
2021-12-23 Glenn Morris <rgm@gnu.org>
* doc/misc/Makefile.in (need_emacsver): Add missing members.
2021-12-23 Po Lu <luangruo@yahoo.com>
Make precision scrolling also work on various bars
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map):
Define keys for various kinds of bars.
2021-12-23 Po Lu <luangruo@yahoo.com>
Fix precision scrolling down for multi-line display strings
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Make sure Y delta
is appropriate before deciding on next-pos.
2021-12-23 Po Lu <luangruo@yahoo.com>
Set start to desired start when pixel scrolling to end of buffer
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Set start to desired
start when point cannot be moved further down.
2021-12-23 Po Lu <luangruo@yahoo.com>
Allow window-text-pixel-size to measure pixels around a position
* doc/lispref/display.texi (Size of Displayed Text): Announce
new meaning of `from'.
* etc/NEWS: Announce changes.
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up-page):
Use new feature.
* src/xdisp.c (window_text_pixel_size): Understand a special
format of `from' that specifies the amount of pixels above or
below a position.
(Fwindow_text_pixel_size): Update doc string.
2021-12-23 Lars Ingebrigtsen <larsi@gnus.org>
Revert back to using monospaced fonts in the mode line
* lisp/faces.el (mode-line-active, mode-line-inactive): Revert
back to using monospaced fonts on the mode line (for now). The
main remaining usability problem is clicking on the very small "-"
characters in "U:--".
2021-12-23 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
29fffbdd87 Revert field-related thingatpt changes
9bcb732686 * lisp/window.el (quit-restore-window): Select previously ...
b7d31d6192 Revert "Remove Motif support"
# Conflicts:
# etc/NEWS
2021-12-22 Philip Kaludercic <philipk@posteo.net>
Fix wrong-type-argument
* message.el (message-update-smtp-method-header): Only Use address
part of mail-extract-address-component.
2021-12-22 Philip Kaludercic <philipk@posteo.net>
Allow automatic X-Message-SMTP-Method header insertion
* message.el (message-server-alist): Add user option
(message-update-smtp-method-header): Add function
(message-send): Call message-update-smtp-method-header
* doc/misc/message.texi (Sending Variables): Document
message-server-alist
* etc/NEWS: Add news entry
2021-12-22 Stefan Kangas <stefan@marxist.se>
Fix compile time error in a pcase test
* test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-cl-type): Fix test.
2021-12-22 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in minibuffer.el
* lisp/minibuffer.el (completion-in-region-mode-map)
(minibuffer-local-completion-map)
(minibuffer-local-must-match-map)
(minibuffer-local-filename-completion-map)
(minibuffer-local-ns-map, minibuffer-inactive-mode-map): Use
defvar-keymap.
2021-12-22 Stefan Kangas <stefan@marxist.se>
Make substitute-command-keys test less brittle
* test/lisp/help-tests.el (help-tests--test-keymap): New keymap
variable.
(help-tests-substitute-command-keys/keymaps): Make test less
brittle by using above new keymap.
2021-12-22 Alan Third <alan@idiocy.org>
Add native HEIC support on macOS (bug#51381)
* lisp/image.el (image-type-header-regexps):
(image-type-file-name-regexps):
(image-type-auto-detectable): Add auto-detect code for heic.
* src/image.c (syms_of_image): Add heic as an image type under NS.
* src/nsimage.m (ns_can_use_native_image_api): Add heic to list of
possible image types in the native image support lookup.
2021-12-22 Alan Third <alan@idiocy.org>
Allow resizing undecorated frames on macOS (bug#28512, bug#31795)
* src/nsterm.m (FRAME_DECORATED_FLAGS, FRAME_UNDECORATED_FLAGS):
Remove unused defines.
* src/nsterm.m ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]):
Since this is now the only place these defines are used just put them
inline and add NSWindowStyleMaskResizable for undecorated frames on
Cocoa.
2021-12-22 Alan Third <alan@idiocy.org>
Make NS toolbar item ID more unique (bug#50160)
* src/nsmenu.m
([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]):
Add the label to the identifier to avoid collisions between toolbar
items that use the same image.
2021-12-22 Alan Third <alan@idiocy.org>
Make NS toolbar use NSString instead of C strings
* src/nsfns.m ([NSString stringWithLispString:]): Ensure that the lisp
object is actually a string.
* src/nsmenu.m (update_frame_tool_bar): Convert to NSString instead of
C strings.
([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]):
No need to convert to NSString here anymore.
2021-12-22 Alan Third <alan@idiocy.org>
Fix macfont backend color handling
* src/macfont.m (get_cgcolor): Replace use of ns_lookup_indexed_color.
(CG_SET_FILL_COLOR_WITH_FACE_FOREGROUND):
(CG_SET_FILL_COLOR_WITH_FACE_BACKGROUND):
(CG_SET_STROKE_COLOR_WITH_FACE_FOREGROUND): Fix call to get_cgcolor
and fix all callers.
2021-12-22 Alan Third <alan@idiocy.org>
Further cleanup of NS color code
* src/dispextern.h (FACE_COLOR_TO_PIXEL): Remove define and fix all
callers.
* src/nsterm.h (struct nsfont_info): Remove color_table.
* src/nsterm.m ([NSColor colorWithUnsignedLong:]): Always assume the
input contains the correct alpha value.
(ns_lookup_indexed_color):
(ns_index_color):
(ns_color_index_to_rgba): Remove functions and fix all callers.
(ns_query_color): No longer set pixel to the lookup table index,
always just set it to the ARGB integer value.
(ns_defined_color): Ignore makeindex as we no longer set pixel to the
lookup table index.
(ns_initialize_display_info):
(ns_redisplay_interface): Remove lookup table.
(ns_term_init): Fix the alpha setting.
thing
2021-12-22 Alan Third <alan@idiocy.org>
Simplify NS color handling
* src/image.c (RGB_TO_ULONG):
(ARGB_TO_ULONG):
(RED_FROM_ULONG):
(RED16_FROM_ULONG):
(GREEN16_FROM_ULONG):
(BLUE16_FROM_ULONG): Define these here for NS too.
* src/nsfns.m (ns_set_foreground_color):
(ns_set_background_color): Use new EmacsColor methods.
* src/nsterm.h (struct ns_color_table): Replace this struct with a
built-in Objective C type.
(RGB_TO_ULONG):
(ARGB_TO_ULONG):
(ALPHA_FROM_ULONG):
(RED_FROM_ULONG):
(GREEN_FROM_ULONG):
(BLUE_FROM_ULONG):
(RED16_FROM_ULONG):
(GREEN16_FROM_ULONG):
(BLUE16_FROM_ULONG): These are no longer needed in the NS specific code.
(struct ns_display_info): Use an NSMutableArray instead of a custom struct.
* src/nsterm.m ([NSColor colorWithUnsignedLong:hasAlpha:]):
([NSColor unsignedLong]): New methods.
(ns_lookup_indexed_color):
(ns_index_color): Use the NSMutableArray lookup table.
(ns_term_init):
(ns_color_index_to_rgba):
(ns_query_color): Use the new EmacsColor methods.
(ns_initialize_display_info):
(ns_delete_display): Initialize and release the NSMutableArray lookup table.
2021-12-22 Jonas Bernoulli <jonas@bernoul.li>
Help outline-minor-mode avoid some false matches
* lisp/international/emoji.el (emoji--generate-file): Help
'outline-minor-mode' avoid false matches by quoting certain
characters when they appear at bol in a multi-line string.
2021-12-22 Jonas Bernoulli <jonas@bernoul.li>
Hide transient prefix/suffix commands from execute-extended-command
* lisp/international/emoji.el (emoji--define-transient): Hide
transient prefix/suffix commands from 'execute-extended-command'
by declaring that they should only be listed in the non-existent
'not-a-mode' mode.
2021-12-22 Michael Albinus <michael.albinus@gmx.de>
Fix some Tramp tests
* test/lisp/net/tramp-tests.el (tramp-test07-file-exists-p)
(tramp-test14-delete-directory, tramp-test29-start-file-process)
(tramp-test30-make-process): Adapt tests.
2021-12-22 Mattias Engdegård <mattiase@acm.org>
Use unibyte strings in ntlm auth requests and responses
* lisp/net/ntlm.el (ntlm-build-auth-request)
(ntlm-build-auth-response): Make sure to use unibyte strings for bytes
greater than 127, or base64 encoding will fail.
This should fix failures in ntlm-tests.
2021-12-22 Lars Ingebrigtsen <larsi@gnus.org>
Adjust test after recent help.el change
2021-12-22 Po Lu <luangruo@yahoo.com>
* src/pgtkterm.c (scroll_event): Fix scroll delta scale.
* src/pgtkterm.c (scroll_event): Fix sign of delta_y.
2021-12-22 Po Lu <luangruo@yahoo.com>
Disable by default and add NEWS entry to the new completion behavior
* etc/NEWS: Announce 'completion-auto-select'.
* lisp/simple.el (completion-auto-select): Default to nil.
2021-12-22 Lars Ingebrigtsen <larsi@gnus.org>
Simplify disabled-command-function prompting
* lisp/novice.el (disabled-command-function): Use a prompt for
`read-event' instead of messaging it, so that people using
Emacspeak get the prompt read to them.
2021-12-22 Lars Ingebrigtsen <larsi@gnus.org>
Use pop-to-buffer-same-window in `M-x term'
* lisp/term.el (term): Allow `display-buffer*' customization to
take effect (bug#52688).
2021-12-22 Po Lu <luangruo@yahoo.com>
Fix horizontal scrolling on PGTK
* src/pgtkterm.c (scroll_event): Fix for when
`mwheel-coalesce-scroll-events' is nil.
2021-12-21 Po Lu <luangruo@yahoo.com>
Use XI2 calls to warp the client pointer
* src/xfns.c (Fx_set_mouse_absolute_pixel_position):
* src/xterm.c (frame_set_mouse_pixel_position): Replace
calls to XWarpPointer with calls to XIWarpPointer with
the client pointer explictly specified. This avoids the
odd situation where the client pointer of the root window
is not the client pointer of the frame.
2021-12-21 Po Lu <luangruo@yahoo.com>
Fix GTK crash when clicking on xwidgets on XI2
* src/xterm.c (handle_one_xevent): Drop button events destined
for an xwidget.
2021-12-21 Paul Eggert <eggert@cs.ucla.edu>
Update from gnulib
2021-12-21 Philip Kaludercic <philipk@posteo.net>
Delete completion window on quitting
* lisp/simple.el (completion-list-mode-map): Rebind
delete-completion-window over keyboard-quit.
2021-12-21 Philip Kaludercic <philipk@posteo.net>
Allow for next-completion to wrap around the completion buffer
* lisp/simple.el (completion-wrap-movement): Add new option.
(previous-completion): Update docstring.
(next-completion): Respect completion-wrap-movement.
(switch-to-completions): Handle backwards completion by jumping to the
end of the buffer.
* lisp/minibuffer.el: (minibuffer-local-completion-map): Bind
minibuffer-complete to backtab
(completion--in-region-1): Handle backtab to scroll backwards
2021-12-21 Philip Kaludercic <philipk@posteo.net>
Allow for the completion buffer to be automatically selected
* lisp/simple.el (completion-auto-select): Add new option.
(completion-setup-function): Respect completion-auto-select.
2021-12-21 Stefan Kangas <stefan@marxist.se>
Declare functions to silence byte-compiler
* lisp/auth-source.el (gnutls-symmetric-decrypt, gnutls-ciphers):
* lisp/net/dbus.el (libxml-parse-xml-region):
* lisp/simple.el (thread-name):
* lisp/thread.el (thread-name, thread-signal, thread--blocker)
(current-thread, thread-live-p, all-threads):
* test/lisp/emacs-lisp/multisession-tests.el (sqlite-close):
* test/lisp/net/gnutls-tests.el (gnutls-symmetric-decrypt)
(gnutls-symmetric-encrypt, gnutls-hash-mac, gnutls-hash-digest)
(gnutls-ciphers, gnutls-digests, gnutls-macs):
* test/lisp/net/network-stream-tests.el (gnutls-peer-status):
* test/lisp/net/shr-tests.el (libxml-parse-html-region):
* test/src/decompress-tests.el (zlib-decompress-region):
* test/src/process-tests.el (thread-last-error, thread-join)
(make-thread):
* test/src/xml-tests.el (libxml-parse-xml-region): Declare
functions to silence byte-compiler in --without-all builds.
2021-12-21 Stefan Kangas <stefan@marxist.se>
Fix some tests in --without-all builds
* test/lisp/image-tests.el (image-type/from-filename):
* test/src/image-tests.el (image-tests-init-image-library):
* test/src/thread-tests.el (threads-test-bug33073): Fix tests in
--without-all builds.
2021-12-21 Stefan Kangas <stefan@marxist.se>
Silence additional byte-compiler warning in test
* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
Silence byte-compiler.
2021-12-21 Michael Albinus <michael.albinus@gmx.de>
Add `permission-denied' error to Tramp
* lisp/net/tramp-compat.el (tramp-permission-denied): New defconst.
(tramp-compat-permission-denied): New defsubst.
* lisp/net/tramp.el (tramp-handle-access-file):
* lisp/net/tramp-archive.el (tramp-archive-handle-copy-file): Use it.
2021-12-21 Po Lu <luangruo@yahoo.com>
Fix xg_event_is_scrollbar for grab-related events on XI2
* src/gtkutil.c (xg_event_is_for_scrollbar): Don't return true
if event coordinates are outside the frame on XInput 2.
2021-12-21 Mattias Engdegård <mattiase@acm.org>
Don't produce multibyte strings by accident in sasl-scram-rfc
* lisp/net/sasl-scram-rfc.el (sasl-scram--client-final-message):
The XOR of two unibyte strings should be a unibyte string.
This code previously worked by accident because of an overly tolerant
base64 encoder (bug#52670), but now causes a test failure.
2021-12-21 Po Lu <luangruo@yahoo.com>
Ignore XI_TouchBegin events on the GTK tool bar
* src/xterm.c (handle_one_xevent): Ignore TouchBegin events
that target the tool bar.
2021-12-21 Andrew G Cohen <cohen@andy.bu.edu>
Fix gnus subject matching when subject is empty
* lisp/gnus/gnus-sum.el (gnus-summary-limit-include-thread): Don't try
to limit to a matching subject when the simplified subject is empty.
2021-12-20 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Speed up find_field when called from outside a field"
This reverts commit 4d8af56c76ee20bc8e1ebdeef5c4100cea005974.
This leads to lisp-mode-tests failures
2021-12-20 Lars Ingebrigtsen <larsi@gnus.org>
Remove the `mode-line-percent-position' min width hack
* lisp/bindings.el (mode-line-position): Remove hack to get
min-width to work on the `mode-line-percent-position' bit.
* src/xdisp.c (display_string): Respect min-width in the non-Lisp
string case (bug#52332).
2021-12-20 Lars Ingebrigtsen <larsi@gnus.org>
Allow @ characters in heredoc in shell-script-mode
* lisp/progmodes/sh-script.el (defconst): Also allow @ in heredoc
(bug#52496).
2021-12-20 Lars Ingebrigtsen <larsi@gnus.org>
Use the new `permission-denied' error to catch multisession errors
* lisp/emacs-lisp/multisession.el (multisession--read-file-value):
Use the new `permission-denied' error to catch file errors on Windows.
2021-12-20 Lars Ingebrigtsen <larsi@gnus.org>
Speed up find_field when called from outside a field
* src/editfns.c (find_field): Speed up the field functions when
called from outside a field (bug#52593). (In some cursory tests,
this makes the called-from-outside-a-field case about 3x faster.)
2021-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
Fix bug#28557
* test/lisp/emacs-lisp/cconv-tests.el: Remove `:expected-result :failed`
from the bug#28557 tests.
(cconv-tests-cl-function-:documentation): Account for the presence of
the arglist (aka "usage") in the docstring.
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric):
Handle non-constant `:documentation`.
* lisp/emacs-lisp/generator.el (iter-lambda):
* lisp/emacs-lisp/cconv.el (cconv--convert-funcbody):
Use `macroexp-parse-body`.
2021-12-20 Po Lu <luangruo@yahoo.com>
Don't drop touch events we're not interested in on GTK3
* src/xterm.c (handle_one_xevent): Allow GTK to handle
unwanted TouchBegin events.
2021-12-20 Po Lu <luangruo@yahoo.com>
Fix touch event menu bar detection
* src/xterm.c (handle_one_event): Don't drop menu bar touch
events.
2021-12-20 Po Lu <luangruo@yahoo.com>
Fix xg_event_is_for_menubar for XI2 events
* src/gtkutil.c (xg_event_is_for_menubar): Use correct fields
for XI2 events.
* src/xterm.c (handle_one_event): Drop TouchBegin events we
know about.
2021-12-20 Stefan Monnier <monnier@iro.umontreal.ca>
eieio-tests.el: Silence last warnings
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-tests--dummy):
New class.
(eieio-test-22-init-forms-dont-match-runnable): Tweak to silence warning.
2021-12-20 Po Lu <luangruo@yahoo.com>
* src/xterm.c (handle_one_xevent): Set user time on touch events.
2021-12-20 Po Lu <luangruo@yahoo.com>
Ignore all emulated button events (i.e. those from touchscreens)
* src/xterm.c (handle_one_xevent): Ignore all XIPointerEmulated
events if the display supports XI 2.2 or later.
2021-12-20 Paul Eggert <eggert@cs.ucla.edu>
Put AM_V_GEN etc. first
With the recent changes to src/verbose.mk.in, its more important
to be consistent about putting AM_V_GEN and similar macros at the
start of a rules recipe, since make now outputs the diagnostic
before it executes the recipe rather than the shell outputting it.
Most of the uses were already this way, but there were a few
outliers. Problem reported by Pip Cet.
* Makefile.in (${srcdir}/info/dir):
* admin/unidata/Makefile.in (${unidir}/charprop.el, ${unifiles})
(${unidir}/emoji-labels.el):
* lib/Makefile.in (libgnu.a, libegnu.a):
* lisp/Makefile.in (TAGS):
* src/Makefile.in (lisp.mk, Emacs):
* test/Makefile.in (%.log, $(test_module)):
Put AM_V_GEN and similar macros first.
2021-12-20 Stefan Kangas <stefan@marxist.se>
Make some variable aliases obsolete
* lisp/progmodes/make-mode.el (makefile-query-one-target-method):
* lisp/skeleton.el (skeleton-transformation, skeleton-filter):
* lisp/textmodes/artist.el (artist-text-renderer):
* lisp/textmodes/bibtex.el (bibtex-autokey-name-case-convert):
(bibtex-autokey-titleword-case-convert):
* lisp/textmodes/ispell.el (ispell-format-word):
* lisp/textmodes/sgml-mode.el (sgml-transformation):
* lisp/vc/add-log.el (change-log-time-zone-rule): Make variable
aliases obsolete.
2021-12-20 Paul Eggert <eggert@cs.ucla.edu>
Prefer $(info) to @echo
Have GNU Make output some diagnostics directly, instead of forking
and execing a shell to do it.
* GNUmakefile (help):
* doc/lispref/two-volume.make (vol2.pdf, elisp2med-init)
(elisp2-init):
* doc/misc/Makefile.in (echo-info, echo-sources):
* lib-src/Makefile.in (archlibdir, install, check):
* src/verbose.mk.in (AM_V_AR, AM_V_CC, AM_V_CXX, AM_V_CCLD)
(AM_V_CXXLD, AM_V_ELC, AM_V_ELN, AM_V_GEN, AM_V_GLOBALS)
(AM_V_RC):
* test/Makefile.in (subdirs, subdir-targets):
Prefer $(info) to @echo.
* GNUmakefile (MAKECMDGOALS, configure, Makefile):
Prefer $(warning) to @echo >&2.
* src/verbose.mk.in (AM_V_ELN): Output target, like the others.
2021-12-20 Mattias Engdegård <mattiase@acm.org>
Fix sloppy base64 acceptance of some multibyte characters
The base64 encoding functions incorrectly accepted some multibyte
characters; stop doing that (bug#52670).
* src/fns.c (base64_encode_1): Reject all multibyte characters.
* test/src/fns-tests.el (fns-tests-base64-encode-string)
(fns-test-base64url-encode-region)
(fns-test-base64url-encode-string): Add tests.
* doc/lispref/text.texi (Base 64): Rephrase outdated manual text.
* etc/NEWS: Add a notice.
2021-12-20 Sam Steingold <sds@gnu.org>
Fix build in a separate directory (bug#52669)
* src/lisp.h: Include <globals.h> instead of "globals.h"
2021-12-20 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in wdired.el
* lisp/wdired.el (wdired-mode-map, wdired-perm-mode-map): Use
defvar-keymap.
2021-12-20 Stefan Kangas <stefan@marxist.se>
Use declare-function instead of defun in eieio-tests.el
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Prefer
declare-function to defun.
2021-12-20 Mattias Engdegård <mattiase@acm.org>
Silence byte-compiler warnings from absent optional features
* test/src/inotify-tests.el (inotify-rm-watch):
* test/src/lcms-tests.el (lcms-xyz->jch):
* test/src/sqlite-tests.el (sqlite-open):
Add declarations to prevent byte-compilation warnings when features
are absent.
2021-12-20 Mattias Engdegård <mattiase@acm.org>
Body of dynamic let-bindings is not in tail position
This fixes a known bug in `named-let`.
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Prevent TCO from inside
dynamic variable bindings.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test.
2021-12-20 Mattias Engdegård <mattiase@acm.org>
Add `macroexp--dynamic-variable-p`
This predicate can be used for discriminating between lexically and
dynamically bound variables during macro-expansion (only).
It is restricted to internal use for the time being.
* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
Use macroexpand--all-toplevel.
* lisp/emacs-lisp/macroexp.el (macroexp-dynamic-variable-p): New.
(macroexp--expand-all): Maintain macroexp--dynvars.
(macroexpand-all): Rebind macroexp--dynvars.
(macroexpand--all-toplevel): New.
(internal-macroexpand-for-load): Use macroexpand--all-toplevel.
* src/eval.c (eval_sub): Transfer defvar declarations from
Vinternal_interpreter_environment into macroexp--dynvars during
lazy macro-expansion.
* src/lread.c (readevalloop): Rebind macroexp--dynvars around
read-and-evaluate operations.
(syms_of_lread): Define macroexp--dynvars.
* test/lisp/emacs-lisp/macroexp-resources/vk.el: New file.
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp-tests--run-emacs)
(macroexp-tests--eval-in-subprocess)
(macroexp-tests--byte-compile-in-subprocess)
(macroexp--tests-dynamic-variable-p): Add tests.
2021-12-20 Mattias Engdegård <mattiase@acm.org>
Treat base64 string encode/decode as pure functions
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns, pure-fns):
Mark base64-decode-string, base64-encode-string and
base64url-encode-string as pure and side-effect-free.
2021-12-20 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler using with-no-warnings in tests
We could silence the specific warnings by adding support for them to
with-suppressed-warnings, but it is almost not worth the complexity
for warnings that only show up in one file. In any case, it is not
urgent, so leave behind FIXMEs for now.
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
(eieio-test-37-obsolete-name-in-constructor, class-c)
(eieio-test-01-mix-alloc-initarg, slotattr-class-base):
* test/lisp/progmodes/elisp-mode-tests.el
(xref-elisp-generic-co-located-default): Silence byte-compiler.
2021-12-20 Stefan Kangas <stefan@marxist.se>
Silence undefined function warnings in eieio-tests.el
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Silence
byte-compiler with some function definitions. These are overridden by
class definitions further down.
2021-12-20 Stefan Kangas <stefan@marxist.se>
Prefer skip-unless in one eieio test
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
(eieio-test-01-mix-alloc-initarg): Use skip-unless to correctly mark
the test as skipped.
2021-12-20 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler in cconv-tests.el
* test/lisp/emacs-lisp/cconv-tests.el
(cconv-tests-iter-lambda-:documentation)
(cconv-tests-cl-function-:documentation): Silence byte-compiler.
2021-12-20 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
16ed9fad2c ; * doc/lispref/frames.texi (Child Frames): Improve wording.
f11b996a3c Clarify description of two mouse dragging parameters (Bug#...
2021-12-19 Stefan Kangas <stefan@marxist.se>
* lisp/progmodes/sh-script.el (sh-mode-map): Use defvar-keymap.
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Further tweaks to emoji person groups
* lisp/international/emoji.el (emoji--score): Don't take the bit
after the colon into consideration, like in "kiss: person, person,
light skin tone, medium-light skin tone".
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Further tweaks to the emoji segmentation
* lisp/international/emoji.el (emoji--parse-emoji-test): Ensure
that we key off of the "person" variants, even if they come after
the gendered variations (which is the case for a handful of glyphs).
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Further fixes for emojis in the "people" categories
* lisp/international/emoji.el (emoji--base-name): Get more derived
categories right.
2021-12-19 Juri Linkov <juri@linkov.net>
* lisp/isearch.el: Don't display "Pending" for lax and toggle commands.
* lisp/isearch.el (isearch-message-prefix): Display "Pending"
only when isearch-adjusted is 't' (bug#52356).
(isearch-define-mode-toggle):
Set isearch-adjusted to 'toggle' instead of 't'.
(isearch-search-fun-default):
Set isearch-adjusted to 'lax' instead of 't'.
2021-12-19 Eli Zaretskii <eliz@gnu.org>
Move Rmail autoloads to the common loaddefs.el
* lisp/mail/rmailsum.el:
* lisp/mail/rmailsort.el:
* lisp/mail/rmailmsc.el:
* lisp/mail/rmailmm.el:
* lisp/mail/rmailkwd.el:
* lisp/mail/rmailedit.el:
* lisp/mail/rmail.el: Remove generated-autoload-file setting and
don't require rmail-loaddefs.el
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Add some very rudimentary field-beginning/end tests
2021-12-19 Eli Zaretskii <eliz@gnu.org>
New error symbol 'permission-denied'
* src/fileio.c (syms_of_fileio) <permission-denied>: Define the
symbol and its 'err-conditions' and 'error-message' properties.
(get_file_errno_data): Return permission-denied on EACCES.
* test/src/filelock-tests.el (filelock-tests-file-locked-p-spoiled)
(filelock-tests-unlock-spoiled)
(filelock-tests-kill-buffer-spoiled): Adapt the tests to the new
error symbol.
* doc/lispref/errors.texi (Standard Errors):
* etc/NEWS: Document 'permission-denied' error.
2021-12-19 Stefan Kangas <stefan@marxist.se>
Make bad-packages-alist obsolete
* lisp/simple.el (bad-packages-alist, bad-package-check): Make
obsolete. (Bug#52351)
2021-12-19 Alan Mackenzie <acm@muc.de>
CC Mode: Remove annoying background fontification. Should fix bug #52298
Partially revert the commits from 2021-10-24 - 2021-10-26, "CC Mode: Fontify
"found types" which are recognized after being first scanned".
This removes the background fontification which ran off of a 0.1s timer, but
leaves the facility of normal fontification causing the fontification
throughout the buffer of newly found types.
* lisp/progmodes/cc-fonts.el (c-find-types-background)
(c-type-finder-timer-func): Remove.
* lisp/progmodes/cc-mode.el (c-type-finder-timer, c-inhibit-type-finder)
(c-type-finder-pos, c-post-gc-hook): Remove.
(c-leave-cc-mode-mode): Remove the manipulations of c-type-finder-timer and
c-post-gc-hook.
(c-basic-common-init): Remove the manipulations of c-type-finder-pos,
c-type-finder-timer, and c-post-gc-hook.
* lisp/progmodes/cc-vars.el (c-type-finder-time-slot)
(c-type-finder-repeat-time, c-type-finder-chunk-size): Remove.
* doc/misc/cc-mode.texi (Found Types): Remove. Amend some menu entries.
2021-12-19 Stefan Kangas <stefan@marxist.se>
Silence "initform needs quoting" warning in tests
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
(persist-simple):
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (class-a)
(class-c, inittest, slotattr-base, slotattr-ok)
(slotattr-class-base, slotattr-class-ok, IT): Silence byte-compiler
warnings about "ambiguous initform needs quoting".
2021-12-19 Michael Albinus <michael.albinus@gmx.de>
Fix timeout problem in autorevert-tests.el
* test/lisp/autorevert-tests.el (auto-revert-test05-global-notify):
Remove debug message. Increase timeout.
2021-12-19 Kévin Le Gouguec <kevin.legouguec@gmail.com>
Enable webp support in PGTK builds, too
* configure.ac (HAVE_WEBP): Enable webp in PGTK builds, too.
2021-12-19 Eli Zaretskii <eliz@gnu.org>
Fix last change in 'handle_display_prop'
* src/xdisp.c (handle_display_prop): Pass the window's buffer to
'display_min_width' and to 'handle_display_spec'. (Bug#52385)
2021-12-19 Stefan Kangas <stefan@marxist.se>
Silence "Unknown slot" warnings in tests
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
* test/lisp/net/ntlm-tests.el: Silence byte-compiler.
2021-12-19 Daniel Mendler <mail@daniel-mendler.de>
Add a new elp-restore-package command
* lisp/emacs-lisp/elp.el (elp-restore-package): New command
(bug#52457).
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix elp-*-list interactive specs
* lisp/emacs-lisp/elp.el (elp-reset-list):
(elp-restore-list): Fix the interactive specs (bug#52457).
2021-12-19 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
5f25852e91 Update to Org 9.5.1-31-ga18849
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Rework how shr sets <span id='foo'> targets to make it more reliable
* lisp/net/eww.el (eww-display-html): The target is now a list.
* lisp/net/shr.el (shr--link-targets): New variable.
(shr-insert-document): Set the targets.
(shr-descend): Save targets and apply them later.
(shr-ensure-paragraph): Remove hack to avoid filling from removing
targets.
(shr-tag-a): Save targets for later.
(shr-render-td-1): Bind and set targets (bug#52512).
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix prompt in `sql-sqlite'
* lisp/progmodes/sql.el (sql-get-login): Fix the Database: prompt
(bug#52546).
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Fix indexing gendered emoji forms that have "person" base forms
* lisp/international/emoji.el (emoji--base-name): Index man/woman
on the generic form we have read already (bug#52580).
2021-12-19 LdBeth <andpuke@foxmail.com> (tiny change)
Add a shr-allowed-images user option
* lisp/net/shr.el (shr-allowed-images): New variable (bug#52594).
(shr-image-is-blocked): New function to use it.
(shr-tag-img): Use it.
* doc/misc/eww.texi (Advanced): Document it.
2021-12-19 miha <miha@kamnitnik.top>
Fix prompt colors in comint-snapshot-last-prompt
* lisp/comint.el (comint-snapshot-last-prompt): Fix colorization
of the prompt (bug#11883).
2021-12-19 Lars Ingebrigtsen <larsi@gnus.org>
Move rmail-related functions from gnus-util.el to gnus-rmail.el
* lisp/gnus/gnus-rmail.el: New file with rmail-related functions
moved from gnus-util.el.
* lisp/gnus/gnus-util.el: Move the rmail-related functions to its
own file. This avoids loading rmail.el when something requires
gnus-util.el.
2021-12-18 Po Lu <luangruo@yahoo.com>
Add missing implementation of `pgtk-menu-bar-open'
* lisp/term/pgtk-win.el (pgtk-menu-bar-open): New function.
(bug#52604)
2021-12-18 Po Lu <luangruo@yahoo.com>
* src/gtkutil.c: Remove obsolete fixme.
* etc/NEWS: Add news entry for pgtk.
2021-12-18 Paul Eggert <eggert@cs.ucla.edu>
Update from gnulib
Make the following changes by hand, and run admin/merge-gnulib.
* configure.ac (AM_CONDITIONAL): Adjust to new Gnulib convention.
2021-12-18 Andrew G Cohen <cohen@andy.bu.edu>
Fix gnus search by message-id
* lisp/gnus/gnus-search.el (gnus-search-run-search): Continue
iterating until a match is found.
* lisp/gnus/nnselect.el (nnselect-request-article): Use new
gnus-search query format.
2021-12-18 Eli Zaretskii <eliz@gnu.org>
Improve doc strings in emoji.el
* lisp/international/emoji.el (emoji-insert, emoji-recent)
(emoji-search, emoji-list, emoji-describe, emoji-list-help):
Improve and clarify the doc strings.
2021-12-18 Mattias Engdegård <mattiase@acm.org>
Remove incorrect byte-hunk-handler for `eval`
This optimisation is of very limited utility and miscompiles top-level
code having the form (eval 'CODE t) by replacing it with CODE which
will then, as things currently stand, be evaluated with dynamic binding.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Remove.
2021-12-18 Michael Albinus <michael.albinus@gmx.de>
Make generation of JUnit test reports more robust.
* lisp/emacs-lisp/ert.el (ert-load-file-name): New defvar.
(ert-write-junit-test-report): Use it. Make detection of selector
more robust. Protect calls of `xml-escape-string' with 'noerror.
* test/infra/Makefile.in (subdir_template): Use "make -k ...".
* test/infra/gitlab-ci.yml (test-filenotify-gio):
Adapt make_params in order to get a JUnit test report.
(test-native-comp-speed0): Use "make -k ...".
* test/infra/test-jobs.yml: Regenerate.
* test/lisp/progmodes/perl-mode-tests.el (top):
Set `ert-load-file-name'.
2021-12-18 Stefan Kangas <stefan@marxist.se>
* lisp/dired.el (dired-mode-map): Use defvar-keymap.
2021-12-18 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler in multisession-tests.el
* test/lisp/emacs-lisp/multisession-tests.el
(multi-test-sqlite-simple, multi-test-sqlite-busy)
(multi-test-files-simple, multi-test-files-busy)
(multi-test-files-some-values): Silence byte-compiler.
2021-12-18 YugaEgo <yet@ego.team>
Cleanup append-to-buffer section in ELisp Intro
* doc/lispintro/emacs-lisp-intro.texi
(append-to-buffer, Buffer Related Review, fwd-para let):
Finalize shifting focus of the 'let*' introduction
to the 'append-to-buffer' section. Improve wording, fix
typos, remove redundant comments (Bug#8275).
2021-12-18 Eli Zaretskii <eliz@gnu.org>
Clean up some of PGTK code
* src/pgtkgui.h: Fix comments.
* src/image.c (DONT_CREATE_TRANSFORMED_IMAGEMAGICK_IMAGE)
(is_wayland_display, check_x_display_info)
(pgtk_get_string_resource): Reformat comments.
* src/gtkutil.c (xg_show_tooltip): Add comments to large #ifdef's.
2021-12-18 Po Lu <luangruo@yahoo.com>
Fix cairo build on haiku
* configure.ac: Move pgtk cairo detection to the correct
location.
2021-12-18 Po Lu <luangruo@yahoo.com>
* src/pgtkfns.c (Fx_show_tip): Adjust call for new signature.
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-18 Po Lu <luangruo@yahoo.com>
Work around some mysterious touch ownership race on GNOME Shell
* src/xterm.c (x_unlink_touch_point): Return if touchpoint was
actually unlinked.
(handle_one_xevent): Catch and ignore errors during touch
sequence grabbing.
2021-12-18 Po Lu <luangruo@yahoo.com>
Add new argument `ignore-line-at-end' to `window-text-pixel-size'
* doc/lispref/display.texi (Size of Displayed Text): Update
documentation.
* etc/NEWS: Announce new argument.
* src/xdisp.c (window_text_pixel_size): Allow controlling if
the iterator's ascent and descent will be appended to the
pixel height returned. All callers changed.
(Fwindow_text_pixel_size): New argument `ignore-line-at-end'.
All callers changed.
2021-12-18 Eli Zaretskii <eliz@gnu.org>
Fix display of window-specific overlays with 'display' property
* src/xdisp.c (handle_display_prop): Pass the window to
'get_char_property_and_overlay', not the buffer. (Bug#52385)
The assignment of the buffer to OBJECT was moved to before
the call to 'get_char_property_and_overlay', for unknown
reasons, as part of installing the support for the
'min-width' space spec.
2021-12-18 Lars Ingebrigtsen <larsi@gnus.org>
Make multisession file reading more resilient on Windows
* lisp/emacs-lisp/multisession.el (multisession--read-file-value):
Rename and try harder on file errors on Windows.
2021-12-18 Po Lu <luangruo@yahoo.com>
Coding style fixes
* src/gtkutil.c (xg_frame_set_char_size): Fix coding style.
2021-12-18 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-18 Po Lu <luangruo@yahoo.com>
Document a bug that exists with some versions of GNOME and GTK
* etc/PROBLEMS (Window-manager and toolkit-related problems):
Document GNOME shell bug.
2021-12-17 Po Lu <luangruo@yahoo.com>
Flip buffers if display were modified in haiku_read_socket
* src/haikuterm.c (flush_dirty_back_buffers): New function.
(haiku_read_socket): Flip buffers if the display could have
been modified.
2021-12-17 Po Lu <luangruo@yahoo.com>
Don't abort upon untracked TouchUpdate events
Emacs might get an untracked TouchUpdate event in the unlikely
event of a device hierarchy change during a touch sequence, in
which case all devices and touchpoints will be reset.
* src/xterm.c (handle_one_xevent): Don't abort when receiving
a TouchUpdate that isn't part of a touch sequence.
2021-12-17 Michael Albinus <michael.albinus@gmx.de>
Handle missing JUnit test reports
* lisp/emacs-lisp/ert.el (ert-write-junit-test-report)
(ert-write-junit-test-summary-report): Handle missing JUnit test reports.
2021-12-17 Stefan Monnier <monnier@iro.umontreal.ca>
multisession.el: Avoid old specializer syntax
Avoid the use of the old (eql VAL) specializer, preferring the new
(eql EXP) form.
* lisp/emacs-lisp/multisession.el (multisession-backend-value)
multisession--backend-set-value, multisession--backend-values)
multisession--backend-delete, multisession-backend-value)
multisession--backend-set-value, multisession--backend-values)
multisession--backend-delete): Quote the symbol passed to `eql` specializer.
2021-12-17 Eli Zaretskii <eliz@gnu.org>
Improve multisession test results on MS-Windows
* lisp/emacs-lisp/multisession.el
(multisession--backend-set-value): Force 'fsync'ing the temporary
file.
2021-12-17 Po Lu <luangruo@yahoo.com>
Fix touchscreen support on Xt builds
* src/xterm.c (handle_one_xevent): Make menu bar touch event
code conditional on GTK3.
2021-12-17 Po Lu <luangruo@yahoo.com>
Update menu bar when processing touch sequences on it
* src/xterm.c (handle_one_event): Prevent menu bar from
becoming outdated when handling XI_TouchBegin events that may
cause it to be opened.
2021-12-17 Po Lu <luangruo@yahoo.com>
Ignore motion events sent by an emulated pointer
* src/xterm.c (handle_one_xevent): Ignore XI_Motion events that
have PointerEmulated set when the display supports XInput 2.2
or later.
2021-12-17 Paul Eggert <eggert@cs.ucla.edu>
Port tramp-adb.el back to Emacs 26
* lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p):
Revert previous change since Tramp code should still be backward
compatible to Emacs 26. But add a comment about this.
Problem reported by Michael Albinus in:
https://lists.gnu.org/r/emacs-devel/2021-12/msg01623.html
2021-12-17 Eli Zaretskii <eliz@gnu.org>
Fix selection of fonts that don't have regular weight
* src/font.c (font_delete_unmatched): The kludge of allowing
inexact matches of the font weight is now used for non-NTGUI
platforms as well. (Bug#52493)
2021-12-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix parallel build with multisession.el
* lisp/emacs-lisp/multisession.el: Don't require url -- this pulls
in gnus-util, which requires rmail, which depends on
rmail-loaddefs being generated, which our Makefiles doesn't guarantee.
2021-12-17 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-17 Po Lu <luangruo@yahoo.com>
Add support for touchscreen events generated by XInput 2
* doc/lispref/commands.texi (Input Events): Add "Touchscreen
Events" to menu.
(Touchscreen Events): New node.
* etc/NEWS: Announce new event types.
* src/keyboard.c (make_lispy_event): Handle touchscreen events.
(syms_of_keyboard): New symbols `touchscreen-begin',
`touchscreen-end' and `touchscreen-update'.
* src/termhooks.h (enum event_kind): New touchscreen events.
* src/xfns.c (setup_xi_event_mask): Set up touch event mask if
appropriate.
(x_window) [USE_GTK]: Call `setup_xi_event_mask'.
* src/xterm.c (x_free_xi_devices): Free touchpoints.
(x_init_master_valuators): Handle all devices and set master and
touch mode flags appropriately.
(xi_reset_scroll_valuators_for_device_id):
(x_get_scroll_valuator_delta): Ignore slave devices.
(xi_link_touch_point):
(xi_unlink_touch_point):
(xi_find_touch_point): New functions.
(handle_one_xevent): Handle XI touch events and events from
non-master devices.
* src/xterm.h (struct xi_touch_point_t): New structure.
(struct xi_device_t): Add touchpoints field.
2021-12-16 Dmitry Gutov <dgutov@yandex.ru>
Kill eshell-mode project buffers too
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Add 'eshell-mode' too (bug#49465).
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
* src/timefns.c: Minor comment fix.
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Simplify epa-ks--parse-buffer timestamp handling
* lisp/epa-ks.el (epa-ks--parse-buffer): Omit unnecessary calls to
seconds-to-time, and prefer the unaliased name time-convert when
calls are necessary.
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Omit temporary warning re obsolete timestamps
Do not warn about timestamps like (1 . 1000). This warning was added
in Emacs 27 as a temporary transition aid, and has now served its
purpose. These timestamps, which Emacs 26 and earlier treated as (HI
. LO) instead of as (TICKS . HZ), were never generated by Emacs
primitives, and in practice the warning seems to have been triggered
only by test cases designed to generate it.
* src/timefns.c (WARN_OBSOLETE_TIMESTAMPS): Remove.
All uses changed to assume its false.
(decode_lisp_time): Simplify by taking a bool instead of an
integer bitmask. All uses changed.
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Assume current-time-zone exists
* lisp/timezone.el (timezone-time-zone-from-absolute): Simplify by
assuming current-time-zone exists (true since Emacs 19.7 in 1993).
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Prefer format-time-string to current-time-zone
* lisp/org/ox-icalendar.el (org-icalendar-template)
(org-icalendar-export-current-agenda)
(org-icalendar--combine-files):
* lisp/time.el (display-time-update):
Prefer (format-time-string "%Z") to (cadr (current-time-zone)).
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Minor nndiary simplificatiuon with time zone
* lisp/gnus/nndiary.el (nndiary-last-occurrence)
(nndiary-next-occurrence): Simplify (and X (car X)) to (car X).
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Prefer format-time-string to current-time-string
* lisp/arc-mode.el (archive-unixdate):
* lisp/gnus/nnrss.el (nnrss-normalize-date):
* lisp/tar-mode.el (tar-clip-time-string):
Prefer format-time-string to reassembling current-time-string output.
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
encode-time simplifications
* lisp/gnus/gnus-search.el (gnus-search-query-parse-date):
* lisp/net/soap-client.el (soap-decode-date-time):
* lisp/net/tramp-adb.el (tramp-adb-ls-output-time-less-p):
* lisp/org/ol.el (org-store-link):
* lisp/org/org-clock.el (org-clock-sum)
(org-clock-update-time-maybe):
* lisp/org/org-colview.el (org-colview-construct-allowed-dates):
* lisp/org/org-macro.el (org-macro--vc-modified-time):
* lisp/org/org-macs.el (org-2ft, org-matcher-time):
* lisp/org/org-table.el (org-table-eval-formula):
* lisp/org/org.el (org-read-date, org-display-custom-time)
(org-time-string-to-time, org-timestamp-change):
Prefer (encode-time L) to (apply #'encode-time L) where either will do.
* lisp/gnus/gnus-search.el (gnus-search-imap-handle-date):
* lisp/org/org-clock.el (org-clocktable-steps):
Prefer (encode-time S M ...) to (apply #'encode-time (list S M ...)).
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Fix icalendar time zone parsing glitch
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
Use pcase instead of cl-case, as cl-macs might not be loaded.
Otherwise, a build complains “calendar/icalendar.el:618:57:
Warning: 90 is a malformed function” and some
icalendar--decode-isodatetime tests fail. This fixes a bug
introduced in 2021-11-21T08:18:57Z!dick.r.chiang@gmail.com.
2021-12-16 Paul Eggert <eggert@cs.ucla.edu>
Fix encode-time doc string
* src/timefns.c (Fencode_time): Fix incorrect doc string
that talks about FORM (which doesnt exist) by copying
wording from the manual instead.
2021-12-16 Juri Linkov <juri@linkov.net>
* lisp/vc/vc-dispatcher.el (vc-command-messages): Add choice 'log'.
(vc-do-command): Don't display messages but only write them to the *Messages*
buffer when vc-command-messages is 'log' (bug#52518).
2021-12-16 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-16 Eli Zaretskii <eliz@gnu.org>
Improve documentation of multisession variables
* doc/lispref/variables.texi (Multisession Variables): Improve
wording and markup, add indexing.
2021-12-16 Lars Ingebrigtsen <larsi@gnus.org>
Update files times in multisesssion properly
* lisp/emacs-lisp/multisession.el
(multisession--backend-set-value): Make cached/external files
times match up.
2021-12-16 Lars Ingebrigtsen <larsi@gnus.org>
Make the multisession files value read more resilient
* lisp/emacs-lisp/multisession.el
(multisession--update-file-value): Make more resilient towards errors.
2021-12-16 Lars Ingebrigtsen <larsi@gnus.org>
Skip extension tests on hosts without the function
2021-12-16 Lars Ingebrigtsen <larsi@gnus.org>
Make emoji--recent use multisession variables
* lisp/international/emoji.el (emoji--recent): Make into a
multisession variable.
(emoji-recent, emoji--recent-transient): Use it.
(emoji--add-recent): Update it.
2021-12-16 Lars Ingebrigtsen <larsi@gnus.org>
Declare a couple more functions in multisession.el
* lisp/emacs-lisp/multisession.el: New file.
2021-12-16 Lars Ingebrigtsen <larsi@gnus.org>
Add support for multisession variables
* doc/lispref/elisp.texi (Top): Add to menu.
(Top):
* doc/lispref/variables.texi (Variables): Ditto.
(Multisession Variables): Document multisession variables.
* lisp/emacs-lisp/multisession.el: New file.
2021-12-16 Po Lu <luangruo@yahoo.com>
Require xwidget.el in `make-xwidget'
* src/xwidget.c (Fmake_xwidget): Require `xwidget'.
2021-12-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1e578267fb Fix control buffer window height in 'ediff-setup-control-b...
2021-12-15 Stefan Kangas <stefan@marxist.se>
Prefer command remapping in ses.el
* lisp/ses.el (ses-mode-print-map): Use command remapping instead of
substitute-key-definition.
2021-12-15 Fredrik Bergroth <fbergroth@gmail.com>
Add missing entries from completionitemkind
* eglot.el (eglot--kind-names): update
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/772
2021-12-15 Garret Buell <gmbuell@gmail.com> (tiny change)
Mark eglot-completion-at-point capf "non-exclusive"
Add :exclusive 'no to eglot-completion-at-point results marking it as
non-exclusive. This will allow completion to fall back to other less precise
completion backends (e.g. dabbrev) if Eglot's returns no results.
* eglot.el (eglot-completion-at-point): Set :exclusive to 'no
GitHub-reference: close https://github.com/joaotavora/eglot/issues/770
2021-12-15 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in hideif.el
* lisp/progmodes/hideif.el (hide-ifdef-mode-submap): Use
defvar-keymap. Use command remapping instead of
substitute-key-definition.
2021-12-15 Michael Albinus <michael.albinus@gmx.de>
Add errors in ert JUnit test reports
* lisp/emacs-lisp/ert.el (ert-write-junit-test-report)
(ert-write-junit-test-summary-report): Handle errors.
2021-12-15 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-minor-mode-use-buttons): Add :safe #'booleanp.
(outline-minor-mode-cycle, outline-minor-mode-highlight):
Replace `put safe-local-variable' with :safe tag.
2021-12-15 Andrea Corallo <akrl@sdf.org>
Have 'dlopen' use RTLD_GLOBAL in 'dynlib_open'
* src/pdumper.c (dump_do_dump_relocation): Use 'dynlib_open_for_eln'
in place of 'dynlib_open'.
* src/dynlib.h (dynlib_open_for_eln): Declare it.
* src/dynlib.c (dynlib_open_for_eln): New function.
(dynlib_open): Add RTLD_GLOBAL.
* src/comp.c (Fnative_elisp_load): Use 'dynlib_open_for_eln' in place
of 'dynlib_open'.
2021-12-15 Arash Esbati <arash@gnu.org>
Recognize starred environments
* lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Add
missing starred environments from sidecap and rotating packages.
2021-12-15 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
7078f32b5b Fix crash when dumping charset_table with portable dumper ...
a4fcbf46a7 ; etc/NEWS: Move the note about Xref EIEIO change to the p...
f88c1d222f Remove maintainer comment from Emacs 28 module snippet.
# Conflicts:
# etc/NEWS
2021-12-14 Po Lu <luangruo@yahoo.com>
Prevent GDK from handling emulated button events
* src/xterm.c (handle_one_xevent): Drop emulated button events.
2021-12-14 Po Lu <luangruo@yahoo.com>
Work around pixel scrolling issues when line numbers are displayed
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Compare start position against line number display width
instead.
2021-12-14 Dmitry Gutov <dgutov@yandex.ru>
project-kill-buffers-display-buffer-list: Fix :package-version value
* lisp/progmodes/project.el (project-kill-buffers-display-buffer-list):
Fix :package-version value.
2021-12-14 Dmitry Gutov <dgutov@yandex.ru>
Add 'comint-mode' and 'change-log-mode' to project-kill-buffer-conditions
* lisp/progmodes/project.el (project-kill-buffer-conditions):
Add 'comint-mode' and 'change-log-mode' to the list (bug#52465).
2021-12-14 Stefan Monnier <monnier@iro.umontreal.ca>
eieio-compat.el: Move to lisp/obsolete
The file only contains obsolete definitions, so it really belongs in
`lisp/obsolete`. Moving it there will also signal a warning for those
people who run old `.elc` files using EIEIO and generated with
Emacs<25 and who otherwise might not know about the obsolescence of
some of the functions they use.
* lisp/emacs-lisp/eieio-compat.el: Move to ...
* lisp/obsolete/eieio-compat.el: ... here.
2021-12-14 Stefan Kangas <stefan@marxist.se>
Prefer command remapping in allout.el
* lisp/allout.el (allout-compose-and-institute-keymap): Use command
remapping instead of substitute-key-definition.
2021-12-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix ert.texi error from previous change
* doc/misc/ert.texi (Running Tests in Batch Mode): Fix @r command.
2021-12-14 Stefan Kangas <stefan@marxist.se>
* lisp/net/eudc.el (custom-menu-create): Remove unnecessary autoload.
2021-12-14 Stefan Kangas <stefan@marxist.se>
Remove Emacs 21 compat code for command-remapping
* lisp/arc-mode.el (archive-mode-map):
* lisp/obsolete/iswitchb.el (iswitchb-global-map): Remove Emacs 21
compat code.
2021-12-14 Michael Albinus <michael.albinus@gmx.de>
Minor Tramp cleanup
* lisp/net/tramp.el (tramp-get-buffer-string): Simplify.
(tramp-lock-pid): Fix docstring.
2021-12-14 Michael Albinus <michael.albinus@gmx.de>
Explain JUnit test reports in ert doc
* doc/misc/ert.texi (Running Tests in Batch Mode): Explain
generation of JUnit test reports.
2021-12-14 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap in elisp-mode.el
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map)
(elisp--dynlex-modeline-map, lisp-interaction-mode-map): Use
defvar-keymap.
2021-12-14 Stefan Kangas <stefan@marxist.se>
Prefer command remapping in cperl-mode.el
* lisp/progmodes/cperl-mode.el (cperl-mode-map): Use command remapping
instead of substitute-key-definition.
2021-12-14 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-14 Lars Ingebrigtsen <larsi@gnus.org>
Only allow SQLite extensions from an allowlist
* src/sqlite.c (Fsqlite_load_extension): Only allow extensions
from an allowlist.
2021-12-14 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
3607508f3f Set calc-make-windows-dedicated to nil by default
9de8eec3bc * make-dist: Don't run "make --question info". (Bug#52322)
cea8deea72 ; * src/xdisp.c (move_it_vertically_backward): Clarify com...
6170c5036e Fix regression in help-mode prompt
# Conflicts:
# etc/NEWS
2021-12-13 Stefan Kangas <stefan@marxist.se>
completion.el: Make two compat aliases obsolete
* lisp/completion.el (cmpl-syntax-table, initialize-completions):
Make compat aliases obsolete.
2021-12-13 Michael Albinus <michael.albinus@gmx.de>
ERT can generate JUnit test reports
* .gitignore: Add test/**/*.xml.
* admin/notes/emba: Mention JUnit test report.
* etc/NEWS: ERT can generate JUnit test reports.
* lisp/emacs-lisp/ert.el (xml-escape-string): Autoload.
(ert-write-junit-test-report)
(ert-write-junit-test-summary-report): New defuns.
(ert-run-tests-batch, ert-summarize-tests-batch-and-exit): Call them.
* test/Makefile.in (clean): Remove *.xml.
* test/README: Mention $EMACS_TEST_JUNIT_REPORT environment variable.
* test/infra/Makefile.in ($(FILE)): Generate header commentary.
(clean): Remove.
* test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_JUNIT_REPORT.
(.job-template): Use it in script and after_script.
(.build-template, .gnustep-template, .filenotify-gio-template)
(.native-comp-template): Adapt rules.
(.test-template): Trigger JUnit test report.
* test/infra/test-jobs.yml: Regenerate.
2021-12-13 Stefan Kangas <stefan@marxist.se>
Make alias obsolete in xscheme.el
* lisp/progmodes/xscheme.el (xscheme-yank-previous-send): Make
obsolete.
2021-12-13 Stefan Kangas <stefan@marxist.se>
Make two aliases obsolete in lisp/international/robin.el
* lisp/international/robin.el (robin-transliterate-region)
(robin-transliterate-buffer): Make obsolete.
2021-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/generator.el (iter-yield): Simplify
2021-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
lisp/pcomplete.el: Mark obsolete some unused functions
* lisp/pcomplete.el (pcomplete-match-beginning, pcomplete-match-end):
Mark as obsolete.
(pcomplete-opt, pcomplete--here, pcomplete--help): Use lexical-binding.
2021-12-13 Eli Zaretskii <eliz@gnu.org>
* src/sqlite.c (Fsqlite_open, Fsqlite_load_extension): Use ENCODE_FILE.
2021-12-13 Stefan Kangas <stefan@marxist.se>
* lisp/ielm.el (ielm-map): Use defvar-keymap.
* lisp/ielm.el (ielm-header): Show key binding for describe-mode.
2021-12-13 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-13 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9bd3f78645 Make `M-x run-python' select the window again
62139aeb42 * lisp/tab-bar.el (tab-bar-switch-to-last-tab): Add 'abs' ...
ea8422204f * make-dist (manifest): Filter out msdos/autogen/* files.
b5354e989d Rewrite the "Quitting Windows" section of Emacs Lisp Refer...
64ea1a178c Fix eshell for systems that do not have subprocesses
2021-12-13 Lars Ingebrigtsen <larsi@gnus.org>
Add a new `sqlite-pragma' command
* doc/lispref/text.texi (Database): Document it.
* src/sqlite.c (Fsqlite_pragma): Add a separate command for
pragmas. These can be done via sqlite-execute, but it's less
confusing to have them in a separate command.
2021-12-12 Lars Ingebrigtsen <larsi@gnus.org>
Introduce a new sqlite-locked-error
* src/sqlite.c (Fsqlite_execute): Use it.
(syms_of_sqlite): Introduce a new error for locked databases so
that we can catch that condition on higher levels.
2021-12-12 Po Lu <luangruo@yahoo.com>
Work around pixel scrolling issues when org-indent-mode is on
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Subtract line height of window start when it doesn't appear
at the 0th pixel of the line.
2021-12-12 Po Lu <luangruo@yahoo.com>
Stop using XI focus events on non-GTK builds
* src/xfns.c (setup_xi_event_mask): Stop setting XI_FocusIn
and XI_FocusOut.
* src/xterm.c (x_detect_focus_change) <GenericEvent>: Don't
handle XI_FocusIn and XI_FocusOut events when not on GTK.
2021-12-12 Eli Zaretskii <eliz@gnu.org>
* lisp/char-fold.el (char-fold-override): Doc fix.
2021-12-12 Juri Linkov <juri@linkov.net>
* lisp/char-fold.el (char-fold-override): New defcustom (bug#52394).
(char-fold--default-override): New defconst with the default value nil.
(char-fold--previous): Add char-fold--default-override.
(char-fold--make-table): Don't populate the table with default chars
when char-fold-override or char-fold--default-override is non-nil.
(char-fold-update-table): Add char-fold--default-override.
2021-12-12 Juri Linkov <juri@linkov.net>
* lisp/startup.el: Let-bind browse-url-browser-function instead of setq-local
* lisp/startup.el (fancy-startup-text, fancy-about-text)
(fancy-splash-head, normal-about-screen): Let-bind browse-url-browser-function
to eww-browse-url around functions that use browse-url.
(fancy-startup-screen, fancy-about-screen): Don't set buffer-local
browse-url-browser-function.
https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg00939.html
2021-12-12 Po Lu <luangruo@yahoo.com>
Fix overline display when there is a box on PGTK
* src/pgtkterm.c (pgtk_draw_glyph_string): Draw box before any
text decorations.
2021-12-12 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-12 Po Lu <luangruo@yahoo.com>
Fix overline display over stretch glyphs with box on NS
* src/nsterm.m (ns_dumpglyphs_stretch): Don't draw text
decorations when there is a box.
(ns_draw_glyph_string): Draw text decorations after the box
in stretch glyph that have one.
2021-12-12 Po Lu <luangruo@yahoo.com>
Fix overline display when there is a box
* src/w32term.c (w32_draw_glyph_string):
* src/xterm.c (x_draw_glyph_string): Draw box before any text
decorations.
2021-12-12 Lars Ingebrigtsen <larsi@gnus.org>
Really fix the etags TEX parsing
* lib-src/etags.c (TEX_decode_env): Re-fix off-by-one parsing of
TEXTAGS environment variable (bug#52438).
2021-12-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix an off-by-one error in TEX parsing in etags
* lib-src/etags.c (TEX_decode_env): Fix off-by-one parsing of
TEXTAGS environment variable (bug#52438). Based on a patch by
David Fussner <dfussner@googlemail.com> and amended by Andreas
Schwab <schwab@linux-m68k.org>.
2021-12-12 Lars Ingebrigtsen <larsi@gnus.org>
Check for support in sqlite-mode-open-file
* lisp/sqlite-mode.el (sqlite-mode-open-file): Error out earlier
when we don't have sqlite support.
2021-12-12 Stefan Kangas <stefan@marxist.se>
eshell: Prefer octal number for file modes
* lisp/eshell/esh-util.el (eshell-private-file-modes)
(eshell-private-directory-modes): Prefer octal number for file modes.
2021-12-12 Lars Ingebrigtsen <larsi@gnus.org>
Make with-sqlite-transaction mode code efficient
* lisp/sqlite.el (with-sqlite-transaction): Rewrite to only
include BODY once.
2021-12-12 Po Lu <luangruo@yahoo.com>
* src/xterm.c (x_detect_focus_change): Fix XI2 focus on GTK builds.
2021-12-12 Po Lu <luangruo@yahoo.com>
Fix last change
* src/xterm.c (x_detect_focus_change): Test against
FOCUS_EXPLICIT.
2021-12-12 dick r. chiang <dick.r.chiang@gmail.com>
Fix some compilation warnings in sqlite-less builds
* test/src/sqlite-tests.el:
* lisp/sqlite-mode.el: Avoid compilation warnings in builds
without libsqlite (bug#52440).
2021-12-12 Po Lu <luangruo@yahoo.com>
Fix frame focus on X Toolkit builds with XInput 2
* src/xterm.c (x_detect_focus_change): Allow focus_state to not
be FOCUS_EXPLICIT when handling FocusIn and FocusOut events.
2021-12-12 Lars Ingebrigtsen <larsi@gnus.org>
Update bovine/gcc-tests for newer Macos versions
* test/lisp/cedet/semantic/bovine/gcc-tests.el
(semantic-gcc-test-output-parser-this-machine): Update gcc->llvm
detection to Macos Monterey.
2021-12-12 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
8a0734329a Avoid undefined behavior in 'send-process-region' (Bug#523...
30dd5c9acc Update to Org 9.5.1-25-g9ca3bc
a374849926 Fix the DJGPP port
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Tweak erroring in sqlite-mode-delete
* lisp/sqlite-mode.el (sqlite-mode-delete): Use user-error instead
of error for user-level stuff.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Make sqlite-mode-list-tables work on older sqlite versions
* lisp/sqlite-mode.el (sqlite-mode-list-tables): Use sqlite_master
instead of sqlite_schema, since the former name is the historical
name and is available in all sqlite3 versions:
https://sqlite.org/schematab.html
2021-12-11 Po Lu <luangruo@yahoo.com>
Fix coding style
* src/pgtkmenu.c (popup_widget_loop):
(popup_deactivate_callback):
(show_help_event):
(menu_highlight_callback):
(menubar_selection_callback):
(popup_selection_callback):
(dialog_selection_callback):
(create_and_show_dialog): Fix coding style.
2021-12-11 Po Lu <luangruo@yahoo.com>
Prevent hangs when displaying a context menu on pgtk
* src/pgtkmenu.c (pgtk_menu_wait_for_event, popup_widget_loop):
Remove unnecessary workarounds.
2021-12-11 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-11 Po Lu <luangruo@yahoo.com>
Clear precision scroll interpolation when direction changes
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
Clear scroll interpolation when direction changes.
2021-12-11 Po Lu <luangruo@yahoo.com>
Fix drawing overlines on top of stretch glyphs when there is a box
* src/haikuterm.c (haiku_draw_string_box): Also draw text
decorations if the clipping is to be set.
(haiku_draw_glyph_string): Only draw text decorations if
the box will not be drawn with clipping.
2021-12-11 Mattias Engdegård <mattiase@acm.org>
Constant-propagate access to captured variables
* lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p):
Treat (internal-get-closed-var N) as constants for propagation
purposes, because that is effectively what such forms will be compiled
to. This allows for the elimination of some lexical variables.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.
2021-12-11 Mattias Engdegård <mattiase@acm.org>
Reimplement gnus-thread-header in Lisp
* lisp/gnus/gnus-sum.el (gnus-thread-header):
Replace lovingly hand-crafted assembler code with plain Lisp.
With lexical binding the difference is unlikely to be detectable.
2021-12-11 Eli Zaretskii <eliz@gnu.org>
Fix hang when deleting a pipe process
* src/w32.h (FILE_DONT_CLOSE): New flag.
* src/w32.c (sys_close): Don't close descriptors used to read from
the pipe process. Leave the FILE_DONT_CLOSE flag set in the
descriptor's info.
(register_aux_fd): Set the FILE_DONT_CLOSE flag in the
descriptor's info.
* src/w32proc.c (reader_thread): When exiting normally, close the
file descriptor used to read from a pipe process. (Bug#52414)
2021-12-11 Yuuki Harano <masm+github@masm11.me>
Implement pgtk_frame_raise_lower
* src/pgtkterm.c (pgtk_raise_frame): New function.
(pgtk_lower_frame): New function.
(pgtk_frame_raise_lower): New function to call one of those.
(pgtk_create_terminal): Set frame_raise_lower_hook.
2021-12-11 Eli Zaretskii <eliz@gnu.org>
Improve documentation of sqlite3 support
* lisp/sqlite-mode.el (sqlite-mode-list-data):
* configure.ac (HAVE_SQLITE3): Fix typos.
* doc/lispref/text.texi (Database): Improve and clarify wording,
add index entries, mention all the function arguments.
* etc/NEWS: Minor wording changes of the sqlite entries.
2021-12-11 Po Lu <luangruo@yahoo.com>
Coding style fixes
* src/pgtkterm.c (button_event): Fix coding style.
2021-12-11 Po Lu <luangruo@yahoo.com>
Fix tooltips in PGTK child frames
* src/gtkutil.c (xg_show_tooltip, xg_hide_tooltip): Make
safe for child frames.
2021-12-11 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-11 Po Lu <luangruo@yahoo.com>
Use window height to determine wheel event pixel deltas on XInput 2
* src/xterm.c (handle_one_xevent): Use window height instead of
frame height to determine the height of a scroll unit.
2021-12-11 Po Lu <luangruo@yahoo.com>
Prevent hang when exiting Emacs on Haiku
* src/haiku_support.cc (be_app_quit): Don't wait for app
thread to also quit.
2021-12-11 Eli Zaretskii <eliz@gnu.org>
* src/sqlite.c (row_to_value): Call 'make_unibyte_string'.
2021-12-11 Basil L. Contovounesios <contovob@tcd.ie>
Pacify unused variable warning in xterm.c
* src/xterm.c (handle_one_xevent) <GenericEvent> [HAVE_XINPUT2]: The
variable any_stop_p is used only when HAVE_XWIDGETS, so guard its
declaration accordingly to pacify GCC's -Wunused-variable warning.
2021-12-11 Eli Zaretskii <eliz@gnu.org>
Minor cleanups in sqlite.c
* src/sqlite.c (Fsqlite_open): Signal an error if
'init_sqlite_functions' fails. Encode FILE using UTF-8.
(Fsqlite_close, Fsqlite_execute, Fsqlite_select)
(Fsqlite_load_extension): Doc fixes.
(Fsqlite_load_extension): Encode MODULE using UTF-8.
2021-12-11 Eli Zaretskii <eliz@gnu.org>
Minor cleanups of sqlite3 code on MS-Windows
* src/sqlite.c (sqlite_loaded_p): Function deleted: not used
anymore.
(init_sqlite_functions) [WINDOWSNT]: Use a static 'bool' variable
to indicate if sqlite3 DLL was successfully loaded.
(Fsqlite_available_p) [WINDOWSNT]: Just call
'init_sqlite_functions' if Vlibrary_cache doesn't mention
'sqlite3'.
2021-12-11 Eli Zaretskii <eliz@gnu.org>
Fix a typo in sqlite.c
* src/sqlite.c (Fsqlite_select): Fix a typo in arguments to
make_sqlite.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Add confirmation to sqlite-mode-delete
* lisp/sqlite-mode.el (sqlite-mode-delete): Add confirmation.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Don't leave open cursors when listing sqlite data
* lisp/sqlite-mode.el (sqlite-mode-list-data)
(sqlite--mode--list-data): Don't leave open cursor (because they
block other processes from deleting stuff).
(sqlite-mode-delete): Adjust to new layout.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Add FIXME comment
* lisp/sqlite-mode.el (sqlite-mode-delete): New command.
(sqlite--mode--list-data, sqlite-mode-list-data): Adjust to new
command.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Add an sqlite-mode-delete command
* lisp/sqlite-mode.el (sqlite-mode-delete): New command.
(sqlite--mode--list-data, sqlite-mode-list-data): Adjust to new
command.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix Fsqlite_finalize book-keeping
* src/sqlite.c (Fsqlite_finalize): Mark the object as dead.
2021-12-11 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
5708da48d1 Revert "Make `M-x run-python' select the window again"
aa2872a127 Make `M-x run-python' select the window again
c8e19b3a84 Don't bug out on certain empty elements with ids
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Improve sqlite-mode--tablify tables
* lisp/sqlite-mode.el (sqlite-mode--tablify): Tweak column widths
and sanitize newlines.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Check whether the sqlite supports sqlite3_load_extension
* configure.ac: Check for sqlite3_load_extension, which is
apparently missing in some versions.
* src/sqlite.c: Add guards.
(Fsqlite_load_extension): Ifdef out on systems that doesn't have it.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix sqlite-mode.el build problems
* lisp/sqlite-mode.el (sqlite-mode-list-tables): Fix function
rename usage.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix some sqlite doc string typos
* src/sqlite.c (Fsqlite_load_extension, Fsqlite_more_p): Fix typos
in doc strings.
2021-12-11 Lars Ingebrigtsen <larsi@gnus.org>
Add a new mode for examining sqlite files
* lisp/sqlite-mode.el: New file.
2021-12-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix comment in heading
Add NEWS entry for sqlite
2021-12-10 Lars Ingebrigtsen <larsi@gnus.org>
Add sqlite3 support to Emacs
* configure.ac: Add check for the sqlite library.
* doc/lispref/text.texi (Database): Document it.
* lisp/sqlite.el: New file.
* lisp/term/w32-win.el (dynamic-library-alist): Add a mapping.
* src/Makefile.in (SQLITE3_LIBS): Add the libraries.
* src/alloc.c (union emacs_align_type): Add a Lisp_Sqlite struct.
* src/data.c (Ftype_of): Add sqlite.
* src/emacs.c (main): Load the syms.
* src/lisp.h (DEFINE_GDB_SYMBOL_BEGIN): Add PVEC_SQLITE.
(GCALIGNED_STRUCT): New struct to keep data for sqlite database
objects and statement objects.
(SQLITEP, SQLITE, CHECK_SQLITE, XSQLITE): New macros for accessing
the objects.
* src/pdumper.c (dump_vectorlike): Update hash.
(dump_vectorlike): Don't dump it.
* src/print.c (print_vectorlike): Add a printer for the sqlite
object.
* src/sqlite.c: New file.
* test/src/sqlite-tests.el: Add tests.
2021-12-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix bibtex-biblatex-entry-alist sorting when using latex
* lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Sort
PhdThesis and TechReport correctly when using the latex variant
(bug#52354).
2021-12-10 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-10 Stefan Kangas <stefan@marxist.se>
* etc/TODO: Entry about converting to defvar-keymap.
2021-12-10 Stefan Kangas <stefan@marxist.se>
Use defvar-keymap for package-menu-mode-map
* lisp/emacs-lisp/package.el (package-menu-mode-map): Use
defvar-keymap.
2021-12-10 Lars Ingebrigtsen <larsi@gnus.org>
Make keymap-lookup work for keymap results, too
* lisp/keymap.el (keymap-lookup): Make this function work for
non-symbol lookups, too (bug#52374).
2021-12-10 Lars Ingebrigtsen <larsi@gnus.org>
Make dired-buffers-for-dir expand the DIR argument
* lisp/dired.el (dired-buffers-for-dir): Expand DIR argument
(bug#52395).
(dired-find-buffer-nocreate, dired-clean-up-after-deletion):
Adjust callers.
2021-12-10 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-10 Po Lu <luangruo@yahoo.com>
Further reduce image-related stutter during precision scrolling
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Disable
`scroll-preserve-screen-position' and `auto-window-vscroll'
while scrolling.
2021-12-10 Po Lu <luangruo@yahoo.com>
Stop setting `make-cursor-line-fully-visible' in precision scrolling
* lisp/pixel-scroll.el (pixel-scroll-precision-mode): Stop
setting `make-cursor-line-fully-visible'.
2021-12-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
7a25ba0fde ; * lisp/image-dired.el: Fix typo.
dda6337066 emacsclient takes more care about XDG_RUNTIME_DIR
26fb4168b8 ; Prefer HTTPS in more URLs
6b89578524 ; * lisp/progmodes/flymake.el: Update the minimum Emacs ve...
2021-12-09 Po Lu <luangruo@yahoo.com>
Fix bob detection when pixel scrolling upwards
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Don't go to the beginning-of-visual-line if bobp.
2021-12-09 Po Lu <luangruo@yahoo.com>
Fix pixel scrolling upwards in Info buffers
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Don't blindly trust window start to be the beginning of a
visual line.
2021-12-09 Po Lu <luangruo@yahoo.com>
Remove unused let-bindings from pixel-scroll.el
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Remove unused
bindings.
2021-12-09 Po Lu <luangruo@yahoo.com>
Fix precision scrolling for stretch glyphs
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Simplify logic.
(pixel-scroll-precision-interpolate): Block throw-on-input
when actually scrolling.
2021-12-09 Stefan Kangas <stefan@marxist.se>
* lisp/time.el (world-clock-mode-map): Convert to defvar-keymap.
2021-12-09 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-09 Eli Zaretskii <eliz@gnu.org>
Fix logic in 'compute_window_start_on_continuation_line'
* src/xdisp.c (compute_window_start_on_continuation_line): Fix a
thinko in logic. Patch by dickmao <dick.r.chiang@gmail.com>.
(Bug#52378)
2021-12-09 Michael Albinus <michael.albinus@gmx.de>
Fix thinko in Tramp test
* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
Fix thinko.
2021-12-09 Michael Albinus <michael.albinus@gmx.de>
Improve lock-pid handling in Tramp
* lisp/net/tramp-cache.el: Remove comment.
* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
* lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
Do not set "lock-pid" connection-property.
(tramp-sudoedit-handle-delete-file): Use "rm -f".
* lisp/net/tramp.el (tramp-test-message): Extend for buffers w/o
remote default-directory.
(tramp-lock-pid): New defvar.
(tramp-get-lock-pid): Reimplement.
2021-12-09 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1821844357 Add missing K key documentation for Cangjie input methods
be860c1385 Fix manual entry of 'quit-restore-window' (Bug#52328)
35a96139df Clarify a comment in xdisp.c
6ba2f028cf Revert "Grep alias `all' shall not match parent directory"
eb9e33e238 ; * etc/NEWS: Non-nil repeat-keep-prefix is not the defaul...
538fc1d0e0 Fix mode-line display in Calendar mode
# Conflicts:
# etc/NEWS
# lisp/help.el
2021-12-09 Po Lu <luangruo@yahoo.com>
Make precision scrolling up work over display strings
* lisp/pixel-scroll.el
(pixel-point-and-height-at-unseen-line): Use
`window-text-pixel-size'.
(pixel-scroll-precision-scroll-up-page): Use delta as vscroll
directly.
2021-12-09 Po Lu <luangruo@yahoo.com>
Fix pixel scrolling over lines with different sized glyphs
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Calculate desired
vscroll with `window-text-pixel-size'.
2021-12-08 Po Lu <luangruo@yahoo.com>
Fix jumping cursor during interpolated scrolls
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Go to next position
before setting start or vscroll.
2021-12-08 Po Lu <luangruo@yahoo.com>
Allow customizing step between each interpolated scroll
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
Use new option.
(pixel-scroll-precision-interpolation-between-scroll): New user
option.
2021-12-08 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-08 Stefan Kangas <stefan@marxist.se>
image-dired: Show image info in header line
* lisp/image-dired.el
(image-dired-update-header-line): New function to show image
information in the header line.
(image-dired-display-thumb-properties): Make obsolete.
(image-dired-track-thumbnail)
(image-dired--display-thumb-properties-fun)
(image-dired-forward-image, image-dired-next-line)
(image-dired-previous-line, image-dired-beginning-of-buffer)
(image-dired-end-of-buffer, image-dired-read-comment): Use
image-dired-update-header-line instead of
image-dired-display-thumb-properties.
2021-12-08 Stefan Kangas <stefan@marxist.se>
image-dired: Go to next image when marking
* lisp/image-dired.el
(image-dired-marking-shows-next): New user option to show the next
image after marking, unmarking or flagging an image.
(image-dired--do-mark-command): New macro.
(image-dired-mark-thumb-original-file)
(image-dired-unmark-thumb-original-file)
(image-dired-flag-thumb-original-file)
(image-dired-toggle-mark-thumb-original-file)
(image-dired-unmark-all-marks): Use above new macro.
2021-12-08 Stefan Kangas <stefan@marxist.se>
image-dired: Remove some TODOs
To the extent that these TODOs are relevant or useful, it would be
better to add such features to image-mode directly.
* lisp/image-dired.el: Remove some TODOs.
2021-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
* test/lisp/emacs-lisp/subr-x-tests.el (subr-x-named-let): New test
2021-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
* test/lisp/emacs-lisp/cl-macs-tests.el: Avoid `with-suppressed-warnings`
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--progv): Use a proper
namespace prefix for the global vars.
2021-12-08 Stefan Monnier <monnier@iro.umontreal.ca>
lisp/mouse.el: Fix some lambdas quoted with ` or '
Also prefer #' to quote named functions.
* lisp/mouse.el (minor-mode-menu-from-indicator, context-menu-entry)
([C-down-mouse-3]): Don't abuse lambda lists for functions.
(context-menu-mode): Remove redundant `:group`.
(mouse-drag-line): Remove unused var `draggable`.
(mouse-yank-primary): Make it work for non-mouse events.
2021-12-08 Juri Linkov <juri@linkov.net>
* lisp/mouse.el (context-menu-entry): Bind to make-sparse-keymap, not ignore.
Then where-is-internal does not run context-menu-map from the :filter,
and no context menu functions are called by e.g. describe-mode in wrong buffer
(bug#9923)
2021-12-08 Stefan Kangas <stefan@marxist.se>
Define some more keymaps in one step
* lisp/calc/calc-store.el (calc-var-name-map):
* lisp/mail/rmailsum.el (rmail-summary-edit-map):
* lisp/speedbar.el (speedbar-buffers-key-map): Define in one step.
* lisp/progmodes/ebrowse.el (ebrowse-global-submap-4)
(ebrowse-global-submap-5): Define in one step and use defvar-keymap.
2021-12-08 Stefan Kangas <stefan@marxist.se>
Define calc-help-map in one step
* lisp/calc/calc-ext.el (calc-help-map): Define in one step and
convert to defvar-keymap.
2021-12-08 Stefan Kangas <stefan@marxist.se>
Convert shortdoc-mode-map to defvar-keymap
* lisp/emacs-lisp/shortdoc.el (shortdoc-mode-map): Convert to
defvar-keymap.
2021-12-08 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
ce5bca4913 Document native-comp-async-report-warning-errors more
1933cd5307 Doc fix; Epiphany has been renamed to GNOME Web
b80d7568e4 * lisp/dired-aux.el (dired-check-process): Doc fix. (Bug#...
0f30227f97 ; * lisp/net/browse-url.el (browse-url-epiphany): Fix typo.
d34009db66 Remove dead link from newsticker
# Conflicts:
# lisp/net/browse-url.el
2021-12-08 Po Lu <luangruo@yahoo.com>
Fix coarse scroll deltas on macOS
* src/nsterm.m (- mouseDown): Multiply deltas as appropriate.
2021-12-08 Po Lu <luangruo@yahoo.com>
Clear scroll interpolation when interpolated scroll completes
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate): Set
saved interpolation to nil upon completion.
2021-12-08 Po Lu <luangruo@yahoo.com>
Improve precision scroll interpolation
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor): Add better
default values.
(pixel-scroll-precision-interpolate): Save deltas and run loop
inside `while-no-input' instead.
2021-12-08 Po Lu <luangruo@yahoo.com>
Fix last change
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor): Fix declared versions.
2021-12-08 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-08 Po Lu <luangruo@yahoo.com>
Make interpolated scrolling work better
* lisp/pixel-scroll.el (pixel-scroll-precision-interpolate):
Stop using `while-no-input'.
2021-12-08 Po Lu <luangruo@yahoo.com>
Allow customizing precision scroll interpolation
* lisp/pixel-scroll.el
(pixel-scroll-precision-interpolation-total-time)
(pixel-scroll-precision-interpolation-factor): New user
options.
(pixel-scroll-precision-interpolate): Use these new options.
(pixel-scroll-precision-mode): Set
`make-cursor-line-fully-visible' to nil.
2021-12-07 Po Lu <luangruo@yahoo.com>
Send scroll stop events to xwidgets correctly
* src/xterm.c (handle_one_xevent): Record stop events manually.
* src/xwidget.h (xwidget_scroll):
* src/xwidget.c (xwidget_scroll): New parameter `stop_p'.
2021-12-07 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-07 Stefan Kangas <stefan@marxist.se>
Convert etc-authors-mode-map to defvar-keymap
* lisp/textmodes/etc-authors-mode.el (etc-authors-mode-map):
Convert to defvar-keymap.
2021-12-07 Lars Ingebrigtsen <larsi@gnus.org>
Pacify svg_load_image compiler warning
* src/image.c (svg_load_image): Fix compiler warning from gcc
(Debian 11.2.0-10).
2021-12-07 Lars Ingebrigtsen <larsi@gnus.org>
Check decoding results in webp_load before using it
* src/image.c (webp_load): Check whether we were able to decode
the image before using it.
2021-12-07 Stefan Kangas <stefan@marxist.se>
image-dired: Navigate from image display buffer
* lisp/image-dired.el
(image-dired-mark-thumb-original-file)
(image-dired-unmark-thumb-original-file)
(image-dired-flag-thumb-original-file)
(image-dired-toggle-mark-thumb-original-file)
(image-dired-unmark-all-marks)
(image-dired-display-next-thumbnail-original)
(image-dired-display-previous-thumbnail-original): Make commands
usable from image-dired-display-image-mode.
(image-dired-display-image-mode-map): Bind above commands.
(image-dired--with-thumbnail-buffer): New macro.
2021-12-07 Miha Rihtaršič <miha@kamnitnik.top>
Improve yanking in the middle of comint process output
* lisp/comint.el
(comint--unmark-string-as-output): New function to remove unwanted
properties from text yanked from comint buffers.
(comint-mode): Use it as a 'filter-buffer-substring-function'.
(comint-output-filter): Set 'insert-in-front-hooks' text property on
process output such that text yanked by the user in the middle of
process output is marked as process output (Bug#3735).
(comint--mark-as-output): New function.
(comint--mark-yanked-as-output): New function.
2021-12-07 Stefan Kangas <stefan@marxist.se>
browse-url: Refactor code to find executable
* lisp/net/browse-url.el (browse-url--find-executable): Extract from...
(browse-url-firefox-program, browse-url-chrome-program)
(browse-url-chromium-program): ...here.
2021-12-07 Stefan Kangas <stefan@marxist.se>
browse-url: Remove support for Galeon
* lisp/net/browse-url.el (browse-url-galeon-program)
(browse-url-galeon-arguments)
(browse-url-galeon-startup-arguments)
(browse-url-galeon-new-window-is-tab, browse-url-galeon)
(browse-url-galeon-sentinel): Delete, thus removing support for the long
defunct Galeon web browser.
* etc/NEWS: Announce its removal.
2021-12-07 Eli Zaretskii <eliz@gnu.org>
* etc/tutorials/TUTORIAL.he: Add section about package management.
2021-12-07 Eli Zaretskii <eliz@gnu.org>
Improve before-make-frame-hook and after-make-frame-functions docs.
* lisp/frame.el (before-make-frame-hook)
(after-make-frame-functions):
* doc/lispref/frames.texi (Creating Frames): Mention that these
functions will be run for the initial frame only if added to the
hook in early-init file. (Bug#38143)
2021-12-07 Stefan Kangas <stefan@marxist.se>
browse-url: Remove support for Netscape
* lisp/net/browse-url.el (browse-url-netscape-program)
(browse-url-netscape-arguments)
(browse-url-netscape-startup-arguments)
(browse-url-netscape-new-window-is-tab)
(browse-url-netscape-version, browse-url-netscape)
(browse-url-netscape-sentinel, browse-url-netscape-reload)
(browse-url-netscape-send): Delete, thus removing support for the long
defunct Netscape web browser.
* etc/NEWS: Announce its removal.
2021-12-07 Glenn Morris <rgm@gnu.org>
* doc/misc/eshell.texi (Built-ins): Fix xref.
2021-12-07 Michael Albinus <michael.albinus@gmx.de>
Make a more robust check in Tramp using scripts
* lisp/net/tramp-sh.el (tramp-find-inline-encoding):
Check, whether scripts in `tramp-remote-coding-commands' are
expandable.
2021-12-07 Lele Gaifax <lele@metapensiero.it>
Add the new packages section to the Italian tutorial
* etc/tutorials/TUTORIAL.it (INSTALLAZIONE DI ULTERIORI PACCHETTI):
Translate from recently added INSTALLING PACKAGES section in the English
version. (Bug#52345)
(CONCLUSIONI): Reword paragraph, to better convey the original intent.
2021-12-07 Stefan Kangas <stefan@marxist.se>
Remove some unnecessary references to Emacs 22
* lisp/cedet/semantic/fw.el:
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer):
* lisp/emulation/viper-util.el (viper-frame-value):
* lisp/mail/rmail.el (rmail-delete-headers):
* lisp/mh-e/mh-e.el (mh-inc-spool-list): Remove some unnecessary
references to Emacs 22.
2021-12-07 Stefan Kangas <stefan@marxist.se>
* etc/tutorials/TUTORIAL: Say that there is usually a delete key.
2021-12-07 Stefan Kangas <stefan@marxist.se>
image-dired: Fix behavior of slideshow command
* lisp/image-dired.el (image-dired-slideshow-start): Fix behavior
to match documentation. Minor simplification of docstring.
2021-12-07 Stefan Kangas <stefan@marxist.se>
Remove obsolete values from image-mode-auto-resize
* lisp/image-mode.el (image-auto-resize): Remove obsolete options
fit-height and fit-width.
(image-transform-resize): Document that fit-height and fit-width
are obsolete.
(image-auto-resize-max-scale-percent): Fix defcustom const :tag.
2021-12-07 Stefan Kangas <stefan@marxist.se>
* lisp/view.el (view-mode-map): Convert to defvar-keymap.
2021-12-07 Stefan Kangas <stefan@marxist.se>
Remove XEmacs compat code from strokes.el
* lisp/strokes.el (strokes-mode): Remove XEmacs compat code;
select-frame-hook does not exist in Emacs.
2021-12-07 Lars Ingebrigtsen <larsi@gnus.org>
Add vc-git-stash-pop to vc-dir-git-mode
* lisp/vc/vc-git.el (vc-dir-git-mode-map): Add vc-git-stash-pop
(bug#52158).
2021-12-07 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
da23e607d3 Select the right buffer for event in context-menu function...
2021-12-07 Po Lu <luangruo@yahoo.com>
Cancel xwidget progress timer when buffer is killed
* lisp/xwidget.el (xwidget-webkit-buffer-kill): New function.
(xwidget-webkit-mode): Add `xwidget-webkit-buffer-kill' to
`kill-buffer-hook'. (bug#52344)
2021-12-06 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-06 Eric Abrahamsen <eric@ericabrahamsen.net>
When registering Gnus message ids, guard against no registry
* lisp/gnus/gnus-registry.el (gnus-registry-register-message-ids):
There are situations where this code is called without a full Gnus
startup (eg, debbugs). If the registry doesn't exist, just skip this
process.
2021-12-06 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler in two tests
* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
* test/lisp/mail/mail-utils-tests.el
(mail-utils-tests-mail-rfc822-time-zone): Silence byte-compiler.
2021-12-06 Stefan Kangas <stefan@marxist.se>
Remove spurious space in byte-compiler warning
* lisp/emacs-lisp/bytecomp.el
(byte-compile-docstring-length-warn): Remove spurious space in
byte-compiler warning.
* test/lisp/emacs-lisp/bytecomp-tests.el
("warn-wide-docstring-defun.el"): Update test.
2021-12-06 Stefan Kangas <stefan@marxist.se>
Assume unfilled byte-compiler warnings in tests
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp--define-warning-file-test): Remove workaround for filled
byte-compilation warnings. See Bug#52281.
2021-12-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous shr-parse-style change
* lisp/net/shr.el (shr-parse-style): Fix previous clean-up here
(which wasn't well thought through).
2021-12-06 Tassilo Horn <tsdh@gnu.org>
dired.texi: Document dired-create-destination-dirs-on-trailing-dirsep
* doc/emacs/dired.texi (Operating on Files): Document new option
dired-create-destination-dirs-on-trailing-dirsep.
2021-12-06 Eli Zaretskii <eliz@gnu.org>
Revert "Avoid small parasitic button on mode line"
This reverts commit c9e901f4a612646be4ce06e1619897edfb073bf0.
Turns out without that "ghost" button min-width doesn't work
on the mode line at all...
2021-12-06 Michael Albinus <michael.albinus@gmx.de>
Tramp code cleanup
* lisp/net/tramp.el (tramp-get-default-directory)
(tramp-get-buffer-string): New defsubsts.
(tramp-message, tramp-error-with-buffer)
(tramp-file-name-for-operation, tramp-command-completion-p)
(tramp-action-login, tramp-action-yesno, tramp-action-yn)
(tramp-action-terminal, tramp-action-confirm-message)
(tramp-wait-for-regexp, tramp-call-process)
(tramp-call-process-region, tramp-read-passwd):
* lisp/net/tramp-cmds.el (tramp-list-remote-buffers)
(tramp-reporter-dump-variable):
* lisp/net/tramp-gvfs.el (tramp-gvfs-monitor-process-filter):
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory)
(tramp-sh-handle-process-file, tramp-sh-handle-write-region)
(tramp-sh-gio-monitor-process-filter):
* lisp/net/tramp-smb.el (tramp-smb-action-set-acl):
* lisp/net/tramp-sudoedit.el
(tramp-sudoedit-handle-file-name-all-completions):
* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case)
(tramp-test32-shell-command): Use them.
2021-12-06 Eli Zaretskii <eliz@gnu.org>
Fix mode-line display on TTY frames
* lisp/bindings.el (mode-line-frame-control): Remove the leading
'-' before '%F' on TTY frames. It has no real purpose, and looks
ugly nowadays, since it's preceded by a blank, due to the new
min-width feature.
2021-12-06 Eli Zaretskii <eliz@gnu.org>
Avoid small parasitic button on mode line
* lisp/bindings.el (mode-line-position): Remove stray space
character, which caused a "ghost" button on the mode line.
(Bug#52332)
2021-12-06 Yuuki Harano <masm+github@masm11.me>
* src/pgtkterm.c (x_set_parent_frame): Fix coding style
2021-12-06 Yuuki Harano <masm+github@masm11.me>
Fix SEGV crash by unref css provider too much
I Got css provider from F, and was going to remove it from style
context. But between them, unhighlight was called when
gtk_container_remove was called, and the css provider was already
freed, so I can't use the css provider to remove it from style
context.
As a fix, I call gtk_container_remove after remove it.
Also, I free a css provider set by unhighlight.
* src/pgtkterm.c (x_set_parent_frame):
2021-12-06 Stefan Monnier <monnier@iro.umontreal.ca>
Merge remote-tracking branch 'origin/emacs-28' into trunk
2021-12-06 Stefan Kangas <stefan@marxist.se>
* etc/tutorials/TUTORIAL.sv: Adjust to latest change in TUTORIAL.
2021-12-06 Daniel Fleischer <danflscr@gmail.com>
Add package management to tutorial and startup screen
* etc/tutorials/TUTORIAL: Add section about package installation.
* lisp/startup.el (fancy-startup-tail): Add button for
package-list-packages.
This was discussed in:
https://lists.gnu.org/r/emacs-devel/2021-12/msg00079.html
2021-12-06 Stefan Kangas <stefan@marxist.se>
image.c: Remove some dead code
* src/image.c (gui_put_x_image): Remove dead code, commented out since
2004.
2021-12-06 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Update org-compat doc string
* lisp/org/org-compat.el (file-attribute-modification-time):
Update doc string to match that of builtin Emacs.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Fix minor clock skew issues
* lisp/midnight.el (clean-buffer-list):
* lisp/progmodes/vhdl-mode.el (vhdl-template-replace-header-keywords):
* lisp/net/rcirc.el (rcirc-connect):
Dont assume that getting the current time twice in rapid
succession will yield the same date and time.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Avoid timestamp info loss in mh-alias-tstamp
* lisp/mh-e/mh-alias.el (mh-alias-tstamp):
Dont lose subsecond info when setting mh-alias-tstamp.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Simplify by using format-time-string
* lisp/mail/sendmail.el (mail-do-fcc):
* lisp/net/tramp.el (tramp-debug-message):
Prefer format-time-string to doing time formatting by hand.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Simplify RFC 5322 time zone generation
* lisp/mail/feedmail.el (feedmail-rfc822-time-zone)
(feedmail-rfc822-date, feedmail-default-message-id-generator):
* lisp/mail/mail-utils.el (mail-rfc822-time-zone, mail-rfc822-date):
* lisp/timezone.el (timezone-make-arpa-date):
Simplify by using format-time-string with %z.
* lisp/mail/feedmail.el (feedmail-rfc822-time-zone):
* lisp/mail/mail-utils.el (mail-rfc822-time-zone):
Mark these should-have-been-internal functions obsolete.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Fix image load timekeeping bug
* lisp/image.el (image-animate-timeout): Fix bug that caused the
local variable time-to-load-image to be practically zero, instead
of the time it actually took to load the image. I think
this bug was introduced in 2013-02-16T03:29:30Z!rgm@gnu.org.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Use time-convert in with-decoded-time-value
* lisp/calendar/time-date.el (with-decoded-time-value):
Prefer time-convert to current-time on the off chance that code
will use this obsolete macro even after current-time returns pairs.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Simplify message-make-expires
* lisp/gnus/message.el (message-make-expires):
Use time-add instead of doing it by hand. This also calculates the
expiration time more accurately than the old code did.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Simplify message-unique-id etc.
* lisp/gnus/message.el (message-unique-id):
* lisp/net/sasl.el (sasl-unique-id-function):
Avoid unnecessary consing and reliance on internal timestamp
format by using (time-convert nil 'integer) which typically does
no consing, instead of using (current-time) and then ignoring
the subsecond parts of the generated list.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Prefer nil to (current-time) when either will do
* lisp/emacs-lisp/timer.el (timer-event-handler, run-at-time):
* lisp/gnus/gnus-score.el (gnus-score-date):
* lisp/gnus/gnus-search.el (gnus-search-query-parse-date)
(gnus-search-imap-handle-date):
* lisp/gnus/gnus-sum.el (gnus-user-date)
(gnus-summary-create-article):
* lisp/image-dired.el (image-dired-create-thumb-1):
* lisp/image/gravatar.el (gravatar-retrieve)
(gravatar--prune-cache):
* lisp/net/dbus.el (dbus-monitor-handler):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-set-file-times):
* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-times):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-set-file-times):
* test/lisp/autorevert-tests.el (auto-revert--wait-for-revert)
(auto-revert-tests--write-file, auto-revert-test--wait-for):
* test/lisp/net/tramp-tests.el (tramp--test-print-duration):
Prefer nil to (current-time) when either will do, as this avoids
some consing. Similarly, prefer omitting (current-time) arg
when this is equivalent.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Simplify cedet-utest-elapsed-time
* test/manual/cedet/cedet-utests.el (cedet-utest-elapsed-time):
Copy newer (circa-2011) implementation from elp.el, so that the
code matches its documentation again.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Use time-equal-p to compare timestamps in tests
* test/lisp/calendar/time-date-tests.el (test-days-to-time)
(test-time-since): Use time-equal-p to compare timestamps,
since the default form shouldnt matter.
2021-12-06 Paul Eggert <eggert@cs.ucla.edu>
Add time-convert tests
* test/src/timefns-tests.el (time-convert-forms): New test.
2021-12-06 NightMachinary <rudiwillalwaysloveyou@gmail.com>
Added dired-create-destination-dirs-on-trailing-dirsep
* lisp/dired-aux.el
(dired-create-destination-dirs-on-trailing-dirsep): New customization
option.
(dired-do-create-files): Use it.
(dired-create-destination-dirs): Mention the new option in the
docstring.
2021-12-06 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e3427faf55 Fix typos and improve consistency in ERC manual
0bf10d5082 * test/Makefile.in (check-declare): Add missing --batch.
34f5656137 Document the subtleties of the 'cursor' text property
2021-12-06 Po Lu <luangruo@yahoo.com>
Fix child frame crash on pgtk
* src/gtkutil.c (xg_check_special_colors): Use `FRAME_WIDGET'
on PGTK.
2021-12-06 Lars Ingebrigtsen <larsi@gnus.org>
Make the Git stash commands available in vc-dir Git buffers
* lisp/vc/vc-dir.el (vc-dir): Call the backend-specific minor mode
if it exists.
* lisp/vc/vc-git.el (vc-dir-git-mode-map): New map.
(vc-dir-git-mode): New minor mode.
2021-12-06 Po Lu <luangruo@yahoo.com>
Fix coding style
* src/pgtkfns.c (frame_geometry):
* src/pgtkterm.c (x_set_parent_frame):
(pgtk_text_icon):
(key_release_event):
(configure_event):
(map_event):
(window_state_event):
(delete_event):
(enter_notify_event): Fix coding style.
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Make gnus-check-backend-function mode `debug-on-signal' friendly
* lisp/gnus/gnus.el (gnus-check-backend-function): Allow running
with `debug-on-signal'.
2021-12-05 Stefan Monnier <monnier@iro.umontreal.ca>
EIEIO: Remove redundant type info in help
`C-h o` returned redundant info when used on EIEIO classes, listing
the same thing both for the type name and for the constructor name.
* lisp/emacs-lisp/eieio.el (help-fns-describe-function-functions):
Remove special case for defclass constructors.
* lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Declare it obsolete.
2021-12-05 Stefan Kangas <stefan@marxist.se>
image-dired: Use string-match-p in one case
* lisp/image-dired.el (image-dired-get-thumbnail-image): Use
string-match-p.
2021-12-05 Stefan Kangas <stefan@marxist.se>
image-dired: Don't disable mouse dragging
* lisp/image-dired.el (image-dired-thumbnail-mode-map): Don't
disable mouse dragging. (Bug#52201)
2021-12-05 Po Lu <luangruo@yahoo.com>
Fix jittering when precision scrolling over images
* lisp/pixel-scroll.el
(pixel-scroll-precision-initial-velocity-factor): Default to
nil.
(pixel-scroll-precision-scroll-down-page): Always set window
start.
2021-12-05 Justin Schell <justinmschell@gmail.com> (tiny change)
vc-git--program-version to support Git for macOS version string
`git version` on macOS returns e.g., "git version 2.30.1 (Apple
Git-130)" and `vc-git--program-version` currently returns "0" instead
of "2.30.1".
* lisp/vc/vc-git.el (vc-git--program-version): Ignore text after
the version number when parsing git versions (bug#52172).
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Don't fill byte-compilation warnings in batch mode
* lisp/emacs-lisp/warnings.el (display-warning): Don't break up
byte-compilation into several lines when in batch mode, because
that makes it difficult for some tools to parse them (bug#52281).
2021-12-05 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Audit `string-match' usage in shr.el
* lisp/net/shr.el (shr-descend):
(shr-insert):
(shr-expand-url):
(shr-image-from-data):
(shr-dom-print):
(shr-parse-style):
(shr-tag-object):
(shr-tag-img):
(shr-render-td-1): Prefer string-match-p and string-search over
string-match where possible.
2021-12-05 dickmao <dick.r.chiang@gmail.com>
Add workaround to compilation warning in gcc 10.x in image.c
* src/image.c (webp_load): Work around a (wrong) compiler warning
in gcc 10.x (bug#52276).
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Update comment about `declare-function'
* lisp/subr.el (declare-function): Fix comment --
`byte-compile-declare-function' doesn't exist.
2021-12-05 YugaEgo <yet@ego.team>
* lisp/info.el (info-menu-star): Improve documentation
* lisp/info.el (info-menu-star): Improve the doc string (bug#52315).
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix wording in eieio.texi (Generics)
* doc/misc/eieio.texi (Generics): Fix wording in paragraph
(bug#52317).
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix regression introduced by previous context-menu-map change
* lisp/mouse.el (context-menu-map): Make the context mode work
with flyspell again (bug#52237).
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Clarify Creating Frames documentation"
This reverts commit 5d7eb2979bc7eec01cff7e7908dbbd3edb38ea0c.
The new documentation was incorrect.
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Improve before-make-frame-hook and after-make-frame-functions docs"
This reverts commit 7842a606b76dfabd1540da1c130728064e8f02ed.
The new documentation was incorrect.
2021-12-05 Lars Ingebrigtsen <larsi@gnus.org>
Fix fancy-about-screen point placement
* lisp/startup.el (fancy-about-screen): Make point placement more
resilient (bug#43636).
2021-12-05 Stefan Kangas <stefan@marxist.se>
Light copy-edits to recent additions to ERC manual
* doc/misc/erc.texi (Introduction, Getting Started): Light copy-edits.
2021-12-05 Stefan Kangas <stefan@marxist.se>
Remove no-op calls to decode-char with 'ucs' arg
* lisp/gnus/mm-util.el (mm-ucs-to-char):
* lisp/language/hanja-util.el (hangul-to-hanja-char):
* lisp/leim/quail/hangul.el (hangul3-input-method-internal)
(hangul390-input-method-internal):
* lisp/nxml/rng-cmpct.el (rng-c-process-escapes):
* lisp/nxml/xsd-regexp.el (xsdre-compile-single-char)
(xsdre-range-list-to-char-alternative):
* lisp/xml.el (xml-parse-string, xml--entity-replacement-text)
(xml-substitute-special): Remove calls to decode-char where first
argument is 'ucs'; that is now a no-op. Discussed in Bug#52263.
* lisp/nxml/xmltok.el (xmltok-unicode-to-char): Make into obsolete
function alias for 'identity'. Update single caller.
2021-12-05 Eric Abrahamsen <eric@ericabrahamsen.net>
Use gnus-error to report mail-source failures
* lisp/gnus/mail-source.el (mail-source-fetch): Instead of querying
the user on mail sources errors -- in effect asking "do you want to
continue, or halt the process?" -- log the error with `gnus-error',
severity 5. The query didn't provide any meaningful control; error
reporting is all that's needed.
(mail-source-ignore-errors): Obsolete this option; users can see the
error or not by configuring `gnus-verbose'.
* doc/misc/gnus.texi (Mail Source Customization): Remove mention of
the above option from the manual.
2021-12-05 Yuuki Harano <masm+github@masm11.me>
* src/frame.c (gui_set_border_width): Revert confused changes
2021-12-05 Eli Zaretskii <eliz@gnu.org>
Fix out-of-bounds access in xdisp.c
* src/xdisp.c (produce_stretch_glyph): Avoid indexing it->stack
with a negative index. Reported by Po Lu <luangruo@yahoo.com>.
2021-12-05 Po Lu <luangruo@yahoo.com>
Interpolate large pixel scrolls
* lisp/pixel-scroll.el
(pixel-scroll-precision-large-scroll-height): New user option.
(pixel-scroll-precision-interpolate): New function.
(pixel-scroll-precision): Interpolate scrolls under some
circumstances.
2021-12-05 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler in generator-tests.el
* test/lisp/emacs-lisp/generator-tests.el (cps-let*-shadow-empty)
(cps-let-shadow-empty, cps-let*-parallel): Silence byte-compiler.
2021-12-05 Stefan Kangas <stefan@marxist.se>
Silence warnings about testing obsolete functions and macros
* test/lisp/emacs-lisp/cl-generic-tests.el:
* test/lisp/emacs-lisp/edebug-tests.el:
* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Silence
byte-compiler warnings about testing obsolete functions and macros.
2021-12-05 Stefan Kangas <stefan@marxist.se>
Remove hacks for broken `with-suppressed-warnings'
* test/lisp/obsolete/cl-tests.el (labels-function-quoting):
* test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode):
Remove hack for broken `with-suppressed-warnings'.
2021-12-05 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c086358574 Update to Org 9.5.1-15-gdb4805
fef3e60061 * lisp/emacs-lisp/edebug.el (edebug-eval-defun): Minor doc...
a1e30e4106 ; Fix most remaining AUTHORS warnings
f3e6a432c5 ; * doc/misc/efaq.texi (New in Emacs 28): Add more news.
00236cc802 Fix the enumeration values returned by 'try_scrolling'
2021-12-04 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Remove hack from seq-tests.el for broken `with-suppressed-warnings'
* test/lisp/emacs-lisp/seq-tests.el: `with-suppressed-warnings'
now works better in erf-deftests, so remove hack that works around
it (bug#36568).
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Improve before-make-frame-hook and after-make-frame-functions docs
* lisp/frame.el (before-make-frame-hook):
(after-make-frame-functions): Note when the functions are run.
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Clarify Creating Frames documentation
* doc/lispref/frames.texi (Creating Frames): Remove misleading
explanation -- even if the hooks are set, they won't be run
(bug#38143).
2021-12-04 Po Lu <luangruo@yahoo.com>
Fix tty mouse wheel on window systems other than X
* lisp/mwheel.el (mouse-wheel-down-alternate-event)
(mouse-wheel-up-alternate-event)
(mouse-wheel-left-alternate-event)
(mouse-wheel-right-alternate-event): Set appropriately for
non-X systems.
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Make help--describe-command more robust
* lisp/help.el (help--describe-command): `help-function' buttons
are defined in help-mode.el, so it might not exist yet when
calling `documentation' directly (bug#52291).
2021-12-04 Christer Enfors <christer.enfors@gmail.com> (tiny change)
Add IRC introduction to the ERC manual
* doc/misc/erc.texi (Getting Started): Mention libera.char (bug#52287).
(Introduction): Explain what IRC is.
2021-12-04 Po Lu <luangruo@yahoo.com>
Make pixel scrolling through images less jumpy
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page): Improve detection of
situations where vscroll must directly be set.
2021-12-04 Earl Hyatt <okamsn@protonmail.com>
Update the Info documentation of Eshell's built-in commands
* doc/misc/eshell.texi (Built-in commands): Add the remaining
built-in Eshell commands to the list of built-ins. Expand some of
the descriptions and mention user options affecting command
behavior. Sort these commands in alphabetical order (bug#52289).
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Make package-dir-info more resilient
* lisp/emacs-lisp/package.el (package-dir-info): Check that the
file exists before using it (bug#41489).
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Tweak fancy-about-text
* lisp/startup.el (fancy-about-text): Mention that Emacs is an
editor, because people don't know that (bug#43636).
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Fill Emacs version on about screen
* lisp/startup.el (fancy-about-text): Fill the Emacs version,
since it's too long these days.
2021-12-04 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Further gnus-inews-insert-gcc fixes
* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc): Use a single
comma to separate groups, since that's what the splitter expects
(bug#52274).
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Avoid having gud bug out if `C-x C-a' has been bound
* lisp/progmodes/gdb-mi.el (gud-global-map): Use gud-global-map.
* lisp/progmodes/gud.el (gud-global-map): Define a map instead of
assuming that `C-x C-a' is undefined (bug#6035).
(gud-def): Use the map.
2021-12-04 Eric Abrahamsen <eric@ericabrahamsen.net>
Don't swallow gnus-search errors when creating nnselect groups
* lisp/gnus/gnus-search.el (gnus-search-run-query): Modify
condition-case to re-signal any gnus-search related errors; the user
should see them.
(gnus-search-error): Define a new parent error for all gnus-search
errors.
2021-12-04 Juri Linkov <juri@linkov.net>
* lisp/isearch.el (isearch-delete-char): Reopen hidden overlays (bug#52248).
(isearch-filter-visible): Move text-property-not-all higher
to not call isearch-range-invisible on inhibit-isearch text.
Remove min/max since arguments are always in the right order.
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix pixel-fill--fill-line infloop for certain unbreakable lines
* lisp/textmodes/pixel-fill.el (pixel-fill--fill-line): Fix
infloops for certain line widths (bug#52271).
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Add a comma between groups in gnus-inews-insert-gcc
* lisp/gnus/gnus-msg.el (gnus-inews-insert-gcc): Insert a comma
between group names to get more mail-like syntax (bug#52274).
2021-12-04 Lars Ingebrigtsen <larsi@gnus.org>
Improve bookmark-maybe-historicize-string doc string
* lisp/bookmark.el (bookmark-maybe-historicize-string): Clarify
that this isn't about menus (but calls from bmenu) (bug#12504).
2021-12-04 Michael Albinus <michael.albinus@gmx.de>
Add ".crate" to Tramp archive file suffixes.
* doc/misc/tramp.texi (Archive file names):
* lisp/net/tramp-archive.el (tramp-archive-suffixes): Add ".crate".
2021-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
eieio-core.el: Allow assignment to cl-structs through `slot-value`
* lisp/emacs-lisp/eieio-core.el (eieio--validate-slot-value):
Obey the `:read-only` property of the slot.
(eieio-oset): Allow use on cl-structs as well.
(eieio-read-only): New error.
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (eieio-test--struct):
Make the last field read-only.
(eieio-test-defstruct-slot-value): Test that cl-struct slots can be
assigned via `slot-value`.
2021-12-04 Paul Eggert <eggert@cs.ucla.edu>
Fix (date-to-time "2021-12-04")
This should complete the fix for Bug#52209.
* lisp/calendar/time-date.el (date-to-time): Apply
decoded-time-set-defaults only to the output of (parse-time-string
date), and only when the output has a year (to avoid confusion
when dates lack years). There is no point applying it after
timezone-make-date-arpa-standard since the latter fills in all the
blanks. And the former code mistakenly called encode-time on an
already-encoded time. This goes back to the code a couple of days
ago, except with changed behavior (to fix Bug#52209) only when
timezone-make-date-arpa-standard is not called.
* test/lisp/calendar/time-date-tests.el (test-date-to-time)
(test-days-between): New tests.
2021-12-04 Michael Albinus <michael.albinus@gmx.de>
Further changes on directory summary line in Tramp
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-system-info):
Do not assume 0 in case of missing information.
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
Revert previous change, it doesn't fly.
2021-12-04 Stefan Kangas <stefan@marxist.se>
Silence byte-compiler in some tests
* test/lisp/dired-tests.el:
* test/lisp/emacs-lisp/cl-macs-tests.el:
* test/lisp/emacs-lisp/derived-tests.el:
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
* test/lisp/emacs-lisp/generator-tests.el:
* test/lisp/emacs-lisp/lisp-tests.el:
* test/lisp/emacs-lisp/seq-tests.el (test-seq-let)
(test-seq-setq):
* test/lisp/emacs-lisp/subr-x-tests.el (subr-x-test-if-let*-false)
(subr-x-test-if-let*-and-laziness-is-preserved)
(subr-x-test-when-let*-false)
(subr-x-test-when-let*-and-laziness-is-preserved):
* test/lisp/emacs-lisp/timer-tests.el
(timer-tests-debug-timer-check):
* test/lisp/format-spec-tests.el (format-spec-do-flags-truncate)
(format-spec-do-flags-pad):
* test/lisp/ls-lisp-tests.el (ls-lisp-test-bug27762):
* test/lisp/obsolete/cl-tests.el (labels-function-quoting):
* test/lisp/progmodes/elisp-mode-tests.el:
* test/lisp/replace-tests.el (replace-regexp-bug45973):
* test/lisp/ses-tests.el:
* test/lisp/subr-tests.el:
* test/lisp/tar-mode-tests.el (tar-mode-test-tar-grind-file-mode):
* test/src/data-tests.el (data-tests--set-default-per-buffer):
* test/src/search-tests.el
(test-replace-match-modification-hooks): Silence byte-compiler.
2021-12-04 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-04 Po Lu <luangruo@yahoo.com>
Fix double buffering on pgtk
* src/pgtkterm.c (pgtk_update_end): Stop flipping buffers here.
(pgtk_frame_up_to_date)
(pgtk_buffer_flipping_unblocked_hook): New function.
(pgtk_create_terminal): Attach new hooks.
(leave_notify_event): Clear mouse face.
2021-12-04 Po Lu <luangruo@yahoo.com>
Fix coding style of a recent change
* src/pgtkfns.c (update_watched_scale_factor): Fix coding style.
2021-12-04 Eli Zaretskii <eliz@gnu.org>
Fix the MinGW build broken by recent changes in image.c
* src/image.c (rsvg_handle_get_intrinsic_size_in_pixels)
[WINDOWSNT]: Fix prototype. (Bug#44655)
2021-12-04 Alan Third <alan@idiocy.org>
Make use of Trash on macOS (bug#21340)
* src/nsfns.m (Fsystem_move_file_to_trash): New function.
2021-12-04 Eli Zaretskii <eliz@gnu.org>
Yet another place inside redisplay_window to prevent quitting
* src/xdisp.c (handle_single_display_spec): Inhibit quitting
around the call to 'lookup_derived_face' (which can QUIT).
(Bug#44448)
2021-12-04 Eli Zaretskii <eliz@gnu.org>
Fix dependencies for files in the 'nt' subdirectory
* Makefile.in ($(NTDIR)): If non-empty, depend on 'lib'. That's
because some files in nt/ include generated Gnulib headers.
2021-12-04 Yuuki Harano <masm+github@masm11.me>
Keep track of scale factor by atimer and recreate cairo_surface_t
Otherwise texts become blurry when a frame moved from 1x monitor
to 2x monitor. I need GTK's such signal, but there isn't. Instead
I watch frame's monitor's scale factor periodically. We can see
blurriness for a short time, but it is gone soon.
* src/pgtkfns.c (update_watched_scale_factor): New function to check
scale factor and recreate cairo_surface_t if changed.
* src/pgtkfns.c (Fx_create_frame): Initialize atimer.
(Fx_show_tip): Add an argument.
* src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_WIDTH): Move macros to pgtkterm.h
(x_free_frame_resources): Free atimer.
(size_allocate): Add an argument.
(pgtk_cr_update_surface_desired_size): Add an argument. Recreate if it
is true.
* src/pgtkterm.h (struct pgtk_output): New members.
(FRAME_CR_SURFACE_DESIRED_HEIGHT): Move macros from pgtkterm.c
2021-12-04 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-04 Po Lu <luangruo@yahoo.com>
Make precision pixel scrolling work in an hscrolled window
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page)
(pixel-scroll-precision-scroll-up-page): Use beginning of visual
line as window start if hscrolled.
(pixel-scroll-precision): Don't delegate to mwheel-scroll if
window is hscrolled.
2021-12-04 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
745a732ae4 ; Further author fixes in authors.el
bef17bca21 * src/dosfns.c (Fint86): Doc fix; don't use obsolete names.
bc55dc04af * doc/misc/erc.texi (Keystroke Summary): Fix doc for TAB.
ef4d216eb3 Remove reference to variable obsolete since 24.1
7282e492d5 * doc/misc/efaq.texi (New in Emacs 28): New node.
eafcccd38f ; FAQ: Normalize references to the NEWS.NN file
c006c490eb ; * doc/misc/efaq.texi (Latest version of Emacs): Update v...
9fbc4fa0e7 Add Tramp version integrated in Emacs 28.1
2021-12-04 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
5d6f828799 Unbreak build after 9c222b9c1a7f91497a37567b4d7de3a511fff069.
2021-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/minibuffer.el: Don't return a boundary outside its arg
* lisp/minibuffer.el (completion-table-subvert): Fix out of string
start boundary for the odd case where `string` is shorter than `s1`.
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Make the error message in epa-display-error more helpful
* lisp/epa.el (epa-display-error): Output a more helpful error
message when reading a keyring file (bug#12923).
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix keymap-lookup implementation
* lisp/keymap.el (keymap-lookup): Make this actually work for
looking up keys.
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix highlighting of "Exit*" phrases in f90-mode
* lisp/progmodes/f90.el (f90-font-lock-keywords-2): Don't
highlight phrases that start with "Exit" as an exit statement
(bug#14442).
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Make `mouse-1' restart the cua-rect rectangle
* lisp/emulation/cua-rect.el (cua-mouse-set-rectangle-mark):
Restart the rectangle on mouse-1 (bug#51557).
2021-12-03 Po Lu <luangruo@yahoo.com>
Make last change work for deltas that are multiples of max-height
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
(pixel-scroll-precision-scroll-up-page): Use `max-height' that
is slightly less than the text height of the window.
2021-12-03 Po Lu <luangruo@yahoo.com>
Make it work to pixel scroll by deltas larger than the window
* lisp/pixel-scroll.el
(pixel-scroll-precision-scroll-down-page):
(pixel-scroll-precision-scroll-up-page): New functions.
(pixel-scroll-precision-scroll-up)
(pixel-scroll-precision-scroll-down): Make it safe to scroll
by deltas larger than the current window.
2021-12-03 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that MAIN_FIRST have finished compilation before doing the rest
* lisp/Makefile.in (main-first): Ensure that we're done with the
main bits before starting on the rest.
(GREP_OPTIONS): Depend on main-first.
(MAIN_FIRST): Compile cconv.el before c-by.el (bug#8764).
2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
Port to Tiny C on x86-64
This allows Emacs to build on Ubuntu 21.10 x86-64 with
./configure --without-modules CC=tcc.
* configure.ac (GC_SETJMP_WORKS):
Accept __x86_64__ as an alias for __amd64__.
* src/lisp.h (alignas): Provide a no-op substitute.
2021-12-03 Eli Zaretskii <eliz@gnu.org>
Revert "emacs-lisp-mode: Use error face for "/d" indicator"
This reverts commit ddc875d9f75bdd1d5dda6a721489f43317b0f8b5.
I disagree with the need to make it more prominent than the
warning face. The warning face is prominent enough. We
never decided to annoy people like that.
2021-12-03 Eli Zaretskii <eliz@gnu.org>
Add more dired-x tests
* test/lisp/dired-x-tests.el (dired-x--string-to-number): Add more
tests with various thousands separators.
2021-12-03 Stefan Kangas <stefan@marxist.se>
Remove some more items obsolete since Emacs 23
* lisp/emacs-lisp/shadow.el (find-emacs-lisp-shadows):
* lisp/net/newst-backend.el (newsticker-cache-filename)
(newsticker--cache-save-version1, newsticker--cache-update)
(newsticker--cache-read-version1):
* lisp/obsolete/vc-arch.el (vc-arch-command): Remove items
obsolete since Emacs 23.
2021-12-03 Stefan Kangas <stefan@marxist.se>
Remove two functions obsolete since Emacs 23
* lisp/international/mule-cmds.el (unify-8859-on-encoding-mode)
(unify-8859-on-decoding-mode): Remove functions obsolete since
Emacs 23.
* lisp/nxml/xsd-regexp.el: Doc fix.
2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
Prefer rsvg_handle_get_intrinsic_size_in_pixels
Use rsvg_handle_get_intrinsic_size_in_pixels if available,
as this is simpler and better than what we were doing.
From a comment by by Alan Third (Bug#44655#56).
* src/image.c (init_svg_functions): Arrange for the new function.
(svg_load_image): Prefer the results of
rsvg_handle_get_intrinsic_size_in_pixels if available.
2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
Improve overflow checking in svg_load_image
* src/image.c: Include math.h, for lrint.
(scale_image_size, compute_image_size): Use double, not int
for image size args, since librsvg uses double for pixel counts.
(scale_image_size): Use ceil instead of rounding, to avoid
discarding fractional SVG pixels. Divisor and multiplier are now
double instead of int, for better portability to librsvg
functions with fractional pixel sizes.
(image_get_dimension, compute_image_size, svg_load_image):
Be more careful about ignoring, rejecting or clipping scale
factors or sizes that are out of integer range.
(compute_image_size): Dont bother to calculate :max-width if
:width is specified, and likewise for :max-height and :height.
2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
Simplify svg_load_image
* src/image.c (svg_load_image): Simplify slightly.
2021-12-03 Paul Eggert <eggert@cs.ucla.edu>
More-robust svg_load_image fallback
Suggested by Alan Third (Bug#44655#56).
* src/image.c (svg_load_image): Fall back on
rsvg_handle_get_geometry_for_layer if the
rsvg_handle_get_intrinsic_dimensions computations yielded unusable
viewbox width and height, instead of falling back only if
rsvg_handle_get_intrinsic_dimensions did not report image width
and height, or did not report a viewbox.
2021-12-03 Eric Abrahamsen <eric@ericabrahamsen.net>
Use gnus-message instead of plain message in gnus-search
bug#51778
* lisp/gnus/gnus-search.el: All messaging should be done via
`gnus-message'.
2021-12-03 Koen van Greevenbroek <koen_devel@posteo.net> (tiny change)
Fix a compilation warning in pgtkterm.c
* src/pgtkterm.c (set_fullscreen_state): Fix a compilation warning
(bug#52260).
2021-12-03 Tor Kringeland <tor.a.s.kringeland@ntnu.no> (tiny change)
Add a docstring to `iso-transl-set-language'
* lisp/international/iso-transl.el: Document
`iso-transl-set-language' (bug#52261).
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Move 'C-x 8 .' to 'C-x 8 . .'
* lisp/international/iso-transl.el (iso-transl-char-map): Move
'C-x 8 .' to 'C-x 8 . .' and add ż.
2021-12-03 Tor Kringeland <tor.a.s.kringeland@ntnu.no> (tiny change)
Add support for some Polish characters with `C-x 8'
* lisp/international/iso-transl.el: Add support for some Polish
characters (bug#52173).
2021-12-03 Katsumi Yamaoka <yamaoka@jpl.org>
Fix regression introduced by the previous date-to-time change
* lisp/calendar/time-date.el (date-to-time): The function needs to
test if `parse-time-string' returns a valid data as the old
version did it with the help of `encode-time' (bug#52209).
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Clarify the run-at-time documentation about "integral multiple"
* lisp/emacs-lisp/timer.el (run-at-time):
* doc/lispref/os.texi (Timers): Explain what "integral multiple"
really means.
2021-12-03 Jim Porter <jporterbugs@gmail.com>
Remove separators at the beginning and end of the context menu
* lisp/mouse.el (context-menu-map): Remove beginning/end
seperators (bug#52237).
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Improve how dired-mark-sexp interprets file sizes in non-C locales
* lisp/dired-x.el (dired-x--string-to-number): Try to understand
localised numbers (with "." separators or the like) (bug#23373).
2021-12-03 Stefan Kangas <stefan@marxist.se>
emacs-lisp-mode: Use error face for "/d" indicator
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Use 'error' face for
the dynamic scoping ("/d") indicator in the mode line to make it stand
out more.
2021-12-03 Stefan Kangas <stefan@marxist.se>
Don't support obsolete sregex syntax in re-builder
* lisp/emacs-lisp/re-builder.el (reb-lisp-mode)
(reb-lisp-syntax-p, reb-change-syntax, reb-cook-regexp): Remove final
remaining references to the long obsolete sregex syntax.
2021-12-03 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in NEWS about 'write-file'
2021-12-03 Michael Albinus <michael.albinus@gmx.de>
Fix dired--insert-disk-space
* lisp/dired.el (dired--insert-disk-space): Handle case
`get-free-disk-space' returns nil.
2021-12-03 Stefan Kangas <stefan@marxist.se>
* lisp/image.el (image): Add :prefix and :link.
2021-12-03 Stefan Kangas <stefan@marxist.se>
image-mode: Advertize viewing as text less eagerly
* lisp/image-mode.el (image-text-based-formats): New defcustom.
(image-mode--setup-mode): Don't show message to show image as text
unless it is a text based image format. Don't mention key binding
for editing as hex. (Bug#51961)
(image-mode-as-text): Don't mention key binding for editing as hex.
(image-mode-as-hex): Minor cleanup.
2021-12-03 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-macs.el (natnum): Fix typo
* lisp/emacs-lisp/cl-macs.el (natnum): Define it as a type
2021-12-03 Michael Albinus <michael.albinus@gmx.de>
Adapt directory summary line handling in Tramp
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
Do not add or modify summary line when `dired-free-space' is bound.
2021-12-03 Eli Zaretskii <eliz@gnu.org>
Revert "Support display of non-ASCII characters with aligned columns"
This reverts commit 608267c71e11da9c757c269a5e22e62ef04d0bfe.
2021-12-03 Po Lu <luangruo@yahoo.com>
Send scroll stop events to xwidgets when built with XInput 2
* src/xwidget.c (xwidget_scroll): Set xg_event->scroll.is_stop
when appropriate.
2021-12-03 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-03 Po Lu <luangruo@yahoo.com>
Improve velocity calculation in momentum scrolling
* lisp/pixel-scroll.el
(pixel-scroll-precision-momentum-factor): Remove option.
(pixel-scroll-precision-initial-velocity-factor)
(pixel-scroll-precision-momentum-min-velocity): New user
options.
(pixel-scroll-accumulate-velocity): Clear velocity ring
if sign is different.
(pixel-scroll-calculate-velocity): Use current time.
(pixel-scroll-start-momentum): Use better algorithm.
2021-12-03 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
9c222b9c1a Port to C compilers that lack size-0 arrays
fed35a8951 Port emacsclient to Solaris 10
f35d6a9c73 * CONTRIBUTE: Improve commit message instructions
e0ee1d003a Work around IBM XL C compiler bug
6b99b6eb8b * admin/make-tarball.txt: Various clarifications.
bbf4140091 * admin/diff-tar-files: Don't assume .tar.gz.
0a50ad11db * lisp/tab-bar.el (tab-bar-close-other-tabs): Fix regression.
2021-12-02 Po Lu <luangruo@yahoo.com>
Generate touch-end events on pgtk
* src/pgtkterm.c (scroll_event): Generate touch end events.
2021-12-02 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-02 Po Lu <luangruo@yahoo.com>
Make momentum scrolling much nicer
* lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick):
Set default value to 0.01.
(pixel-scroll-precision-momentum-seconds): New user option.
(pixel-scroll-start-momentum): Improvements to momentum
algorithm.
2021-12-02 Po Lu <luangruo@yahoo.com>
* lisp/pixel-scroll.el (pixel-scroll-start-momentum): Fix algorithm.
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-02 Michael Albinus <michael.albinus@gmx.de>
* etc/NEWS: Mention change in `insert-directory' derivates. Fix typos.
2021-12-02 Eli Zaretskii <eliz@gnu.org>
Support display of non-ASCII characters with aligned columns
* src/xdisp.c (get_normal_width): New function.
(gui_produce_glyphs): Use 'get_normal_width' to widen on display
characters whose width is not an integral multiple of the
"standard" width.
(syms_of_xdisp) <align-columns-display>: New boolean variable.
2021-12-02 Stefan Kangas <stefan@marxist.se>
update_autogen: Improve error handling slightly
* admin/update_autogen: Check exit status of cd. Use single
quoting for trap condition.
2021-12-02 Stefan Kangas <stefan@marxist.se>
update_autogen: Remove unused -H flag
We now update ChangeLog files only when preparing a new release, so
this flag is never used. Keeping it risks confusing more than it
helps.
* admin/update_autogen: Remove the -H flag as it is no longer used.
2021-12-02 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
f38dfa56a0 ; Update loaddefs files.
b3d4b18507 ; make change-history-commit
334ff0232e * lisp/repeat.el: Use same logic for repeat-check-key and ...
8230a47ecc * lisp/help.el (help--analyze-key): Prefer posn-set-point ...
# Conflicts:
# lisp/ldefs-boot.el
2021-12-02 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
aa1d7dd867 ; * etc/AUTHORS: Update.
6294e60205 ; * admin/authors.el (authors-aliases): More fixes.
40fc31ea28 ; * ChangeLog.3: Update.
2be090d5d3 ; * ChangeLog.3: Minor fixes.
9963b11bf7 ; * admin/authors.el (authors-aliases): Further updates.
50b40e1d4f ; * lisp/org/ob-julia.el: Fix Author header for authors.el.
84166ea2e6 CC Mode: Recognise "struct foo {" as introducing a type de...
2021-12-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix characters.el build issue
* lisp/international/characters.el
(glyphless--bidi-control-characters): Don't use names here,
because it's too early (bug#52240).
2021-12-02 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous macroexp--warn-wrap change
* lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): Don't call
byte-compile-warning-enabled-p with zero parameters.
2021-12-02 Filipp Gunbin <fgunbin@fastmail.fm>
* lisp/gnus/gnus-art.el (gnus--variable-pitch-p): Don't error out if face nil
2021-12-02 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-c C-w' copy the executable bits to the new file
* lisp/files.el (write-file): When visiting an executable file,
make the new file executable, too (bug#18915).
2021-12-02 Lars Ingebrigtsen <larsi@gnus.org>
Add a new variable 'process-error-pause-time'
* doc/lispref/processes.texi (Asynchronous Processes): Document it.
* lisp/cus-start.el (standard): Customize.
* src/process.c (read_process_output_error_handler)
(exec_sentinel_error_handler): Use it.
(syms_of_process): New variable process-error-pause-time (bug#19457).
2021-12-02 Po Lu <luangruo@yahoo.com>
Improve momentum scrolling algorithm
* lisp/pixel-scroll.el (pixel-scroll-precision-momentum-tick):
(pixel-scroll-precision-momentum-factor): New user options.
(pixel-scroll-kinetic-state, pixel-scroll-accumulate-velocity):
Set scroll momentum ring size to 10.
(pixel-scroll-start-momentum): Improve algorithm.
2021-12-02 Eli Zaretskii <eliz@gnu.org>
Fix display of free disk space in Dired
* lisp/dired.el (dired--insert-disk-space): Fix 'first' display on
MS-Windows.
(dired-free-space): Clarify the meaning of 'first'.
2021-12-02 Eli Zaretskii <eliz@gnu.org>
Fix recent changes related to 'glyphless-display-mode'
* lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Fix
spelling of "bidirectional".
* lisp/international/characters.el (char-acronym-table): Fix
acronyms for LRI and RLI: use their accepted shorthands.
(glyphless-char-display-control): Fix spelling of doc string.
* doc/lispref/display.texi (Glyphless Chars): Fix spelling and add
a cross-reference.
2021-12-02 Po Lu <luangruo@yahoo.com>
Get rid of duplicate pgtk function
* src/pgtkfns.c (Fpgtk_popup_font_panel): Remove function.
(syms_of_pgtkfns): Get rid of removed subr.
2021-12-02 Po Lu <luangruo@yahoo.com>
Documentation fixes for pgtk port
* doc/lispref/display.texi (Defining Faces):
* doc/lispref/frames.texi (Multiple Terminals): Add references
to the `pgtk' terminal type.
2021-12-02 Po Lu <luangruo@yahoo.com>
Fix `menu-set-font' on pgtk
* src/pgtkfns.c (Fx_select_font): New function.
(syms_of_pgtkfns): Define new subr.
2021-12-02 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-02 Lars Ingebrigtsen <larsi@gnus.org>
Make dired-virtual doc string less confusing
* lisp/dired-x.el (dired-virtual): Make the doc string less
confusing (bug#20992).
2021-12-02 Lars Ingebrigtsen <larsi@gnus.org>
Add `cl-constantly' function
* lisp/emacs-lisp/cl-lib.el (cl-constantly): Add Common Lisp
function missing (bug#21584).
2021-12-02 Jim Porter <jporterbugs@gmail.com>
Ensure there are no duplicate separators when creating a context menu
Previously, if there were three or more consecutive menu separators,
not all of them would be removed.
* lisp/mouse.el (context-menu-map): Ensure no duplicate separators
(bug#52237).
2021-12-02 Daniel Fleischer <danflscr@gmail.com>
browse-url-button-regexp: Recognize gemini: links
Gemini is a relatively new text-based web protocol, similar to
gopher. There's the "elpher" package to browse gopher and gemini
pages. Adding it to the regexp will make Emacs be aware of gemini links,
e.g. in ERC.
* lisp/net/browse-url.el (browse-url-button-regexp): Add support
for the gemini: URL type.
2021-12-02 Michael Levine <melevine45@gmail.com>
Fix usage of deprecated syntax in some cedet tests
* test/lisp/cedet/srecode/fields-tests.el
(srecode-field-utest-impl): Fix deprecated syntax.
2021-12-02 Lars Ingebrigtsen <larsi@gnus.org>
Add a bidi-control target for `glyphless-char-display-control'
* doc/lispref/display.texi (Glyphless Chars): Document bidi-control.
* lisp/international/characters.el (char-acronym-table): Add the
ISOLATE characters.
(update-glyphless-char-display): Implement bidi-control, and mark
all Cf characters we don't know about as UNK.
(glyphless--bidi-control-characters): New variable.
(glyphless-char-display-control): Add a new type -- bidi-control.
* lisp/textmodes/glyphless-mode.el (glyphless-mode-types): Add a
new type -- bidi-control.
2021-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Silence warning
We used to get
cedet/semantic/bovine/c.el:1462:25: Warning: value returned from
(string= s "static") is unused
* lisp/cedet/semantic/bovine/c.el (semantic-tag-protection): Merge two
`when` into an `if` and set `prot` instead of throwing away a result.
Use `pcase` while we're at it.
2021-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/macroexp.el: Improve last change
Don't burp when `byte-compile-warning-enabled-p` is not yet defined.
And use the call that we had already instead of adding a new one.
(macroexp--warn-wrap): Allow `category`
to be a list to pass to `byte-compile-warning-enabled-p`.
(macroexp-macroexpand): Simplify accordingly.
2021-12-01 Po Lu <luangruo@yahoo.com>
Add some primitive momentum-based precision scrolling
The algorithm used to scroll the display kinetically is very
simple and needs improvement. Someone should work on that
eventually.
* lisp/pixel-scroll.el (pixel-scroll-precision-use-momentum):
New user option.
(pixel-scroll-precision-mode-map): Add
`pixel-scroll-start-momentum'.
(pixel-scroll-kinetic-state):
(pixel-scroll-accumulate-velocity):
(pixel-scroll-calculate-velocity): New functions.
(pixel-scroll-start-momentum): New command.
* src/xterm.c (handle_one_xevent): Fix touch-end event
generation.
2021-12-01 Po Lu <luangruo@yahoo.com>
Add `touch-end' event type
* etc/NEWS:
* doc/lispref/commands.texi (Misc Events): Document new
`touch-end' event type.
* lisp/bindings.el: Ignore touch-end events by default.
* src/keyboard.c (make_lispy_event): Add support for
TOUCH_END_EVENT events.
(syms_of_keyboard): New symbol `touch-end'.
* src/termhooks.h (enum event_kind): New member
`TOUCH_END_EVENT'.
* src/xterm.c (handle_one_xevent): Send touch-end events when
appropriate.
2021-12-01 Po Lu <luangruo@yahoo.com>
Fix precision scrolling when there is a scroll margin
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down)
(pixel-scroll-precision-scroll-up): Take scroll margin into
accout.
2021-12-01 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-01 Po Lu <luangruo@yahoo.com>
Get rid of vmotion loop in `pixel-scroll-precision-scroll-up'
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up): Use
posn-at-x-y for cursor motion.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Change how Dired displays available space
* doc/emacs/dired.texi (Misc Dired Features): Document it (bug#23812).
* lisp/dired.el (dired-free-space): New user option.
(dired-insert-directory): Use it from here.
(dired--insert-disk-space): New function that uses the user option.
* lisp/files.el (insert-directory): Don't transform "total" here.
* lisp/ls-lisp.el (ls-lisp--insert-directory): Or here. Instead
just leave the "total <num>" bit alone, and let Dired transform it.
* test/lisp/files-tests.el (files-tests): Move "available" tests
to dired-tests.
* test/lisp/dired-tests.el (data-dir): Moved here.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix "SEE ALSO" buttons in some man pages
* lisp/man.el (Man-highlight-references0): Don't include "and" in
the links (bug#52229).
2021-12-01 Andrea Corallo <akrl@sdf.org>
Make use of `comp-cstr-shallow-copy'
* lisp/emacs-lisp/comp.el (comp-mvar-propagate): Remove.
(comp-fwprop-call, comp-fwprop-insn): Use `comp-cstr-shallow-copy'.
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range)
(comp-cstr-union-1-no-mem, comp-cstr-union-1)
(comp-cstr-intersection-no-mem, comp-cstr-intersection)
(comp-cstr-negation): Use `comp-cstr-shallow-copy'.
2021-12-01 Andrea Corallo <akrl@sdf.org>
* Redefine `comp-cstr-shallow-copy'
* lisp/emacs-lisp/comp-cstr.el (comp-cstr): Don't synthesize copier
function.
(comp-cstr-shallow-copy): New function.
(comp-cstr-=): Use `copy-sequence'.
2021-12-01 Andrea Corallo <akrl@sdf.org>
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Decl struct predicates as pure
2021-12-01 Alan Mackenzie <acm@muc.de>
Several amendments to scratch/correct-warning-pos.
The position return by read-positioning-symbols is now the position in the
buffer, rather than the offset from the start of a form, enabling warning
positions in other parts of the buffer to be output.
* src/lisp.h (lisp_h_EQ): Add XLI casts so that it compiles cleanly.
* src/data.c (Fremove_pos_from_symbol): New DEFUN.
* src/lread.c (readchar_count): renamed to readchar_offset.
(read_internal_start) Initialize readchar_offset to the buffer's point when
STREAM is a buffer.
* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Amend to use
OFFSET as a buffer position, not an offset from the start of a form.
(byte-compile-warn): Remove symbol positions from any shape of ARGS, not just
a symbol with position.
* lisp/emacs-lisp/cconv.el (cconv-convert): In the :unused case,
position the new IGNORE symbol with the VAR it has replaced.
* lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap, macroexp-warn-and-return):
Add an extra position parameter to each.
* lisp/emacs-lisp/bindat.el (bindat-type), lisp/emacs-lisp/byte-run.el
(defmacro, defun), lisp/emacs-lisp/cconv.el (cconv--convert-func-body)
(cconv-convert), lisp/emacs-lisp/cl-generic.el (cl-defmethod),
lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet, cl-defstruct),
lisp/emacs-lisp/easy-mmode.el (define-minor-mode),
lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default)
(eieio-oset-default), lisp/emacs-lisp/eieio.el (defclass),
lisp/emacs-lisp/gv.el (gv-ref), lisp/emacs-lisp/macroexp.el
(macroexp-macroexpand, macroexp--unfold-lambda, macroexp--expand-all),
lisp/emacs-lisp/pcase.el (pcase-compile-patterns, pcase--u1): Add an extra
position argument to each call of macroexp-warn-and-return.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-x C-d' require either an existing directory or a wildcard
* lisp/files.el (list-directory): Require either an existing
directory or a wildcard (bug#25807).
2021-12-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cconv.el (cconv--lifted-arg): Simplify
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix table-fixed-width-mode when typing fast
* lisp/textmodes/table.el (table-with-cache-buffer): Use the value
of table-fixed-width-mode in the correct buffer (bug#26701).
2021-12-01 Eli Zaretskii <eliz@gnu.org>
Mention 'glyphless-display-mode' in conjunction with bidi display
* doc/emacs/mule.texi (Bidirectional Editing): Mention
'glyphless-display-mode'. (Bug#27544)
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix fencepost error in pixel-fill--fill-line
* lisp/textmodes/pixel-fill.el (pixel-fill--fill-line): Don't add
a newline (and continuation) if we're at the end of the line.
2021-12-01 Robert Pluim <rpluim@gmail.com>
characters.el: remove repetition in glyphless-char-display-control
* lisp/international/characters.el (glyphless-char-display-method):
New custom widget for the different options for displaying glyphless
characters.
(glyphless-char-display-control): Use 'glyphless-char-display-method'.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Add new face `variable-pitch-text'
* doc/emacs/display.texi (Standard Faces): Mention in.
* lisp/faces.el (variable-pitch-text): New face.
* lisp/gnus/gnus-art.el (gnus-header): Use it.
* lisp/net/shr.el (shr-text): Use it.
2021-12-01 Mattias Engdegård <mattiase@acm.org>
Fix closure-conversion of shadowed captured lambda-lifted vars
Lambda-lifted variables (ones passed explicitly to lambda-lifted
functions) that are also captured in an outer closure and shadowed
were renamed incorrectly (bug#51982).
Reported by Paul Pogonyshev.
* lisp/emacs-lisp/cconv.el (cconv--lifted-arg): New.
(cconv-convert): Provide correct definiens for the closed-over
variable.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
* test/lisp/emacs-lisp/cconv-tests.el (cconv-tests--intern-all)
(cconv-closure-convert-remap-var): Add tests.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Add a new minor mode `glyphless-display-mode'
* doc/emacs/display.texi (Text Display): Mention it.
* doc/lispref/display.texi (Glyphless Chars): Document it.
* lisp/textmodes/glyphless-mode.el: New minor mode (bug#27544).
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix update-glyphless-char-display variable setting
* lisp/international/characters.el
(update-glyphless-char-display): Only set the variable if given.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Make pixel-fill-region handle space regions better
* lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve the
face on the replacement spaces.
2021-12-01 Po Lu <luangruo@yahoo.com>
Fix precision pixel scrolling for a recent change
* lisp/pixel-scroll.el (pixel-scroll-precision-mode-map): Use
`mwheel-coalesce-scroll-events' instead.
2021-12-01 Po Lu <luangruo@yahoo.com>
Stop relying on `x_coalesce_scroll_events' in pgtk code
* src/pgtkterm.c (scroll_event): Use
`mwheel_coalesce_scroll_events'.
(x_coalesce_scroll_events): Remove variable.
2021-12-01 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Enable gnus-treat-fold-headers by default
* lisp/gnus/gnus-art.el (gnus-treat-fold-headers): Change default
to `head'.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Use proportional fonts in the Gnus headers by default
* lisp/gnus/gnus-art.el (gnus-header): Inherit from `variable-pitch'.
(gnus--variable-pitch-p): New helper function.
(gnus-article-treat-fold-headers): Fill using pixel filling.
2021-12-01 Lars Ingebrigtsen <larsi@gnus.org>
Preserve newlines at the end of pixel-fill-region
* lisp/textmodes/pixel-fill.el (pixel-fill-region): Preserve
newlines at the end.
2021-12-01 Eli Zaretskii <eliz@gnu.org>
Support precision mouse scrolling on MS-Windows
* src/w32fns.c (w32_wnd_proc): Pass the WM_SETTINGCHANGE message
to the Lisp thread.
* src/w32term.c (w32_construct_mouse_wheel): Support mice with
precision scrolling wheel.
(w32_get_mouse_wheel_vertical_delta): New function.
(w32_read_socket): When the WM_SETTINGCHANGE is received, call
'w32_get_mouse_wheel_vertical_delta'.
(w32_initialize): Call 'w32_get_mouse_wheel_vertical_delta' at
startup.
* src/nsterm.m (syms_of_nsterm):
* src/haikuterm.c (syms_of_haikuterm):
* src/xterm.c (syms_of_xterm): Remove window-system specific
variables for coalescing mwheel events.
* src/keyboard.c (syms_of_keyboard)
<mwheel-coalesce-scroll-events>: New variable, to replace the
above platform-specific ones.
* doc/lispref/commands.texi (Misc Events): Improve wording of the
description of mouse-wheel events.
2021-12-01 Stefan Kangas <stefan@marxist.se>
update_autogen: Remove deprecated -I flag
* admin/update_autogen (info_dir): Remove deprecated -I flag; it is no
longer used since info/dir is now generated at install time if needed,
and is not in the repository any more.
2021-12-01 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-12-01 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e632b83a28 Update authors.el for Emacs 28
e9fdb11903 ; * ChangeLog.3: Some additional fixes.
8fa4749df1 ; * ChangeLog.3: Filename fixes.
ea5a90b4f4 * lisp/repeat.el: Fix long-standing problem when a random ...
ef4954b69c * lisp/repeat.el (repeat-keep-prefix): Change default to nil.
6d5886e780 * test/lisp/repeat-tests.el (repeat-tests-call-b): Test fo...
9e16c6a96d ; * src/comp.c (syms_of_comp) <comp-no-native-file-h>: Doc...
9aa8fd6e62 * src/callint.c (Fcall_interactively): Fix inhibit_mouse_e...
70c229b1fc Fix regression in gdb-frame-handler
cd9dd26d24 Format and index concept 'predicate' in ELisp Intro
ab291656d0 ; * ChangeLog.3: Fix typos.
354f6c5609 ; * ChangeLog.3: Formatting fixes.
6192525a96 ; make change-history-commit
2021-12-01 Stefan Kangas <stefan@marxist.se>
Update SKK-JISYO.L from upstream
* leim/SKK-DIC/SKK-JISYO.L: Update from
https://raw.githubusercontent.com/skk-dev/dict/master/SKK-JISYO.L
2021-12-01 Stefan Kangas <stefan@marxist.se>
Update publicsuffix.txt from upstream
* etc/publicsuffix.txt: Update from
https://publicsuffix.org/list/public_suffix_list.dat
dated 2021-11-26 23:07:15 UTC.
2021-11-30 Jim Porter <jporterbugs@gmail.com>
Suppress emacsclient message that daemon should have started if --quiet
* lib-src/emacsclient.c (start_daemon_and_retry_set_socket): Don't
output "daemon should have started" message if --quiet (bug#52214).
2021-11-30 Bob Rogers <rogers-emacs@rgrjr.homedns.org>
Make date-to-time work with date-only date strings
* lisp/calendar/time-date.el (date-to-time): Try harder to parse
dates with no times (bug#52209).
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Autoload byte-compile-warning-enabled-p
* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-enabled-p):
Autoloads (for easier use in macroexp etc).
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Add an ldefs-boot.el target to the Makefile
* lisp/Makefile.in (ldefs-boot.el): Add a target to regenerate the
ldefs-boot.el file.
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Make "make force-autoloads" produce the correct result
* lisp/emacs-lisp/autoload.el (cl-lib): We need the cl-macs at
runtime to expand cl-defmacros to find declare indent forms.
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Don't include the other loaddef files in the no-autoloads section
* lisp/emacs-lisp/autoload.el (make-directory-autoloads): Don't
include the other loaddef files in the no-autoloads section.
2021-11-30 Po Lu <luangruo@yahoo.com>
Avoid unnecessary call when pixel scrolling
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down):
Avoid unnecessary call to `posn-at-point'
2021-11-30 Po Lu <luangruo@yahoo.com>
Make pixel scrolling faster
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Get
rid of big motion loop.
(pixel-scroll-precision-scroll-up): Stop subtracting height of
window lines.
2021-11-30 Po Lu <luangruo@yahoo.com>
Synchronize pgtk tab bar code with xterm
* src/pgtkterm.c (x_draw_image_relief):
(button_event): Synchronize code with xterm. (Bug#50779)
2021-11-30 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-11-30 Andrea Corallo <akrl@sdf.org>
* lisp/loadup.el (paren): Preload it (again).
2021-11-30 Eli Zaretskii <eliz@gnu.org>
Improve documentation of pixel-fill
* doc/lispref/text.texi (Filling): Describe the arguments of
'pixel-fill-region'. Add index entry.
* lisp/textmodes/pixel-fill.el (pixel-fill-region): Doc fix.
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Use pixel-fill-width in shr.el
* lisp/net/shr.el (shr--window-width): Factor out into own function.
(shr-insert-document): Use it.
(shr-fill-text): Ditto.
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Document pixel-fill-region
* doc/lispref/text.texi (Filling): Document pixel-fill-region.
* lisp/textmodes/pixel-fill.el (pixel-fill-width): Add new helper
function.
2021-11-30 Andrea Corallo <akrl@sdf.org>
Revert "Preload paren.el"
Reverting as the previous commit make this fix not anymore necessary.
This reverts commit 340e527bed83ff0382446132c871088ad61d1745.
2021-11-30 Andrea Corallo <akrl@sdf.org>
Improve native compiler startup circular dependecy prevention mechanism
* src/comp.c (maybe_defer_native_compilation): Update to accumulate
delayed objects in `comp--delayed-sources'.
(syms_of_comp): Add `comp--delayed-sources' and `comp--loadable'
vars.
* lisp/startup.el (startup--honor-delayed-native-compilations): New
function.
(normal-top-level): Call it.
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Allow storing buffer names in registers
* doc/emacs/regs.texi (File and Buffer Registers): Rename and add
doc for `buffer' version.
* lisp/register.el (register-val-jump-to, register-val-describe):
Add support for (buffer . ...) registers (bug#33033).
2021-11-30 Mattias Engdegård <mattiase@acm.org>
Generalise CPS-conversion let optimisation
* lisp/emacs-lisp/generator.el (cps--transform-1):
Eliminate a temporary for the last of any `let` form, not just for
single-binding ones. Suggested by Stefan Monnier.
2021-11-30 Lars Ingebrigtsen <larsi@gnus.org>
Allow inhibiting warnings about obsolete macros again
* lisp/emacs-lisp/macroexp.el (macroexp-macroexpand): Inhibit
warning if requested (bug#50984).
2021-11-30 Po Lu <luangruo@yahoo.com>
* src/nsterm.m (Vns_scroll_event_delta_factor): Fix doc string.
2021-11-30 Po Lu <luangruo@yahoo.com>
Fix pixel scrolling again
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Fix
confusion about absolutivity of `window-edges'.
2021-11-30 Po Lu <luangruo@yahoo.com>
Fix 1-off errors in pixel scrolling code
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down): Fix
one-off errors.
2021-11-30 Po Lu <luangruo@yahoo.com>
Improve upwards pixel scrolling for large images
This fixes most of the problem, but with a large image the
vscroll can sometimes jump about, which has to be fixed.
* lisp/pixel-scroll.el (pixel-scroll-precision-up): Handle
vscrolling large images in the first unseen line.
2021-11-30 Mattias Engdegård <mattiase@acm.org>
Better CPS conversion of multi-binding `let`
* lisp/emacs-lisp/generator.el (cps--transform-1):
Don't translate single-binding `let` into `let*` with an extra
temporary variable; it just adds two more useless states.
2021-11-30 Po Lu <luangruo@yahoo.com>
Calculate pixel deltas correctly
* src/pgtkterm.c (scroll_event): Fix scroll delta
factor. (bug#52195)
2021-11-30 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
* lisp/pixel-scroll.el (pixel-scroll-precision): Handle zero delta.
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-11-30 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
30553d889d Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/e...
ecf3bf66ba Remove problematic characters from modus-themes.org (bug#5...
de9d27f679 Avoid undefined behaviour when copying part of structure
# Conflicts:
# doc/misc/modus-themes.org
2021-11-30 Po Lu <luangruo@yahoo.com>
Fix annoying bell rings when pixel scrolling to buffer limits
* lisp/pixel-scroll.el (pixel-scroll-precision): Don't ding at
buffer limits.
2021-11-30 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-11-30 Po Lu <luangruo@yahoo.com>
Enable shallow menu bar updates on PGTK
* src/gtkutil.c (menu_bar_button_pressed_cb): New function.
(create_menus): Connect button press event signal.
* src/pgtkmenu.c (set_frame_menubar): Allow shallow updates.
2021-11-30 Po Lu <luangruo@yahoo.com>
Add `ns-scroll-event-delta-factor'
* src/nsterm.m (- mouseDown): Take delta factor into account.
(Vns_scroll_event_delta_factor): New variable.
* lisp/cus-start.el: Add option.
2021-11-29 Po Lu <luangruo@yahoo.com>
Allow non-float values in x-scroll-event-delta-factor
* src/xterm.c (handle_one_xevent): Use XFLOATINT instead of
XFLOAT_DATA.
2021-11-29 Po Lu <luangruo@yahoo.com>
Make interrupt input optionally work on PGTK
* src/pgtkterm.c (pgtk_delete_terminal): Close display fd if it
exists.
(pgtk_term_init): Set up interrupt handling for display fd if
available.
* src/pgtkterm.h (struct pgtk_display_info): Add `connection'
field.
2021-11-29 Po Lu <luangruo@yahoo.com>
Stop setting mouse face GC manually, as it is no longer required
* src/pgtkterm.c (x_set_mouse_face_gc): Remove obsolete code.
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Add new package pixel-fill.el
* lisp/net/shr.el (shr-char-breakable-p, shr-char-nospace-p)
(shr-char-kinsoku-bol-p, shr-char-kinsoku-eol-p)
(shr-find-fill-point): Moved to pixel-fill.el and renamed.
(shr-pixel-region): Made obsolete.
(shr-fill-line): Use pixel-fill-region.
* lisp/textmodes/pixel-fill.el: New package.
2021-11-29 Po Lu <luangruo@yahoo.com>
Add missing function declarations to pgtk-win.el
* lisp/term/pgtk-win.el: Add missing IM context related
declarations.
2021-11-29 Po Lu <luangruo@yahoo.com>
Enable pixel-precision scrolling on pgtk port
* src/pgtkterm.c (scroll_event): Generate enhanced wheel
events.
(x_coalesce_scroll_events): New variable.
2021-11-29 Po Lu <luangruo@yahoo.com>
Get rid of pgtk_select and use xg_select instead
* src/pgtkmenu.c (pgtk_menu_wait_for_event): Get rid
of pgtk_select.
* src/pgtkterm.h (pgtk_select):
* src/pgtkterm.c (pgtk_select): Delete function.
* src/process.c (wait_reading_process_output): Stop
using pgtk_select.
2021-11-29 Po Lu <luangruo@yahoo.com>
* lisp/frame.el (display-graphic-p): Fix typo.
2021-11-29 Po Lu <luangruo@yahoo.com>
Fix build after merge
* lisp/mwheel.el (mouse-wheel-up-event):
* src/gtkutil.c (xg_event_is_for_scrollbar):
* src/termhooks.h (enum output_method): Fix trivial typos.
2021-11-29 Po Lu <luangruo@yahoo.com>
Merge remote-tracking branch 'origin/feature/pgtk' into feature/pgtk
Merge remote-tracking branch 'origin/master' into feature/pgtk
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Audit the Emacs manual for keymap-*-related changes
* doc/emacs/programs.texi (Other C Commands):
* doc/emacs/msdos-xtra.texi (MS-DOS Keyboard):
* doc/emacs/custom.texi (Init Examples):
* doc/emacs/abbrevs.texi (Editing Abbrevs): Change some examples
to use keymap-* functions.
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Fix some of the argument handling in keymap-set and keymap-substitute
* lisp/keymap.el (keymap-set): Fix handling of binding one key to
another key.
(keymap-substitute): Fix confusion in implementation -- the args
are definitions, not keys.
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Edit the lispref manual for define-key/keymap-set fallout
* doc/lispref/variables.texi (Tips for Defining):
* doc/lispref/text.texi (Clickable Text):
* doc/lispref/modes.texi (Derived Modes):
(Example Major Modes):
* doc/lispref/loading.texi (Autoload):
(Hooks for Loading):
* doc/lispref/keymaps.texi (Creating Keymaps):
(Inheritance and Keymaps):
(Controlling Active Maps):
(Changing Key Bindings):
(Low-Level Key Binding):
(Remapping Commands):
(Translation Keymaps):
(Key Binding Commands):
* doc/lispref/help.texi (Help Functions):
* doc/lispref/display.texi (Abstract Display Example):
* doc/lispref/commands.texi (Interactive Codes):
(Keyboard Events):
(Misc Events):
(Classifying Events):
(Strings of Events): Prefer `keymap-set' instead of `define-key'
most places, and use `defvar-keymap' in some of the examples.
2021-11-29 Alan Third <alan@idiocy.org>
Fix build on macOS
* src/nsterm.h (NSPasteboardTypeMultipleTextSelection):
(NSPasteboardTypePNG): These are already defined on macOS 10.6 and
above and aren't used at all in GNUstep.
2021-11-29 Alan Third <alan@idiocy.org>
Fix NS port text decorations (bug#52156)
* src/nsterm.m (ns_draw_text_decoration): Set the correct colors for
decorations other than underline.
(ns_draw_glyph_string): Remove superfluous color setting call.
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot.el
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Fix up generation of help text for ldefs-boot.el
* lisp/emacs-lisp/autoload.el (autoload-rubric): Don't put the
help text into cedet/*/loaddefs.el (bug#51744).
2021-11-29 Michael Albinus <michael.albinus@gmx.de>
* test/infra/gitlab-ci.yml (.job-template): Modify find scripts.
2021-11-29 Protesilaos Stavrou <info@protesilaos.com>
Remove problematic characters from modus-themes.org (bug#52126)
* doc/misc/modus-themes.org
(Enable and load, Font configurations for Org and others)
(Note on highlight-parentheses.el, Note on god-mode.el): Update links to
headings so that they no longer include the removed portions of text.
(Option for color-coding success state, Option for line highlighting)
(Option for line numbers, Option for parenthesis matching)
(Advanced customization, Per-theme customization settings)
(Case-by-case face specs using the themes' palette)
(Face specs at scale using the themes' palette)
(Remap face with local value, Cycle through arbitrary colors)
(Override colors, Override color saturation)
(Font configurations for Org and others, Configure bold and italic faces)
(Custom Org user faces, Update Org block delimiter fontification)
(Measure color contrast, Load theme depending on time of day)
(Backdrop for pdf-tools, Decrease mode line height)
(A theme-agnostic hook for theme loading, Note on EWW and Elfeed fonts)
(Frequently Asked Questions): Remove parentheses from headings as they
can cause problems in the .texi version of the file.
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Don't return whitespace for thing-at-point in whitespace-only buffers
* lisp/thingatpt.el (bounds-of-thing-at-point): If the buffer is
empty, return nil for most things (bug#52098).
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Make Re: recognition in ispell-message less ambiguous
* lisp/textmodes/ispell.el (ispell-message): Require a "Re" as a
word, not as a word ending (bug#52104).
2021-11-29 Brahimi Saifullah <brahimi.saifullah@gmail.com> (tiny change)
Make `group' widgets prettier in Customize
* lisp/wid-edit.el (group): Make the ":" invisible so that the
buffer looks prettier (bug#52143).
2021-11-29 Matthias Meulien <orontee@gmail.com>
project-kill-buffers can display list of buffers to kill
* lisp/progmodes/project.el
(project-kill-buffers-display-buffer-list): Option to toggle
temporarily display of the list of buffers to kill when calling
project-kill-buffers
(project-kill-buffers): Handle
project-kill-buffers-display-buffer-list option (bug#52148).
2021-11-29 Lars Ingebrigtsen <larsi@gnus.org>
Signal a better error in tabulated-list-sort
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort): Signal
error earlier on invalid column numbers (bug#52154).
2021-11-29 Yuuki Harano <masm+github@masm11.me>
* src/xdisp.c (mouse_face_from_buffer_pos): Revert whitespace only change
2021-11-29 Yuuki Harano <masm+github@masm11.me>
Remove draw_glyphs_debug
It is left-over from debugging, and not needed any more.
* src/xdisp.c (draw_glyphs_debug):
(draw_glyphs):
2021-11-29 Yuuki Harano <masm+github@masm11.me>
Replace XFillRectangle with cairo_rectangle and cairo_fill
* src/pgtkterm.c (pgtk_flash):
2021-11-29 Yuuki Harano <masm+github@masm11.me>
Use /* */ comment style instead of //
* src/gtkutil.c (xg_create_frame_widgets):
* src/pgtkfns.c (Fx_create_frame):
(frame_geometry):
* src/pgtkterm.c (pgtk_mouse_position):
(pgtk_redisplay_interface):
(pgtk_clear_frame):
(pgtk_create_terminal):
(struct pgtk_window_is_of_frame_recursive_t):
(key_press_event):
(syms_of_pgtkterm):
2021-11-29 Daniel Martín <mardani29@yahoo.es>
Use mupdf in doc-view-mode if gs is not installed
* lisp/doc-view.el (doc-view-mode-p): Use mupdf to render PDF and
related formats if gs is not installed (bug#52170).
2021-11-29 Ikumi Keita <ikumi@ikumi.que.jp> (tiny change)
Make fill-region-as-paragraph clear the markers it creates
* lisp/textmodes/fill.el (fill-region-as-paragraph): Clear
temporary markers (bug#52175).
2021-11-29 Gregory Heytings <gregory@heytings.org>
Do not buttonize key bindings outside of *Help* buffers
* etc/NEWS: Mention the new variable.
* lisp/apropos.el (apropos-describe-plist): Bind the new
variable (bug#52053).
* lisp/button.el (button-describe): Bind the new variable.
* lisp/help-fns.el (describe-function, describe-variable)
(describe-face, describe-symbol, describe-syntax)
(describe-categories, describe-keymap, describe-mode)
(describe-widget): Bind the new variable.
* lisp/help-macro.el (make-help-screen): Bind the new variable.
* lisp/help.el (help-buffer-under-preparation): New variable
that is bound to t by commands that create a *Help* buffer.
(substitute-command-keys): Use the new variable:
help-link-key-to-documentation is supposed to have an effect
only "in *Help* buffers". Fixes bug#52053.
(view-lossage, describe-bindings, describe-key): Bind the new
variable.
* lisp/repeat.el (describe-repeat-maps): Bind the new variable.
* lisp/international/mule-cmds.el (describe-input-method)
(describe-language-environment): Bind the new variable.
* lisp/international/mule-diag.el (describe-character-set)
(describe-coding-system, describe-font, describe-fontset)
((list-fontsets): Bind the new variable.
2021-11-29 Alan Mackenzie <acm@muc.de>
First commit of scratch/correct-warning-pos.
This branch is intended to generate correct position information in warning
and error messages from the byte compiler, and is intended thereby to fix bugs
It introduces a new mechanism, the symbol with position. This is taken over
from the previous git branch scratch/accurate-warning-pos which was abandoned
for being too slow. The main difference in the current branch is that the
symbol `nil' is never given a position, thus speeding up NILP markedly.
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
(byte-optimize-form-code-walker, byte-optimize-let-form, byte-optimize-while)
(byte-optimize-apply): Use byte-compile-warn-x in place of byte-compile-warn.
* lisp/emacs-lisp/bytecomp.el (byte-compile--form-stack): New variable.
(byte-compile-strip-s-p-1, byte-compile-strip-symbol-positions): New
functions.
(byte-compile-recurse-toplevel, byte-compile-initial-macro-environment)
(byte-compile-preprocess, byte-compile-macroexpand-declare-function): Bind
print-symbols-bare to non-nil.
(byte-compile--first-symbol, byte-compile--warning-source-offset): New
functions.
(byte-compile-warning-prefix): Modify to output two sets of position
information, the old (incorrect) set and the new set.
(byte-compile-warn): Strip positions from symbols before outputting.
(byte-compile-warn-x): New function which outputs a correct position supplied
in an argument.
(byte-compile-warn-obsolete, byte-compile-emit-callargs-warn)
(byte-compile-format-warn, byte-compile-nogroup-warn)
(byte-compile-arglist-warn, byte-compile-docstring-length-warn)
(byte-compile-warn-about-unresolved-functions, byte-compile-file)
(byte-compile--check-prefixed-var, byte-compile--declare-var)
(byte-compile-file-form-defvar-function, byte-compile-file-form-defmumble)
(byte-compile-check-lambda-list, byte-compile--warn-lexical-dynamic)
(byte-compile-lambda, byte-compile-form, byte-compile-normal-call)
(byte-compile-check-variable, byte-compile-free-vars-warn)
(byte-compile-subr-wrong-args, byte-compile-fset, byte-compile-set-default)
(byte-compile-condition-case, byte-compile-save-excursion)
(byte-compile-defvar, byte-compile-autoload)
(byte-compile-make-variable-buffer-local, byte-compile-define-symbol-prop)
(byte-compile-define-keymap): Replace byte-compile-warn with
byte-compile-warn-x.
(byte-compile-file, compile-defun): Bind symbols-with-pos-enabled to non-nil.
(compile-defun, byte-compile-from-buffer): Use `read-positioning-symbols'
rather than plain `read'.
(byte-compile-toplevel-file-form, byte-compile-form): Dynamically bind
byte-compile--form-stack.
(byte-compile-file-form-autoload, byte-compile-file-form-defvar)
(byte-compile-file-form-make-obsolete, byte-compile-lambda)
(byte-compile-push-constant, byte-compile-cond-jump-table)
(byte-compile-define-keymap, byte-compile-annotate-call-tree):
Strip positions from symbols where they are unwanted.
(byte-compile-file-form-defvar): Strip positions from symbols using
`bare-symbol'.
(byte-compile-file-form-defmumble): New variable bare-name, a version of name
without its position.
(byte-compile-lambda): Similarly, new variable bare-arglist.
(byte-compile-free-vars-warn): New argument arg supplying position information
to byte-compile-warn-x.
(byte-compile-push-constant): Manipulation of symbol positions.
(display-call-tree): Strip positions from symbols.
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
(cconv--analyze-function, cconv-analyze-form): Replace use of
byte-compile-warn with byte-compile-warn-x.
* lisp/emacs-lisp/cl-generic.el (cl-defmethod): New variable org-name which
will supply position information to a new macroexp-warn-and-return.
* lisp/emacs-lisp/cl-macs.el (cl-macs--strip-s-p-1)
(cl-macs--strip-symbol-positions): New functions to strip positions from
symbols in an expression. These duplicaate similarly named functions in
bytecomp.el.
* lisp/emacs-lisp/macroexpand.el (macroexp--warn-wrap): Calls
byte-compile-warn-x in place of byte-compile-warn.
(macroexp-warn-and-return): Commented out new position parameter _arg.
* src/.gdbinit: Add in code to handle symbols with position.
* src/alloc.c (XPNTR, set_symbol_name, valid_lisp_object_p, purecopy)
(mark_char_table, mark_object, survives_gc_p, symbol_uses_obj): Use
BARE_SYMBOL_P and XBARE_SYMBOL in place of the former SYMBOLP and XSYMBOL.
(build_symbol_with_pos): New function.
(Fgarbage_collect): Bind Qsymbols_with_pos_enabled to nil around the call to
garbage_collect.
* src/data.c (Ftype_of): Add case for PVEC_SYMBOL_WITH_POS.
(Fbare_symbol_p, Fsymbol_with_pos_p, Fbare_symbol, Fsymbol_with_pos_pos)
(Fposition_symbol): New functions.
(symbols_with_pos_enabled): New boolean variable.
* src/fns.c (internal_equal, hash_lookup): Handle symbols with position.
* src/keyboard.c (recursive_edit_1): Bind Qsymbols_with_pos_enabled and
Qprint_symbols_bare to nil.
* src/lisp.h (lisp_h_PSEUDOVECTORP): New macro.
(lisp_h_BASE_EQ): New name for the former lisp_h_EQ.
(lisp_h_EQ): Extended to handle symbols with position.
(lisp_h_NILP): Now uses BASE_EQ rather than EQ.
(lisp_h_SYMBOL_WITH_POS_P, lisp_h_BARE_SYMBOL_P): New macros.
(lisp_h_SYMBOLP): Redefined to handle symbols with position.
(BARE_SYMBOL_P, BASE_EQ): New macros.
(SYMBOLP (macro)): Removed.
(SYMBOLP (function), XSYMBOL, make_lisp_symbol, builtin_lisp_symbol)
(c_symbol_p): Moved to later in file.
(struct Lisp_Symbol_With_Pos): New data type.
(pvec_type): PVEC_SYMBOL_WITH_POS: New type code.
(PSEUDOVECTORP): Redefined to use the lisp_h_PSEUDOVECTORP.
(BARE_SYMBOL_P, SYMBOL_WITH_POS_P, SYMBOLP, XSYMBOL_WITH_POS, XBARE_SYMBOL)
(XSYMBOL, make_lisp_symbol, builtin_lisp_symbol, c_symbol_p, CHECK_SYMBOL)
(BASE_EQ): New functions, or functions moved from earlier in the file.
(SYMBOL_WITH_POS_SYM, SYMBOL_WITH_POS_POS): New INLINE functions.
* src/lread.c (read0, read1, read_list, read_vector, read_internal_start)
(list2): Add a new bool parameter locate_syms.
(Fread_positioning_symbols): New function.
(Fread_from_string, read_internal_start, read0, read1, read_list): Pass around
suitable values for locate_syms.
(read1): Build symbols with position when locate_syms is true.
* src/print.c (print_vectorlike): Add handling for PVEC_SYMBOL_WITH_POS.
(print_object): Replace EQ with BASE_EQ.
(print_symbols_bare): New boolean variable.
2021-11-29 Po Lu <luangruo@yahoo.com>
Really make `x-scroll-event-delta-factor' dependent on system
* lisp/cus-start.el: Move X specific builtins that start
with "x-" before the catch-all test.
2021-11-29 Andreas Schwab <schwab@linux-m68k.org>
Avoid undefined behaviour when copying part of structure
* src/dispnew.c (copy_row_except_pointers): Don't use address of
subobject as starting point.
2021-11-29 Po Lu <luangruo@yahoo.com>
Fix last change for non-X platforms
* lisp/cus-start.el: Don't announce
`scroll-bar-adjust-thumb-portion' on non-X systems.
2021-11-29 Po Lu <luangruo@yahoo.com>
Allow customizing the pixel delta of wheel events on X
* lisp/cus-start.el: Add `x-scroll-event-delta-factor'.
* src/xterm.c (handle_one_xevent): Apply scroll event
delta factor to wheel events with pixel data.
(Vx_scroll_event_delta_factor): New user option.
2021-11-29 Po Lu <luangruo@yahoo.com>
Make overhangs in ftcrfont work on Haiku
* src/ftcrfont.c (ftcrfont_draw): Dump left overhang clipping
on Haiku and always set `background_filled_p'.
2021-11-29 Po Lu <luangruo@yahoo.com>
* doc/emacs/haiku.texi (Haiku Basics): Fix a typo.
2021-11-29 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c4daff9cf8 * Makefile.in (PREFERRED_BRANCH): Now emacs-28.
bca57086be ; Remove an obsolete comment
455b64c336 * src/coding.c (Fdecode_coding_region, Fencode_coding_regi...
2021-11-28 Po Lu <luangruo@yahoo.com>
Update XKB map on MappingNotify
* src/xterm.c (handle_one_xevent): Update XKB map when X
tells us the keyboard map has been updated.
2021-11-28 Lars Ingebrigtsen <larsi@gnus.org>
Tweak gnus-art key binding
* lisp/gnus/gnus-art.el (:keymap): Fix mnemonic key binding.
2021-11-28 Mattias Engdegård <mattiase@acm.org>
Use compiler macros for the key syntax checks
Compile-time key string syntax checks are better written using
compiler macros than with byte-hunk-handlers inside the compiler
proper.
* lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap)
(byte-compile-define-keymap--define): Remove.
* lisp/keymap.el (keymap--compile-check): New.
(keymap-set, keymap-global-set, keymap-local-set, keymap-global-unset)
(keymap-local-unset, keymap-unset, keymap-substitute)
(keymap-set-after, key-translate, keymap-lookup, keymap-local-lookup)
(keymap-global-lookup): Use compiler-macro for argument checks.
* lisp/subr.el (define-keymap--compile): New.
(define-keymap--define): Fold into define-keymap.
(define-keymap): Use compiler-macro.
(defvar-keymap): Use define-keymap.
2021-11-28 Mattias Engdegård <mattiase@acm.org>
Avoid unused argument warnings in lambda compiler macros
* lisp/emacs-lisp/byte-run.el (byte-run--set-compiler-macro):
Don't warn when a compiler macro with lambda-form expander does not
use all the arguments of the function. Nobody expected any warning
since the arguments look like free variables inside the lambda form.
2021-11-28 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
1fffe9a210 ; * lisp/org/org.el: Fix version header.
2a4de5e5e5 Fix Subject when forwarding message with 2-line From
b8b2dd17c5 Update to Org 9.5.1-11-g96d91b
a937f536b3 * doc/lispref/commands.texi (Click Events): Fix wording (b...
2021-11-28 Michael Albinus <michael.albinus@gmx.de>
Adapt gitlab-ci.yml
* test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_TIMEOUT to 3600.
(.job-template, .test-template): Another approach to catch test
artifacts on emba.
2021-11-28 Po Lu <luangruo@yahoo.com>
Make haiku-win build correctly on non-Haiku systems
* lisp/term/haiku-win.el (haiku-selection-targets): Add
missing declaration.
2021-11-28 Po Lu <luangruo@yahoo.com>
Fix xwidget popups on XI2 again
* src/xwidget.c (xwidget_button_1): Release seat grab.
2021-11-28 Po Lu <luangruo@yahoo.com>
Fix xwidget popups on XI2
* src/gtkutil.c (xg_is_menu_window): Determine whether wdesc
is a menu generated by a menu bar more reliably.
* src/xwidget.c (xwidget_button_1): Release all XI2 grabs on
click.
2021-11-27 Po Lu <luangruo@yahoo.com>
Fix typos in configure.ac
* configure.ac: Fix typos in wording of XInput 2 options.
2021-11-27 Po Lu <luangruo@yahoo.com>
Make `pixel-scroll-precision-scroll-up' work better with overlays
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up):
Just set vscroll when on overlay.
2021-11-27 Michael Albinus <michael.albinus@gmx.de>
Simplify use of artifacts in emba files
* test/infra/gitlab-ci.yml (.test-template): Re-insert.
(test-all-inotify, test-filenotify-gio, test-gnustep)
(test-native-comp-speed0):
* test/infra/Makefile.in (subdir_template): Use it when
appropriate. Remove artifacts.
* test/infra/test-jobs.yml: Regenerate.
2021-11-27 Stefan Monnier <monnier@iro.umontreal.ca>
* test/src/comp-tests.el: Rework last patch
Move `require`s out of `eval-when-compile` if the functions are called
at run-time.
Don't use #' to quote symbols (i.e. at those places where a lambda
expression couldn't be used).
Don't pre-load comp-test-45603.el and comp-test-pure.el any more.
(comp-deftest pure): Use `declare-function` after loading `comp-test-pure.el`
to silence the byte-compiler.
2021-11-27 Eli Zaretskii <eliz@gnu.org>
Avoid assertion violations in --enable-checking builds
* src/xdisp.c (gui_produce_glyphs): Make sure character glyphs
don't trigger assertion violation due to negative ascent or
descent. This was reporte dto happen with some fonts used by the
xfont backend.
2021-11-27 Po Lu <luangruo@yahoo.com>
Improve documentation of wheel events
* doc/lispref/commands.texi (Misc Events): Add missing
parameters to `wheel-up' and `wheel-down'.
2021-11-27 Po Lu <luangruo@yahoo.com>
Fix pixel scroll for overlays and text in display properties
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down):
Just set vscroll if we're scrolling through an overlay or
something to that effect.
2021-11-27 Po Lu <luangruo@yahoo.com>
Set motion event time when handling XI2 motion events
* src/xterm.c (handle_one_xevent): Set motion event time when
handling XI_Motion.
2021-11-27 Po Lu <luangruo@yahoo.com>
Remove GC prone call in `pixel-point-and-height-at-unseen-line'
* lisp/pixel-scroll.el (pixel-point-and-height-at-unseen-line):
Remove call to unnecessary call to `beginning-of-visual-line'.
2021-11-27 Po Lu <luangruo@yahoo.com>
Make `pixel-scroll-precision-scroll-up' slightly more robust
* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-up):
Subtract from existing vscroll if feasible.
2021-11-27 Po Lu <luangruo@yahoo.com>
Make `pixel-scroll-precision-scroll-up' use existing logic
* lisp/pixel-scroll.el (pixel-point-at-unseen-line): Rewrite
to use `pixel-point-and-height-at-unseen-line'.
(pixel-point-and-height-at-unseen-line): New function.
(pixel-scroll-precision-scroll-up): Use existing logic
to determine unseen line position.
2021-11-26 Stephen Gildea <stepheng+emacs@gildea.com>
time-stamp-tests.el: Test more formats
* test/lisp/time-stamp-tests.el (time-stamp-format-ignored-modifiers):
Additional testing with illegal formats, including "%".
(time-stamp-format-multiple-conversions): Add a test with "%%%".
2021-11-26 Po Lu <luangruo@yahoo.com>
Set initial tab bar parameter on NS
* src/nsfns.m (Fx_create_frame): Initialize `tab-bar-lines'
frame parameter during frame creation.
2021-11-26 Alan Third <alan@idiocy.org>
Silence NS warnings
* src/nsterm.m ([EmacsView mouseDown:]): Move variables into the block
where they're used.
2021-11-26 Stephen Gildea <stepheng+emacs@gildea.com>
* test/src/comp-tests.el: Eliminate byte-compiler warnings (Bug#52105).
2021-11-26 Robert Pluim <rpluim@gmail.com>
Specify initial values for glyphless-char-display-control elements
* lisp/international/characters.el (glyphless-char-display-control):
Specify :value for all the elements, since nil is not a valid value.
2021-11-26 Michael Albinus <michael.albinus@gmx.de>
Adapt test/infra/gitlab-ci.yml
* test/infra/gitlab-ci.yml (test-all-inotify)
(test-filenotify-gio, test-gnustep, test-native-comp-speed0):
Add or adapt artifacts.
2021-11-26 Lars Ingebrigtsen <larsi@gnus.org>
Add new face `gnus-header'
* lisp/gnus/gnus-art.el (gnus-header): New face.
(gnus-header-from, gnus-header-subject, gnus-header-newsgroups)
(gnus-header-name, gnus-header-content): Inherit from this new face.
2021-11-26 Robert Pluim <rpluim@gmail.com>
Adjust custom-face-attributes for 'regular' weight
Following the changes to support "medium" weight fonts, the weight for
"normal" fonts is now reported as 'regular', which caused
customize-face to display faces as lisp-expressions, since it didn't
recognize that. This has been corrected.
* lisp/cus-face.el (custom-face-attributes): Recognize 'regular' as a
weight.
2021-11-26 Lars Ingebrigtsen <larsi@gnus.org>
Add an intermediary face for mode lines: `mode-line-active'
* doc/emacs/display.texi (Standard Faces): Document the new face.
* lisp/faces.el (mode-line-active): New face.
(mode-line): Don't inherit from vaiable-pitch.
* src/xfaces.c (lookup_basic_face, realize_basic_faces)
(syms_of_xfaces):
* src/xdisp.c (window_box_height, window_text_pixel_size)
(display_mode_lines, Fformat_mode_line):
* src/dispextern.h (CURRENT_MODE_LINE_ACTIVE_FACE_ID_3)
(CURRENT_MODE_LINE_ACTIVE_FACE_ID, enum face_id): Rename from
*MODE_LINE_FACE_ID to *MODE_LINE_ACTIVE_FACE_ID.
2021-11-26 Po Lu <luangruo@yahoo.com>
Move the precision pixel scrolling feature to pixel-scroll.el
* etc/NEWS: Update NEWS entry for 'pixel-scroll-precision-mode'
* lisp/better-pixel-scroll.el: Remove file.
* src/pixel-scroll.el (x-coalesce-scroll-events): New variable
declaration.
(pixel-scroll-precision-mode-map): New variable.
(pixel-scroll-precision-scroll-down):
(pixel-scroll-precision-scroll-up):
(pixel-scroll-precision): New functions.
(pixel-scroll-precision-mode): New minor mode.
2021-11-26 Po Lu <luangruo@yahoo.com>
Explain confusing aspects of XInput 2 scroll wheel reporting
* src/xterm.c (x_init_master_valuators): Explain how XInput 2
reports scroll wheel movement.
(handle_one_xevent): Explain why XI2 scroll valuators
are reset after each enter events.
2021-11-26 Dmitry Gutov <dgutov@yandex.ru>
Remove empty lines from stash read prompt
* lisp/vc/vc-git.el (vc-git-stash-read): Pass OMIT-NULLS (bug#52119).
(vc-git-stash-list): Simplify.
2021-11-26 Po Lu <luangruo@yahoo.com>
Make XInput 2 builds work without cairo
* src/xterm.c: Move some defines around so XI2 code doesn't
get ifdef'd out if Cairo is disabled.
2021-11-26 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
cfaf681d3d ; * src/emacs.c (main): Add commentary about command-line ...
4d16a2f737 Fix pdf generation with Texinfo 6.7
a22c9a34bd Fix 'posn-at-point' near some overlays
d1aa552d11 ; * CONTRIBUTE: No cleanups on release branches, even in d...
588caf0b27 * lisp/repeat.el (repeat-post-hook): Add check symbolp rep...
2021-11-26 Po Lu <luangruo@yahoo.com>
Fix sign of pixel scroll events on Haiku
* src/haikuterm.c (haiku_read_socket): Fix sign of scroll
events.
2021-11-26 Po Lu <luangruo@yahoo.com>
Make tab bar option visible in the menu bar on NS
* lisp/menu-bar.el (menu-bar-showhide-menu): Make
`showhide-tab-bar' visible on NS as well.
2021-11-26 Po Lu <luangruo@yahoo.com>
Make pixel scrolling through images at the first line smoother
* lisp/better-pixel-scroll.el (better-pixel-scroll-scroll-up):
Try to reset vscroll if already vscrolled.
2021-11-26 Po Lu <luangruo@yahoo.com>
Don't perform pixel scrolling when window is hscrolled
* lisp/better-pixel-scroll.el (better-pixel-scroll): Call
mwheel-scroll instead if window is hscrolled.
2021-11-25 Po Lu <luangruo@yahoo.com>
Add `better-pixel-scroll-mode'
* etc/NEWS: Announce `better-pixel-scroll-mode'.
* lisp/better-pixel-scroll.el: New file.
2021-11-25 Alan Third <alan@idiocy.org>
Fix selection for old GNUstep and GCC
* src/nsselect.m (ns_get_foreign_selection): Remove language features
not yet supported by GCC. Be more selective with which pasteboard
types we use.
* src/nsterm.h: Set up some more #defines for deprecated variables.
2021-11-25 Eli Zaretskii <eliz@gnu.org>
Update 'custom-face-attributes'
* lisp/cus-face.el (custom-face-attributes): Synchronize with
tables in font.c.
2021-11-25 Andreas Schwab <schwab@linux-m68k.org>
* src/emacs.c (usage_message): Fix name of --seccomp option.
2021-11-25 Eli Zaretskii <eliz@gnu.org>
Fix handling of '--dump-file' command-line option
* lisp/startup.el (command-line-1): Handle "--dump-file" and
"--seccomp" if they are left on the command-line. (Bug#52106)
2021-11-25 Stephen Gildea <stepheng+emacs@gildea.com>
MH-E: support Mailutils "folders +/"
* lisp/mh-e/mh-utils.el (mh-sub-folders-parse):
Support Mailutils style of "folders +/" output.
* test/lisp/mh-e/mh-utils.el:
Test "folders +/" with GNU Mailutils 3.13.91 and later.
2021-11-25 Robert Pluim <rpluim@gmail.com>
Correct the :inherit property on some faces
Otherwise M-x customize-face will show them as lisp-expressions rather
than nice widgets.
* lisp/ansi-color.el (ansi-color-bold):
(ansi-color-italic):
(ansi-color-underline):
* lisp/faces.el (mode-line): Don't quote the face we're inheriting
from.
2021-11-25 Robert Pluim <rpluim@gmail.com>
* doc/misc/flymake.texi: Correct local variable mode specification
2021-11-25 Robert Pluim <rpluim@gmail.com>
Don't display redundant 'see' in info-mode
* lisp/info.el (Info-fontify-node): Don't show 'see' when displaying
the result of "(See @ref" or "also @ref", but leave "Also @ref" alone.
2021-11-25 Michael Albinus <michael.albinus@gmx.de>
Tag a test from process-tests.el as :unstable on emba.
* test/src/process-tests.el (process-tests/multiple-threads-waiting):
Tag it as :unstable on emba.
2021-11-25 Lars Ingebrigtsen <larsi@gnus.org>
Add temporary mode-line-position change
* lisp/bindings.el (mode-line-position): Add interim solution to
make `min-width' work here; this should be fixed for real in the
display_line machinery somewhere.
2021-11-25 Lars Ingebrigtsen <larsi@gnus.org>
Indent `closure' forms better
* lisp/emacs-lisp/lisp-mode.el (closure): Indent `closure' forms
better (bug#52063).
2021-11-25 Po Lu <luangruo@yahoo.com>
Fix scroll wheel reporting on NS
* src/nsterm.m (- mouseDown): Clear scroll wheel
accumulators.
2021-11-25 Lars Ingebrigtsen <larsi@gnus.org>
Define a face for shr text
* lisp/net/shr.el (shr-text): New face.
(shr-insert): Use it instead of hard-coding `variable-pitch'.
2021-11-25 Po Lu <luangruo@yahoo.com>
Set serial when filtering XI_KeyPress events
This fixes fcitx flicker for whatever reason.
* src/xterm.c (handle_one_xevent): Set serial when filtering
XI_KeyPress events.
2021-11-24 Po Lu <luangruo@yahoo.com>
Add support for pixel wheel deltas on NS
* src/xterm.c (x_coalesce_scroll_events): Update doc string.
* src/nsterm.c (- mouseDown): Report pixel scroll deltas.
(x_coalesce_scroll_events): New variable
2021-11-24 Stephen Gildea <stepheng+emacs@gildea.com>
mh-utils-tests: 'mh-sub-folders-actual' coverage
* test/lisp/mh-e/mh-utils.el (mh-sub-folders-parse-no-folder)
(mh-sub-folders-parse-relative-folder, mh-sub-folders-parse-root-folder):
New tests.
* lisp/mh-e/mh-utils.el (mh-sub-folders-parse): New function,
refactored out of 'mh-sub-folders-actual' to create a testing seam.
2021-11-24 Matt Kramer <mkramer@lbl.gov> (tiny change)
Fix tab-line cycling when using buffer groups (bug#52050)
* lisp/tab-line.el (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab):
Remove tabs that aren't associated with a buffer, such as the `group-tab' that
exists when `tab-line-tabs-function' is `tab-line-tabs-buffer-groups'.
2021-11-24 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
b4f47d2 Use @pxref when necessary
2021-11-24 Michael Albinus <michael.albinus@gmx.de>
Some optimizations for emba jobs
* test/infra/gitlab-ci.yml (.test-template): Remove.
(test-all-inotify, test-filenotify-gio, test-gnustep)
(test-native-comp-speed0):
* test/infra/Makefile.in (subdir_template): Remove .test-template
from extends. Add or adapt needs and artifacts.
* test/infra/test-jobs.yml: Regenerate.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Remove APPEND argument from add-display-text-property
* doc/lispref/display.texi (Display Property): Update doc.
* lisp/emacs-lisp/subr-x.el (add-display-text-property): Remove
the append argument -- it's nonsensical.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix min-width problem with "overlapping" regions
* src/xdisp.c (handle_display_prop): Fix problem with overlapping
regions.
2021-11-24 Juri Linkov <juri@linkov.net>
* lisp/outline.el (outline-font-lock-keywords): Replace .+ with .*.
Make the regexp less restrictive and don't require the outline heading
to have more text after outline-regexp until the end of the heading line
(bug#51016).
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Add new function 'add-display-text-property'
* doc/lispref/display.texi (Display Property): Document it.
* lisp/emacs-lisp/subr-x.el (add-display-text-property): New function.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Change eshell-mode mode-line-format insinuation
* lisp/eshell/esh-mode.el (eshell-mode): Tweak how the mode line
is altered after recent mode-line-format changes.
2021-11-24 Eli Zaretskii <eliz@gnu.org>
Fix documentation of 'min-width' display spec.
* doc/lispref/display.texi (Other Display Specs): Clarify
documentation of the 'min-width' display spec.
2021-11-24 Narendra Joshi <narendraj9@gmail.com> (tiny change)
* lisp/vcursor.el (vcursor-get-char-count): Preserve point
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in display_min_width comment
* src/xdisp.c (display_min_width): Fix typo in comment.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Make min-width of the U:-- wider
* lisp/bindings.el (standard-mode-line-format): Make the modified
bits larger since there's often a big difference between - and %
characters.
2021-11-24 Stephen Gildea <stepheng+emacs@gildea.com>
mh-utils-tests: Add new tests of "folders +/"
* test/lisp/mh-e/mh-utils-tests.el
(mh-sub-folders-actual, mh-sub-folders): Add new tests of "folders +/".
Rewrite tests that were using 'assoc' to use 'member' instead, so that
on failure, ERT logs the list of which the element was not a member,
rather than the 'nil' returned by 'assoc'.
(mh-test-variant-handles-plus-slash): Factor out new helper function.
(mh-folder-completion-function-08-plus-slash)
(mh-folder-completion-function-09-plus-slash-tmp):
Use new helper function.
* test/lisp/mh-e/test-all-mh-variants.sh: LD_LIBRARY_PATH unnecessary.
2021-11-24 Eli Zaretskii <eliz@gnu.org>
Minor fixes for a recent commit
* src/xdisp.c (find_display_property): Fix style of comments.
(Fget_display_property): Doc fix.
(get_display_property): Fix style and whitespace.
2021-11-24 Mattias Engdegård <mattiase@acm.org>
Add sample of -fanalyzer output (bug#51882)
* etc/compilation.txt (file): Add fragment of GCC diagnostics from
-fanalyzer (from Philip Kaludercic).
2021-11-24 Mattias Engdegård <mattiase@acm.org>
Tighten `gnu` compile regexp further
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
The -fanalyzer ASCII art does not contain tabs.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Use a proportional font for the mode line
* lisp/bindings.el (mode-line-position): Add min-width specs.
(standard-mode-line-format): Ditto.
* lisp/faces.el (mode-line): Inherit from `variable-pitch'.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Make display_min_width work from the mode line
* src/xdisp.c (display_min_width): Make this work from mode line
constructs via display_string.
2021-11-24 Robert Pluim <rpluim@gmail.com>
* admin/unidata/emoji-zwj.awk: Quote functions properly.
2021-11-24 Po Lu <luangruo@yahoo.com>
Make `yank-media' work on Haiku
This works with what WebPositive does with images, at least. I don't
know about other programs, but Haiku doesn't seem to standardize this
very well.
* lisp/term/haiku-win.el (haiku--selection-type-to-mime): Handle
regular symbols.
(gui-backend-get-selection): Handle special type `TARGETS'.
(gui-backend-set-selection): Always clear clipboard.
* src/haiku_select.cc (BClipboard_get_targets): New function.
(BClipboard_set_data): New argument `clear'. All callers
changed.
(BClipboard_set_system_data)
(BClipboard_set_primary_selection_data)
(BClipboard_set_secondary_selection_data): New argument `clear'.
(BClipboard_system_targets, BClipboard_primary_targets)
(BClipboard_secondary_targets): New functions.
* src/haikuselect.c (haiku_selection_data_1): New function.
(Fhaiku_selection_targets): New function.
(Fhaiku_selection_put): Allow controlling if the clipboard is
cleared.
(syms_of_haikuselect): New symbols and subrs.
* src/haikuselect.h (BClipboard_set_system_data)
(BClipboard_set_primary_selection_data)
(BClipboard_set_secondary_selection_data): New argument `clear'.
(BClipboard_system_targets, BClipboard_primary_targets)
(BClipboard_secondary_targets): New functions.
2021-11-24 Michael Albinus <michael.albinus@gmx.de>
* admin/notes/emba (Emacs jobset): Remove stage slow.
* test/infra/Makefile.in (subdir_template): Add rule.
* test/infra/gitlab-ci.yml (.job-template): Remove changes section.
(.build-template, .gnustep-template, .filenotify-gio-template):
(.native-comp-template): Adapt changes section.
(.test-template): Add needs. Adapt artifacts paths.
(stages): Remove slow.
(test-all-inotify): Move up. Change stage to normal. Remove timeout.
(test-filenotify-gio, test-gnustep, test-native-comp-speed0):
Move needs up.
* test/infra/test-jobs.yml: Regenerate.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix min-width end condition handling
* src/xdisp.c (handle_display_prop): Fix check for min-width ends
-- they may be consecutive.
2021-11-24 Po Lu <luangruo@yahoo.com>
Correct adjustments to frame widths in events
* src/haiku_support.cc (EmacsWindow.FrameResized)
(EmacsWindow.Zoom): Adjust widths to fit into the correct
coordinate system.
2021-11-24 Po Lu <luangruo@yahoo.com>
Remove unused arguments to EmacsView.AfterResize
* src/haiku_support.cc (EmacsView.AfterResize): Remove
unused arguments.
(BView_resize_to): Stop passing unused arguments.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Add support for the min-width display property
* doc/lispref/display.texi (Display Property): Document
get-display-property.
(Other Display Specs): Document min-width property.
* src/dispextern.h (struct it): Add fields for min-width handling.
* src/xdisp.c (find_display_property, get_display_property): New
helper functions.
(display_min_width): Insert stretch glyphs based on the min width.
(Fget_display_property): New defun.
(handle_display_prop): Handle min-width ends.
(handle_single_display_spec): Handle min-width starts.
2021-11-24 Gregory Heytings <gregory@heytings.org>
Re-enable the disabledForeground X resource.
* doc/emacs/xresources.texi (Lucid Resources): Document the resource.
Also document the 'cursor' resource (bug#52052).
* lwlib/xlwmenu.c (make_drawing_gcs): Re-enable the use of the
disabledForeground resource. The use of this X resource was disabled
without reason in commit ef93458b2f8 by overwriting its value with the
value of the foreground resource.
2021-11-24 Alan Third <alan@idiocy.org>
Allow NS to handle non-text clipboard contents
* src/nsselect.m (ns_get_foreign_selection): Handle non-plain text
clipboard entries.
(ns_string_from_pasteboard): Remove EOL conversion.
(syms_of_nsselect): Define QTARGETS.
2021-11-24 Po Lu <luangruo@yahoo.com>
Clear past end of frame on Haiku
* src/haiku_support.c (EmacsWindow.FrameResized): Delete
size adjustment.
* src/haikuterm.c (haiku_clear_frame): Clear one pixel
past the end of the frame.
2021-11-24 Po Lu <luangruo@yahoo.com>
Fix 1 pixel wide border in frames on Haiku
* src/haiku_support.cc (EmacsWindow.FrameResized): Add 1 to
pixel widths.
* src/haikuterm.c (haiku_read_socket): Use `lrint' to round
widths.
2021-11-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix string-glyph-split infloop
* lisp/emacs-lisp/subr-x.el (string-glyph-split): Fix infloop when
applied to (string-glyph-split "✈️🌍") (bug#52067).
2021-11-24 Gregory Heytings <gregory@heytings.org>
Pass options from make to configure through a variable.
* GNUmakefile (configure): Use the variable.
* INSTALL.REPO: Document the variable (bug#51965).
2021-11-24 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
756b8a5f1b Fix typos in documentation
38fdeaef46 ; * etc/DEBUG: Fix last change.
2021-11-23 Po Lu <luangruo@yahoo.com>
Fix mouse-wheel-text-scale
* lisp/mwheel.el (mouse-wheel-text-scale): Test for alternative
events correctly.
2021-11-23 Po Lu <luangruo@yahoo.com>
Remove extraneous code left over from the ftbe font driver
* src/haikuterm.c (syms_of_haikuterm): Remove dead code.
2021-11-23 Po Lu <luangruo@yahoo.com>
Use only effective modifiers when handling XI2 button events
* src/xterm.c (handle_one_xevent): Use mods.effective when
constructing button events.
2021-11-23 Yuuki Harano <masm+github@masm11.me>
Remove PGTK_DEBUG stuff
* src/gtkutil.c:
(xg_create_frame_widgets):
(xg_create_frame_outer_widgets):
(x_wm_set_size_hint):
(xg_set_toolkit_scroll_bar_thumb):
* src/pgtkfns.c (x_set_background_color):
(pgtk_set_name):
(x_explicitly_set_name):
(pgtk_implicitly_set_name):
(x_set_title):
(Fx_create_frame):
(Fpgtk_set_mouse_absolute_pixel_position):
(pgtk_log):
(pgtk_backtrace):
* src/pgtkselect.c (get_func):
(clear_func):
(pgtk_selection_lost):
(Fpgtk_own_selection_internal):
(Fpgtk_disown_selection_internal):
(Fpgtk_selection_exists_p):
(Fpgtk_selection_owner_p):
(nxatoms_of_pgtkselect):
(syms_of_pgtkselect):
* src/pgtkterm.c (flip_cr_context):
(get_keysym_name):
(frame_set_mouse_pixel_position):
(x_free_frame_resources):
(x_destroy_window):
(x_set_offset):
(pgtk_set_window_size):
(pgtk_iconify_frame):
(pgtk_make_frame_visible):
(pgtk_make_frame_invisible):
(pgtk_new_font):
(x_display_pixel_height):
(x_display_pixel_width):
(x_set_no_focus_on_map):
(x_set_no_accept_focus):
(x_set_z_group):
(x_set_cursor_gc):
(x_set_glyph_string_gc):
(x_set_glyph_string_clipping):
(x_draw_glyph_string_background):
(pgtk_draw_glyph_string):
(pgtk_after_update_window_line):
(pgtk_clear_frame_area):
(pgtk_draw_window_cursor):
(pgtk_copy_bits):
(pgtk_cr_draw_image):
(pgtk_draw_fringe_bitmap):
(pgtk_redraw_scroll_bars):
(pgtk_clear_frame):
(pgtk_read_socket):
(pgtk_select):
(xg_scroll_callback):
(xg_end_scroll_callback):
(pgtk_set_vertical_scroll_bar):
(set_fullscreen_state):
(pgtk_fullscreen_hook):
(pgtk_handle_event):
(pgtk_fill_rectangle):
(pgtk_clear_under_internal_border):
(print_widget_tree_recursive):
(print_widget_tree):
(pgtk_handle_draw):
(size_allocate):
(key_press_event):
(key_release_event):
(map_event):
(delete_event):
(enter_notify_event):
(leave_notify_event):
(focus_in_event):
(focus_out_event):
(motion_notify_event):
(button_event):
(scroll_event):
(drag_data_received):
(pgtk_xlfd_to_fontname):
(pgtk_defined_color):
(pgtk_parse_color):
(pgtk_query_colors):
(pgtk_query_color):
(pgtk_clear_area):
(pgtk_cr_update_surface_desired_size):
(pgtk_begin_cr_clip):
(pgtk_end_cr_clip):
(pgtk_set_cr_source_with_gc_foreground):
(pgtk_set_cr_source_with_gc_background):
(pgtk_set_cr_source_with_color):
(pgtk_cr_draw_frame):
(pgtk_cr_destroy_frame_context):
* src/pgtkterm.h:
2021-11-23 Michael Albinus <michael.albinus@gmx.de>
Adapt artifacts paths in emba testjobs
* test/infra/Makefile.in (subdir_template): Adapt artifacts paths.
* test/infra/test-jobs.yml: Regenerate.
2021-11-23 Yuuki Harano <masm+github@masm11.me>
* src/ftcrfont.c (ftcrfont_open): Revert redundant brace change.
2021-11-23 Yuuki Harano <masm+github@masm11.me>
* src/frame.c (syms_of_frame): Revert frame_resize_pixelwise defaults to false
It was just a workaround of mutter's bug, which is already fixed, so
we can revert it.
2021-11-23 Yuuki Harano <masm+github@masm11.me>
* src/frame.c (Fframep): Fix comment
2021-11-23 Yuuki Harano <masm+github@masm11.me>
* src/font.h: Remove redundant condition
It is redundant because pgtk build always defines HAVE_FREETYPE.
2021-11-23 Yuuki Harano <masm+github@masm11.me>
Enclose pgtk changes within #ifdef
* src/emacsgtkfixed.c:
* src/emacsgtkfixed.h:
2021-11-23 Yuuki Harano <masm+github@masm11.me>
* src/emacs.c (main): Combine two conditions to one
2021-11-23 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
bdb489a ; * etc/DEBUG: Adjust instructions for libgccjit reproducer.
b4fb381 ; * src/xdisp.c (produce_stretch_glyph): Avoid compilation wa...
2021-11-23 Stefan Kangas <stefan@marxist.se>
Prefer locate-user-emacs-file in gitmerge.el
* admin/gitmerge.el (gitmerge-status-file): Prefer
'locate-user-emacs-file' to fiddling with 'user-emacs-directory'.
2021-11-23 Po Lu <luangruo@yahoo.com>
Fix compilation with XInput 2 but without XKB
* src/xterm.c (handle_one_xevent): Remove extraneous
conditional.
2021-11-23 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
d791cd556d Fix '(space :relative-width N)' display spec w/non-ASCII c...
712898210f * lisp/proced.el (proced-sort-header): Fix event positions...
# Conflicts:
# lisp/proced.el
2021-11-22 Po Lu <luangruo@yahoo.com>
Only reset scroll valuators on real enter events
* src/xterm.c (handle_one_xevent): Test event detail and mode
before resetting scroll valuators.
2021-11-22 Po Lu <luangruo@yahoo.com>
Fix delay between tool bar clicks and visual feedback
* src/haikuterm.c (haiku_read_socket): Redisplay after tool
bar click.
2021-11-22 Po Lu <luangruo@yahoo.com>
Fix XI2 keysym translation
* src/xterm.c (handle_one_xevent): Handle XI_KeyPress events
that can't be translated into strings.
2021-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/subr.el (event-start, event-end): Handle `(menu-bar)` events
* lisp/net/browse-url.el (browse-url-interactive-arg): Simplify accordingly
2021-11-22 Juri Linkov <juri@linkov.net>
* lisp/textmodes/flyspell.el: Pop up the menu under cursor from keyboard.
* lisp/textmodes/flyspell.el (flyspell-emacs-popup):
Use popup-menu-normalize-position with point when no mouse is involved,
instead of the incorrect use of mouse-position (bug#52025).
2021-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
src/indent.c, src/xdisp.c: Questions about with_echo_area_buffer_unwind_data
2021-11-22 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: 'C-x t RET' creates a new tab for non-existent tab name.
* lisp/tab-bar.el (tab-bar-switch-to-tab): Create a new tab and
rename it to NAME when can't find the tab with the given NAME (bug#51935).
2021-11-22 Mattias Engdegård <mattiase@acm.org>
Simplify `gnu` compilation-mode regexp
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Remove the pattern ostensibly added for Ruby, because at closer
inspection it could never have matched anything. This lessens the
performance impact of the pattern added for GCC's -fanalyzer,
now slightly tweaked.
2021-11-22 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el (tab-bar-history-old-minibuffer-depth): Remove variable.
(tab-bar--history-pre-change, tab-bar--history-change): Use minibuffer-depth
instead of this variable (bug#51370).
2021-11-22 Michael Albinus <michael.albinus@gmx.de>
Adapt emba jobs
* admin/notes/emba (Emacs jobset): Precise.
* test/infra/Makefile.in (tn): New variable.
(subdir_template): Use it. Handle eieio-tests, faceup-tests and
so-long-tests. Rearrange .PHONY entry. Add needs and artifacts
to emba job.
* test/infra/gitlab-ci.yml (test-filenotify-gio): Move up.
* test/infra/test-jobs.yml: Regenerate.
2021-11-22 Eli Zaretskii <eliz@gnu.org>
Improve recently installed documentation
* doc/lispref/display.texi (Size of Displayed Text): Move to
description of 'buffer-text-pixel-size' to preserve previous text;
mention the importance of WINDOW.
2021-11-22 Po Lu <luangruo@yahoo.com>
Fix compiler warning in image.c
* src/image.c (webp_load): Initialize `mask_img' to NULL.
2021-11-22 Stefan Kangas <stefan@marxist.se>
Use substitute-command-keys for literal key sequences
* lisp/abbrev.el (expand-region-abbrevs):
* lisp/calc/calc-graph.el (calc-graph-show-dumb):
* lisp/calc/calc-help.el (calc-help-for-help):
* lisp/calc/calc-mode.el (calc-auto-why):
* lisp/calc/calc.el (calc-do):
* lisp/calculator.el (calculator-mode):
* lisp/dired-aux.el (dired-create-files)
(dired-do-create-files-regexp, dired-create-files-non-directory):
* lisp/dired-x.el (dired-virtual):
* lisp/dired.el (dired-mark-region, dired-unmark-all-files):
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
* lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
* lisp/epa-ks.el (epa-ks--display-keys):
* lisp/erc/erc.el (erc-toggle-debug-irc-protocol):
* lisp/files.el (save-some-buffers):
* lisp/gnus/gnus-dired.el (gnus-dired-find-file-mailcap)
(gnus-dired-print):
* lisp/gnus/gnus-group.el (gnus-keep-same-level):
* lisp/gnus/gnus-score.el (gnus-score-find-trace):
* lisp/gnus/gnus.el (to-list):
* lisp/gnus/message.el (message--send-mail-maybe-partially):
* lisp/mail/supercite.el (sc-set-variable):
* lisp/minibuffer.el (minibuffer-inactive-mode):
* lisp/progmodes/etags.el (select-tags-table):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode)
(idlwave-shell-char-mode-loop):
* lisp/replace.el (query-replace-help):
* lisp/simple.el (set-variable):
* lisp/subr.el (read-char-from-minibuffer):
* lisp/textmodes/ispell.el (ispell-help, ispell-message):
* lisp/textmodes/reftex-global.el (reftex-find-duplicate-labels):
* lisp/textmodes/reftex-vars.el
(reftex-toc-include-file-boundaries)
(reftex-toc-include-labels, reftex-toc-include-index-entries)
(reftex-toc-include-context, reftex-toc-follow-mode)
(reftex-index-include-context, reftex-index-follow-mode)
(reftex-enable-partial-scans)
(reftex-auto-update-selection-buffers)
(reftex-highlight-selection):
* lisp/time.el (display-time-update):
* lisp/vc/ediff-help.el (ediff-help-for-quick-help):
* lisp/vc/ediff-init.el (ediff-keep-variants):
* lisp/vc/ediff-ptch.el (ediff-fixup-patch-map)
(ediff-patch-file-internal):
* lisp/windmove.el (windmove-delete-default-keybindings): Use
'substitute-command-keys' for literal key sequences.
* lisp/userlock.el (userlock--fontify-key): Remove function.
(ask-user-about-lock, ask-user-about-lock-help)
(ask-user-about-supersession-threat)
(ask-user-about-supersession-help): Use 'substitute-command-keys' for
literal key sequences.
* lisp/ibuffer.el (ibuffer-unmark-all): Use 'substitute-command-keys'
for command.
2021-11-22 Stefan Kangas <stefan@marxist.se>
Avoid false positives about wide docstrings for key sequences
* lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p):
Ignore literal key sequence substitutions.
* test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-substitutions.el:
New file.
* test/lisp/emacs-lisp/bytecomp-tests.el
("warn-wide-docstring-ignore-substitutions.el"): New test.
2021-11-22 martin rudalics <rudalics@gmx.at>
Add new function buffer-text-pixel-size
* doc/lispref/display.texi (Size of Displayed Text): Document it.
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Use
buffer-text-pixel-size (bug#51995).
* src/xdisp.c (window_text_pixel_size): Factor out from
Fwindow_text_pixel_size.
(Fbuffer_text_pixel_size): New function.
2021-11-22 Po Lu <luangruo@yahoo.com>
Fix mouse movement event generation on Haiku
* src/haikuterm.c (haiku_mouse_position): Set timestamp.
(haiku_read_socket): Set last_mouse_movement_time.
* src/haikuterm.h (struct haiku_display_info): Add field
`last_mouse_movement_time'.
2021-11-22 Po Lu <luangruo@yahoo.com>
Don't set button event modifiers twice on Haiku
* src/haikuterm.c (haiku_read_socket): Simplify.
2021-11-22 Po Lu <luangruo@yahoo.com>
Move XI2 event filtering to a more appropriate location
* src/xterm.c (handle_one_xevent): Filter all key press events
even if no frame is found.
2021-11-22 Stefan Kangas <stefan@marxist.se>
Add new format for literal key sequences to substitute-command-keys
* lisp/help.el (substitute-command-keys): Add new format "\\`f'" for
literal key sequences. (Bug#50804)
* doc/lispref/help.texi (Keys in Documentation): Document the above
new substitution.
* test/lisp/help-tests.el
(help-tests-substitute-command-keys/literal-key-sequence):
(help-tests-substitute-command-keys/literal-key-sequence-errors): New
tests.
(help-tests-substitute-key-bindings/face-help-key-binding): Extend test.
2021-11-22 Po Lu <luangruo@yahoo.com>
Use more precise test for emulated wheel events in XI2
* src/xterm.c (handle_one_xevent): Ignore button events
that have XIPointerEmulated set.
2021-11-21 Po Lu <luangruo@yahoo.com>
Make `xwidget-display-event' a special event as well
* doc/lispref/commands.texi (Xwidget Events): Document that
`xwidget-display-event' is a special event, and that it should
be handled through callbacks.
* etc/NEWS: Update NEWS entry.
* lisp/xwidget.el (xwidget-webkit-new-session)
(xwidget-webkit-import-widget): Attach display callback.
(xwidget-webkit-display-event): Call display callback instead.
(xwidget-webkit-display-callback): New function.
* src/keyboard.c (make_lispy_event): Store
source information for XWIDGET_DISPLAY_EVENT correctly.
* src/xwidget.c (store_xwidget_display_event): Store
source of the display request.
(webkit_ready_to_show): Store source if available.
(webkit_create_cb_1): Store source if available.
(kill_xwidget): Remove dead widget from internal_xwidget_list.
2021-11-21 Glenn Morris <rgm@gnu.org>
Fix recent compile-tests addition
* test/lisp/progmodes/compile-tests.el (compile-test-error-regexps):
Bump number of expected errors.
2021-11-21 Po Lu <luangruo@yahoo.com>
Also filter XI_KeyRelease events
* src/xterm.c (handle_one_xevent): Also filter XI_KeyRelease
events through the X input method.
2021-11-21 Po Lu <luangruo@yahoo.com>
Use only effective modifiers for XI2 key press events
* src/xterm.c (handle_one_xevent): Use only effective modifiers
in XI_KeyPress events.
2021-11-21 Po Lu <luangruo@yahoo.com>
Remove variable that no longer exists from manual
* doc/emacs/haiku.texi: Remove nonexistent variable.
2021-11-21 Stefan Kangas <stefan@marxist.se>
Adapt isearch help screen for variable-pitch-mode
* lisp/isearch.el (isearch-help-for-help-internal): Adapt for
'variable-pitch-mode', now that 'make-help-screen' uses that.
2021-11-21 Omar Polo <op@omarpolo.com>
implement certfp authentication to rcirc
* lisp/net/rcirc.el (rcirc-connect): Use the provided client certs
* doc/misc/rcirc.texi (Configuration): Document the change
2021-11-21 Omar Polo <op@omarpolo.com>
Move the sasl section after the bitlbee text
2021-11-21 Philip Kaludercic <philipk@posteo.net>
Improve error parsing for GCC -fanalyzer output
* compile.el (compilation-error-regexp-alist-alist): Adjust gnu rule
* compile-tests.el (compile-tests--test-regexps-data): Add testcase
2021-11-21 Eli Zaretskii <eliz@gnu.org>
Fix positioning of pop-up menus when there are window-margins
* src/menu.c (x_popup_menu_1): Calculate X and Y correctly for
clicks in the text area. (Bug#51782)
2021-11-21 Robert Pluim <rpluim@gmail.com>
Add :version tags to new mwheel defcustoms
* lisp/mwheel.el (mouse-wheel-down-alternate-event):
(mouse-wheel-up-alternate-event): Add :version tag.
2021-11-21 Eli Zaretskii <eliz@gnu.org>
Minor cleanup in w32inevt.c
* src/w32inevt.c (w32_console_mouse_position, mouse_moved_to)
(do_mouse_event): Use 'get_frame' to obtain the frame pointer.
2021-11-21 Stefan Kangas <stefan@marxist.se>
Use variable-pitch-mode in 'C-h C-h'
* lisp/faces.el (help-key-binding): Inherit 'fixed-pitch'.
* lisp/help-macro.el (make-help-screen): Use
'variable-pitch-mode'.
This was discussed in
https://lists.gnu.org/r/emacs-devel/2021-11/msg01378.html
2021-11-21 Michael Albinus <michael.albinus@gmx.de>
Reorganize emba control files
Using dynamic job generation in GitLab does not work sufficiently. So
we generate the jobs in the Emacs sources.
* configure.ac (SUBDIR_MAKEFILES): Add test/infra/Makefile.
* test/Makefile.in (subdirs, generate-test-jobs): New targets.
* test/infra/Makefile.in:
* test/infra/test-jobs.yml: New files.
* test/infra/default-gitlab-ci.yml:
* test/infra/test-jobs-generator.sh: Remove.
* test/infra/gitlab-ci.yml: Insert contents of default-gitlab-ci.yml.
(stages): Remove generator and trigger. Add normal.
(test-jobs-generator, test-jobs-pipeline): Remove jobs.
(top): Include test-jobs.yml.
2021-11-21 Po Lu <luangruo@yahoo.com>
Fix double and triple click in Haiku.
* src/haikuterm.c (haiku_read_socket): Record timestamp
in events.
2021-11-21 Po Lu <luangruo@yahoo.com>
Report time in XInput 2 button events
* src/xterm.c (handle_one_xevent): Report time in XI button
events.
2021-11-21 Po Lu <luangruo@yahoo.com>
Fix horizontal wheel events on Haiku
* src/haikuterm.c (haiku_read_socket): Fix modifier
calculation for horizontal wheel events.
2021-11-21 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
0dd3883def Update to Org 9.5-72-gc5d6656
e3d5337970 Fix mouse handling with several TTY frames on MS-Windows
7e437af413 Fix temacs invocation from outside of the 'src' directory
0fbfd4253e ; Avoid byte-compilation warnings in edmacro.el
c22c988b1f Fix mouse events on tab bar or tool bar when 'track-mouse'...
354c834fba Fix `browse-url-interactive-arg' for certain kinds of events
# Conflicts:
# lisp/mouse.el
2021-11-21 Lars Ingebrigtsen <larsi@gnus.org>
Fill the Emacs version on the splash page
* lisp/startup.el (fancy-startup-tail):
(normal-mouse-startup-screen):
(normal-no-mouse-startup-screen): Fill the Emacs version data,
since it's usually longer than a single line, anyway.
2021-11-21 Po Lu <luangruo@yahoo.com>
Implement `pick_embedded_child' for offscreen xwidgets
* src/xwidget.c (pick_embedded_child): New function.
(Fmake_xwidget): Connect `pick-embedded-child' signal
to offscreen window.
2021-11-21 Stefan Kangas <stefan@marxist.se>
Revert "* admin/gitmerge.el (gitmerge-mode-map): Convert to defvar-keymap."
This reverts commit 4c467e4aff12e65fa4fa62d7f4bdcbf4a2bcd92c.
2021-11-21 dickmao <dick.r.chiang@gmail.com>
Fix icalendar time zone parsing
* lisp/calendar/icalendar.el (icalendar--decode-isodatetime):
Parse time zones more correctly.
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--decode-isodatetime): Fix tests so that they work
in other time zones than Europe/Berlin (bug#51959).
2021-11-21 Po Lu <luangruo@yahoo.com>
Fix documentation string of x_coalesce_scroll_events
* src/xterm.c (x_coalesce_scroll_events): Update doc string to
reflect that this option is now supported under Haiku.
2021-11-21 Eli Zaretskii <eliz@gnu.org>
Improve the fix for bug#51864
* src/xfaces.c (face_at_buffer_position): Call
FACE_FROM_ID_OR_NULL just once.
(face_at_string_position): Make sure we have a usable base face.
2021-11-21 Po Lu <luangruo@yahoo.com>
Improve Haiku documentation
* doc/emacs/haiku.texi: Remove duplicate text and
extraneous pxref.
2021-11-21 Po Lu <luangruo@yahoo.com>
Add a user command to stop page loading in xwidget-webkit
* lisp/xwidget.el: Add `xwidget-webkit-stop' to menu.
(xwidget-webkit-stop): New command.
(xwidget-webkit-tool-bar-map): New tool bar item.
2021-11-20 Po Lu <luangruo@yahoo.com>
Fix compiler warnings
* src/haikuterm.c (haiku_read_socket): Fix compiler
warnings intoduced by last change.
2021-11-20 Po Lu <luangruo@yahoo.com>
Add pixel delta support for wheel events on Haiku
* src/haiku_support.cc (EmacsWindow.MessageReceived): Stop
adjusting scroll deltas.
* src/haikuterm.c (haiku_read_socket): Handle pixel deltas
correctly.
2021-11-20 Po Lu <luangruo@yahoo.com>
Attach download-started signals to correct WebKit context
* src/xwidget.c (Fmake_xwidget): Use correct context.
2021-11-20 Po Lu <luangruo@yahoo.com>
Allow handling smooth scroll events in xwidgets
* src/xterm.c (handle_one_xevent): Pass through XI2 motion
events to xwidgets.
* src/xterm.c (xwidget_button): Don't handle legacy scroll
events on XInput 2.
(xwidget_motion_notify, xwidget_scroll): New functions.
2021-11-20 Po Lu <luangruo@yahoo.com>
Select device notification events correctly
* src/xfns.c (setup_xi_event_mask): Select PropertyEvent,
HierarchyChanged and DeviceChanged for all devices.
2021-11-20 Po Lu <luangruo@yahoo.com>
Add XInput 2 input method support
* src/xterm.c (handle_one_xevent): Let input methods filter
events first before trying to handle an XI2 key press event.
2021-11-20 Michael Albinus <michael.albinus@gmx.de>
* test/infra/test-jobs-generator.sh: Generate also stages entry.
Revert last change on emba files
2021-11-20 Po Lu <luangruo@yahoo.com>
Add support for the Haiku operating system and its window system
* .gitignore: Add binaries specific to Haiku.
* Makefie.in (HAVE_BE_APP): New variable.
(install-arch-dep): Install Emacs and Emacs.pdmp when
using Haiku.
* configure.ac: Detect and configure for Haiku and
various related configurations.
(be-app, be-freetype, be-cairo): New options.
(HAVE_BE_APP, HAIKU_OBJ, HAIKU_CXX_OBJ)
(HAIKU_LIBS, HAIKU_CFLAGS): New variables.
(HAIKU, HAVE_TINY_SPEED_T): New define.
(emacs_config_features): Add BE_APP.
* doc/emacs/Makefile.in (EMACSSOURCES): Add Haiku
appendix.
* doc/emacs/emacs.texi: Add Haiku appendix to menus and
include it.
* doc/emacs/haiku.texi: New Haiku appendix.
* doc/lispref/display.texi (Defining Faces, Window Systems):
Explain meaning of `haiku' as a window system identifier.
(haiku-use-system-tooltips): Explain meaning of system
tooltips on
Haiku.
* doc/lispref/frames.texi (Multiple Terminals): Explain
meaning of haiku as a display type.
(Frame Layout): Clarify section for Haiku frames.
(Size Parameters): Explain limitations of fullwidth and
fullheight on Haiku.
(Management Parameters): Explain limitations of
inhibiting double buffering on builds with Cairo,
and the inability of frames with no-accept-focus to
receive keyboard input on Haiku.
(Font and Color Parameters): Explain the different font
backends available on Haiku.
(Raising and Lowering): Explain that lowering and
restacking frames doesn't work on Haiku.
(Child Frames): Explain oddities of child frame
visibility on Haiku.
* doc/lispref/os.texi (System Environment): Explain
meaning of haiku.
* etc/MACHINES: Add appropriate notices for Haiku.
* etc/NEWS: Document changes.
* etc/PROBLEMS: Document font spacing bug on Haiku.
* lib-src/Makefile.in: Build be-resources binary on
Haiku.
(CXX, CXXFLAGS, NON_CXX_FLAGS, ALL_CXXFLAGS)
(HAVE_BE_APP, HAIKU_LIBS, HAIKU_CFLAGS): New variables.
(DONT_INSTALL): Add be-resources binary if on Haiku.
(be-resources): New target.
* lib-src/be_resources.cc: Add helper binary for setting
resources on the Emacs application.
* lib-src/emacsclient.c (decode_options): Set
alt_display to "be" on Haiku.
* lisp/cus-edit.el (custom-button, custom-button-mouse)
(custom-button-unraised, custom-button-pressed): Update
face definitions for Haiku.
* lisp/cus-start.el: Add haiku-debug-on-fatal-error and
haiku-use-system-tooltips.
* lisp/faces.el (face-valid-attribute-values): Clarify
attribute comment for Haiku.
(tool-bar): Add appropriate toolbar color for Haiku.
* lisp/frame.el (haiku-frame-geometry)
(haiku-mouse-absolute-pixel-position)
(haiku-set-mouse-absolute-pixel-position)
(haiku-frame-edges)
(haiku-frame-list-z-order): New function declarations.
(frame-geometry, frame-edges)
(mouse-absolute-pixel-position)
(set-mouse-absolute-pixel-position)
(frame-list-z-order): Call appropriate window system
functions on Haiku.
(display-mouse-p, display-graphic-p)
(display-images-p, display-pixel-height)
(display-pixel-width, display-mm-height)
(display-mm-width, display-backing-store)
(display-save-under, display-planes)
(display-color-cells, display-visual-class): Update type
tests for Haiku.
* lisp/international/mule-cmds.el
(set-coding-system-map): Also
prevent set-terminal-coding-system from appearing in the menu
bar on Haiku.
* lisp/loadup.el: Load Haiku-specific files when built
with Haiku, and don't rename newly built Emacs on Haiku as BFS
doesn't support hard links.
* lisp/menu-bar.el (menu-bar-open): Add for Haiku.
* lisp/mwheel.el (mouse-wheel-down-event): Expect
wheel-up on Haiku.
(mouse-wheel-up-event): Expect wheel-down on Haiku.
(mouse-wheel-left-event): Expect wheel-left on Haiku.
(mouse-wheel-right-event): Expect wheel-right on Haiku.
* lisp/net/browse-url.el
(browse-url--browser-defcustom-type):
Add option for WebPositive.
(browse-url-webpositive-program): New variable.
(browse-url-default-program): Search for WebPositive.
(browse-url-webpositive): New function.
* lisp/net/eww.el (eww-form-submit, eww-form-file)
(eww-form-checkbox, eww-form-select): Define faces
appropriately for Haiku.
* lisp/term/haiku-win.el: New file.
* lisp/tooltip.el (menu-or-popup-active-p): New function
declaration.
(tooltip-show-help): Don't use tooltips on Haiku when a
menu is active.
* lisp/version.el (haiku-get-version-string): New
function declaration.
(emacs-version): Add Haiku version string if
appropriate.
* src/Makefile.in: Also produce binary named "Emacs"
with Haiku resources set.
(CXX, HAIKU_OBJ, HAIKU_CXX_OBJ, HAIKU_LIBS)
(HAIKU_CFLAGS, HAVE_BE_APP, NON_CXX_FLAGS)
(ALL_CXX_FLAGS): New variables.
(.SUFFIXES): Add .cc.
(.cc.o): New target.
(base_obj): Add Haiku C objects.
(doc_obj, obj): Split objects that should scanned for
documentation into doc_obj.
(SOME_MACHINE_OBJECTS): Add appropriate Haiku C objects.
(all): Depend on Emacs and Emacs.pdmp on Haiku.
(LIBES): Add Haiku libraries.
(gl-stamp)
($(etc)/DOC): Scan doc_obj instead of obj
(temacs$(EXEEXT): Use C++ linker on Haiku.
(ctagsfiles3): New variable.
(TAGS): Scan C++ files.
* src/alloc.c (garbage_collect): Mark Haiku display.
* src/dispextern.h (HAVE_NATIVE_TRANSFORMS): Also enable
on Haiku.
(struct image): Add fields for Haiku transforms.
(RGB_PIXEL_COLOR): Define to unsigned long on Haiku as
well.
(sit_for): Also check USABLE_SIGPOLL.
(init_display_interactive): Set initial window system to
Haiku on Haiku builds.
* src/emacs.c (main): Define Haiku syms and init haiku
clipboard.
(shut_down_emacs): Quit BApplication on Haiku and
trigger debug
on aborts if haiku_debug_on_fatal_error.
(Vsystem_type): Update docstring.
* src/fileio.c (next-read-file-uses-dialog-p): Enable on
Haiku.
* src/filelock.c (WTMP_FILE): Only define if BOOT_TIME
is also defined.
* src/floatfns.c (double_integer_scale): Work around
Haiku libroot brain damage.
* src/font.c (syms_of_font): Define appropriate font
driver symbols for Haiku builds with various options.
* src/font.h: Also enable ftcrfont on Haiku builds with
Cairo.
(font_data_structures_may_be_ill_formed): Also enable on
Haiku builds that have Cairo.
* src/frame.c (Fframep): Update doc-string for Haiku
builds and return haiku if appropriate.
(syms_of_frame): New symbol `haiku'.
* src/frame.h (struct frame): Add output data for Haiku.
(FRAME_HAIKU_P): New macro.
(FRAME_WINDOW_P): Test for Haiku frames as well.
* src/ftcrfont.c (RED_FROM_ULONG, GREEN_FROM_ULONG)
(BLUE_FROM_ULONG): New macros.
(ftcrfont_draw): Add haiku specific code for Haiku
builds with Cairo.
* src/ftfont.c (ftfont_open): Set face.
(ftfont_has_char, ftfont_text_extents): Work around
crash.
(syms_of_ftfont): New symbol `mono'.
* src/ftfont.h (struct font_info): Enable Cairo-specific
fields for Cairo builds on Haiku.
* src/haiku_draw_support.cc:
* src/haiku_font_support.cc:
* src/haiku_io.c:
* src/haiku_select.cc:
* src/haiku_support.cc:
* src/haiku_support.h:
* src/haikufns.c:
* src/haikufont.c:
* src/haikugui.h:
* src/haikuimage.c:
* src/haikumenu.c:
* src/haikuselect.c:
* src/haikuselect.h:
* src/haikuterm.c:
* src/haikuterm.h: Add new files for Haiku windowing
support.
* src/haiku.c: Add new files for Haiku operating system
support.
* src/image.c: Implement image transforms and native XPM
support
on Haiku.
(GET_PIXEL, PUT_PIXEL, NO_PIXMAP)
(PIX_MASK_RETAIN, PIX_MASK_DRAW)
(RGB_TO_ULONG, RED_FROM_ULONG, GREEN_FROM_ULONG)
(BLUE_FROM_ULONG, RED16_FROM_ULONG, GREEN16_FROM_ULONG)
(BLUE16_FROM_ULONG): Define to appropriate values on
Haiku.
(image_create_bitmap_from_data): Add Haiku support.
(image_create_bitmap_from_file): Add TODO on Haiku.
(free_bitmap_record): Free bitmap on Haiku.
(image_size_in_bytes): Implement for Haiku bitmaps.
(image_set_transform): Implement on Haiku.
(image_create_x_image_and_pixmap_1): Implement on Haiku,
24-bit or 1-bit only.
(image_destroy_x_image, image_get_x_image): Use correct
img and pixmap values on Haiku.
(lookup_rgb_color): Use correct macro on Haiku.
(image_to_emacs_colors): Implement on Haiku.
(image_disable_image): Disable on Haiku.
(image_can_use_native_api): Test for translator presence
on Haiku.
(native_image_load): Use translator on Haiku.
(imagemagick_load_image): Add Haiku-specific quirks.
(Fimage_transforms_p): Allow rotate90 on Haiku.
(image_types): Enable native XPM support on Haiku.
(syms_of_image): Enable XPM images on Haiku.
* src/keyboard.c (kbd_buffer_get_event)
(handle_async_input, handle_input_available_signal)
(handle_user_signal, Fset_input_interrupt_mode)
(init_keyboard): Check for USABLE_SIGPOLL along with
USABLE_SIGIO.
* src/lisp.h (pD): Work around broken Haiku headers.
(HAVE_EXT_MENU_BAR): Define on Haiku.
(handle_input_available_signal): Enable if we just have
SIGPOLL as well.
* src/menu.c (have_boxes): Return true on Haiku.
(single_menu_item): Enable toolkit menus on Haiku.
(find_and_call_menu_selection): Also enable on Haiku.
* src/process.c (keyboard_bit_set): Enable with only
usable SIGPOLL.
(wait_reading_process_output): Test for SIGPOLL as well
as SIGIO availability.
* src/sound.c (sound_perror, vox_open)
(vox_configure, vox_close): Enable for usable SIGPOLL as
well.
* src/sysdep.c (sys_subshell): Enable for usable SIGPOLL.
(reset_sigio): Make conditional on F_SETOWN.
(request_sigio, unrequest_sigio)
(emacs_sigaction_init): Also handle SIGPOLLs.
(init_sys_modes): Disable TCXONC usage on Haiku, as it
doesn't have any ttys other than pseudo ttys, which don't
support C-s/C-q flow control, and causes compiler warnings.
(speeds): Disable high speeds if HAVE_TINY_SPEED_T.
* src/termhooks.h (enum output_method): Add output_haiku.
(struct terminal): Add Haiku display info.
(TERMINAL_FONT_CACHE): Enable for Haiku.
* src/terminal.c (Fterminal_live_p): Return `haiku' if
appropriate.
* src/verbose.mk.in (AM_V_CXX, AM_V_CXXLD): New logging
variables.
* src/xdisp.c (redisplay_internal)
(note_mouse_highlight): Return on Haiku if a popup is activated.
(display_menu_bar): Return on Haiku if frame is a Haiku
frame.
* src/xfaces.c (GCGraphicsExposures): Enable correctly on Haiku.
(x_create_gc): Enable dummy GC code on Haiku.
* src/xfns.c (x-server-version, x-file-dialog): Add
Haiku specifics to doc strings.
* src/xterm.c (syms_of_xterm): Add Haiku information to
doc string.
2021-11-20 Stefan Kangas <stefan@marxist.se>
Make string-animate smoother
* lisp/play/animate.el (animate-total-added-delay): New defcustom.
(animate-n-steps): Double the default value. Use :type 'natnum'.
(animate-string): Make the delay depend on the above new defcustom
divided by the number of steps.
2021-11-20 Po Lu <luangruo@yahoo.com>
Prevent crashes when scrolling in an unknown Window on XI2
* src/xterm.c (handle_one_xevent): Fix XI2 frame lookup to
handle foreign windows.
2021-11-20 Po Lu <luangruo@yahoo.com>
Fix xwidgets with XInput 2 builds
* src/xwidget.c (Fmake_xwidget): Refrain from synthesizing
a focus event here on XI2 builds.
(Fxwidget_perform_lispy_event): Try to set embedder on XI2
builds and do nothing otherwise.
(synthesize_focus_in_event): Use focus_change.window as opposed
to any.window.
(x_draw_xwidget_glyph_string): Synthesize focus event here
instead on XI2 builds.
2021-11-20 Stefan Kangas <stefan@marxist.se>
Make 'eval' use lexical scoping in most tests
* test/lisp/electric-tests.el (electric-pair-define-test-form)
(define-electric-pair-test):
* test/lisp/emacs-lisp/backtrace-tests.el
(backtrace-tests--uncompiled-functions):
* test/lisp/emacs-lisp/cl-macs-tests.el
(cl-macs-test--symbol-macrolet):
* test/lisp/emacs-lisp/let-alist-tests.el
(let-alist-list-to-sexp):
* test/lisp/emacs-lisp/lisp-tests.el
(elisp-tests-with-temp-buffer, core-elisp-tests-3-backquote):
* test/lisp/emacs-lisp/testcover-resources/testcases.el
(testcover-testcase-nth-case):
* test/lisp/ffap-tests.el (ffap-ido-mode):
* test/lisp/files-tests.el (file-test--do-local-variables-test):
* test/lisp/net/tramp-tests.el (tramp--test-utf8):
* test/lisp/progmodes/elisp-mode-tests.el
(find-defs-defgeneric-eval, find-defs-defun-eval)
(find-defs-defvar-eval, find-defs-face-eval)
(find-defs-feature-eval): Give 'eval' non-nil LEXICAL argument.
* test/lisp/subr-tests.el
(subr-tests--dolist--wrong-number-of-args):
* test/src/eval-tests.el (eval-tests--if-dot-string)
(eval-tests--mutating-cond)
(eval-tests-19790-backquote-comma-dot-substitution): Test 'eval'
using LEXICAL as both nil and non-nil.
(eval-tests--let-with-circular-defs): Give explicit nil to 'eval'.
2021-11-20 Stefan Kangas <stefan@marxist.se>
image-dired: Improve some messages
* lisp/image-dired.el (image-dired-dir)
(image-dired-create-thumb-1): Improve messages.
(image-dired-rotate-original): Signal 'user-error' instead of 'error'.
2021-11-20 Stefan Kangas <stefan@marxist.se>
Convert snake and tetris keymaps to defvar-keymap
* lisp/play/snake.el (snake-mode-map, snake-null-map):
* lisp/play/tetris.el (tetris-mode-map, tetris-null-map): Convert
to defvar-keymap.
2021-11-20 Lars Ingebrigtsen <larsi@gnus.org>
Make shr render text with superscripts prettier
* lisp/net/shr.el (shr-sup): New face.
(shr-tag-sup, shr-tag-sub): Use it to make the super/subscripts
slightly smaller so that we don't get uneven line heights with
text that uses these.
2021-11-20 Po Lu <luangruo@yahoo.com>
Fix a comment in XInput related code
* src/xterm.c (x_term_init): Fix comment to say "XInput 2.1"
instead of "XInput 1.1".
2021-11-20 Po Lu <luangruo@yahoo.com>
Expose pixel-wise wheel events to Lisp
* doc/lispref/commands.texi (Misc Events): Document changes to
wheel events.
* src/keyboard.c (make_lispy_event): Handle wheel events with
pixel delta data.
* src/termhooks.h (WHEEL_EVENT): Document changes to
WHEEL_EVENT args.
* src/xfns.c (syms_of_xfns): Declare new symbols.
* src/xterm.c (handle_one_xevent): Give wheel events pixel delta
data.
(x_coalesce_scroll_events): New user option.
2021-11-20 Po Lu <luangruo@yahoo.com>
Add support for event processing via XInput 2
* configure.ac: Add an option to use XInput 2 if available.
* src/Makefile.in (XINPUT_LIBS, XINPUT_CFLAGS): New variables.
(EMACS_CFLAGS): Add Xinput CFLAGS.
(LIBES): Add XInput libs.
* src/xmenu.c (popup_activated_flag): Expose flag if
XInput 2 is available.
* src/xfns.c (x_window): Set XInput 2 event mask.
(setup_xi_event_mask): New function.
(syms_of_xfns): Provide XInput 2 feature.
* src/xterm.c (x_detect_focus_change): Handle XInput 2
GenericEvents.
(handle_one_xevent): Handle XInput 2 events.
(x_term_init): Ask the server for XInput 2 support and set
xkb_desc if available.
(x_delete_terminal): Free XKB kb desc if it exists, and free
XI2 devices if they exist.
(xi_grab_or_ungrab_device)
(xi_reset_scroll_valuators_for_device_id)
(x_free_xi_devices, x_init_master_valuators): New functions.
(x_get_scroll_valuator_delta): New function.
(init_xterm): Don't tell GTK to only use Core Input when built
with XInput 2 support.
* src/xterm.h (struct x_display_info): Add fields for XKB
and XI2 support.
* src/gtkutil.c (xg_event_is_for_menubar): Handle
XIDeviceEvents.
(xg_is_menu_window): New function.
(xg_event_is_for_scrollbar): Handle XIDeviceEvents.
* etc/NEWS: Document changes.
* lisp/mwheel.el (mouse-wheel-down-alternate-event)
(mouse-wheel-up-alternate-event)
(mouse-wheel-left-alternate-event)
(mouse-wheel-right-alternate-event): New user options.
(mouse-wheel-text-scale)
(mwheel-scroll): Test for alternate events.
(mouse-wheel--setup-bindings): Set up bindings for alternate
buttons.
2021-11-20 Po Lu <luangruo@yahoo.com>
Allow terminating page loading operations in webkit xwidgets
* doc/lispref/display.texi (Xwidgets): Document new function.
* etc/NEWS: Announce `xwidget-webkit-stop-loading'.
* src/xwidget.c (Fxwidget_webkit_stop_loading): New function.
(syms_of_xwidget): Define new subr.
2021-11-20 Gregory Heytings <gregory@heytings.org>
Implement the buttonForeground resource
* lwlib/xlwmenu.c (draw_shadow_rectangle, draw_shadow_rhombus):
Use the buttonForeground resource color (bug#51988).
2021-11-20 Lars Ingebrigtsen <larsi@gnus.org>
Fix another narrow-to-defun problem in js-mode
* lisp/progmodes/js.el (js--function-prologue-beginning): Fix typo
in looking-back form (bug#51926).
2021-11-20 Michael Albinus <michael.albinus@gmx.de>
Continue adaptions of emba files
* test/infra/default-gitlab-ci.yml: New file, derived from
gitlab-ci.yml.
* test/infra/gitlab-ci.yml (top, test-jobs-pipeline):
Include default-gitlab-ci.yml.
(stages): Remove normal.
* test/infra/test-jobs-generator.sh: Generate also stages entry.
2021-11-20 Po Lu <luangruo@yahoo.com>
Make xwidget-events special and document xwidget callbacks
Users have always been supposed to use callbacks for handling
xwidget events, but for some reason this has not been
documented until now.
* doc/lispref/commands.texi (Xwidget Events): Document xwidget
callbacks and the special status of `xwidget-event's.
* doc/lispref/display.texi (Xwidgets): Add xwidget property
list functions to the concept index.
* lisp/xwidget.el: Make xwidget events special.
2021-11-20 Po Lu <luangruo@yahoo.com>
Use `xwidget-live-p' inside `xwidget-at'.
It should no longer be possible for Lisp code to abuse internal
xwidget state, or cause crashes with killed xwidgets and such,
so the pedantic checking done in this function is no longer
necessary. (In fact, it is even wrong, as it won't catch
killed xwidgets.)
* lisp/xwidget.el (xwidget-at): Use `xwidget-live-p'.
2021-11-20 Po Lu <luangruo@yahoo.com>
Remove nonsensical command in xwidget-webkit-mode-map
* lisp/xwidget.el (xwidget-webkit-mode-map): Remove nonsensical
command binding.
2021-11-20 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
c1eea85be1 * test/lisp/net/tramp-tests.el (tramp-get-remote-gid): Rem...
2021-11-20 Po Lu <luangruo@yahoo.com>
Fix option type of `xwidget-webkit-cookie-file' again
* lisp/xwidget.el (xwidget-webkit-cookie-file): Revert changes
caused by rebase.
2021-11-20 Po Lu <luangruo@yahoo.com>
Clarify doc string in xwidget-webkit
* lisp/xwidget.el (xwidget-webkit-buffer-name-format): Update
doc string.
2021-11-19 Glenn Morris <rgm@gnu.org>
* lisp/xwidget.el (xwidget-webkit-cookie-file): Fix type.
2021-11-19 Po Lu <luangruo@yahoo.com>
Make xwidget-webkit default to not storing cookies
* etc/NEWS: Update to reflect change.
* lisp/xwidget.el (xwidget-webkit-cookie-file): Set default
value to nil.
2021-11-19 Michael Albinus <michael.albinus@gmx.de>
Fix Tramp test
* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
Skip Ange FTP test.
2021-11-19 Michael Albinus <michael.albinus@gmx.de>
Fix stage in gitlab-ci.yml
2021-11-19 Michael Albinus <michael.albinus@gmx.de>
Add more test jobs for emba
* test/Makefile.in (SUBDIRS): Suppress "*auto-save-list".
(SUBDIR_TARGETS): New variable.
(subdir_template): Set it.
(subdir-targets): New target.
* test/infra/gitlab-ci.yml (variables): Add CI_DEBUG_TRACE.
(build-image-inotify): Remove timeout.
(generator, test-jobs-pipeline): New jobs.
(test-lisp-inotify, test-lisp-net-inotify): Comment.
* test/infra/test-jobs-generator.sh: New script.
2021-11-19 Eli Zaretskii <eliz@gnu.org>
Fix doc strings in ucs-normalize.el
* lisp/international/ucs-normalize.el (ucs-normalize-NFD-region)
(ucs-normalize-NFD-string, string-glyph-compose)
(string-glyph-decompose, ucs-normalize-NFC-string)
(ucs-normalize-NFKD-region, ucs-normalize-NFKD-string)
(ucs-normalize-NFKC-region, ucs-normalize-NFKC-string)
(ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFC-region): Fix
wording and typos.
2021-11-19 Eli Zaretskii <eliz@gnu.org>
Fix documentation of last commit
* lisp/xwidget.el (xwidget-webkit-cookie-file): Don't use "path"
for file names in the doc string. Improve wording and markup of
the doc string.
* src/xwidget.c (Fxwidget_webkit_set_cookie_storage_file):
* doc/lispref/display.texi (Xwidgets): Don't use "path" for file
names.
* etc/NEWS: Improve the wording of the entry about
'xwidget-webkit-cookie-file'.
2021-11-19 Po Lu <luangruo@yahoo.com>
Allow controlling where xwidget-webkit stores cookies
* doc/lispref/display.texi (Xwidgets): Document new function.
* etc/NEWS: Announce `xwidget-webkit-cookie-file' and
`xwidget-webkit-set-cookie-storage-file'.
* lisp/xwidget.el (xwidget-webkit-cookie-file): New user
option.
(xwidget-webkit-new-session): Set cookie storage file.
* src/xwidget.c (Fmake_xwidget): Create new context for
each unrelated widget.
(Fxwidget_webkit_set_cookie_storage_file): New function.
(syms_of_xwidget): Define new subr.
2021-11-19 Po Lu <luangruo@yahoo.com>
Use CHECK_LIVE_XWIDGET in xwidget-webkit-estimated-load-progress
* src/xwidget.c (Fxwidget_webkit_estimated_load_progress): Check
for live xwidgets instead.
2021-11-19 Po Lu <luangruo@yahoo.com>
Display page loading progress in xwidget webkit
* lisp/xwidget.el (xwidget-webkit--title): Remove internal
variable.
(xwidget-webkit--loading-p)
(xwidget-webkit--progress-update-timer): New variables.
(xwidget-webkit--update-progress-timer-function): New function.
(xwidget-webkit-callback): Set up progress update timer during
page loads.
(xwidget-webkit-mode): Add page load progress to header line
format.
2021-11-19 Stefan Kangas <stefan@marxist.se>
Improve doc-view-mode menus
* lisp/doc-view.el (doc-view-menu): Extend menu.
(doc-view-minor-mode-menu): New menu.
2021-11-19 Po Lu <luangruo@yahoo.com>
Add `xwidget-webkit-estimated-load-progress'
* doc/lispref/display.texi (Xwidgets): Document new function.
* etc/NEWS: Announce new function.
* src/xwidget.c (Fxwidget_webkit_estimated_load_progress): New
function.
(syms_of_xwidget): Define new subr.
2021-11-19 Lars Ingebrigtsen <larsi@gnus.org>
Make puny-encode-string normalize first
* lisp/net/puny.el (puny-encode-string): Normalize before encoding
(bug#51954).
2021-11-19 Lars Ingebrigtsen <larsi@gnus.org>
Regenerate ldefs-boot
2021-11-19 Lars Ingebrigtsen <larsi@gnus.org>
Make UCS compose/decompose functions more understandable
* lisp/international/ucs-normalize.el ()
(ucs-normalize-NFD-region, ucs-normalize-NFD-string)
(ucs-normalize-NFC-region, ucs-normalize-NFC-string)
(ucs-normalize-NFKD-region, ucs-normalize-NFKD-string)
(ucs-normalize-NFKC-region, ucs-normalize-NFKC-string): Make the
doc strings say what they actually do.
2021-11-19 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
02853edba7 Fix sorting of menus in `context-menu-local' (bug#50067).
14271d050a Fix flyspell-correct-word selected from context menu opene...
bf824843f4 * lisp/repeat.el (describe-repeat-maps): Print all bound k...
6fc94fb99e * lisp/tab-bar.el: Use 'mouse-1' for history buttons like ...
5eeaf85767 Improve documentation of window hooks
7404f4b4e0 Improve doc string of 'highlight-nonselected-windows'
2021-11-18 Po Lu <luangruo@yahoo.com>
Fix documentation on xwidgets
* doc/lispref/display.texi (Xwidgets): Refer to correct
function.
2021-11-18 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/files.el (file-has-changed-p): Index the cache with absolute file names
* lisp/net/mailcap.el (mailcap-parse-mailcaps): Fix $MAILCAPS case
2021-11-18 Mattias Engdegård <mattiase@acm.org>
Turn mistaken functions into tests (bug#51941)
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--decode-isodatetime):
* test/src/eval-tests.el
(eval-tests-19790-backquote-comma-dot-substitution):
Change `defun` into `ert-deftest` where this seems to have been the
original intention.
2021-11-18 Mattias Engdegård <mattiase@acm.org>
String backslash corrections
* lisp/net/shr.el (shr-tag-video): Remove ineffective backslash.
* test/lisp/emacs-lisp/package-tests.el
(package-test-macro-compilation-gz): Make dot literal as intended.
2021-11-18 Michael Albinus <michael.albinus@gmx.de>
Do not exclude emacs-module-tests.el on emba
* test/infra/gitlab-ci.yml (test-native-comp-speed0)
(test-all-inotify): Do not exclude emacs-module-tests.el.
* test/src/emacs-module-tests.el
(module--test-assertions--load-non-live-object)
(module--test-assertions--load-non-live-object-with-global-copy)
(module--test-assertions--call-emacs-from-gc)
(module--test-assertions--globref-invalid-free): Tag them as
:unstable on emba. (Bug#50902)
2021-11-18 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Optimize data usage for nil tab-bar-history-mode.
* lisp/tab-bar.el (tab-bar--tab): Add wc-history-back and
wc-history-forward only when tab-bar-history-mode is non-nil.
(tab-bar-select-tab): Use wc-history-back and
wc-history-forward only when tab-bar-history-mode is non-nil.
(tab-bar-new-tab-to): Reset tab-bar-history-back and
tab-bar-history-forward to nil.
2021-11-18 Juri Linkov <juri@linkov.net>
* lisp/tab-bar.el: Avoid micro-steps in tab-bar-history-back/forward.
* lisp/tab-bar.el (tab-bar-history-pre-command)
(tab-bar-history-done-command): New variables.
(tab-bar--history-pre-change): Set 'tab-bar-history-omit' and
'tab-bar-history-pre-command'.
(tab-bar--history-change): Use 'tab-bar-history-done-command' and
'tab-bar-history-pre-command' (bug#51370).
2021-11-18 Juri Linkov <juri@linkov.net>
* lisp/vc/diff-mode.el (diff-minor-mode-prefix): Fix typo from 44faf54659
2021-11-18 Protesilaos Stavrou <info@protesilaos.com>
Update modus-themes to version 1.7.0
* doc/misc/modus-themes.org (File): Use new version and add release
date.
(How do the themes look like, Learn about the latest changes): Update
link to new URL.
(Enable and load): Update text of internal reference.
(Sample configuration for use-package): Add sample configuration
without the 'use-package' infrastructure.
(Differences between loading and enabling): Minor rewordings.
(Customization Options): Update sample code to cover latest changes.
(Option for inhibiting theme reload)
(Option for color-coding success state (deuteranopia))
(Option for more bold constructs)
(Option for more italic constructs)
(Option for syntax highlighting)
(Option for links)
(Option for command prompt styles)
(Option for mode line presentation)
(Option for accented background in tab interfaces)
(Option for completion framework aesthetics)
(Option for mail citations)
(Option for fringe visibility)
(Option for language checkers)
(Option for line highlighting (hl-line-mode))
(Option for line numbers (display-line-numbers-mode))
(Option for parenthesis matching (show-paren-mode))
(Option for active region)
(Option for diff buffer looks)
(Option for org-mode block styles)
(Option for Org agenda constructs)
(Option for scaled headings)
(Control the scale of headings)
(Option for variable-pitch font in UI elements)
(Option for variable-pitch font in headings): Write brief description,
document the type of the user option, and make any other relevant
adjustments.
(Option for font mixing): Document new 'modus-themes-mixed-fonts' user
option, which supersedes the old 'modus-themes-no-mixed-fonts'.
(Option for mode line padding): Document new user option
'modus-themes-mode-line-padding'.
(Option for language checkers): Include new available property for the
user option 'modus-themes-lang-checkers'. Reword the rest of the
entry.
(Option for intense markup in Org and others): Describe new boolean
option 'modus-themes-intense-markup'.
(Option for Org agenda constructs): Include new available property for
the 'event' key in the alist 'modus-themes-org-agenda'.
(Option for the headings' overall style): Describe the new style of
explicitly specifying an optional font weight other than the implied
bold.
(Font configurations for Org and others (DIY))
(Configure bold and italic faces (DIY)): Reword and clarify some
statements.
(Decrease mode line height (DIY)): Add new Do-It-Yourself section on
tweaking the mode line's :box attribute.
(Full support for packages or face groups): Include new packages.
(Acknowledgements): Update list of contributors to code, user
feedback, etc. Does not affect the status of copyright assignment.
(Meta): Update URLs to protesilaos.com (my website).
* etc/themes/modus-themes.el (modus-themes-variable-pitch)
(modus-themes-fixed-pitch, modus-themes-no-mixed-fonts): Reference the
new 'modus-themes-mixed-fonts' user option.
(modus-themes--headings-choice): Include new font weight styles.
(modus-themes-headings): Document the new feature of accepting an
explicit font weight.
(modus-themes-org-agenda): Document the refinements to the 'event' key
of the alist and the new 'varied' property it accepts.
(modus-themes-lang-checkers): Describe the new 'faint' property.
(modus-themes-mode-line-padding): Include new user option.
(modus-themes-intense-hl-line): Remove old-deprecated user option.
(modus-themes-intense-markup): Add new option.
(modus-themes-success-deuteranopia): Update doc string.
(modus-themes--fixed-pitch): Work with 'modus-themes-mixed-fonts'.
(modus-themes--lang-check): Update internal function to add the
'faint' property of 'modus-themes-lang-checkers'.
(modus-themes--markup): Add helper function.
(modus-themes--heading-weights): Private variable with available font
weights.
(modus-themes--heading-weight): New helper function to pick the
desired font weight.
(modus-themes--heading): Update helper function to implement the
aforementioned change to 'modus-themes-headings'.
(modus-themes--agenda-event): Update helper function to apply the new
styles of 'modus-themes-org-agenda'.
(modus-themes--mode-line-padding): Add helper function for
'modus-themes-mode-line-padding'.
(modus-themes--mode-line-attrs): Minor refinements.
(modus-themes-load-operandi, modus-themes-load-vivendi): Make these
functions interactive.
(modus-themes-faces): Update faces.
* etc/themes/modus-operandi-theme.el: Bump version number.
* etc/themes/modus-vivendi-theme.el: Same.
* * *
A detailed change log entry is available here:
<https://protesilaos.com/codelog/2021-11-18-modus-themes-1-7-0/>.
2021-11-18 Michael Albinus <michael.albinus@gmx.de>
Extend abbreviate-file-name for further Tramp methods.
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
Add 'abbreviate-file-name'.
(tramp-gvfs-handle-expand-file-name):
* lisp/net/tramp.el (tramp-handle-expand-file-name): Handle case
that tilde cannot be expanded.
* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
Extend test.
2021-11-18 Filipp Gunbin <fgunbin@fastmail.fm>
Fixup for bug#51037
* lisp/emacs-lisp/ert.el (ert-batch-backtrace-line-length): Fix
docstring.
(ert-run-tests-batch): Remove redundand let-binding.
(ert-run-tests-interactively): Fix interactive spec.
2021-11-18 Mattias Engdegård <mattiase@acm.org>
Eliminate ERT test name clashes (bug#51941)
* test/lisp/electric-tests.el (js-mode-braces-with-layout-and-indent):
* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-test-fifth):
* test/lisp/thingatpt-tests.el (test-symbol-thing-2):
Remove duplicated tests.
* test/lisp/emacs-lisp/generator-tests.el (cps-loop):
* test/lisp/emacs-lisp/ring-tests.el (ring-tests-insert):
* test/lisp/help-tests.el (help-tests-substitute-command-keys/no-change):
* test/lisp/net/netrc-tests.el (test-netrc-credentials):
* test/lisp/progmodes/elisp-mode-tests.el
(elisp-completes-functions-after-let-bindings):
* test/lisp/thingatpt-tests.el (test-symbol-thing-3):
* test/src/buffer-tests.el (deftest-overlayp-1, buffer-tests--*):
* test/src/buffer-tests.el (test-buffer-swap-text-1):
* test/src/data-tests.el (binding-test-set-constant-nil)
(data-tests-logcount):
Rename clashing tests.
2021-11-18 Mattias Engdegård <mattiase@acm.org>
Signal an error for duplicated ERT tests (bug#51941)
Make `ert-deftest` fail with an error (in batch mode only) if an
existing test is redefined, because that is an easy mistake to make
and which leads to a test being discarded silently.
lisp/emacs-lisp/ert.el (ert-set-test, ert-deftest): Add check.
etc/NEWS: Announce.
2021-11-18 Mattias Engdegård <mattiase@acm.org>
Avoid adding duplicates to Xref history
* lisp/progmodes/xref.el (xref--push-backward, xref--push-forward):
New functions.
(xref-push-marker-stack, xref-go-back, xref-go-forward): Use them.
2021-11-18 Lars Ingebrigtsen <larsi@gnus.org>
Revert VC-related prefix user options to previous values
* lisp/vc/smerge-mode.el (smerge-command-prefix):
* lisp/vc/pcvs.el (cvs-minor-mode-prefix):
* lisp/vc/diff-mode.el (diff-minor-mode-prefix): Revert to
previous values, as external packages rely on those values.
2021-11-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix `narrow-to-defun' in "async function" in js-mode
* lisp/progmodes/js.el (js--plain-method-re):
(js--function-prologue-beginning):
(js--ensure-cache): Allow "async" before "function" (bug#51926).
This makes `narrow-to-defun' work as expected.
2021-11-18 Greg Minshall <minshall@umich.edu>
Fix eldoc usage of newly introduced variable
* lisp/emacs-lisp/eldoc.el
(eldoc-display-message-no-interference-p): Make this function work
in older Emacs versions again (bug#51939).
2021-11-18 Lars Ingebrigtsen <larsi@gnus.org>
Make the optional describe-map-tree parameters optional
* lisp/help.el (describe-map-tree): Make the optional parameters
optional. This makes testing easier.
2021-11-18 Miha Rihtaršič <miha@kamnitnik.top>
Don't ignore restriction in indent-region-line-by-line
* lisp/indent.el (indent-according-to-mode): Don't widen if the new
optional argument is non-nil.
(indent-region): Explicitly widen before calling
indent-region-line-by-line.
(indent-region-line-by-line): Don't widen (bug#51892).
Emacs convention is that low-level functions should respect restriction
so that their callers can set restriction according to their needs. For
example, 'c-indent-region' is a lower-level function which respects the
current restriction and 'indent-region' is a higher-level user command
which sets the restriction for lower-level functions, it calls
"(widen)".
'indent-region-line-by-line' is a low-level function on a similar level
as 'c-indent-region'. This patch makes it respect the current
restriction instead of having it call "(widen)".
2021-11-17 Mike Kupfer <mkupfer@alum.berkeley.edu>
Fix two failing tests in mh-utils-tests
* test/lisp/mh-e/mh-utils-tests.el
(mh-test-utils-mock-call-process): Add mock for root folders.
(mh-folder-completion-function-08-plus-slash)
(mh-folder-completion-function-09-plus-slash-tmp): Skip these tests
with Mailutils, which doesn't handle root folders. (Bug#51902)
2021-11-17 Stefan Kangas <stefan@marxist.se>
Revert "* lisp/image-dired.el: Remove unnecessary 'declare-function'."
This reverts commit e0261d4a0cf2a23d32b51b84870a3a75f8273c7c.
This commit gives warnings on builds --without-x.
Problem pointed out by Glenn Morris <rgm@gnu.org> in:
https://lists.gnu.org/r/emacs-devel/2021-11/msg01278.html
2021-11-17 Eli Zaretskii <eliz@gnu.org>
Fix recent changes related to USABLE_SIGIO
* src/process.c (wait_reading_process_output) [WINDOWSNT]:
* src/keyboard.c (handle_async_input) [DOS_NT]: Ifdef away the
code that is not needed on MS-Windows. (Bug#50403) (Bug#51820)
2021-11-17 Ken Brown <kbrown@cornell.edu>
Make process_pending_signals useful on systems without SIGIO
* src/keyboard.c (handle_async_input): Call gobble_input
unconditionally, not just if USABLE_SIGIO is defined. This makes
process_pending_signals do something useful on systems that have
to poll for input. (Bug#51820)
2021-11-17 Ken Brown <kbrown@cornell.edu>
Avoid delays waiting for input on systems without SIGIO
* src/process.c (wait_reading_process_output) [!USABLE_SIGIO]: If
we're waiting for input, don't use a timeout of more than 25 msec
in the call to select. (Bug#50043)
2021-11-17 Po Lu <luangruo@yahoo.com>
Prevent subprocess hangs in xwidget
* src/xwidget.c (Fmake_xwidget, Fxwidget_webkit_goto_url): Use
`catch_child_signal' instead of trying to preserve the previous
signal handler.
2021-11-17 Stefan Kangas <stefan@marxist.se>
Use substitute-command-keys in some messages
* lisp/dired.el (dired-get-file-for-visit):
* lisp/doc-view.el (doc-view-buffer-message):
* lisp/help.el (help-window-setup):
* lisp/ibuf-ext.el (ibuffer-do-kill-lines):
* lisp/vc/ediff.el (ediff-documentation): Use 'substitute-command-keys'.
2021-11-17 Po Lu <luangruo@yahoo.com>
Don't draw xwidgets that have just been resized
This serves to eliminate the huge black bar displayed when the
offscreen widget has been resized (and as such the damage event
signal is sent), but the X window hasn't.
* src/xwidget.c (xv_do_draw): Don't draw xwidgets that have
just been resized.
(x_draw_xwidget_glyph_string)
(xwidget_init_view): Clear just_resized.
(Fxwidget_resize): Set just_resized first, then queue allocate.
2021-11-17 Stefan Kangas <stefan@marxist.se>
Ignore some externally maintained files in AUTHORS
* admin/authors.el (authors-ignored-files): Ignore externally
maintained files.
2021-11-17 Stefan Kangas <stefan@marxist.se>
* lisp/image-dired.el: Remove unnecessary 'declare-function'.
2021-11-17 Lars Ingebrigtsen <larsi@gnus.org>
Change the call signature to keymap-substitute
* lisp/keymap.el (keymap-substitute): Make the keymap the first
parameter for symmetry with the other functions.
* lisp/emacs-lisp/shortdoc.el (keymaps):
* lisp/emacs-lisp/bytecomp.el (lambda): Adjust.
2021-11-17 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
fa0b34b716 * admin/authors.el (authors-ignored-files): Ignore some NE...
c25be3e7bb * lisp/tab-bar.el (tab-bar-select-tab): Add check for wc-f...
38d905abf9 * lisp/tab-bar.el: Doc fixes for commands bound to modifie...
2021-11-17 Lars Ingebrigtsen <larsi@gnus.org>
Make bookmark-set prompt less confusing
* lisp/bookmark.el (bookmark-set): Make the prompt less confusing
(bug#51876).
2021-11-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix mh-mime build problem
* lisp/mh-e/mh-mime.el (mh-acros): Require to get mh-dlet*.
2021-11-17 Stefan Kangas <stefan@marxist.se>
Temporarily mark two failing tests as unstable
* test/lisp/mh-e/mh-utils-tests.el
(mh-folder-completion-function-08-plus-slash)
(mh-folder-completion-function-09-plus-slash-tmp): Temporarily
mark two failing tests as unstable.
2021-11-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix bookmark-bmenu-mode-map syntax
* lisp/bookmark.el (bookmark-bmenu-mode-map): Fix syntax in defvar-keymap.
2021-11-17 Stefan Kangas <stefan@marxist.se>
Remove some references to XEmacs
* lisp/emulation/viper-cmd.el (viper-start-R-mode):
* lisp/emulation/viper-init.el (viper-window-display-p):
* lisp/emulation/viper-mous.el (viper-surrounding-word):
* lisp/mail/footnote.el (footnote-mode):
* lisp/textmodes/reftex-index.el: Remove some comments referring to
XEmacs.
2021-11-17 Stefan Kangas <stefan@marxist.se>
Make mh-funcall-if-exists obsolete
* lisp/mh-e/mh-acros.el (mh-funcall-if-exists): Make obsolete.
* lisp/mh-e/mh-alias.el (mh-read-address):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-mime.el (mh-mm-display-part):
* lisp/mh-e/mh-show.el (mh-defun-show-buffer):
* lisp/mh-e/mh-speed.el (mh-speedbar-change-expand-button-char):
* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
* lisp/mh-e/mh-utils.el (mh-logo-display):
* lisp/mh-e/mh-xface.el (mh-face-display-function): Don't use
above obsolete macro.
2021-11-16 Stefan Kangas <stefan@marxist.se>
Convert keymaps in bookmark.el to defvar-keymap
* lisp/bookmark.el (bookmark-map)
(bookmark-minibuffer-read-name-map)
(bookmark-edit-annotation-mode-map, bookmark-bmenu-mode-map):
Convert to defvar-keymap.
2021-11-16 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/rot13.el (rot13-translate-table): Make it a `translation-table`
(rot13-display-table): Use `dotimes`.
2021-11-16 Stefan Kangas <stefan@marxist.se>
* admin/gitmerge.el (gitmerge-mode-map): Convert to defvar-keymap.
2021-11-16 Po Lu <luangruo@yahoo.com>
Update xwidget webkit history buffer more eagerly
* lisp/xwidget.el (xwidget-webkit-callback): Update history
buffer on each load-changed event.
2021-11-16 Alan Third <alan@idiocy.org>
Only set LANG if the ID is valid
* src/nsterm.m (ns_init_locale): Check the provided locale identifier
is available before trying to use it.
2021-11-16 Lars Ingebrigtsen <larsi@gnus.org>
Make keymap-unset work
* lisp/keymap.el (keymap-unset): Fix key syntax (bug#51897).
2021-11-16 Eli Zaretskii <eliz@gnu.org>
Put back documentation of legacy keymap functions
* doc/lispref/keymaps.texi (Low-Level Key Binding): Reinstate
documentation of legacy commands and functions.
2021-11-16 Yuuki Harano <masm+github@masm11.me>
Support xterm-mouse-mode mouse-4/5
When I opened both pgtk frame and terminal frame using daemon
mode, I get mouse-4 on terminal frame and wheel-up on pgtk frame.
I support both events as mwheel events at the same time. (Bug#50321)
* lisp/mwheel.el (mouse-wheel-down-event): It is both mouse-4 and wheel-up.
(mouse-wheel-up-event): mouse-5 and wheel-down.
(mouse-wheel-left-event): mouse-6 and wheel-left.
(mouse-wheel-right-event): mouse-7 and wheel-right.
(mouse-wheel--button-eq): New function to test a button is included in
a list.
(mouse-wheel--button-flatten): New function to make flatten list of
events.
(mwheel-scroll): Use mouse-wheel--button-eq instead of eq.
(mouse-wheel-text-scale): Use mouse-wheel--button-eq instead of eq.
(mouse-wheel--setup-bindings): Make it flatten.
2021-11-16 Yuuki Harano <masm+github@masm11.me>
Remove garbage #ifndef
Maybe it was left by git merge miss.
It prevented feature/pgtk from successful X-build with xwidget.
* src/xwidget.c (Fxwidget_resize):
2021-11-16 Eli Zaretskii <eliz@gnu.org>
Minor copyedits of recent documentation changes
* doc/lispref/keymaps.texi (Low-Level Key Binding): Minor changes
in wording and markup.
2021-11-16 Michael Albinus <michael.albinus@gmx.de>
Some minor Tramp updates
* lisp/net/tramp-crypt.el (tramp-crypt-add-directory): Add comment.
* lisp/net/tramp.el (tramp-debug-buffer-command-completion-p)
(tramp-setup-debug-buffer): New defuns.
(tramp-get-debug-buffer): Call `tramp-setup-debug-buffer.
* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
Extend test.
2021-11-16 Lars Ingebrigtsen <larsi@gnus.org>
Fix compilation error in previous keymap.c change
* src/keymap.c (initial_define_lispy_key, define_as_prefix): Fix
--enable-checking error.
2021-11-16 Po Lu <luangruo@yahoo.com>
Lower xwidget views owned by parent when lowering frame
* src/xterm.c (x_lower_frame): Lower parent frame's xwidget
views as well.
* src/xwidget.h (lower_frame_xwidget_views):
* src/xwidget.c (lower_frame_xwidget_views): New function.
2021-11-16 Po Lu <luangruo@yahoo.com>
Add command to browse xwidget history
* doc/emacs/misc.texi (Embedded WebKit Widgets)
* etc/NEWS: Document `xwidget-webkit-browse-history'.
* lisp/xwidget.el (xwidget-webkit-mode-map): Bind "H" to
xwidget-webkit-browse-history.
(xwidget-webkit-import-widget): Set last session buffer correctly.
(xwidget-webkit-browse-history): New command.
(xwidget-webkit-history--session): New variable.
(xwidget-webkit-history--insert-item)
(xwidget-webkit-history-select-item)
(xwidget-webkit-history-reload): New functions.
(xwidget-webkit-history-mode): New major mode.
2021-11-16 Stephen Leake <stephen_leake@stephe-leake.org>
Merge pull request from stephe-ada-guru/master
Fix issues https://github.com/joaotavora/eglot/issues/755, https://github.com/joaotavora/eglot/issues/401; severity not set in textDocument/publishDiagnostics
GitHub-reference: https://github.com/joaotavora/eglot/issues/759
2021-11-16 Gregory Heytings <gregory@heytings.org>
New X resource to control the border thickness of menus
* lwlib/xlwmenu.h (XtNborderThickness, XtCBorderThickness): New X
resource name.
* lwlib/xlwmenuP.h (XlwMenuPart): New border_thickness field.
* lwlib/xlwmenu.c (xlwMenuResources): Access the new resource.
(draw_shadow_rectangle): Use the new resource value.
* doc/emacs/xresources.texi (Lucid Resources): Document the new
resource (bug#51867).
2021-11-16 Michael Herstine <sp1ff@pobox.com>
Make results details in ert-run-tests-batch configurable
* lisp/emacs-lisp/ert.el (ert-batch-print-length)
(ert-batch-print-level,.ert-batch-backtrace-line-length)
(ert-batch-test, ert-run-tests-interactively): Added the three
variables, bound them to these settings when formatting batch
test results including backtraces. Removed the optional
parameters output-buffer & message-fn from
ert-run-tests-interactively.
* test/lisp/emacs-lisp/ert-tests.el
(ert-test-run-tests-interactively, ert-test-run-tests-batch): use
cl-letf to capture output, new tests resp.
* test/lisp/ert-x-tests.el (ert-test-run-tests-interactively-2):
Changed to use cl-letf to capture output instead of using
message-fn.
* lisp/emacs-lisp/backtrace.el (backtrace--line-length-or-nil)
(backtrace--print-func-and-args): Fixed a bug when setting
backtrace-line-length to nil by adding a new function to check
for that case & having backtrace--print-func-and-args use it.
* doc/misc/ert.texi: document the new variables & their usage
(bug#51037).
2021-11-16 Lars Ingebrigtsen <larsi@gnus.org>
Start adjusting the manuals to talk about the keymap-* functions
* lisp/dired.el (dired--make-directory-clickable):
* doc/lispref/keymaps.texi (Keymaps):
(Key Sequences):
(Prefix Keys):
(Active Keymaps):
(Key Lookup):
(Functions for Key Lookup):
(Changing Key Bindings):
(Key Binding Commands):
(Tool Bar):
* doc/lispref/commands.texi (Interactive Codes):
(Event Examples):
(Event Mod):
* doc/emacs/kmacro.texi (Save Keyboard Macro):
* doc/emacs/custom.texi (Keymaps):
(Keymaps):
(Minibuffer Maps):
(Rebinding):
(Init Rebinding):
(Modifier Keys):
(Mouse Buttons):
(Init Examples):
(Init Non-ASCII): Adjust the documentation to remove description
of the old syntaxes, and use the new keymap-* functions.
* doc/lispref/keymaps.texi (Low-Level Key Binding): New node that
describes `define-key' and the old key syntaxes.
2021-11-16 Lars Ingebrigtsen <larsi@gnus.org>
Adjust `defvar-keymap' and `define-keymap' to the new syntax
* lisp/vc/smerge-mode.el (smerge-basic-map):
* lisp/vc/pcvs.el (cvs-mode-map):
(cvs-minor-mode-prefix):
* lisp/vc/log-view.el (log-view-mode-map):
* lisp/vc/log-edit.el (log-edit-mode-map):
* lisp/vc/diff-mode.el (diff-mode-shared-map):
(diff-minor-mode-prefix):
* lisp/vc/cvs-status.el (cvs-status-mode-map):
* lisp/simple.el (special-mode-map):
* lisp/outline.el (outline--insert-open-button):
(outline--insert-close-button):
* lisp/net/shr.el (shr-map):
* lisp/net/eww.el (eww-link-keymap):
(eww-mode-map):
(eww-submit-map):
(eww-bookmark-mode-map):
(eww-history-mode-map):
(eww-buffers-mode-map):
* lisp/mh-e/mh-speed.el (:keymap):
* lisp/mh-e/mh-show.el (:keymap):
* lisp/mh-e/mh-search.el (:keymap):
* lisp/mh-e/mh-letter.el (:keymap):
* lisp/mh-e/mh-folder.el (:keymap):
* lisp/international/emoji.el (emoji-list-mode-map):
* lisp/gnus/spam.el (:keymap):
* lisp/gnus/mml.el (mml-mode-map):
* lisp/gnus/message.el (message-mode-map):
* lisp/gnus/gnus-undo.el (gnus-undo-mode-map):
* lisp/gnus/gnus-topic.el (gnus-topic-mode-map):
* lisp/gnus/gnus-sum.el (:keymap):
* lisp/gnus/gnus-srvr.el (gnus-server-mode-map):
(gnus-browse-mode-map):
* lisp/gnus/gnus-salt.el (gnus-pick-mode-map):
(gnus-tree-mode-map):
* lisp/gnus/gnus-msg.el (:prefix):
* lisp/gnus/gnus-ml.el (gnus-mailing-list-mode-map):
* lisp/gnus/gnus-kill.el (gnus-kill-file-mode-map):
* lisp/gnus/gnus-html.el (gnus-html-displayed-image-map):
* lisp/gnus/gnus-group.el (:keymap):
* lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map):
* lisp/gnus/gnus-draft.el (gnus-draft-mode-map):
* lisp/gnus/gnus-dired.el (gnus-dired-mode-map):
* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map):
* lisp/gnus/gnus-art.el (:keymap):
(gnus-article-edit-mode-map):
* lisp/gnus/gnus-agent.el (gnus-agent-group-mode-map):
(gnus-agent-summary-mode-map):
(gnus-agent-server-mode-map):
(gnus-category-mode-map): Adjust `defvar-keymap' and
`define-keymap' to the new syntax.
2021-11-16 Lars Ingebrigtsen <larsi@gnus.org>
Add new 'keymap-*' functions
* lisp/keymap.el: New file with all the new keymap-* functions.
* lisp/loadup.el ("keymap"): Load.
* lisp/subr.el (kbd): Refactor out all the code to key-parse.
(define-key-after, keyboard-translate, global-set-key)
(local-set-key, global-unset-key, local-unset-key)
(local-key-binding, global-key-binding)
(substitute-key-definition): Note in doc strings that these are
legacy functions.
(define-keymap--define): Use keymap-set.
* lisp/emacs-lisp/byte-opt.el: Remove the optimizations for
defvar-keymap and define-keymap since the macros now only
understand the kbd syntax.
* lisp/emacs-lisp/bytecomp.el (byte-compile-define-keymap)
(byte-compile-define-keymap--define): Warn about invalid key
definitions in all keymap-* functions.
* lisp/emacs-lisp/shortdoc.el (keymaps): Add shortdocs form
keymap* functions.
* src/keymap.c (possibly_translate_key_sequence): Adjust callers
to key-valid-p and key-parse.
(syms_of_keymap): Adjust defs.
2021-11-16 Lars Ingebrigtsen <larsi@gnus.org>
Allow removing keymap definitions
* src/keymap.c (initial_define_lispy_key): Adjust caller.
(store_in_keymap): Allow removing definitions in addition to
setting them to nil.
(Fdefine_key): Ditto.
(define_as_prefix): Adjust caller.
* src/term.c (term_get_fkeys_1): Adjust caller.
2021-11-16 Lars Ingebrigtsen <larsi@gnus.org>
Make erc-mode noninteractive
* lisp/erc/erc.el (erc-mode): Mark it as noninteractive, because
using it from `M-x' will only lead to problems (bug#51841).
2021-11-16 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
e852822f3d Fix removal of fringe marks of deleted bookmarks
b418aad85a * lisp/repeat.el (repeat-echo-message): Bind message-log-m...
fe2ac7cb7c * lisp/repeat.el (describe-repeat-maps): Use help-fns--ana...
c840bfe7e1 * lisp/repeat.el: Detect changes in the minibuffer state (...
5044151486 Avoid segfaults due to freed face cache
199e2468d3 Doc fix; change recommended file name of custom-file
2021-11-16 Mike Kupfer <mkupfer@alum.berkeley.edu>
Fix handling of folder "+/" in MH-E
* lisp/mh-e/mh-utils.el (mh-sub-folders): Fix handling of "+/".
* test/lisp/mh-e/mh-utils-tests.el
(mh-folder-completion-function-08-plus-slash)
(mh-folder-completion-function-09-plus-slash-tmp):
Fix errors made importing tests from mh-unit.el; remove declaration
that these tests are expected to fail.
2021-11-16 Mike Kupfer <mkupfer@alum.berkeley.edu>
Fix checkdoc complaints in MH-E
* lisp/mh-e/mh-compat.el (mh-flet): Rewrite most of the docstring.
(mh-write-file-functions): Remove trailing space.
* lisp/mh-e-mh-scan.el (mh-scan-cmd-note-width): Break up a
line that was too long.
2021-11-15 Stefan Kangas <stefan@marxist.se>
Fix recently changed wdired test on MS-Windows
* test/lisp/wdired-tests.el (wdired-test-bug34915): Don't try to
create a local socket on MS-Windows, as it is not supported on that
platform. Problem reported by Robert Pluim <rpluim@gmail.com>.
2021-11-15 Po Lu <luangruo@yahoo.com>
Prevent xwidget windows from obscuring child frames
* src/xwidget.c (x_draw_xwidget_glyph_string): Lower view window
when creating it.
2021-11-15 Po Lu <luangruo@yahoo.com>
Fix xwidget isearch for queries that look like format strings
* lisp/xwidget.el (xwidget-webkit-isearch--update): Give special
treatment to messages.
2021-11-15 Po Lu <luangruo@yahoo.com>
Fix documentation string
* src/xwidget.c (Vxwidget_list, Vxwidget_views_list): Fix
horrid doc string.
2021-11-15 Michael Albinus <michael.albinus@gmx.de>
Fix minor problems resulting from Tramp regression tests
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
Add comment.
* lisp/net/tramp-cache.el (tramp-flush-file-upper-properties):
FILE can be "~".
* lisp/net/tramp.el ('tramp-ensure-dissected-file-name):
Add `tramp-suppress-trace' property.
(tramp-get-debug-buffer): Add local key for debugging.
(tramp-handle-abbreviate-file-name): Adapt implementation.
* test/lisp/net/tramp-tests.el
(tramp-test07-abbreviate-file-name):
Adapt test.
(tramp-test17-insert-directory-one-file)
(tramp--test-check-files): Use proper `no-dir' argument for
`dired-get-filename'.
2021-11-15 Yuuki Harano <masm+github@masm11.me>
Avoid handle terminal frames in pgtk_mouse_position.
Just above, f1 can become a selected frame, which may be a terminal
frame. We can't call gtk_widget_get_window() for a terminal frame.
* src/pgtkterm.c (pgtk_mouse_position): Return if it is not a pgtk frame.
2021-11-15 Jim Porter <jporterbugs@gmail.com>
Add another 'abbreviate-file-name' test
* test/lisp/files-tests.el
(files-tests-file-name-non-special-abbreviate-file-name): New test.
2021-11-15 Jim Porter <jporterbugs@gmail.com>
Support abbreviating home directory of Tramp filenames
* doc/lispref/files.texi (Magic File Names): Mention
'abbreviate-file-name' in the list of magic file name handlers.
* etc/NEWS: Announce the change.
* lisp/files.el (file-name-non-special):
* lisp/net/tramp.el (tramp-file-name-for-operation):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add 'abbreviate-file-name'.
* lisp/files.el (directory-abbrev-make-regexp):
(directory-abbrev-apply): New functions.
(abbreviate-file-name): Check for file name handler.
* test/lisp/net/tramp-tests.el (tramp-test07-abbreviate-file-name):
New test.
2021-11-15 Yuuki Harano <masm+github@masm11.me>
Fix coding style
* src/gtkutil.c (xg_set_no_accept_focus):
* src/pgtkterm.c (pgtk_focus_frame):
(button_event):
2021-11-15 Jeff Walsh <fejfighter@gmail.com>
pgtk: Handle (child) frame focusing better
child frames on pgtk are gtk widgets inside the parent surface, rather
than subsurfaces (in wayland ters), and the edit widget is handled
separately from the parent window, so we need to handle signals more
correctly, rather than squinting and assuming an event for the window
is just an event for the edit widget.
* src/gtkutil.c (xg_set_no_accept_focus): set
focus on widget rather than request it on window
* src/pgtkterm.c (pgtk_focus_frame): focus frame on edit_widget
instead
(button_event): Implement focus calls to replace dead X calls
2021-11-15 Stefan Kangas <stefan@marxist.se>
Fix hanging wdired test
* test/lisp/wdired-tests.el (wdired-test-bug34915): Fix hanging
test. Don't start the Emacs Server just to create a socket; just
create the socket manually.
2021-11-15 Lars Ingebrigtsen <larsi@gnus.org>
Fix outline-cycle-buffer issue in `C-h b' buffers
* lisp/outline.el (outline--fix-up-all-buttons): Fix issue when
called after collapsing a buffer (bug#51855).
2021-11-15 Lars Ingebrigtsen <larsi@gnus.org>
Allow mm-external-terminal-program to be a list of strings
* doc/misc/emacs-mime.texi (Display Customization): Document it.
* lisp/gnus/mm-decode.el (mm-external-terminal-program): Allow
being a list.
2021-11-15 Basil L. Contovounesios <contovob@tcd.ie>
Fix handling of changed prefix keys in tutorial
* lisp/tutorial.el (tutorial--find-changed-keys): Use keymapp to
detect prefix definitions rather than hard-coding them. A notable
omission from the hard-coded list was mode-specific-command-prefix,
whose subcommands are often rebound (bug#40725).
2021-11-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
044dd1e210 * rcirc.el (rcirc-define-command): Fix interactive-spec ge...
2021-11-15 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
85ac0efe7c Fix semantic-symref-perform-search doc string
2021-11-15 Po Lu <luangruo@yahoo.com>
Fix xwidget-webkit-back-forward-list
* src/xwidget.c (Fxwidget_webkit_back_forward_list): Use correct
list variable in loop.
2021-11-14 Po Lu <luangruo@yahoo.com>
Stop assuming xwidget views will only be displayed in TEXT_AREA
* src/xterm.c (x_scroll_run): Use view->area when calculating
xwidget view clipping.
* src/xwidget.c (x_draw_xwidget_glyph_string): Set view->area
to s->area and use that instead.
* src/xwidget.h (struct xwidget_view): Add glyph row area field.
2021-11-14 Ken Brown <kbrown@cornell.edu>
Prefer POSIX timers to timerfd timers
* src/atimer.c (set_alarm): Try to start a POSIX timer before
starting a timerfd timer. On Cygwin, return if the POSIX timer is
started successfully. (Bug#51734)
2021-11-14 Juri Linkov <juri@linkov.net>
* lisp/tab-line.el (tab-line-mode): Preserve existing value of tab-line-format
Keep the old value of tab-line-format when enabling tab-line-mode
and don't overwrite it with nil when disabling tab-line-mode (bug#51830).
2021-11-14 Stefan Monnier <monnier@iro.umontreal.ca>
* src/lread.c (read_escape): Fix handling of ?\C-<char> for chars 128-255
2021-11-14 Eli Zaretskii <eliz@gnu.org>
Fix recent documentation updates
* doc/lispref/text.texi (Special Properties): Improve wording.
Add cross-reference and index entry.
(Sticky Properties): Add indexing.
2021-11-14 Yuuki Harano <masm+github@masm11.me>
Add WAYLAND_DISPLAY description to cmdargs.texi
* doc/emacs/cmdargs.texi (Misc Variables): Add WAYLAND_DISPLAY
description.
2021-11-14 Michael Albinus <michael.albinus@gmx.de>
Improve Tramp error handling
* doc/misc/tramp.texi (Frequently Asked Questions): Add another
`remote-file-error'.
* lisp/net/tramp.el (tramp-find-foreign-file-name-handler):
Improve error handling.
2021-11-14 Jeff Walsh <fejfighter@gmail.com>
pgtk: Set correct face color for stretched glyphs
* src/pgtkterm.c (x_draw_stretch_glyph_string): s/foreground/background
(Bug#50579)
2021-11-14 Jeff Walsh <fejfighter@gmail.com>
configure.ac (PGTK_LIBS): remove pgtk dl dependency (Bug#50494)
2021-11-14 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
5dbad52 gnus-summary-line-format doc string clarification
d4536ff Fix follow-scroll-down in a small buffer which starts slightl...
2021-11-14 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
a56dd60 Improve style and comments in font-related sources
2021-11-14 Yuuki Harano <masm+github@masm11.me>
Fix coding style
Especially, insert a space between function name and paren.
* src/alloc.c (garbage_collect):
* src/font.h:
* src/frame.h:
* src/fringe.c:
* src/gtkutil.c (xg_set_screen):
(xg_create_frame_widgets):
(xg_create_frame_outer_widgets):
(xg_get_file_name):
(xg_get_font):
(xg_update_scrollbar_pos):
* src/image.c (image_create_bitmap_from_file):
(xpm_load_image):
* src/pgtkfns.c (pgtk_get_monitor_scale_factor):
(is_wayland_display):
(pgtk_display_info_for_name):
(INSTALL_CURSOR):
(Fx_create_frame):
(Fx_display_mm_height):
(Fx_display_mm_width):
(Fx_display_pixel_width):
(Fx_display_pixel_height):
* src/pgtkselect.c (pgtk_selection_usable):
(Fpgtk_own_selection_internal):
(Fpgtk_get_selection_internal):
* src/pgtkterm.c:
(x_set_parent_frame):
(pgtk_draw_fringe_bitmap):
(pgtk_handle_draw):
(scroll_event):
(pgtk_text_scaling_factor):
(pgtk_term_init):
* src/pgtkterm.h:
* src/window.h:
* src/xdisp.c (redisplay_internal):
(draw_glyphs_debug):
(draw_glyphs):
(note_mouse_highlight):
2021-11-14 Po Lu <luangruo@yahoo.com>
Expose xwidget navigation history to Lisp code
* doc/lispref/display.texi (Xwidgets): Document changes.
* etc/NEWS: Announce new function.
* src/xwidget.c (Fxwidget_webkit_back_forward_list): New
function.
(syms_of_xwidget): Define new subr.
2021-11-14 Po Lu <luangruo@yahoo.com>
Add `kill-xwidget'
* doc/lispref/display.texi (Xwidgets): Document 'kill-xwidget'.
* src/xwidget.c (kill_xwidget, Fkill_xwidget): New function.
(syms_of_xwidget): Define new subr.
(kill_buffer_xwidgets): Use `kill_xwidget' instead.
2021-11-14 Lars Ingebrigtsen <larsi@gnus.org>
Fix previous -responsible-p change
* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Make the previous
change work with relative file names, too.
2021-11-13 Lars Ingebrigtsen <larsi@gnus.org>
Explain in the manual how to make `cursor-intangible' work
* doc/lispref/text.texi (Special Properties): Explain how to make
`cursor-intangible' work (bug#51095).
2021-11-13 Po Lu <luangruo@yahoo.com>
Fix crash in xwidget_end_redisplay
* src/xwidget.c (xwidget_end_redisplay): Always test if xv is
NULL.
2021-11-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix `C-h k' in gnus-article-mode
* lisp/gnus/gnus-art.el (gnus-article-describe-key):
(gnus-article-describe-key-briefly): Fix `describe-key' calling
convention (bug#51796).
2021-11-13 Lars Ingebrigtsen <larsi@gnus.org>
Make all vc-*-responsible-p functions return a string
* lisp/vc/vc-sccs.el (vc-sccs-responsible-p):
* lisp/vc/vc-rcs.el (vc-rcs-responsible-p):
* lisp/vc/vc-dav.el (vc-dav-responsible-p):
* lisp/vc/vc-cvs.el (vc-cvs-responsible-p): Return a file name
instead of t when we get a match (which is what
vc-backend-for-registration expects) (bug#51800).
2021-11-13 Kévin Le Gouguec <kevin.legouguec@gmail.com>
Fix customization group of python-forward-sexp-function
* lisp/progmodes/python.el (python-forward-sexp-function): Move from
the "Flymake integration" subsection to the "Navigation" subsection,
so that the option is sorted into the 'python' group rather than the
'python-flymake' group (bug#51807).
2021-11-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix Gnus gcc header tokenization
* lisp/gnus/gnus-msg.el (gnus-summary-resend-message-insert-gcc)
(gnus-inews-do-gcc): Fix tokenization of the gcc header.
2021-11-13 Lars Ingebrigtsen <larsi@gnus.org>
Adjust build-dep-zips.py download link
* admin/nt/dist-build/build-dep-zips.py (download_source): Adjust
the download link (bug#40628).
2021-11-13 Manuel Giraud <manuel@ledu-giraud.fr>
Find most specific backend for `vc-backend-for-registration'.
* lisp/vc/vc.el (vc-backend-for-registration): Count file name
components instead of the length of the file name string (bug#50572).
2021-11-13 Stephen Gildea <stepheng+emacs@gildea.com>
MH-E threads code: use mh-scan variables correctly
* lisp/mh-e/mh-thread.el (mh-thread-current-indentation-level)
(mh-thread-find-children): Fix off-by-one error by using
'mh-scan-field-from-start-offset' directly, as
'mh-thread-parse-scan-line' does. Previously, these functions would
incorrectly consider the "date note" column as part of the thread
indenting. Since that column is almost always a Space character, that
almost always worked.
(mh-thread-ancestor): Update caller.
* test/lisp/mh-e/mh-thread-tests.el: New unit tests for affected code.
* lisp/mh-e/mh-scan.el (mh-msg-num-width-to-column): Fix doc string typo.
2021-11-13 Michael Albinus <michael.albinus@gmx.de>
Revert accidential commit in icomplete.el
2021-11-13 Michael Albinus <michael.albinus@gmx.de>
Remove Tramp's `dired-compress-file' handler, not needed anymore
* lisp/dired-aux.el (dired-check-process, dired-shell-command):
Call `dired-uncache'.
(dired-compress-file): Use `file-local-name'.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Remove superfluous comment.
* lisp/net/tramp-sh.el (dired-compress-file): Declare.
(tramp-sh-handle-dired-compress-file): Call real handler for
Emacs >= 29.
* lisp/net/tramp.el (tramp-file-name-for-operation): Reorder list.
* test/lisp/net/tramp-tests.el (tramp-test45-dired-compress-file)
(tramp-test45-dired-compress-dir): Adapt comment.
2021-11-13 Po Lu <luangruo@yahoo.com>
Fix scroll event test in handle_one_xevent
* src/xterm.c (handle_one_xevent): Test for scroll wheel button
correctly in xwidget code.
2021-11-13 Eli Zaretskii <eliz@gnu.org>
Fix font selection via :family on MS-Windows
* src/font.c (font_delete_unmatched) [HAVE_NTGUI]: Allow non-exact
matches of :weight when looking for a suitable font. (Bug#51768)
2021-11-13 Alan Mackenzie <acm@muc.de>
Correct patch from 2021-11-12 on src/fileio.c
* src/fileio.c (restore_window_points): Reverse commit
974192413f8a81171b8fd28dfd5c081ce06d3dec and instead replace a < by a <=.
This ensures that if w->mpoint is at the top of the middle region being
replaced, it gets adjusted and stays at the top after the reinsertion.
2021-11-13 Po Lu <luangruo@yahoo.com>
Don't emit SELECT_WINDOW_EVENT when an xwidget is scrolled
* src/xterm.c (handle_one_event): Don't select xwidget window
on button event if the button pressed actually represents the
scroll wheel.
2021-11-13 Alan Mackenzie <acm@muc.de>
C++ Mode: Fix incoorect background fontification of <
Where c-record-found-types gets "bound" to itself, we postpone the calling of
c-fontify-new-type on possible new found types until these are confirmed by
the return from the function tentatively finding these types, for exmaple
c-forward-<>-arglist. We check this "binding" by testing the value of
c-record-found-types.
Correct the background fontification algorithm.
* lisp/progmodes/cc-engine.el (c-record-found-types): Move the definition to
earlier in the file.
(c-add-type-1): Check additionally c-record-found-types is nil before calling
c-fontify-new-found-type.
(c-forward-<>-arglist, c-forward-type): On return from a function which
collects found types in c-record-found-types, call c-fontify-new-found-types
for each such type.
* lisp/progmodes/c-fonts.el (c-force-redisplay): Actually fontify the new
found type.
(c-fontify-new-found-type): Test for font-lock-mode being enabled. Remove the
spurious condition on the `fontified' text property being nil before causing
c-force-redisplay to get called.
2021-11-13 Stephen Leake <stephen_leake@stephe-leake.org>
Fix issues; severity not set in textdocument/publishdiagnostics
* eglot.el (eglot-handle-notification): Handle severity not set.
GitHub-reference: https://github.com/joaotavora/eglot/issues/755
GitHub-reference: https://github.com/joaotavora/eglot/issues/401
2021-11-13 Lars Ingebrigtsen <larsi@gnus.org>
Don't create links to undefined commands in help--describe-command
* lisp/help.el (help--describe-command): Don't create links to
commands that aren't defined.
2021-11-13 Yuuki Harano <masm+github@masm11.me>
Revert #if changes
I changed some "#ifdef"s to "#if defined"s by mistake, so I reverted them.
* src/alloc.c: Reverted.
(garbage_collect): Reverted.
* src/emacs.c (main): Reverted.
* src/image.c (xpm_load_image): Reverted.
(image_disable_image): Reverted.
(image_build_heuristic_mask): Reverted.
2021-11-13 Po Lu <luangruo@yahoo.com>
Use GTK native file choosers in xwidget callback
* src/xwidget.c (run_file_chooser_cb): Use GtkFileChooserNative
instead.
2021-11-13 Yuuki Harano <masm+github@masm11.me>
Revert atimer changes
They seem to be not needed any more.
* src/atimer.c (set_alarm): Revert
(turn_on_atimers): Revert
(have_buggy_timerfd): Revert
2021-11-13 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
42d4e24ff3 ; Fix typos
0d0125daae Improve documentation of 'decode-coding-region'
2021-11-13 Po Lu <luangruo@yahoo.com>
Prevent NULL-pointer dereference on xwidget callback error
* src/xwidget.c (webkit_javascript_finished_cb): Check if
`error' is NULL before freeing it.
2021-11-12 Po Lu <luangruo@yahoo.com>
Fix file chooser hangs inside xwidget-webkit
* src/xwidget.c (run_file_chooser_cb): New function that runs
a nested event loop instead of acting asynchronously.
(Fmake_xwidget): Attach file chooser signal.
2021-11-12 Po Lu <luangruo@yahoo.com>
Remove unused xwidget code in EmacsFixed GTK widget class
This is no longer required, as we rely on X to position
xwidgets now. It also makes resizing Emacs frames slightly
slower.
* src/emacsgtkfixed.c (EMACS_FIXED_GET_CLASS)
(struct GtkFixedPrivateL)
(emacs_fixed_gtk_widget_size_allocate)
(emacs_fixed_class_init) [HAVE_XWIDGETS]: Remove unused code.
2021-11-12 Po Lu <luangruo@yahoo.com>
Prevent xwidget webkit isearch messages from entering log buffer
* lisp/xwidget.el (xwidget-webkit-isearch--update): Prevent
logging when displaying search contents message.
2021-11-12 Ken Brown <kbrown@cornell.edu>
Don't start both timerfd and alarms on Cygwin
* src/atimer.c (set_alarm) [CYGWIN]: Don't start both timerfd and
alarms; this causes a slowdown. (Bug#51734)
2021-11-12 Alan Mackenzie <acm@muc.de>
In insert_file_contents, always set windows' point markers.
This fixes bug #51776.
* src/fileio.c (restore_window_points): Restore a w->mpoint even when that
marker originally pointed into the unchanged area near BOB or EOB. This
prevents that window's point being moved a long way from its starting place
due to the removal of the central part of the buffer by insert_file_contents.
2021-11-12 Michael Albinus <michael.albinus@gmx.de>
Remove Emacs 25 compatibility from Tramp
* doc/misc/tramp.texi (Remote programs, Remote processes)
(Frequently Asked Questions): Adapt Emacs versions.
* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.6.0-pre".
* lisp/net/tramp-adb.el (top): Don't use `tramp-compat-funcall' for
connection-local functions.
* lisp/net/tramp-compat.el (tramp-unload-file-name-handlers)
(tramp-handle-temporary-file-directory)
(tramp-compat-temporary-file-directory-function)
(tramp-compat-file-attribute-type)
(tramp-compat-file-attribute-link-number)
(tramp-compat-file-attribute-user-id)
(tramp-compat-file-attribute-group-id)
(tramp-compat-file-attribute-access-time)
(tramp-compat-file-attribute-modification-time)
(tramp-compat-file-attribute-status-change-time)
(tramp-compat-file-attribute-size)
(tramp-compat-file-attribute-modes, tramp-file-missing)
(tramp-compat-file-missing, tramp-compat-file-local-name): Remove.
(tramp-compat-file-name-quoted-p, tramp-compat-file-name-quote)
(tramp-compat-file-name-unquote)
(tramp-compat-progress-reporter-update)
(tramp-compat-file-modes, tramp-compat-set-file-modes)
(tramp-compat-set-file-times, tramp-compat-directory-files)
(tramp-compat-directory-files-and-attributes): Adapt implementation.
* lisp/net/tramp.el:
* lisp/net/tramp-adb.el:
* lisp/net/tramp-archive.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-fuse.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-rclone.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-sudoedit.el: Adapt callees.
* lisp/net/tramp-crypt.el (tramp-crypt-config-file-name):
Expand file name.
* lisp/net/tramp-fuse.el (tramp-fuse-handle-file-readable-p): Remove.
* lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Don't check Emacs version.
(tramp-gvfs-handler-mounted-unmounted): Use `make-tramp-file-name'.
* lisp/net/tramp-integration.el (rfn-eshadow-overlay):
Remove declaration.
(top): Don't use `tramp-compat-funcall' for connection-local functions.
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
Use `tramp-rclone-handle-file-readable-p'.
(tramp-rclone-handle-file-readable-p): New defun.
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
Use `tramp-handle-file-readable-p'.
* lisp/net/tramp.el (tramp-temp-name-prefix, tramp-lookup-syntax):
Adapt docstring.
(tramp-set-connection-local-variables)
(tramp-set-connection-local-variables-for-buffer): Don't use
`tramp-compat-funcall' for connection-local functions.
(tramp-file-name-for-operation): Reorder list.
(tramp-handle-make-symbolic-link): Don't handle TARGET and
OK-IF-ALREADY-EXISTS.
(tramp-read-passwd): Don't use `read-passwd' any longer.
(top): Don't check for `interrupt-process-functions'.
* test/lisp/net/tramp-archive-tests.el (tramp-archive--test-emacs26-p):
Remove.
(tramp-archive-test02-file-name-dissect): Use `make-tramp-file-name'.
(all): Replace Emacs 26 compatibility functions with their
original name.
(tramp-archive-test46-auto-load)
(tramp-archive-test46-delay-load): Rename.
* test/lisp/net/tramp-tests.el (dired-aux, seq): Require them.
(dired-compress, connection-local-criteria-alist)
(connection-local-profile-alist, async-shell-command-width):
Don't declare.
(all): Replace Emacs 26 compatibility functions with their
original name.
(tramp-test04-substitute-in-file-name)
(tramp-test10-write-region, tramp-test11-copy-file)
(tramp-test12-rename-file, tramp-test15-copy-directory)
(tramp-test17-insert-directory)
(tramp-test17-dired-with-wildcards, tramp-test21-file-links)
(tramp-test31-interrupt-process)
(tramp-test34-connection-local-variables)
(tramp-test34-explicit-shell-file-name)
(tramp-test40-make-nearby-temp-file)
(tramp-test41-special-characters, tramp-test42-utf8)
(tramp-test46-delay-load, tramp-test46-remote-load-path)
(tramp-test47-unload): Don't check for Emacs 26 special features.
(tramp--test-emacs26-p): Remove.
(tramp--test-emacs29-p): New defun.
(tramp-test45-dired-compress-file)
(tramp-test45-dired-compress-dir): Use it.
(tramp-test44-asynchronous-requests): Use `seq-random-elt'.
2021-11-12 Po Lu <luangruo@yahoo.com>
Fix typos in etc/PROBLEMS
* etc/PROBLEMS (Internationalization problems): Fix typos.
2021-11-12 Po Lu <luangruo@yahoo.com>
Document problem with fcitx and xwidgets
* etc/PROBLEMS (Internationalization problems): Document buggy fcitx
with xwidgets.
2021-11-12 Stefan Kangas <stefan@marxist.se>
* lisp/emacs-lisp/checkdoc.el (checkdoc-dired): Autoload.
2021-11-12 Po Lu <luangruo@yahoo.com>
Add support for input methods to xwidget-webkit-edit-mode
* lisp/xwidget.el (xwidget-webkit--input-method-events): New
variable.
(xwidget-webkit-pass-command-event-with-input-method): New
function.
(xwidget-webkit-pass-command-event): Consult input method about
key events if input method is enabled.
2021-11-12 Noam Postavsky <npostavs@gmail.com>
Optimize admin/nt dependency computation
admin/nt/dist-build/build-dep-zips.py (immediate_deps)
(extract_deps): Gather package dependency info in batches, rather than
one at a time. This reduces the number of invocations of 'pacman -Si
...' to the depth of the dependency tree, rather than the number of
dependent packages.
(top-level): Don't call 'extract_deps' when given the '-l' option (bug#40628).
2021-11-12 Rasmus <rasmus@gmx.us>
lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
* lisp/icomplete.el (icomplete-fido-backward-updir): Expand "~/"
(bug#43925).
2021-11-12 Lars Ingebrigtsen <larsi@gnus.org>
Delete .tar.gz temp file after tramp test
* test/lisp/net/tramp-tests.el ()
(tramp-test45-dired-compress-dir): Delete the temp file (bug#51690).
2021-11-12 Lars Ingebrigtsen <larsi@gnus.org>
Remove unused xlfd_ enums
* src/xfaces.c: Remove xlfd_weight, xlfd_swidth and xlfd_slant
enums. These seem to be unused in the Emacs sources.
2021-11-12 Po Lu <luangruo@yahoo.com>
Remove obsolete comment
The comment probably dated back to when xwidgets supported
many other GTK+ widgets with other data. In the current
implementation of xwidgets, everything that should be freed
is already freed in `kill_buffer_xwidgets'.
* src/xwidget.c (kill_buffer_xwidgets): Remove outdated TODO.
2021-11-12 Lars Ingebrigtsen <larsi@gnus.org>
Allow choosing regular-weighted fonts when medium-weighted exist
* src/ftfont.c (ftfont_pattern_entity): Allow using both regular
and medium-weighted fonts.
2021-11-12 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
a6905e90cc Fix problem with temp buffer killing in package-install-file
144ad77fda Fix Lisp Intro markup error
24b86cb4f7 Fix ACL errors with WebDAV volumes on MS-Windows
2021-11-12 Po Lu <luangruo@yahoo.com>
Fix doc string for xwidget-webkit-load-html
* src/xwidget.c (Fxwidget_webkit_load_html): Fix doc string.
2021-11-12 Po Lu <luangruo@yahoo.com>
Add input method support for xwidget webkit isearch
* lisp/xwidget.el (xwidget-webkit-isearch--read-string-buffer):
New variable.
(xwidget-webkit-isearch-printing-char-with-input-method)
(xwidget-webkit-isearch-with-input-method): New function.
(xwidget-webkit-isearch-printing-char): Add support for Emacs
input methods. (bug#51781)
2021-11-11 Stefan Kangas <stefan@marxist.se>
image-dired: Quote function symbols as such
* lisp/image-dired.el (image-dired-thumbnail-mode-line-up-map)
(image-dired-thumbnail-mode-tag-map)
(image-dired-thumbnail-mode-map, image-dired-minor-mode-map):
Quote function symbols as such.
2021-11-11 Lars Ingebrigtsen <larsi@gnus.org>
Move Info-goto-node-web to "G"
* lisp/info.el (Info-mode-map): Change the Info-goto-node-web
binding to "G" for symmetry with "Info-goto-node".
2021-11-11 Stefan Kangas <stefan@marxist.se>
Make image-dired-thumbnail-mode non-interactive
* lisp/image-dired.el (image-dired-thumbnail-mode): No longer
interactive, as it only makes sense in a specially prepared buffer.
2021-11-11 Stefan Kangas <stefan@marxist.se>
image-dired: Revamp slideshow functionality
* lisp/image-dired.el
(image-dired-slideshow-delay): New defcustom.
(image-dired--slideshow-initial): New defvar.
(image-dired-slideshow-start): Don't show any prompts when starting a
slideshow, unless user gave a negative prefix argument. Use the value
of the above new defcustom as the default delay.
(image-dired-slideshow-stop): Don't count number of images. Instead,
continue the slideshow until the next command.
(image-dired-slideshow-step): Use the correct buffer.
(image-dired-slideshow-count, image-dired-slideshow-times): Make
obsolete.
(image-dired--slideshow-timer): Rename from
'image-dired-slideshow-timer'. Make the old name into an obsolete
variable alias.
(image-dired-display-image-mode-map)
(image-dired-thumbnail-mode-map): Bind 'image-dired-slideshow-start'
to "S".
(image-dired-thumbnail-mode-menu): Add 'image-dired-slideshow-start'.
2021-11-11 Stefan Kangas <stefan@marxist.se>
image-dired: Improve thumbnail mode menu
* lisp/image-dired.el (image-dired-thumbnail-mode-menu): Improve menu
with more logical ordering and better naming.
2021-11-11 Bryan C. Mills <bcmills@google.com> (tiny change)
Make "emacs --script /dev/stdin work again when that's a pipe
* src/lread.c (Fload): Adjust callers.
* src/lread.c (safe_to_load_version): Check lseek errors
(Bug#48940).
2021-11-11 Lars Ingebrigtsen <larsi@gnus.org>
Allow using /dev/stdin as a --script parameter again
* lisp/startup.el (command-line-1): Fix breakage with
(file-truename "/dev/stdin") => "/proc/227795/fd/pipe:[1381505]"
when using /dev/stdin as a --script parameter.
2021-11-11 Po Lu <luangruo@yahoo.com>
Fix potential NULL dereference in xwidget-webkit-uri
* src/xwidget.c (Fxwidget_webkit_uri): Don't assume
webkit_web_view_get_uri will always return a valid string.
2021-11-11 Po Lu <luangruo@yahoo.com>
Check for WebKit xwidgets inside all xwidget-webkit functions
This is done in preparation for the introduction of other
xwidgets, such as media xwidgets, even though there are
only WebKit widgets at present.
* src/xwidget.c (CHECK_WEBKIT_XWIDGET): New macro.
(WEBKIT_FN_INIT): Use CHECK_WEBKIT_XWIDGET.
(Fxwidget_webkit_search, Fxwidget_webkit_next_result)
(Fxwidget_webkit_previous_result)
(Fxwidget_webkit_finish_search)
(Fxwidget_webkit_load_html): Check that xwidget is a WebKit
widget.
2021-11-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix image-animate declaration
* lisp/net/shr.el (image-animate): Fix declaration.
2021-11-11 Lars Ingebrigtsen <larsi@gnus.org>
Make gnus-article-stop-animations obsolete
* lisp/gnus/gnus-art.el (gnus-article-stop-animations): Make
obsolete now that animated images stop themselves automatically.
(gnus-article-setup-buffer):
* lisp/gnus/gnus-sum.el (gnus-summary-exit)
(gnus-summary-exit-no-update, gnus-summary-show-article): Remove
callers.
2021-11-11 Lars Ingebrigtsen <larsi@gnus.org>
Allow stopping animations automatically when the image disappears
* lisp/image.el (image-animate): Allow the animation to be stopped
automatically when the image is removed from the buffer.
(image-animate-timeout): Stop the animation if the image is
removed (and that has been requested).
* lisp/net/shr.el (shr-put-image): Stop animations if the image is
removed.
2021-11-11 Po Lu <luangruo@yahoo.com>
Prevent crashes from Lisp code modifying xwidget-list
* src/xwidget.c (internal_xwidget_view_list)
(internal_xwidget_list): New variable.
(find_xwidget_for_offscreen_window)
(define_cursors, offscreen_damage_event)
(webkit_ready_to_show, xwidget_init_view)
(Fxwidget_resize, Fdelete_xwidget_view)
(Fxwidget_view_lookup, xwidget_spec_value)
(lookup_xwidget, xwidget_end_redisplay)
(kill_frame_xwidget_views, kill_buffer_xwidgets)
(Fmake_xwidget, Fget_buffer_xwidgets): Use internal list.
(syms_of_xwidget): Initialize internal xwidget lists.
2021-11-11 Po Lu <luangruo@yahoo.com>
Prevent crashes in xwidgets whose buffers have been killed
* doc/lispref/display.texi (Xwidgets): Explain meaning of killed
xwidgets.
* src/xwidget.c (Fxwidget_live_p): New function.
(Fxwidget_perform_lispy_event, WEBKIT_FN_INIT)
(Fxwidget_resize, Fxwidget_size_request)
(Fxwidget_info, Fxwidget_plist)
(Fset_xwidget_buffer, Fset_xwidget_plist)
(Fset_xwidget_query_on_exit_flag)
(Fxwidget_query_on_exit_flag)
(Fxwidget_webkit_search)
(Fxwidget_webkit_next_result)
(Fxwidget_webkit_previous_result)
(Fxwidget_webkit_finish_search)
(Fxwidget_webkit_load_html): Check for live xwidgets instead of
just xwidgets.
(xwidget_button, xwidget_motion_or_crossing)
(xv_do_draw, x_draw_xwidget_glyph_string)
(Fdelete_xwidget_view): Ignore killed xwidgets.
(syms_of_xwidget): Define new symbols and subrs and define
appropriate weakness of id_to_xwidget map.
(kill_buffer_xwidgets): Check live xwidgets instead of
killed xwidgets, set xwidget buffer to nil, and rely on GC to
free the hash table for us instead.
* src/xwidget.h (XWIDGET_LIVE_P, CHECK_LIVE_XWIDGET): New
macros.
2021-11-11 Eli Zaretskii <eliz@gnu.org>
Fix compilation on MS-Windows
* src/callproc.c (emacs_spawn) <fork_done>: Define the label only
if USABLE_POSIX_SPAWN is defined, to avoid a compiler warning.
2021-11-11 Philipp Stephani <phst@google.com>
Use posix_spawn if possible.
posix_spawn is less error-prone than vfork + execve, and can make
better use of system-specific enhancements like 'clone' on Linux. Use
it if we don't need to configure a pseudoterminal.
* configure.ac (HAVE_SPAWN_H, HAVE_POSIX_SPAWN)
(HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR)
(HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP)
(HAVE_POSIX_SPAWNATTR_SETFLAGS, HAVE_DECL_POSIX_SPAWN_SETSID): New
configuration variables.
* src/callproc.c (USABLE_POSIX_SPAWN): New configuration macro.
(emacs_posix_spawn_init_actions)
(emacs_posix_spawn_init_attributes, emacs_posix_spawn_init): New
helper functions.
(emacs_spawn): Use posix_spawn if possible.
2021-11-11 Jim Porter <jporterbugs@gmail.com>
Improve performance of 'file-name-case-insensitive-p' for Tramp files
Previously, each function in 'tramp-foreign-file-name-handler-alist'
would call 'tramp-dissect-file-name', resulting in it being called
several times whenever 'tramp-find-foreign-file-name-handler' was
called. Now, functions take the dissected file name to avoid this
duplicated effort. (Bug#51699)
* etc/NEWS: Announce this change.
* lisp/net/tramp-adb.el (tramp-adb-file-name-p):
* lisp/net/tramp-ftp.el (tramp-ftp-file-name-p):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-p):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-p):
* lisp/net/tramp-smb.el (tramp-smb-file-name-p):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-p):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-p):
Accept dissected file names.
* lisp/net/tramp.el (tramp-ensure-dissected-file-name): New function.
(tramp-find-foreign-file-name-handler): Pass dissected file name to
functions.
(tramp-connectable-p): Use 'tramp-ensure-dissected-file-name'.
2021-11-11 Stefan Kangas <stefan@marxist.se>
erc: Don't announce broken functionality in /query docstring
* lisp/erc/erc.el (erc-cmd-QUERY): Be less enthusiastic about
announcing missing/broken functionality. The comment "except this is
broken right now" has been there since 2008, and it's not obvious to
me that we should ever re-add it.
2021-11-11 Filipp Gunbin <fgunbin@fastmail.fm>
* lisp/subr.el (add-hook): Fix adding into hook--depth-alist (bug#51620).
2021-11-11 Eli Zaretskii <eliz@gnu.org>
Fix 8-color PuTTY -nw sessions broken by a recent commit
* src/term.c (init_tty): Fix the change which introduced support
for the terminfo Tc flag. The code as installed broke colors in
PuTTY -nw sessions, because 'tigetflag' returned -1, which is
non-zero, so it was treated as the sign that true color is
supported. But if the value returned by 'tigetflag' is -1, it means
the capability is not a boolean one, so that's not to be used as a
valid support for 24-bit color. (Bug#44950)
2021-11-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix problem with non-absolute names
* lisp/files.el (file-name-split): Fix problem with non-absolute
names.
2021-11-11 Lars Ingebrigtsen <larsi@gnus.org>
Add a command to go the gnu.org version of the info page
* lisp/info.el (Info-url-for-node):
(Info-goto-node-web): New function (bug#44895).
Based on code from Drew Adams <drew.adams@oracle.com>.
2021-11-11 Michael Albinus <michael.albinus@gmx.de>
Merge from origin/emacs-28
6dae01ad6d Fix tramp-compat-file-name-concat (Bug#51754)
2021-11-11 Po Lu <luangruo@yahoo.com>
Add URI as a valid spec for xwidget-webkit-buffer-name-format
* lisp/xwidget.el (xwidget-webkit-buffer-name-format): Update
doc string.
(xwidget-webkit-callback): Add a format spec %U, which stands
for the current URI of the widget.
2021-11-11 Feng Shu <tumashu@163.com>
xwidget: Add xwidget-webkit-buffer-name-format.
* lisp/xwidget.el (xwidget-webkit-buffer-name-prefix):
Remove variable.
(xwidget-webkit-buffer-name-format): New variable.
(xwidget-webkit-callback): Use
xwidget-webkit-buffer-name-format instead.
(format-spec): required.
* etc/NEWS: Note xwidget-webkit-buffer-name-format.
2021-11-11 Eli Zaretskii <eliz@gnu.org>
Fix files-tests on MS-Windows
* lisp/ls-lisp.el (ls-lisp--insert-directory): Fix free disk space
calculation. (Bug#50630)
* test/lisp/files-tests.el (files-tests-revert-buffer)
(files-tests-revert-buffer-with-fine-grain): Disable locking
files.
2021-11-11 Po Lu <luangruo@yahoo.com>
Fix documentation in xwidget.el
* src/xwidget.el (xwidget-webkit-isearch-mode): Reword
documentation.
2021-11-11 Po Lu <luangruo@yahoo.com>
Switch to xwidget webkit buffer even if a session already exists
* lisp/xwidget.el (xwidget-webkit-goto-url): Make behavior
when there is an existing session consistent.
2021-11-11 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
2963de6540 * lisp/vc/vc-git.el (vc-git-mergebase): More meaningful er...
a9148cdee5 ; Fix heading in etc/NEWS
9623342216 ; * etc/NEWS: Move a bookmark related item further down.
# Conflicts:
# etc/NEWS
2021-11-11 Tim Ruffing <crypto@timruffing.de> (tiny change)
Support Tc terminfo flag for 24-bit color support in terminal
* src/term.c (init_tty): Use the Tc flag (bug#44950).
2021-11-11 Gregory Heytings <gregory@heytings.org>
Options to automatically stop the Emacs server
* doc/emacs/misc.texi (Emacs Server): Document the new function.
Also mention that an Emacs server can be started with emacsclient.
* etc/NEWS: Describe the new function (bug#51377).
* lisp/server.el (server-stop-automatically): New function.
(server-stop-automatically): New auxiliary variable.
(server-stop-automatically--maybe-kill-emacs)
(server-stop-automatically--handle-delete-frame): New auxiliary
functions.
(server-save-buffers-kill-terminal): Call the new auxiliary
function when necessary.
2021-11-11 Miha Rihtaršič <miha@kamnitnik.top>
Set `minibuffer-completion-*` variables locally in more places
* lisp/calc/calc-store.el (calc-read-var-name):
* lisp/emacs-lisp/crm.el (completing-read-multiple):
* lisp/progmodes/cc-styles.el (c-read-offset):
* lisp/window.el (read-buffer-to-switch):
Set `minibuffer-completion-*` variables buffer-locally instead of
using a global let-binding (bug#48925).
Follow-up to commit
2021-05-01 "* lisp/minibuffer.el (completing-read-default): Fix bug#45474"
2021-11-10 Lars Ingebrigtsen <larsi@gnus.org>
Re-fix charset issues when yanking non-plain-text elements
* lisp/select.el (gui-get-selection): Make (gui-get-selection
'CLIPBOARD 'text/html) get decoded correctly (bug#31149), but still
avoid the logic on Windows.
2021-11-10 Lars Ingebrigtsen <larsi@gnus.org>
Don't save places in literally-visited files
* lisp/saveplace.el (save-places-to-alist): Don't save places in
literally-visited files (bug#51740).
2021-11-10 John Cummings <john@rootabega.net>
Add tests for 'insert-directory'
* test/lisp/files-tests.el: Add 'insert-directory' tests.
* test/lisp/files-resources/insert-directory/: Create directories and files to
use for testing 'insert-directory'.
Add tests for 'insert-directory' base functionality and regression tests for
the issue where free space was reported for the current directory instead of
the target of 'list-directory' (Bug#50630).
2021-11-10 Lars Ingebrigtsen <larsi@gnus.org>
Note that loaddefs.el is copied to ldefs-boot.el
* lisp/emacs-lisp/autoload.el (autoload-rubric): Add a comment to
the file noting what'll happen to it.
2021-11-10 Lars Ingebrigtsen <larsi@gnus.org>
Re-generated to get autoloads additions in emoji.el
2021-11-10 Po Lu <luangruo@yahoo.com>
Add `xwidget-webkit-load-html'
* doc/lispref/display.texi (Xwidgets): Document new function.
* etc/NEWS: Announce new function.
* src/xwidget.c (Fxwidget_webkit_load_html): New function.
(syms_of_xwidget): Define new subr.
2021-11-10 Juri Linkov <juri@linkov.net>
* etc/NEWS.28: Add changes omitted while merging from emacs-28 NEWS.
* etc/NEWS: Remove old news accidentally merged from emacs-28.
2021-11-10 Eli Zaretskii <eliz@gnu.org>
Fix font weights on MS-Windows
* src/w32font.c (w32_decode_weight, w32_encode_weight)
(w32_to_fc_weight): Adjust weight translations to match those in
font.c and gtkutil.c:xg_weight_to_symbol. (Bug#51704)
2021-11-10 Robert Pluim <rpluim@gmail.com>
Improve 'ensure-empty-lines' docstring
* lisp/emacs-lisp/subr-x.el (ensure-empty-lines): Fix typo and improve
wording.
2021-11-10 Stefan Kangas <stefan@marxist.se>
* admin/update_autogen: Remove unused variables.
2021-11-10 Stefan Kangas <stefan@marxist.se>
Use "grep -E" instead of deprecated "egrep"
* admin/emake:
* test/lisp/so-long-tests/so-long-tests.el: Use "grep -E" instead of
deprecated "egrep".
2021-11-10 Stefan Kangas <stefan@marxist.se>
Avoid another byte-compiler warning in package-quickstart.el
* lisp/emacs-lisp/package.el (package-quickstart-refresh): Avoid
byte-compiler warning "assignment to free variable" in
package-quickstart.el.
2021-11-10 Stefan Kangas <stefan@marxist.se>
Avoid spurious byte-compiler warnings in package-quickstart.el
* lisp/emacs-lisp/package.el (package-quickstart-refresh): Disable the
"`make-variable-buffer-local' not called at toplevel" byte-compiler
warnings. Given that we wrap it all in a let-form, these are mostly
false positives and not helpful.
2021-11-10 Stefan Kangas <stefan@marxist.se>
* admin/automerge: Fix quoting of some variables.
* admin/automerge: Use mktemp if it exists.
2021-11-10 Po Lu <luangruo@yahoo.com>
Prevent GDK warning about missing event devices in most cases
* src/xwidget.c (synthesize_focus_in_event): Set event device to
selected frame's pointer if it's an X frame.
2021-11-10 Po Lu <luangruo@yahoo.com>
Add `xwidget-webkit-isearch-yank-kill'
* lisp/xwidget.el: Bind C-y to xwidget-webkit-yank-kill in incremental
search.
(xwidget-webkit-isearch-mode): Update doc string.
(xwidget-webkit-yank-kill): New function.
2021-11-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
8d81ab374d time-stamp: %F is "file name" not "pathname" + other doc
beaa7e14f3 ; Fix typos in CONTRIBUTE, ELisp manual, ediff
747a1ae4ac * doc/misc/eww.texi (Advanced): Fix missed variable name e...
52fe2340b8 * doc/emacs/windows.texi (Window Convenience): Use @code f...
7d3a654e2a * doc/emacs/maintaining.texi (Basic VC Editing): Mention D...
aeb19af4b5 ; * doc/emacs/building.texi (Lisp Libraries): Fix a typo. ...
# Conflicts:
# etc/NEWS
2021-11-10 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
2782bc113e Revert "Fix localized display of date and time in the NS p...
2021-11-10 Po Lu <luangruo@yahoo.com>
Prevent skipping results while changing search direction
* lisp/xwidget.el (xwidget-webkit-isearch-forward)
(xwidget-webkit-isearch-backward): Avoid moving to the next result one
too many times.
2021-11-10 Benj <Benjamin.Schwerdtner@gmail.com> (tiny change)
Make the python missing-readline warning more helpful
* lisp/progmodes/python.el
(python-shell-completion-native-turn-on-maybe): Mention the "readline"
package (bug#48998).
2021-11-10 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-c C-c' in erts-mode work with Point-Char elems
* lisp/progmodes/erts-mode.el (erts-mode--preceding-spec):
Factor out into own function (bug#51680).
(erts-run-test): Respect Point-Char settings.
2021-11-10 Po Lu <luangruo@yahoo.com>
Remove obsolete limitation
* src/xwidget.c (Fxwidget_webkit_goto_history): Accept any fixnum as
REL-POS, to be consistent with docstring.
2021-11-10 Po Lu <luangruo@yahoo.com>
Fix incorrect offset calculation for clipped xwidget views
* src/xwidget.c (from_embedder, to_embedder): Remove incorrect
adjustment of position by view clipping.
2021-11-10 Po Lu <luangruo@yahoo.com>
Fix invisible content in WebKit dialogs
* src/xwidget.c (webkit_script_dialog_cb): Use custom label instead of
dialog box title to display message.
2021-11-10 Po Lu <luangruo@yahoo.com>
Set embedder correctly to fix menus appearing in the wrong location
* src/xwidget.c (record_osr_embedder, from_embedder, to_embedder): New
functions.
(Fmake_xwidget): Attach from-embedder and to-embedder signals.
(find_widget_for_offscreen_window): New function.
(xwidget_button, xwidget_motion_or_crossing): Set embedder on event.
(Fdelete_xwidget_view): Remove embedder status if applicable.
* src/xwidget.h (struct xwidget): New fields `embedder' and
`embedder-view'.
2021-11-10 Po Lu <luangruo@yahoo.com>
Revert "Fix mouse face in NS port"
This reverts commit 278e4fc9c6353068334dd39d45334b1df82a6cee.
2021-11-10 Po Lu <luangruo@yahoo.com>
Revert "*** empty log message ***"
This reverts commit 68a2a3307d1703ac8abe4b54c8e1ef9dda677c12.
2021-11-10 Po Lu <luangruo@yahoo.com>
Revert "Add support for event processing via XInput 2"
This reverts commit 346cfc81247e6bf8e727a27b42f44f2389bd1269.
2021-11-10 Po Lu <luangruo@yahoo.com>
Revert "Fix erasing cursor on top of raised boxes in NS port"
This reverts commit 2b5a2ab50b7817f84ae38f84b4ea36ea38cd5a3b.
2021-11-10 Po Lu <luangruo@yahoo.com>
Revert "Revert "Fix erasing cursor on top of raised boxes in NS port""
This reverts commit 7117bbc7aa905ae785fa564cb24c3fc75ef1d543.
2021-11-10 Po Lu <luangruo@yahoo.com>
Revert "Support opening the toolkit menu bar on NS"
This reverts commit ff9cf991c1608cd2578a66cba41e654a2b5d9144.
2021-11-10 oldosfan <luangruo@yahoo.com>
Support opening the toolkit menu bar on NS
* src/nsmenu.m (ns_activate_menubar, Fns_open_menubar): New functions.
* src/nsterm.m (ns_create_terminal): Add activate_menubar_hook.
* lisp/menu-bar.el (menu-bar-open): Use ns-menu-bar-open on Nextstep.
2021-11-10 oldosfan <luangruo@yahoo.com>
Revert "Fix erasing cursor on top of raised boxes in NS port"
This reverts commit 960f0eb9ab657af85c532574b937d8851049b178.
2021-11-10 oldosfan <luangruo@yahoo.com>
Fix erasing cursor on top of raised boxes in NS port
* src/nsterm.m (ns_draw_relief): Clear top and bottom line areas
first, if required.
2021-11-10 oldosfan <luangruo@yahoo.com>
Add support for event processing via XInput 2
* configure.ac: Add an option to use XInput 2 if available
* src/Makefile.in (XINPUT_LIBS, XINPUT_CFLAGS): New variables
(EMACS_CFLAGS): Add Xinput CFLAGS
(LIBES): Add XInput libs
* src/xmenu.c (popup_activated_flag): Expose flag if XInput 2 is
available
* src/xfns.c (x_window): Set XInput 2 event mask
* src/xterm.c (x_detect_focus_change): Handle XInput 2 GenericEvents
(handle_one_xevent): Handle XInput 2 events
(x_term_init): Ask the server for XInput 2 support and set xkb_desc if
available
(x_delete_terminal): Free XKB kb desc if it exists, and free XI2
devices if they exist
(x_free_xi_devices, x_init_master_valuators): New functions
(x_get_scroll_valuator_delta): New function
(init_xterm): Don't tell GTK to only use Core Input when built with
XInput 2 support
* src/xterm.h (struct x_display_info): Add fields for XKB and XI2
support
* src/gtkutil.c (xg_event_is_for_menubar): Handle XIDeviceEvents
(xg_is_menu_window): New function
(xg_event_is_for_scrollbar): Handle XIDeviceEvents
2021-11-10 oldosfan <luangruo@yahoo.com>
*** empty log message ***
2021-11-10 oldosfan <luangruo@yahoo.com>
Fix mouse face in NS port
* src/nsterm.m (ns_draw_glyph_string): Set s->face to the mouse face.
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix package-tests failure on native-comp
* test/lisp/emacs-lisp/package-tests.el
(package-test-macro-compilation-gz): Fix test failure on native-comp.
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix the look of the <video> elements in shr
* lisp/net/shr.el (shr-tag-video): Tweak the look of the video element.
2021-11-09 Lars Ingebrigtsen <larsi@emkay.local>
Try to fix intermittent build problem on Macos
* src/Makefile.in (@): Also sign the bootstrap-emacs executable
2021-11-09 Tom Levy <tomlevy93@gmail.com> (tiny change)
Remove spurious %S from 'define-error' messages
* lisp/emacs/lisp/cl-generic.el (cl--generic-cyclic-definition):
Remove spurious %S from error message.
* lisp/emacs-lisp/gv.el (gv-invalid-place): Remove spurious %S from
error message (and rephrase) (bug#51718).
2021-11-09 Tom Levy <tomlevy93@gmail.com> (tiny change)
Allow 'undo-redo' to be called from Lisp without repeat count
* lisp/simple.el (undo-redo): Default arg to 1 to avoid error when
called from Lisp without args (bug#51718).
2021-11-09 Po Lu <luangruo@yahoo.com>
Prevent BadValue errors when creating tiny xwidget views
* src/xwidget.c (x_draw_glph_string): Avoid resizing xwidget views
to an invalid size (bug#51707).
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Add new function 'file-name-split'
* doc/lispref/files.texi (File Name Components): Document it.
* lisp/files.el (file-name-split): New function (bug#50572).
* lisp/emacs-lisp/shortdoc.el (file-name): Mention it.
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Make `dired-split' obsolete
* lisp/dired-aux.el (dired-tree-lessp): Adjust caller.
(dired-split): Make obsolete (bug#50572).
* lisp/ffap.el (ffap-list-env): Adjust comment.
2021-11-09 Michael Albinus <michael.albinus@gmx.de>
* lisp/net/tramp-cache.el (tramp-persistency-file-name):
Skip superfluous `expand-file-name'.
2021-11-09 Jim Porter <jporterbugs@gmail.com>
Improve performance when checking case-sensitivity of Tramp file names
* lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name):
Dissect file name before testing for connectability to reduce
duplicated work.
* lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p):
Use `tramp-connectable-p' to test for connection.
2021-11-09 Stefan Kangas <stefan@marxist.se>
Add back/forward mouse button bindings in eww
* lisp/net/eww.el (eww-mode-map): Add mouse back/forward button
bindings. These bindings are the same as in Firefox and other
graphical browsers.
2021-11-09 Juri Linkov <juri@linkov.net>
* lisp/progmodes/prog-mode.el (prog-context-menu): Add "Go Forward".
The menu item "Go Forward" is bound to xref-go-forward.
Also use "Go Back" for xref-go-back (bug#38797).
2021-11-09 Juri Linkov <juri@linkov.net>
* lisp/vc/diff-mode.el (diff-setup-buffer-type): Move to diff-setup-whitespace
* lisp/vc/vc.el: Add declare-function for diff-setup-buffer-type (bug#51016).
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Expand the etc/NEWS section about the `medium' font changes
* etc/NEWS: Expand upon the addition of the `medium' weight
(bug#51704).
2021-11-09 Po Lu <luangruo@yahoo.com>
Fix compiler warning building net/shr.el without xwidget support
* lisp/net/shr.el (xwidget-webkit-execute-script): New function
declaration (bug#51705).
2021-11-09 Po Lu <luangruo@yahoo.com>
Fix default target of motion events
* src/xwidget.c (xwidget_motion_or_crossing): Default to widget_osr
instead of its window (bug#51703).
2021-11-09 Stefan Kangas <stefan@marxist.se>
Prefer locate-user-emacs-file
* lisp/cmuscheme.el (scheme-start-file):
* lisp/erc/erc.el (erc-startup-file-list):
* lisp/net/nsm.el (nsm-settings-file):
* lisp/net/tramp-crypt.el (tramp-crypt-config-file-name):
* lisp/org/org-clock.el (org-clock-persist-file):
* lisp/org/org-id.el (org-id-locations-file)
* lisp/shell.el (shell): Prefer 'locate-user-emacs-file' to fiddling
with 'user-emacs-directory' directly.
2021-11-09 Po Lu <luangruo@yahoo.com>
Always set xwidget title if the event was "load-finished"
* lisp/xwidget.el (xwidget-webkit-callback): Always set title upon
load completion. This prevents loading pages such as "about:blank"
from not setting the buffer name (bug#51702).
2021-11-09 Po Lu <luangruo@yahoo.com>
Make `kill_frame_xwidget_views' safe
* src/xwidget.c (kill_frame_xwidget_views): Check XWIDGET_VIEW_P
(bug#51701).
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Don't create temporary files for <video>
* lisp/net/shr.el (shr-tag-audio): Don't create a temporary file;
just update the DOM directly.
2021-11-09 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
307d164c9c * lisp/mouse.el (mouse-buffer-menu-mode-groups): Tighten "...
818211ed89 * doc/emacs/search.texi (Isearch Yank): Add isearch-forwar...
# Conflicts:
# etc/NEWS
2021-11-09 Po Lu <luangruo@yahoo.com>
Make xwidget-tests pass again
* lisp/xwidget.el (xwidget-webkit-buffer-name-prefix): Remove extra
space.
(xwidget-webkit-callback): Add trailing "*" to buffer name.
(xwidget-webkit-new-session, xwidget-webkit-import-widget): Always use
existing buffer name (bug#51700).
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in last shr change
* lisp/net/shr.el (shr-tag-video): Require xwidgets, because it's
used from callbacks.
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Fix shr-tag-video startup issue
* lisp/net/shr.el (shr-tag-video): Require xwidgets, because it's
used from callbacks.
2021-11-09 Lars Ingebrigtsen <larsi@gnus.org>
Optionally use use xwidgets to display <video> elements in shr
* doc/misc/eww.texi (Advanced): Document it.
* lisp/net/shr.el (shr-use-xwidgets-for-media): New user option.
(shr-tag-video): Use xwidgets to display <video> elements.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Make image-compute-scaling-factor argument optional
* lisp/image.el (image-compute-scaling-factor): Make the argument
optional.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
ARGUMENTS in Fmake_xwidget is optional
* src/xwidget.c (Fmake_xwidget): The ARGUMENTS argument isn't
mandatory.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Make xwidget-event-handler more resilient
* lisp/xwidget.el (xwidget-event-handler): Don't try to call the
callback if it hasn't been defined.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Delete temp directory after bytecomp test
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--not-writable-directory): Allow deletion of
directory (bug#51690).
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--dest-mountpoint): Ditto.
2021-11-08 Po Lu <luangruo@yahoo.com>
Fix flicker when setting hscroll of xwidget
* src/xterm.c (x_scroll_run): Use original height of xwidget instead
of window height and set cairo surface size (bug#51697).
2021-11-08 Po Lu <luangruo@yahoo.com>
Raise an error if creating an unknown xwidget type
* src/xwidget.c (Fmake_xwidget): Error if TYPE is invalid (bug#51682).
2021-11-08 Po Lu <luangruo@yahoo.com>
Really fix xwidget scroll optimization and clip
* src/xterm.c (x_scroll_run): Improve clip detection.
* src/xwidget.c (xv_do_draw): Use cairo_translate.
(xwidget_motion_or_crossing): Use correct fields (bug#51681).
2021-11-08 Feng Shu <tumashu@163.com>
xwidget.el: limit buffer-name flicker in mode-line
* lisp/xwidget.el (xwidget-webkit): New customization group.
(xwidget-webkit-buffer-name-prefix): New user option.
(xwidget-webkit-callback): with-current-buffer only after get title,
which can limit buffer-name change in mode-line.
(xwidget-webkit-new-session, xwidget-webkit-import-widget): Use
current buffer to generate a temp xwidget-webkit buffer.
2021-11-08 Matthias Meulien <orontee@gmail.com>
Fix local variables overwritten when diff-mode is set
* lisp/vc/diff-mode.el (diff-mode):
(diff-setup-buffer-type): Defun to initialize `diff-buffer-type'
* lisp/vc/vc.el (vc-diff-finish): Set `diff-buffer-type' after content
inserted
(vc-diff-internal): Restore `diff-mode' being set before local
variables (bug#51016).
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Allow yank-media-types to also show the unsupported data types
* lisp/yank-media.el (yank-media-types): Make the prefix include
data types not supported by the backend, too.
2021-11-08 Eric Abrahamsen <eric@ericabrahamsen.net>
Don't have nntp-report signal an error
* lisp/gnus/nntp.el (nntp-report): This should behave as much as
possible like nnheader-report, which only logs the error and returns
nil.
2021-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/xdg.el (xdg--dir-home): Make it a function
2021-11-08 Campbell Barton <ideasman42@gmail.com>
* lisp/subr.el (with-undo-amalgamate): New macro
This allows commands to be made without adding undo-barriers, e.g.
kmacro-exec-ring-item.
2021-11-08 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-generic.el: Add reference to inspiration
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Switch yank-media--get-selection back to the backend function
* lisp/yank-media.el (yank-media--get-selection): Switch back to
gui-backend-get-selection until gui-get-selection is re-fixed.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Fix charset issues when yanking non-plain-text elements"
This reverts commit 5e66c75e0b6b91b6f5d9aa46c824e8209ade8f2a.
This apparently led to problems on Windows. The issues have to
be examined first before attempting a new fix.
2021-11-08 Stefan Kangas <stefan@marxist.se>
* admin/automerge: Die if changing directory fails.
2021-11-08 Stefan Kangas <stefan@marxist.se>
Merge from origin/emacs-28
fe91f4438c ; * etc/PROBLEMS: Move librsvg-related item to better loca...
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Remove code what would always maximize xwidgets on Macos
* src/xwidget.c (x_draw_xwidget_glyph_string): Remove code that
would always maximize the widget on Macos (bug#51674). This code
was probably added to work around a resizing bug that has since
been fixed.
2021-11-08 akater <nuclearspace@gmail.com>
lisp/emacs-lisp/lisp-mode.el: Fix parser state corruption.
* lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Preserve
the point.
* test/lisp/progmodes/elisp-mode-resources/flet.erts: Add corresponding
test example (bug#9622).
2021-11-08 Po Lu <luangruo@yahoo.com>
Fix resize of xwidgets on GTK
* src/xwidget.c (Fxwidget_resize): Queue widget for re-allocation
after setting its size request (bug#51679).
2021-11-08 Po Lu <luangruo@yahoo.com>
Fix hang when displaying xwidget script dialog
* src/xwidget.c (webkit_script_dialog_cb): New function.
(Fmake_xwidget): Attach script callback signal (bug#51674).
2021-11-08 Stefan Kangas <stefan@marxist.se>
image-dired: Set window-resize-pixelwise to t
* lisp/image-dired.el (image-dired-thumbnail-mode): Set
'window-resize-pixelwise' to t.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Mention yank-media-types in the manual
* doc/lispref/frames.texi (Yanking Media): Mention yank-media-types.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Make html-mode--html-yank-handler more resilient
* lisp/textmodes/sgml-mode.el (html-mode--html-yank-handler): The
HTML may not be valid, so suppress errors.
2021-11-08 Lars Ingebrigtsen <larsi@gnus.org>
Fix yank-media--get-selection thinko in previous change
* lisp/yank-media.el (yank-media--get-selection): Fix thinko after
previous change.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Clean up the yank-media data massaging
* lisp/yank-media.el (yank-media--get-selection): Put the
nul-massaging code...
(yank-media-types--format): ... here instead, and decode utf-16
better.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Add a new debugging/exploration command `yank-media-types'
* lisp/yank-media.el (yank-media-types): New command.
(yank-media-types--format): Helper command.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Fix charset issues when yanking non-plain-text elements
* lisp/select.el (gui-get-selection): Make (gui-get-selection
'CLIPBOARD 'text/html) get decoded correctly (bug#31149).
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Rename 'register-yank-media-handler'
* lisp/textmodes/sgml-mode.el (html-mode):
* lisp/gnus/message.el (message-mode):
* doc/lispref/frames.texi (Yanking Media): Adjust.
* lisp/yank-media.el (yank-media): Adjust doc string.
(yank-media-handler): Rename from `register-' because that may
cause confusion with register.el functions.
2021-11-07 Stefan Kangas <stefan@marxist.se>
Prefer ert-with-temp-(directory|file) in most remaining tests
* test/lisp/auth-source-tests.el (auth-source-test-searches):
* test/lisp/autorevert-tests.el (auto-revert-test00-auto-revert-mode)
(auto-revert-test01-auto-revert-several-files)
(auto-revert-test02-auto-revert-deleted-file)
(auto-revert-test03-auto-revert-tail-mode)
(auto-revert-test04-auto-revert-mode-dired)
(auto-revert-test05-global-notify)
(auto-revert-test06-write-file)
(auto-revert-test07-auto-revert-several-buffers):
* test/lisp/calendar/icalendar-tests.el (icalendar-tests--do-test-cycle):
* test/lisp/custom-tests.el (custom-theme--load-path):
* test/lisp/dired-aux-tests.el (dired-test-bug27496)
(with-dired-bug28834-test):
* test/lisp/emacs-lisp/bytecomp-tests.el (test-byte-comp-compile-and-load)
(bytecomp-tests--dest-mountpoint)
(bytecomp-tests--target-file-no-directory):
* test/lisp/emacs-lisp/gv-tests.el (gv-tests--in-temp-dir):
* test/lisp/eshell/eshell-tests.el (with-temp-eshell)
(eshell-test-command-result):
* test/lisp/info-xref-tests.el (info-xref-test-makeinfo):
* test/lisp/vc/vc-tests.el (vc-test--create-repo)
(vc-test--register, vc-test--state, vc-test--working-revision)
(vc-test--checkout-model, vc-test--rename-file)
(vc-test--version-diff):
* test/src/buffer-tests.el (test-kill-buffer-auto-save-delete):
* test/src/comp-tests.el (comp-tests-bootstrap):
* test/src/process-tests.el (process-test-quoted-batfile): Prefer
'ert-with-temp-(directory|file)' to using 'make-temp-file' directly.
2021-11-07 Po Lu <luangruo@yahoo.com>
Set clipping when dumping stretch glyphs in some cases
* src/nsterm.m (ns_draw_glyph_string): Always focus even when dumping
stretch glyphs in s->next (bug#51653).
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Fix charset issues in text/html yanking
* lisp/yank-media.el (yank-media--get-selection): Use
gui-backend-get-selection instead of the higher-level function
which guesses wrong on the charset on many types.
(yank-media): Fix the case where there's only one match.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Suppress a compilation warning about vc-switch-backend
* lisp/vc/vc-hooks.el (vc-prefix-map): Suppress a warning about an
obsolete command.
2021-11-07 Miha Rihtaršič <miha@kamnitnik.top>
Improve undoing of RET in comint and eshell
* lisp/comint.el (comint-send-input):
(comint-accumulate):
* lisp/eshell/esh-mode.el (eshell-send-input): Before sending input to
the process, delete it and reinsert it again. Undoing this
insertion with 'C-/' will delete the region, moving the process mark
back to its original position (bug#49484).
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Allow 'C-x n d' to work in texinfo-mode
* lisp/textmodes/texinfo.el (texinfo-mode): Set
beginning/end-of-defun functions to allow narrowing to the current
node.
(texinfo--beginning-of-defun, texinfo--end-of-defun): New functions.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Make paragraph/filling functions in texinfo-mode work better
* lisp/textmodes/texinfo.el (texinfo-mode): Make paragraph
definitions more traditional. This makes (forward-paragraph 1)
behave better.
(texinfo-mode): Set a new filling function.
(texinfo--fill-paragraph): New filling function.
(texinfo-fillable-commands): New variable (bug#49558).
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Make debugging ert--erts-specifications easier
* lisp/emacs-lisp/ert.el (ert--erts-specifications): Strip text
properties from specs to make debugging easier.
2021-11-07 Alan Mackenzie <acm@muc.de>
Merge from origin/emacs-28
0c51db6bb1 Amend Follow Mode to handle header lines and tab lines cor...
261367781b * lisp/files.el (user-emacs-directory-warning): Clarify do...
8d9b55330d * doc/emacs/frames.texi (Tab Bars): Add text about mouse a...
d9b0b730e8 * doc/emacs/frames.texi (Tab Bars): Describe tab-last.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Match password prompts from new OpenSSH
* lisp/comint.el (comint-password-prompt-regexp): Add support for
the openssh-8.6p1 "(user@host) Password:" format (bug#51666).
2021-11-07 Jim Porter <jporterbugs@gmail.com>
Fix intermittent electric test failures
* test/lisp/electric-tests.el
(whitespace-chomping-dont-cross-comments): Move
'c-toggle-comment-style' to here.: (bug#51665).
2021-11-07 Juri Linkov <juri@linkov.net>
Simplify c8acc5fd92ad9979fc5870623014290cad998337
* lisp/isearch.el (isearch-filter-visible): Add check if there are
no properties 'inhibit-isearch' in the search range,
instead of code of c8acc5fd92ad9979fc5870623014290cad998337.
2021-11-07 Michael Albinus <michael.albinus@gmx.de>
Merge from origin/emacs-28
7fdb2ae412 Add some unit tests for 'abbreviate-file-name'
21de5e7b2e Fix compilation MinGW warnings
54b726c815 ; * etc/PROBLEMS: More specific recipe for WebKit-related ...
d85cf33e49 Escape '%' in filenames to fix flymake warnings
6243a43ac2 Fix search string generation in nnimap-make-thread-query
f05b8a939b Update to Org 9.5-68-g77e2ec
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-x 8 e e' work better in the terminal
* lisp/international/emoji.el (emoji--adjust-displayable-1): Make
something rudimentary work on non-graphical Emacsen for `C-x 8 e e'.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Make emoji-describe really describe only the glyph under point
* lisp/international/emoji.el (emoji-describe): Only look at the
compositions under point (bug#51659).
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Don't inhibit compilation of emoji.elc
* lisp/international/emoji.el (emoji--generate-file): Further
obfuscate to not inhibit byte compilation.
2021-11-07 Eli Zaretskii <eliz@gnu.org>
'yank-media' is not universally supported
* doc/emacs/killing.texi (Clipboard):
* etc/NEWS: Say that 'yank-media' is not universally supported.
2021-11-07 Po Lu <luangruo@yahoo.com>
Free find text in correct procedure
* src/xwidget.c (Fxwidget_webkit_previous_result): Don't free find
text.
(Fxwidget_webkit_finish_search): Free find text here instead.
2021-11-07 Po Lu <luangruo@yahoo.com>
Fix C-r inside xwidget isearch
* lisp/xwidget.el (xwidget-webkit-isearch-backward): Ask for previous
result.
2021-11-07 Po Lu <luangruo@yahoo.com>
Fix xwidget-webkit-goto-history
* src/xwidget.c (xwidget-webkit-goto-history): Use
WebKitBackForwardList and XFIXNUM instead of XFIXNAT (bug#51651).
2021-11-07 Po Lu <luangruo@yahoo.com>
Handle WEBKIT_POLICY_DECISION_TYPE_NEW_WINDOW_ACTION appropriately
* src/xwidget.c (webkit_decide_policy_cb): Send an xwidget display
event when a webpage asks to create a new window.
2021-11-07 Po Lu <luangruo@yahoo.com>
Document the xwidget type
* doc/lispref/elisp.texi: Add Xwidget Type to the menu.
* doc/lispref/objects.texi (Editing Types): Add Xwidget Type to the
menu.
(Xwidget Type): New node.
2021-11-07 Eli Zaretskii <eliz@gnu.org>
Improve detection of suspiciously reordered text segments
* src/bidi.c (bidi_find_first_overridden): Detect reordered weak
and neutral characters as well.
* lisp/international/mule-cmds.el
(highlight-confusing-reorderings): Count and announce how many
instances were found.
* test/src/xdisp-tests.el
(xdisp-tests--find-directional-overrides-case-3): New test.
(xdisp-tests--find-directional-overrides-case-2): Adjust expected
result.
2021-11-07 Cristian <crstml@libero.it> (tiny change)
Another addition to latin-2 input methods
* lisp/leim/quail/latin-pre.el ("latin-2-prefix"):
* lisp/leim/quail/latin-post.el ("latin-2-postfix"): Add variants
of "`t" and "t," for Romanian. (Bug#51638)
2021-11-07 Eli Zaretskii <eliz@gnu.org>
Fix documentation and coding style in recent xwidget commits
* src/xwidget.c (Fmake_xwidget, find_widget)
(xwidget_motion_or_crossing, xwidget_button_1, xwidget_button):
Fix style in comments.
(Fxwidget_perform_lispy_event): Doc fix.
* src/xwidget.c (set_widget_if_text_view, kill_frame_xwidget_views):
* src/keyboard.c (make_lispy_event): Fix style of braces.
* lisp/xwidget.el (xwidget-webkit-isearch-mode): Fix keys in doc
string.
* doc/lispref/commands.texi (Xwidget Events): Fix markup and
wording.
* doc/lispref/display.texi (Xwidgets): Fix wording and markup.
* doc/emacs/misc.texi (Embedded WebKit Widgets): Fix wording.
* etc/NEWS: Fix wording and punctuation.
2021-11-07 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/lispref/tips.texi (Coding Conventions): Mention GNU "path" convention
Suggested by Ihor Radchenko <yantar92@gmail.com>.
2021-11-07 Lars Ingebrigtsen <larsi@gnus.org>
Ensure that the x_show_hourglass is seen
* src/xterm.c (x_show_hourglass): Ensure that the hourglass is
seen (bug#51649).
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Actually start the alarms in atimer
* src/atimer.c (set_alarm): Actually start both timerfd and
alarms (attempted in 4107549a).
2021-11-06 Po Lu <luangruo@yahoo.com>
Fix backspace in xwidget webkit isearch
* lisp/xwidget.el: Set backspace to
xwidget-webkit-isearch-erasing-char (bug#51647).
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Remove too-agressive window refresh in the hourglass code
* src/xterm.c (x_show_hourglass): Don't force a spurious refresh
(bug#51649).
2021-11-06 Po Lu <luangruo@yahoo.com>
Fix build on nextstep
* src/xwidget.h: Make some prototypes conditional to X-Windows.
(struct xwidget): Move find_text field out of GTK conditional.
* src/xwidget.c (Fmake_xwidget): Move find_text out of GTK
conditional.
* src/print.c (print_vectorlike): Print correct pointer on macOS.
2021-11-06 Po Lu <luangruo@yahoo.com>
Improve xwidget isearch visuals
* lisp/xwidget.el (xwidget-webkit-isearch--update): New argument
ONLY-MESSAGE.
(xwidget-webkit-isearch-forward)
(xwidget-webkit-isearch-backward): Always refresh message.
(xwidget-webkit-isearch-mode): Update message when enabling.
2021-11-06 Po Lu <luangruo@yahoo.com>
Fix web inspector
* src/xwidget.c (Fmake_xwidget): Move developer extra initialization.
2021-11-06 Po Lu <luangruo@yahoo.com>
Default to creating new related sessions
* doc/lispref/display.texi:
* etc/NEWS: Document changes.
* lisp/xwidget.el (xwidget-insert): Accept an extra RELATED argument.
(xwidget-webkit-new-session): Pass current session as RELATED if
present.
* src/xwidget.c (Fmake_xwidget): Make RELATED argument public.
2021-11-06 Po Lu <luangruo@yahoo.com>
Rationalize creation decisions
* src/xwidget.c (webkit_create_cb): Only create a new widget if type
is OTHER.
2021-11-06 Po Lu <luangruo@yahoo.com>
Make "open in new window" from an xwidget's context menu work
* doc/lispref/commands.texi (Xwidget Events): Document new event type.
* doc/lisprefdisplay.texi (Xwidgets): Document new argument to
make-xwidget, and new function.
* etc/NEWS: Document changes.
* lisp/xwidget.el: Bind xwidget-display-event to
xwidget-webkit-display-event.
(xwidget-webkit-import-widget): New function.
(xwidget-webkit-display-event): New command.
* src/keyboard.c (kbd_buffer_get_event): New event type.
(make_lispy_event): Handle XWIDGET_DISPLAY_EVENTs.
(syms_f_keyboard): Define new symbol.
* src/termhooks.h (enum event_kind): New enum XWIDGET_DISPLAY_EVENT.
* src/xwidget.c (webkit_create_cb)
(store_xwidget_display_event)
(webkit_ready_to_show)
(webkit_create_cb_1, webkit_create_cb)
(Fset_xwidget_buffer): New functions.
(Fmake_xwidget): Add internal argument RELATED and connect create
signal.
(syms_of_xwidget): Define now subrs.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add xwidget-webkit-isearch to the menu bar and tool bar
* lisp/xwidget.el: Add isearch to tool bar and menu bar.
(xwidget-webkit-mode-map)
(xwidget-webkit-isearch-mode-map): Reorder key definitions so the
equivalent key shows up as `C-s' in the menu bar.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add xwidget-webkit-isearch-mode
* etc/NEWS:
* doc/emacs/misc.texi: Document changes
* lisp/xwidget.el (xwidget-webkit-mode-map): Bind C-s and C-r to
webkit isearch.
(xwidget-webkit-isearch--string, xwidget-webkit-isearch--is-reverse):
New buffer-local variables.
(xwidget-webkit-isearch--update, xwidget-webkit-isearch-erasing-char)
(xwidget-webkit-isearch-printing-char, xwidget-webkit-isearch-forward)
(xwidget-webkit-isearch-backward, xwidget-webkit-isearch-exit):
New functions.
(xwidget-webkit-isearch-mode-map): New keymap.
(xwidget-webkit-isearch-mode): New minor mode.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add functions for performing searches on xwidgets
* etc/NEWS:
* doc/lispref/display.texi: Document changes.
* src/xwidget.c (Fxwidget_webkit_search)
(Fxwidget_webkit_next_result)
(Fxwidget_webkit_previous_result)
(Fxwidget_wenkit_finish_search): New functions.
(syms_of_xwidget): Define new built-ins.
(kill_buffer_xwidgets): Free search query if present.
* src/xwidget.h (struct xwidget): Add field for search query.
2021-11-06 Po Lu <luangruo@yahoo.com>
Make it safe to have non-xwidget views in xwidget-view-list
* src/xwidget.c (define_cursors, offscreen_damage_event): Check
XWIDGET_VIEW_P before XXWIDGET_VIEW.
2021-11-06 Po Lu <luangruo@yahoo.com>
Make xwidgets print nicer
* src/print.c (print_vectorlike): Print xwidgets with ID and widget
pointer, and print xwidget views separately.
2021-11-06 Po Lu <luangruo@yahoo.com>
Fix cursor for new widget views
* src/xwidget.c (Fmake_xwidget): Clear hit result.
(cursor_for_hit): Use integer hit result.
(define_cursors): Set hit result appropriately.
(widget_init_view): Set cursor to the existing hit result.
* src/xwidget.h (struct xwidget): Add hit result field.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add support for cursors in xwidget views
* src/xwidget.c (mouse_target_changed): New function.
(Fmake_xwidget): Attach mouse target changed signal.
(cursor_for_hit, define_cursors, mouse_target_changed): New functions.
(xwidget_init_view): Set default cursor to nontext cursor.
(x_draw_xwidget_glyph_string): Define cursor.
* src/xwidget.h (struct xwidget_view): Add cursor field.
2021-11-06 Po Lu <luangruo@yahoo.com>
Display page titles in xwidget webkit header line
* lisp/xwidget.el (xwidget-webkit--title): New variable.
(xwidget-webkit-callback, xwidget-webkit-mode): Set header line format
and associated variables.
2021-11-06 Po Lu <luangruo@yahoo.com>
Improve detail of load-changed xwidget events
* src/xwidget.c (webkit_view_load_changed_cb): Improve event detail.
* etc/NEWS: Document changes.
* doc/lispref/commands.texi: Document Xwidget events.
* doc/lispref/display.texi (Xwidgets): Add reference to Xwidget events.
2021-11-06 Po Lu <luangruo@yahoo.com>
Make the WebKit inspector available
* etc/NEWS: Document changes.
* src/xwidget.c (find_widget_at_pos)
(find_widget)
(find_widget_cb): New functions.
(struct widget_search_data): New structure.
(Fmake_xwidget): Enable web inspector for WebKit widgets.
(Fxwidget_perform_lispy_event): Use current focus instead of
hard-coded widget.
(xwidget_button_1, xwidget_button, xwidget_motion_or_crossing):
Use window at event position instead of the default widget.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add xwidget-webkit-copy-selection-as-kill to the menu bar
* lisp/xwidget.el: New menu item
`xwidget-webkit-copy-selection-as-kill'.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add new tool-bar items to xwidget-webkit
* etc/images/README: Update copyright information for new images.
* etc/images/connect-to-url.pbm:
* etc/images/connect-to-url.xpm: Import new images from GNOME.
* lisp/xwidget.el (xwidget-webkit-tool-bar-map): New keymap variable.
(xwidget-webkit-mode): Set tool-bar-map to the appropriate map.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add a menu to xwidget-webkit
* lisp/xwidget.el: Add a menu to xwidget-webkit-mode-map.
2021-11-06 Po Lu <luangruo@yahoo.com>
Redisplay xwidget view windows instead of just setting their size
* src/xwidget.c (Fxwidget_resize): Mark windows as needing redisplay
and redisplay instead.
2021-11-06 Po Lu <luangruo@yahoo.com>
Select window when clicking on an xwidget view
* src/xterm.c (handle_one_xevent): Select window when clicking on an
xwidget view.
2021-11-06 Po Lu <luangruo@yahoo.com>
Fix xwidget scrolling
* src/xterm.c (x_scroll_run): Use from_y and height.
2021-11-06 Po Lu <luangruo@yahoo.com>
Allow enabling xwidget-webkit-edit-mode via a binding
* doc/emacs/misc.texi: Document changes.
* lisp/xwidget.el (xwidget-webkit-mode-map): Add shortcut for
xwidget-webkit-edit-mode.
2021-11-06 Po Lu <luangruo@yahoo.com>
Add xwidget-webkit-edit-mode to make using the WebKit browser easier
* doc/emacs/misc.texi: Document changes.
* etc/NEWS: Document recent changes.
* lisp/xwidget.el (xwidget-webkit-pass-command-event): New variable.
* lisp/xwidget.el (xwidget-perform-lispy-event): New function
declaration.
* lisp/xwidget.el (xwidget-webkit-edit-mode): New minor mode.
2021-11-06 Po Lu <luangruo@yahoo.com>
Fix special events in xwidgets
* src/xwidget.c (set_widget_if_text_view): New function.
(Fxwidget_perform_lispy_event): Fix for webkit widgets.
2021-11-06 Po Lu <luangruo@yahoo.com>
Fix drag on xwidget motion events
* src/xwidget.c (xwidget_motion_or_crossing): Set state.
2021-11-06 Po Lu <luangruo@yahoo.com>
Handle crossing events on xwidget windows correctly
* src/xterm.c (handle_one_xevent): Clear help and mouse face
when handling xwidget entry events.
* src/xwidget.c (xwidget_motion_or_crossing): Add device to crossing
events.
(x_draw_xwidget_glyph_string): Add EnterWindowMask and
LeaveWindowMask.
2021-11-06 Po Lu <luangruo@yahoo.com>
Draw offscreen surface
* src/xwidget.c (xv_do_draw): Draw offscreen surface.
2021-11-06 Po Lu <luangruo@yahoo.com>
Implement function for sending events to widgets
* doc/lispref/display.texi (Xwidgets): Document changes.
* src/keyboard.c (lispy_function_keys): Make non-static on X.
* src/keyboard.h (lispy_function_keys): Expose lispy_function_keys on
X.
* src/xterm.c (x_emacs_to_x_modifiers): Export function.
* src/xterm.h (x_emacs_to_x_modifiers): Likewise.
* src/xwidget.c (Fxwidget_perform_lispy_event)
(find_suitable_keyboard): New functions.
(syms_of_xwidget): Define new subr.
2021-11-06 Po Lu <luangruo@yahoo.com>
Use gtk_widget_queue_draw instead of xv_do_draw
* src/xwidget.c (x_draw_xwidget_glyph_string): Call
gtk_widget_queue_draw.
2021-11-06 Po Lu <luangruo@yahoo.com>
Prefer XMoveResizeWindow to XMoveWindow for resizing xwidgets
* src/xwidget.c (x_draw_xwidget_glyph_string): Prefer
XMoveResizeWindow to avoid extra expose events.
2021-11-06 Po Lu <luangruo@yahoo.com>
Allow xwidgets to accept motion and button events
* src/xterm.c (handle_one_xevent): Pass through some events to
xwidgets.
* src/xwidget.c (synthesize_focus_in_event)
(find_suitable_pointer, xwidget_button_1)
(xwidget_button, xwidget_motion_or_crossing): New functions.
(xwidget_view_from_window): Draw offscreen window instead of the
widget.
(x_draw_xwidget_glyph_string): Set appropriate event masks.
* src/xwidget.h (xwidget_button, xwidget_motion_or_crossing): New
functions.
2021-11-06 Po Lu <luangruo@yahoo.com>
Destroy xwidgets when destroying frames
* src/xterm.c (x_free_frame_resources): Make sure to kill xwidget views.
* src/xwidget.c (Fmake_xwidget): Attach damage event signal.
(offscreen_damage_event): Operate on xwidgets and not individual
views.
(xwidget_init_view): Don't attach damage event signal here.
(Fdelete_xwidget_view): Destroy window correctly and stop removing
damage event signal.
(kill_frame_xwidget_views): New function.
* src/xwidget.c (kill_frame_xwidget_views): New function.
2021-11-06 Po Lu <luangruo@yahoo.com>
Enable scrolling optimization for xwidgets
* src/dispextern.h (struct glyph): Store xwidget ID instead of a
reference.
* src/dispnew.c (scrolling_window): Enable scrolling optimization on
xwidget builds.
* src/xdisp.c (fill_xwidget_glyph_string, produce_xwidget_glyph):
Obtain xwidget from ID.
* src/xterm.c (x_scroll_run): Scroll xwidget windows.
* src/xwidget.c (id_to_xwidget_map, xwidget_counter): New xwidget
variables.
(Fmake_xwidget): Assign each xwidget a unique ID, and keep track of
that ID.
(xwidget_from_id): New function.
(syms_of_xwidget): Initialize id_to_xwidget_map.
(xwidget_end_redisplay): Lookup xwidgets via ID.
* src/xwidget.h (struct xwidget): Add ID field.
(xwidget_from_id): New function.
2021-11-06 Po Lu <luangruo@yahoo.com>
Use an X window to display xwidgets on X11
Since Emacs draws using X11 primitives, Emacs drawing operations can
erase the GtkDrawingArea used to draw the offscreen widget, which
leads to unpleasant flickering effects, all of which can be prevented
by creating a native X window and drawing to that instead.
* src/xterm.c (x_window_to_frame): Return xwidget window if
appropriate.
(handle_one_xevent): Handle xwidget expose events.
* src/xwidget.c (x_window_to_xvw_map): New variable.
(xwidget_view_from_window): New function.
(xwidget_show_view, xwidget_hide_view)
(offscreen_damage_event): Move to drawing xwidgets with X windows.
(xv_do_draw)
(xwidget_expose): New function.
(xwidget_osr_draw_cb, xwidget_osr_event_forward)
(xwidget_osr_event_set_embedder): Removed.
(xwidget_init_view): Replace use of GtkDrawingArea with that of an X
window.
(x_draw_xwidget_glyph_string): Prevent xwidget views from constantly
generating expose events, and use an X window instead of a
GtkDrawingArea.
(syms_of_xwidget): Initialize x_window_to_xwv_map.
src/xwidget.h (struct xwidget_view): Replace GTK widgets with
X-related fields.
(xwidget_view_from_window, xwidget_expose): New functions.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix pp-emacs-lisp-code for `when' and related
* lisp/emacs-lisp/pp.el (pp--format-definition): Skip edebug specs
we don't understand at all.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix html-mode--image-yank-handler prompting
* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler): Fix
two format statements and rearrange images.
2021-11-06 Stefan Kangas <stefan@marxist.se>
Ensure return value of ert-with-temp-directory
* lisp/emacs-lisp/ert-x.el (ert-with-temp-file): Ensure return
value when :directory is t is the directory name.
* test/lisp/emacs-lisp/ert-x-tests.el
(ert-x-tests-with-temp-directory): Extend test for the above.
2021-11-06 Stefan Kangas <stefan@marxist.se>
Prefer ert-with-temp-(directory|file)
* test/lisp/abbrev-tests.el (read-write-abbrev-file-test)
(read-write-abbrev-file-test-with-props)
(abbrev-edit-save-to-file-test):
* test/lisp/auth-source-tests.el (auth-source-test-netrc-create-secret)
(auth-source-delete):
* test/lisp/autoinsert-tests.el (autoinsert-tests-auto-insert-file):
* test/lisp/bookmark-tests.el (with-bookmark-test-save-load):
* test/lisp/buff-menu-tests.el (buff-menu-24962):
* test/lisp/calendar/icalendar-tests.el (icalendar-tests--do-test-export):
* test/lisp/calendar/todo-mode-tests.el (with-todo-test):
* test/lisp/dired-tests.el
(dired-test-bug27243-01, dired-test-bug27243-02)
(dired-test-bug27243-03, dired-test-bug27631)
(dired-test-bug27968, dired-test-with-temp-dirs):
* test/lisp/dired-x-tests.el (dired-test-bug25942):
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--with-temp-file):
* test/lisp/emacs-lisp/check-declare-tests.el (check-declare-tests-scan)
(check-declare-tests-verify-mismatch):
* test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env):
* test/lisp/emacs-lisp/package-tests.el (with-package-test)
(package-test-signed):
* test/lisp/emacs-lisp/testcover-tests.el (testcover-tests-markup-region)
(testcover-tests-run-test-case):
* test/lisp/emulation/viper-tests.el (viper-test-undo-kmacro):
* test/lisp/epg-tests.el (with-epg-tests):
* test/lisp/eshell/em-hist-tests.el (eshell-write-readonly-history):
* test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27631):
* test/lisp/ffap-tests.el (ffap-tests-25243):
* test/lisp/files-tests.el (files-tests-bug-18141)
(files-tests-read-file-in-~, files-tests-make-directory)
(files-tests-copy-directory, files-tests-executable-find)
(files-tests-dont-rewrite-precious-files)
(files-tests--save-some-buffers):
* test/lisp/ls-lisp-tests.el (ls-lisp-test-bug27631):
* test/lisp/mail/uudecode-tests.el (uudecode-tests-decode-region-internal)
(uudecode-tests-decode-region-external):
* test/lisp/net/browse-url-tests.el (browse-url-tests-delete-temp-file):
* test/lisp/progmodes/elisp-mode-tests.el (xref--case-insensitive):
* test/lisp/progmodes/etags-tests.el (etags-buffer-local-tags-table-list):
* test/lisp/progmodes/flymake-tests.el (ruby-backend):
* test/lisp/progmodes/python-tests.el (python-tests-with-temp-file):
* test/lisp/progmodes/sql-tests.el (with-sql-test-connect-harness):
* test/lisp/saveplace-tests.el (saveplace-test-save-place-to-alist/file)
(saveplace-test-forget-unreadable-files)
(saveplace-test-place-alist-to-file):
* test/lisp/so-long-tests/spelling-tests.el:
* test/lisp/textmodes/reftex-tests.el (reftex-locate-bibliography-files)
(reftex-parse-from-file-test):
* test/lisp/thumbs-tests.el (thumbs-tests-thumbsdir/create-if-missing):
* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-bug9726)
(vc-bzr-test-bug9781, vc-bzr-test-faulty-bzr-autoloads):
* test/lisp/vc/diff-mode-tests.el (diff-mode-test-ignore-trailing-dashes):
* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
* test/lisp/wdired-tests.el (wdired-test-bug32173-01)
(wdired-test-bug32173-02, wdired-test-symlink-name)
(wdired-test-unfinished-edit-01, wdired-test-bug34915)
(wdired-test-bug39280):
* test/src/buffer-tests.el (test-kill-buffer-auto-save-default):
* test/src/filelock-tests.el (filelock-tests--fixture):
* test/src/inotify-tests.el (inotify-file-watch-simple):
* test/src/undo-tests.el (undo-test-file-modified): Prefer
'ert-with-temp-(directory|file)' to using 'make-temp-file' directly.
In some cases, this is just cleanup, but in several cases this fixes
bugs where an error would have lead to us not cleaning up.
2021-11-06 Stefan Kangas <stefan@marxist.se>
Add generated suffix to test temp file names
* lisp/emacs-lisp/ert-x.el
(ert-with-temp-file): Add temp file name suffix based on file name of
caller. Reflow docstring.
(ert--with-temp-file-generate-suffix): New defun.
* test/lisp/emacs-lisp/ert-x-tests.el
(ert-x-tests--with-temp-file-generate-suffix): New test.
2021-11-06 dickmao <none>
Fix byte compilation of package built-ins
* lisp/emacs-lisp/package.el
(package--activate-autoloads-and-load-path):
(package--load-files-for-activation): Remove.
(package--library-stem): New function, because
file-name-sans-extension is insufficient.
(package--reload-previously-loaded): New function.
(package-activate-1): Reload directly.
(package--files-load-history):
(package--list-of-conflicts):
(package--list-loaded-files): Remove
(package-unpack): Adjust call.
* test/lisp/emacs-lisp/package-tests.el (macro-builtin-func): Test.
(macro-builtin-10-and-90): Test.
(package-test-macro-compilation): Test.
(package-test-macro-compilation-gz): Test (bug#49708).
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option eww-url-transformers
* doc/misc/eww.texi (Advanced): Document it.
* lisp/net/eww.el (eww-url-transformers): New user option.
(eww-remove-tracking): New default function.
(eww--transform-url): Helper function.
(eww-follow-link): Use it.
(eww): Ditto.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Expand register-yank-media-handler doc string
* lisp/yank-media.el (register-yank-media-handler): Expand doc string.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix yank-media logic when there's several handlers
* lisp/yank-media.el (yank-media): Fix logic when there's several
different handler functions.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Allow yanking images to html-mode
* lisp/net/mailcap.el (mailcap-mime-type-to-extension): Autoload.
* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler): New
function.
(html-mode): Accept image/*.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix "Yanking Media" sectioning
* doc/lispref/frames.texi (Yanking Media): Fix sectioning.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Support yank-media in html-mode
* lisp/textmodes/sgml-mode.el (html-mode--html-yank-handler): New
function.
(html-mode): Handle text/html.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in previous yank-media--get-selection change
* lisp/yank-media.el (yank-media--get-selection): Fix typo in
previous change.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix nul-terminated text/* strings from some programs
* lisp/yank-media.el (yank-media--get-selection): Some programs
nul-terminate text/* strings. Fix that.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Make the lambda/closure buttons in `C-h b' say what they do
* lisp/button.el (buttonize): Add a help-echo property.
* lisp/help.el (help--describe-command): Say what the
lambda/closure buttons do.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add mouse-face to buttonize
* lisp/button.el (buttonize): Add the highlight mouse-face.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add a framework for yanking media into Emacs
* doc/emacs/killing.texi (Clipboard): Refer to it.
* doc/lispref/frames.texi (Yanking Media): Document the mechanism.
* lisp/yank-media.el: New file.
* lisp/gnus/message.el (message-mode): Register a yank handler for
images.
(message-insert-screenshot): Factor out image code from here...
(message--yank-media-image-handler): ... to here.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add new function mailcap-mime-type-to-extension
* lisp/net/mailcap.el (mailcap-mime-type-to-extension): Add a new
helper function to do the reverse of `mailcap-file-name-to-mime-type'.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add a pcase-let example to the manual
* doc/lispref/control.texi (Destructuring with pcase Patterns):
Add a pcase-let example.
2021-11-06 Stefan Kangas <stefan@marxist.se>
New user option image-auto-resize-max-scale-percent
* lisp/image-mode.el (image-auto-resize-max-scale-percent): New
user option to limit how much 'fit-window' will scale up an image.
(image--scale-within-limits-p): New function.
(image-toggle-display-image): Respect above new user option.
2021-11-06 Stefan Kangas <stefan@marxist.se>
New command image-transform-fit-to-window
* lisp/image-mode.el (image-auto-resize, image-transform-resize):
Add new value 'fit-window', meaning to scale the image up or down
to fit the window. (Bug#)
(image-transform-fit-to-window): New command.
(image-transform-fit-to-height, image-transform-fit-to-width):
Make obsolete in favor of above new command.
(image-mode-map): Bind "s w" to 'image-transform-fit-to-window'.
Move binding for obsolete command 'image-transform-fit-to-width'
to "s i".
(image-mode-map): Add menu entry for
'image-transform-fit-to-window'. Remove menu entries for above
obsolete commands.
* doc/emacs/files.texi (Image Mode): Update documentation.
(image-transform-fit-both): Doc fix.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add outline-minor-mode-use-buttons doc string caveat
* lisp/outline.el (outline-minor-mode-use-buttons): Note that the
feature is for special mode buffers only (bug#51629).
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Make `outline-hide-body' work in `C-h b' buffers
* lisp/outline.el (outline-flag-region): Update buttons on most
outline toggling commands (bug#51629).
(outline--fix-up-all-buttons): Take a region as parameter.
(outline-cycle-buffer): Adjust call.
2021-11-06 Stefan Kangas <stefan@marxist.se>
Make substitute-command-keys regexp tests more strict
* test/lisp/help-tests.el (with-substitute-command-keys-test): Make
regexp tests more strict.
2021-11-06 Stefan Kangas <stefan@marxist.se>
Replace some macros with ert-with-temp-(file|directory)
* test/lisp/custom-tests.el (custom-tests--with-temp-dir):
* test/lisp/files-tests.el (files-tests--with-temp-file):
* test/lisp/progmodes/project-tests.el
(project-tests--with-temporary-directory):
* test/src/emacs-module-tests.el (module--with-temp-directory):
* test/src/emacs-tests.el (emacs-tests--with-temp-file):
* test/src/lread-tests.el (lread-tests--with-temp-file):
* test/src/process-tests.el (process-tests--with-temp-directory):
Replace macros with 'ert-with-temp-(file|directory)'. Update callers.
2021-11-06 Stefan Kangas <stefan@marxist.se>
New convenience macros ert-with-temp-(file|directory)
* lisp/emacs-lisp/ert-x.el
(ert-with-temp-file)
(ert-with-temp-directory): New macros.
* test/lisp/emacs-lisp/ert-x-tests.el
(ert-x-tests-with-temp-directory)
ert-x-tests-with-temp-directory/text-signals-error
(ert-x-tests-with-temp-file)
(ert-x-tests-with-temp-file/handle-error)
(ert-x-tests-with-temp-file/prefix-and-suffix-kwarg)
(ert-x-tests-with-temp-file/text-kwarg)
(ert-x-tests-with-temp-file/unknown-kwargs-signals-error): New tests.
2021-11-06 F. Jason Park <jp@neverwas.me>
Don't send empty lines for unknown commands in ERC
* lisp/erc/erc.el (erc-cmd-default): prevent excess trailing newlines
from being sent.
* test/lisp/erc/erc-tests.el: Update `erc-process-input-line' test to
check for excess line feeds with unknown commands.
2021-11-06 F. Jason Park <jp@neverwas.me>
Deprecate instead of redefine erc-server-reconnecting
* lisp/erc/erc-backend.el (erc-server-reconnecting,
erc--server-reconnecting): obsolete and replace the former with new
internal variant, which carries a simplified meaning.
(erc-server-reconnect-p, erc--server-reconnect-p): Obsolete and
replace the former with an internal function, and change behavior to
disregard `erc-server-reconnecting' when rendering verdict.
(erc-process-sentinel-2): ensure local var `erc--server-reconnecting'
is t when timers are scheduled or firing, and nil otherwise, including
after retries exhausted. This agrees with the straightforward way
`erc-server-reconnecting' has always been used by `erc-cmd-RECONNECT'.
(erc-server-connect): set `erc--server-reconnecting'.
* lisp/erc/erc.el (erc-cmd-RECONNECT): use `erc--server-reconnecting'
instead of `erc-server-reconnecting'.
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Fix Emoji-related documentation
* etc/NEWS: Fix wording and spelling.
* doc/emacs/mule.texi (Input Methods): Add index entries and fix
wording.
* admin/notes/unicode: Update instructions for updating Emacs for
the latest Unicode Standard.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Include make Errors in admin/emake
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add an example to the display-supports-face-attributes-p doc string
* src/xfaces.c (Fdisplay_supports_face_attributes_p): Add an example.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Partially revert previous make-separator-line change
* lisp/simple.el (make-separator-line): Use dashes on displays
that don't support underlines (bug#32950).
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Fix the build broken by recent commits
* admin/unidata/Makefile.in (${unifiles})
(${unidir}/emoji-labels.el): Fix typos in last commits.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix up emoji-labels.el generation incantation
* admin/unidata/Makefile.in (${unidir}/emoji-labels.el): Make
generation more silent.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Make describe-char include emoji combination descriptions
* lisp/descr-text.el (describe-char): Output emoji descriptions.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Add emoji insertion support to Emacs
* .gitignore: Ignore the generated emoji-labels.el file.
* admin/unidata/Makefile.in (${unidir}/emoji-labels.el): Generate
the emoji-labels.el file.
(gen-clean): Delete it.
* admin/unidata/README (https): Note the source for the Unicode
file that has emoji categorisations.
* admin/unidata/emoji-test.txt: Import another Unicode file.
* doc/emacs/mule.texi (Input Methods): Document the new key bindings.
* lisp/international/emoji.el: New file.
* lisp/international/mule-cmds.el (ctl-x-map): Bind the emoji
commands.
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Improve latin-2-postfix and latin-2prefix input methods
* lisp/leim/quail/latin-pre.el ("latin-2-prefix"):
* lisp/leim/quail/latin-post.el ("latin-2-postfix"): Add variants
of "`s" and "s," for Romanian. Add key bindings for moving
between variants, when there are more than one. (Bug#51638)
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Fix an error in 'highlight-confusing-reorderings'
* lisp/international/mule-cmds.el
(highlight-confusing-reorderings): Don't signal an error when
a confusingly-reordered sequence ends at EOB.
2021-11-06 Michael Albinus <michael.albinus@gmx.de>
Merge from origin/emacs-28
5e9b4e70ab Fix dbus-test04-register-method on CentOS (Bug#51369)
d96de23510 * lisp/transient.el: Update to package version v0.3.7-11-g...
7343b0d0e4 ; * etc/NEWS: Native compilation is more picky about missi...
0d6b2b0b9d ; * etc/PROBLEMS: Move entry about LLVM plugin to the righ...
# Conflicts:
# etc/NEWS
2021-11-06 Po Lu <luangruo@yahoo.com>
General improvements to NS port
* src/dispextern.h: Remove some !HAVE_NS conditionals around grab
related code.
* src/frame.c (gui_mouse_grabbed, gui_redo_mouse_highlight): Remove
!HAVE_NS conditionals around code.
* src/nsmenu.m (ns_update_menubar): Prevent recursive calls and enable
shallow updates on GNUstep.
(menuNeedsUpdate): Prevent recursive calls.
(ns_menu_show): Fix mysterious GC-related bug.
(update_frame_tool_bar_1): Work around mysterious toolbar sizing bug
on GNUstep.
* src/nsterm.h (struct ns_output): New field for tracking toolbar
visibility changes.
* src/nsterm.m (frame_set_mouse_pixel_position): Implement for
GNUstep.
(ns_redraw_scroll_bars): Enable for GNUstep.
(ns_clear_frame): Redraw scrollbars on GNUstep.
(ns_update_window_end): New function.
(ns_redisplay_interface): Add ns_update_window_end on GNUstep.
(- keyDown): Remove debug code that doesn't work on GNUstep.
(- mouseDown): Enable grab tracking on NS port.
(- resizeWithOldSuperviewSize): Fix build with NSTRACE.
* src/xdisp.c (note_tab_bar_highlight): Enable some code for NS port.
2021-11-06 Po Lu <luangruo@yahoo.com>
Improve font display on NS port
* src/nsfns.m (Fx_create_frame): Use "fixed" for the default font on
GNUstep.
* src/nsfont.m (LCD_SMOOTHING_MARGIN, ns_escape_name)
(ns_unescape_name, ns_attribute_fvalue)
(STYLE_REF): Remove unused defines and functions.
(struct ns_glyph_layout, enum lgstring_direction).
(enum gs_font_slant, enum gs_font_weight, enum gs_font_width)
(enum gs_specified, struct gs_font_data): New enumerators and
structures.
(ns_font_descs_match_p)
(ns_done_font_data, ns_get_font_data): New functions.
(ns_glyph_metrics): Stop escaping names.
(ns_spec_to_descriptor): Fix font descriptor creation for symbolic
font spec entires.
(ns_descriptor_to_entity): Create entries with the correct symbolic
styles.
(ns_fallback_entity): Fix fallback entity selection.
(ns_findfonts): Use our own font matcher instead of the broken GNUstep
matcher.
(ns_list_family): Remove obsolete comment.
(nsfont_open): Remove obsolete code, comments, and synthItal logic
which doesn't work on GNUstep.
(nsfont_encode_char): Use a type that can fit NSGlyph
(nsfont_draw): Chose correct font, remove obsolete mouse face logic,
obsolete comments, and switch to using glyph-based drawing instead of
character-based drawing.
(ns_font_shape, nsfont_shape): New functions.
(ns_uni_to_glyphs_1): New function.
(ns_uni_to_glyphs): Return glyphs instead of unicode codepoints.
(ns_glyph_metrics): Use NSGlyphs instead of unicode codepoints and fix
left bearing, right bearing, ascent and descent computation.
(struct nsfont_driver): Add shaping capability.
* src/nsterm.h (struct nsfont_info): Use unsigned int for glyph cache.
* src/nsterm.c (ns_focus): Set DPS clipping on GNUstep.
(ns_compute_glyph_string_overhangs): Fix overhang computation by using
xterm code.
(ns_draw_window_cursor): Simplify cursor drawing.
(ns_maybe_dumpglyphs_background): Test for cursor HL and remove
obsolete mouse face logic.
(ns_dumpglyphs_image)
(ns_dumpglyphs_box_or_relief): Rectify for new cursor logic.
(ns_dumpglyphs_stretch): Rectify for new cursor logic and rely on
ns_draw_glyph_string to set focus.
(ns_draw_glyph_string_foreground): Remove mouse face logic.
(ns_draw_glyph_strings): Implement overhangs, remove obsolete
comment, and always focus before dumping glyphs.
(ns_draw_text_decoration): Add condition for DRAW_CURSOR and simplify
color selection.
(ns_define_frame_cursor): Remove nonsensical code (define_frame_cursor
has nothing to do with the text cursor, aka caret).
* src/xdisp.c (draw_glyphs): Enable code for NS port to fix mouse face
cursor display.
* src/macfont.m (get_cgcolor_from_nscolor): New function.
(macfont_draw): Remove obsolete mouse-face code and enable cursor
display.
2021-11-06 Kazuhiro Ito <kzhr@d1.dion.ne.jp>
Fix display of BW images on MS-Windows
* src/image.c (convert_mono_to_color_image) [HAVE_NTGUI]: Swap the
fore- and the back-ground colors back to their normal conventions.
(Bug#6918)
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Improve detection of suspicious reordering in source code
* src/bidi.c (bidi_find_first_overridden): Detect suspiciously
reordered EN types as well.
* test/src/xdisp-tests.el
(xdisp-tests--find-directional-overrides-case-1): Rename from
'xdisp-tests--find-directional-overrides'.
(xdisp-tests--find-directional-overrides-case-2): New test.
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
9bdb1d0 ; * etc/PROBLEMS: Describe a crash in xwidgets due to Bubblew...
550887c ; * etc/PROBLEMS: Rearrange and update the section about cras...
c2e3cd6 Clarify "text area of a window" in the documentation
4e7e78d Improve docstring of kmacro-set-format
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
# Conflicts:
# etc/NEWS
2021-11-06 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
b5ccad3 * doc/emacs/building.texi (Compilation Mode): Add next-error-...
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Inhibit isearching over message-insert-screenshot data
* lisp/gnus/message.el (message-insert-screenshot): Inhibit
isearch over the image data.
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Update help-tests after separator line changes
2021-11-06 Lars Ingebrigtsen <larsi@gnus.org>
Allow 'insert-image' to inhibit isearches or not
* doc/lispref/display.texi (Showing Images): Mention it.
* lisp/image.el (insert-image): Take an optional parameter to
inhibit isearch of the STRING argument.
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Introduce a new 'inhibit-isearch' text property
* doc/lispref/text.texi (Special Properties): Mention it.
* lisp/image.el (insert-image): Make `C-s' skip over the image data.
* lisp/isearch.el (isearch--search-skip-inhibited): New function.
(isearch-search-string): Use it.
(isearch--invisible-p): New function.
(isearch-range-invisible): Use it.
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Re-rename the minibuffer heading
* lisp/minibuffer.el: There's more here than completion functions
(bug#49844).
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Correct minibuffer.el heading
* lisp/minibuffer.el: There's more here than completion functions
(bug#49844).
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Use underline on non-graphical terminals in make-separator-line
* lisp/simple.el (separator-line):
(make-separator-line): Use an underline on terminals (bug#32950).
2021-11-05 F. Jason Park <jp@neverwas.me>
Normalize usage of variable erc-server-reconnecting
* lisp/erc/erc-backend.el (erc-server-reconnecting-p):
Don't consider erc-server-reconnecting when rendering verdict.
(erc-process-sentinel-2): ensure local variable
erc-server-reconnecting is t when timers are scheduled or running and
trying to reconnect, and nil otherwise, including after no retries
remain. Previously, its use and meaning in erc-backend were convoluted
and conflicted with its use in erc-cmd-RECONNECT (bug#50007).
2021-11-05 F. Jason Park <jp@neverwas.me>
Don't send empty lines for implicit targets in ERC
* erc.el (erc-send-input-line): Previously, any line typed into a
query or channel buffer without an explicit user-command
handler (meaning most lines), would be sent twice because a trailing
newline (linefeed) would be appended. This has been verified by
checking IRCd server logs. IRCds won't return an error upon receiving
an empty message, but they also won't forward them to channel
subscribers and DM pals.
* erc-tests.el: Add test for erc-process-input-line, which also
indirectly tests erc-send-input-line. It also tests the command
lookup and dispatch facility (bug#50008).
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Remove messaging in pp-display-expression.
* lisp/emacs-lisp/pp.el (pp-display-expression): Remove confusing
message -- we don't usually say that we've popped up a new buffer when
we do so.
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Allow getting verbose results on erts 'C-u C-c C-c'
* lisp/progmodes/erts-mode.el (erts-run-test): Allow getting a
diff buffer of the differences with `C-u C-c C-c'.
2021-11-05 Jim Porter <jporterbugs@gmail.com>
Improve behavior of 'electric-pair-mode' in 'cc-mode'
* lisp/progmodes/cc-mode.el (c-electric-pair-inhibit-predicate):
Inhibit insertion of paired quote in fewer cases.
* test/lisp/electric-tests.el (define-electric-pair-test):
Add 'c-mode' to list of modes to test by default (bug#50538).
This ensures that quotes are paired correctly within comments, allows for
insertion of quote pairs immediately before another quote, and allows
inserting quote pairs within a string (thus splitting the string in two).
2021-11-05 Manuel Giraud <manuel@ledu-giraud.fr>
Make 'C-x v v' on an unregistered file use the most specific backend
* lisp/vc/vc.el (vc-next-action): Mention this.
* lisp/vc/vc.el (vc-backend-for-registration): Choose the most
specific backend (bug#50572).
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Tweak `eww' new-buffer parameters
* lisp/net/eww.el (eww): Don't require that the function be called
with 4 to open a new buffer (bug#51613).
2021-11-05 Daniel Martín <mardani29@yahoo.es>
Fix GNUstep build (ns_compute_glyph_string_overhangs)
* src/nsterm.m (ns_compute_glyph_string_overhangs): Declare the font
variable so that it's in scope for the GNUstep code.
2021-11-05 Stefan Kangas <stefan@marxist.se>
Add "N.B." abbreviation to checkdoc
* lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Add
abbreviation "N.B.".
2021-11-05 Stefan Kangas <stefan@marxist.se>
Don't hardcode "Commentary" section in checkdoc
* lisp/emacs-lisp/checkdoc.el
(checkdoc-commentary-header-string): New defvar.
(checkdoc-file-comments-engine): Insert value of above new
variable instead of hardcoding what is inserted for the
"Commentary" section.
2021-11-05 Eli Zaretskii <eliz@gnu.org>
Use correct compiler options for building with libwebp
* src/Makefile.in (WEBP_CFLAGS): Define.
(EMACS_CFLAGS): Use it. (Bug#51611)
2021-11-05 Michael Albinus <michael.albinus@gmx.de>
Improve `file-has-changed-p'
* doc/lispref/files.texi (File Attributes): Be precise when
filename does not exist in `file-has-changed-p'.
* lisp/files.el (file-has-changed-p): Suppress remote file caches.
Handle the case FILE does not exists.
2021-11-05 Paul Eggert <eggert@cs.ucla.edu>
rsvg_handle_get_dimensions is deprecated in 2.52.0
In Bug#44655#32 (2020-11-19) it was reported that
rsvg_handle_get_dimensions was not deprecated. However, it became
deprecated in librsvg 2.52.0 (2021-09-15), and because of this Emacs
builds with --enable-gcc-warnings fail in Fedora 35 (2025-11-02)
with the diagnostic “rsvg_handle_get_dimensions is deprecated:
Use 'rsvg_handle_get_intrinsic_size_in_pixels' instead
[-Werror=deprecated-declarations]”.
* src/image.c (rsvg_handle_get_dimensions): Define as a DLL
function only if < librsvg 2.46.0, since its not used
in 2.46.0 or later.
(svg_load_image): Use rsvg_handle_get_dimensions only if librsvg <
2.46.0, since it isnt needed if >= 2.46.0.
2021-11-05 Lars Ingebrigtsen <larsi@gnus.org>
Allow 'pp' to limit the line widths
* lisp/emacs-lisp/pp.el (pp-max-width, pp-use-max-width): New user
options (bug#11934).
(pp-to-string): Use it.
(pp--insert-lisp): Tweak whether to use standard-output or not.
(pp--max-width): New function.
2021-11-05 Eli Zaretskii <eliz@gnu.org>
Enhance 'highlight-confusing-reorderings'
* lisp/international/mule-cmds.el (confusingly-reordered): Make
sure the face looks distinct on displays that don't support the
"wavy" underline attribute.
(highlight-confusing-reorderings): Add a tooltip explaining why
the text was highlighted. Allow to remove the highlighting by
invoking the command with a prefix argument.
2021-11-05 Carlos Pita <carlosjosepita@gmail.com>
Match dummy output even with non-default rl config
* lisp/progmodes/python.el
(python-shell-completion-native-get-completions): Match dummy output
even when readline is configured in non-default ways. (Bug#51010)
2021-11-04 Tino Calancha <tino.calancha@gmail.com>
Fix (un)compressing directories in Tramp
* lisp/net/tramp-sh.el (tramp-sh-handle-dired-compress-file):
Check whether the file is a directory (bug#50581).
2021-11-04 Matthias Meulien <orontee@gmail.com>
Fix 'diff-font-lock-prettify' breaking display of outline headers
* lisp/vc/diff-mode.el (diff-outline-level): Make hunk headers be
at level 2.
(diff-mode): Use prettified line as outline header.
(diff--outline-level): New function (bug#51016).
* lisp/vc/vc.el (vc-diff-internal): Fix diff mode being set before
content inserted (bug#51016).
2021-11-04 Daniel Martín <mardani29@yahoo.es>
Fix buffer overflow in ns_compute_glyph_string_overhangs
* src/nsterm.m (ns_compute_glyph_string_overhangs): When the first
glyph of a glyph string is a composite glyph, `s->nchars' is 0, so
"s->char2b + s->nchars - 1" dereferenced a position before buffer
`s->char2b'. Instead, rewrite part of the function to distinguish
between character glyphs and composite glyphs. For character glyphs,
calculate the font metrics using the `text_extents' function, passing
it the entire glyph string; for composite glyphs, call
`composition_gstring_width'. (Bug#51105)
2021-11-04 Stefan Kangas <stefan@marxist.se>
image-dired: Delete commented out code
* lisp/image-dired.el: Delete broken and commented out speedbar code;
it is not clear what, if anything, it is supposed to do. If anyone
wants to work on this, they are better off starting from scratch.
2021-11-04 Stefan Kangas <stefan@marxist.se>
image-dired: New defgroup and section for gallery support
* lisp/image-dired.el: Add new section header "Gallery support" to
improve file organization. Move relevant TODO:s there.
(image-dired-gallery): New defgroup.
(image-dired-gallery-dir, image-dired-gallery-image-root-url)
(image-dired-gallery-thumb-image-root-url)
(image-dired-gallery-hidden-tags): Add options to above new defgroup.
(image-dired-add-to-file-comment-list)
(image-dired-create-gallery-lists)
(image-dired-add-to-tag-file-lists, image-dired-hidden-p): Rename to...
(image-dired--add-to-file-comment-list)
(image-dired--create-gallery-lists)
(image-dired--add-to-tag-file-lists, image-dired--hidden-p):
...this, to make it more clear that these functions are internal.
Make the old names obsolete function aliases.
(image-dired-add-to-tag-file-list): Make unused function obsolete.
2021-11-04 Gregory Heytings <gregory@heytings.org>
New emacsclient option to either create or reuse an existing frame.
* doc/emacs/misc.texi (emacsclient Options): Document the new option.
* doc/man/emacsclient.1: Mention the new option (bug#51374).
* etc/NEWS: Mention the new option.
* lib-src/emacsclient.c (reuse_frame): New variable.
(longopts): New option.
(decode_options): Decode the new option.
(print_help_and_exit): Document the new option.
(main): Use the new option.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Try harder to keep lines short in pp-emacs-lisp-code
* lisp/emacs-lisp/pp.el (pp--insert): Try harder to keep lines short.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Tweak multi-line expressions in pp--format-function
* lisp/emacs-lisp/pp.el (pp--format-function): Fix up multi-line
expressions.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix up some list folding in pp-emacs-lisp-code
* lisp/emacs-lisp/pp.el (pp--insert-lisp, pp--format-list)
(pp--insert): Touch up list folding.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Indent lambdas/closures better
* lisp/emacs-lisp/pp.el (pp--format-function): Indent lambdas and
closures better.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Make lambda/closure help buttons format as Emacs Lisp
* lisp/help.el (help--describe-command): Format lambda/closures as
Emacs Lisp.
* lisp/emacs-lisp/pp.el (pp-display-expression): Allow formatting
as Emacs Lisp.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Add new basic Emacs Lisp code formatting function
* lisp/emacs-lisp/pp.el (pp-emacs-lisp-code): New interface function.
(pp): Mention it.
(pp--insert-lisp, pp--format-vector, pp--format-list)
(pp--format-function, pp--format-definition, pp--insert-binding)
(pp--insert, pp--indent-buffer): New helper functions.
2021-11-04 Stephen Berman <stephen.berman@gmx.net>
Fix allout point movement problem
* lisp/allout.el (allout-next-visible-heading): Ensure that we
move to the next physical line (bug#51530).
2021-11-04 Eli Zaretskii <eliz@gnu.org>
Better detection of potentially malicious bidi text
* src/bidi.c (bidi_find_first_overridden): Extend to detect more
subtle effects of directional formatting controls, to include
embeddings and isolates.
* src/xdisp.c (Fbidi_find_overridden_directionality): Accept an
additional argument BASE-DIR to specify the base direction of the
paragraphs.
* lisp/international/mule-cmds.el (confusingly-reordered): New
face.
(reorder-starters, reorder-enders): New variables.
(highlight-confusing-reorderings): New command to detect and
highlight suspiciously reordered text.
* test/src/xdisp-tests.el
(xdisp-tests--find-directional-overrides): New test.
* etc/NEWS: Announce the new and improved features.
* etc/tutorials/TUTORIAL.he: Fix embeddings with incorrect
directions.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
font-lock-type-face doc string improvement
* lisp/font-lock.el (font-lock-type-face): Fix grammar in doc
string (bug#51574).
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Improve defface error message
* lisp/cus-face.el (custom-declare-face): Improve the error
message when there's a missing doc string (bug#51576).
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Don't have `M-x term' call `term-mode' twice
* lisp/term.el (term): Don't call `term-mode' twice (bug#51589).
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Document that `unspecified' isn't valid in defface
* doc/lispref/display.texi (Face Attributes): Mention that
unspecified isn't valid in defface (bug#51595).
2021-11-04 Gregory Heytings <gregory@heytings.org>
Reset mailcap entries only when mailcap files are read again
* lisp/net/mailcap.el (mailcap-parse-mailcaps): Move the clear and
load defaults operations at their appropriate place. Fixes bug#51600.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix return value of python-nav-end-of-defun
* lisp/progmodes/python.el (python-nav-end-of-defun): Return
non-nil if in a def/class, as the doc string implies (bug#51601).
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Rename button-buttonize to buttonize
* lisp/help.el (help--describe-command):
* lisp/emacs-lisp/memory-report.el (memory-report--buffers):
* lisp/button.el (button-buttonize):
* doc/lispref/display.texi (Making Buttons): Rename
button-buttonize to just buttonize and adjust callers.
2021-11-04 Mattias Engdegård <mattiase@acm.org>
Revert "* lisp/progmodes/xref.el (xref-pop-marker-stack): Don't obsolete."
This reverts commit f56408a6f0152cd46d1ea8a0985fbfeeb839ea06.
As commented by Dmitry Gutov in [1], obsoleting `xref-pop-marker-stack`
makes sense.
[1] https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01870.html
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Add a Gnus command to emojize symbols
* doc/misc/gnus.texi (Article Display): Document it.
* lisp/gnus/gnus-art.el (gnus-treat-emojize-symbols): New user option.
(gnus-treatment-function-alist): Map.
(article-emojize-symbols): New command and keystroke.
2021-11-04 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option mml-attach-file-at-the-end
* lisp/gnus/mml.el (mml-attach-file-at-the-end): New user option.
(mml-attach-file): Use it.
2021-11-04 Stefan Kangas <stefan@marxist.se>
image-dired: Set default-directory in thumbnail buffer
* lisp/image-dired.el (image-dired-show-all-from-dir): Set
default-directory. This fixes e.g. 'dired-jump'.
2021-11-03 Stefan Kangas <stefan@marxist.se>
Make image-dired-display-image-mode inherit from image-mode
* lisp/image-dired.el (image-dired-display-image-mode):
Inherit from 'image-mode'. (Bug#10758)
(image-dired-display-image): Don't generate a temporary image, which
is no longer needed with the above change.
(image-dired-display-thumbnail-original-image)
(image-dired-dired-display-image)
(image-dired-mouse-display-image): Simplify.
(image-dired-temp-image-file)
(image-dired-cmd-create-temp-image-program)
(image-dired-cmd-create-temp-image-options)
(image-dired-display-window-width-correction)
(image-dired-display-window-height-correction)
(image-dired-display-window-width)
(image-dired-display-window-height)
(image-dired-display-current-image-full)
(image-dired-display-current-image-sized)
(image-dired-window-height-pixels): Make obsolete.
(image-dired-create-display-image-buffer): Make into obsolete
function alias for 'ignore'.
(image-dired-display-image-mode-map): Simplify by removing things
duplicated from `image-mode-map'. Disable some commands from
`image-mode-map' that doesn't make sense for Image-Dired.
(image-dired-display-image-mode-menu): Remove menu, as it no longer
contains anything useful.
(image-dired-minor-mode):
* doc/emacs/dired.texi (Image-Dired): Update documentation for the
above change.
2021-11-03 Stefan Kangas <stefan@marxist.se>
Improve theming of image-dired-thumb-mark
* etc/themes/adwaita-theme.el (adwaita):
* etc/themes/deeper-blue-theme.el (deeper-blue):
* etc/themes/dichromacy-theme.el (dichromacy):
* etc/themes/leuven-theme.el (leuven):
* etc/themes/manoj-dark-theme.el (manoj-dark):
* etc/themes/whiteboard-theme.el (whiteboard): Add definitions for
the 'image-dired-thumb-flagged' face.
2021-11-03 Stefan Kangas <stefan@marxist.se>
image-dired: Add face for flagged files
* lisp/image-dired.el (image-dired-thumb-mark): New defface.
(image-dired-thumb-update-marks): Mark flagged file with above new defface.
(image-dired-dired-file-marked-p)
(image-dired-thumb-file-marked-p): Add optional argument to be
used by 'image-dired-*-flagged-p' functions below.
(image-dired-dired-file-flagged-p)
(image-dired-thumb-file-flagged-p): New defuns.
(image-dired-thumb-mark): Improve definition with color classes.
(image-dired-thumb-visible-marks): Doc fix.
2021-11-03 Philipp Stephani <phst@google.com>
Fix declaration syntax of 'image-dired--on-file-in-dired-buffer'.
* lisp/image-dired.el (image-dired--on-file-in-dired-buffer): Fix
declaration syntax.
2021-11-03 Eli Zaretskii <eliz@gnu.org>
Fix encoding issues in gitmerge.el, make it work on MS-Windows
* admin/gitmerge.el (gitmerge-emacs-version, gitmerge-show-log)
(gitmerge-show-diff, gitmerge-show-files, gitmerge-missing)
(gitmerge-setup-log-buffer, gitmerge-resolve)
(gitmerge-commit-message, gitmerge-apply)
(gitmerge-resolve-unmerged, gitmerge-repo-clean)
(gitmerge-commit): Bind coding-system-for-read/write to the
appropriate vc-git values.
(gitmerge-apply) [windows-nt]: Pass long merge log messages via a
temporary file.
(gitmerge): Clarify the description of the "R" flag.
2021-11-03 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
3e4eb54 ; * etc/PROBLEMS: Minor copyedits of the last change. (Bug#5...
35bc211 Document a macOS error message when opening Emacs
4df9998 Fix header-line and tab-line when mode-line-compact is set
81915a9 Add manual section about how to avoid regexp problems
a16e66c Clarify build environment
6ab6b2f Clarify build directory structure
9d61620 * src/pdumper.c (dump_do_dump_relocation): Add sanity check.
2021-11-03 Eli Zaretskii <eliz@gnu.org>
Fix widgets in Outline mode on TTY frames
* lisp/outline.el (outline--valid-emoji-p): Don't try to probe
support for display of Emoji characters on TTY frames. (Bug#51578)
2021-11-03 Eli Zaretskii <eliz@gnu.org>
A better fix for bug#51583
* src/w32.c (w32_get_resource): Move from here...
* src/w32fns.c (w32_get_resource): ...to here.
(w32_applytheme): No longer a no-op for Cygwin w32 builds.
(globals_of_w32fns): Do attempt to load dwmapi.dll and uxtheme.dll
in the Cygwin w32 build.
2021-11-03 Eli Zaretskii <eliz@gnu.org>
Fix the Cygwin w32 build broken by adding the dark theme support
* src/w32fns.c (w32_applytheme): Make a no-op for Cygwin w32
builds.
(globals_of_w32fns): Don't attempt to load dwmapi.dll and
uxtheme.dll in the Cygwin w32 build. (Bug#51583)
2021-11-03 Stefan Kangas <stefan@marxist.se>
Improve theming of image-dired-thumb-mark
* etc/themes/adwaita-theme.el (adwaita):
* etc/themes/deeper-blue-theme.el (deeper-blue):
* etc/themes/dichromacy-theme.el (dichromacy):
* etc/themes/leuven-theme.el (leuven):
* etc/themes/manoj-dark-theme.el (manoj-dark):
* etc/themes/whiteboard-theme.el (whiteboard): Add definitions for
the 'image-dired-thumb-mark' face.
2021-11-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* src/image.c: Fix building with giflib 4.
2021-11-03 Stefan Kangas <stefan@marxist.se>
image-dired: Improve marking behavior
* lisp/image-dired.el (image-dired-thumb-mark): Use DarkOrange as
background to better match the 'dired-marked' face.
(image-dired-show-all-from-dir): Disable all marks when entering a
full directory.
(image-dired-unmark-all-marks): Add mode tag.
(image-dired-thumbnail-mode-map): Bind 'image-dired-unmark-all-marks'
to "U".
2021-11-03 Stefan Kangas <stefan@marxist.se>
image-dired: Cleanup of four commands
* lisp/image-dired.el
(image-dired--on-file-in-dired-buffer): New macro.
(image-dired-mark-thumb-original-file)
(image-dired-unmark-thumb-original-file)
(image-dired-flag-thumb-original-file)
(image-dired-toggle-mark-thumb-original-file): Rewrite using
above new macro.
(image-dired-modify-mark-on-thumb-original-file): Make obsolete in
favor of above new macro.
2021-11-03 Stefan Kangas <stefan@marxist.se>
image-dired: Support wrap-around in display-next-thumbnail-original
* lisp/image-dired.el (image-dired-forward-image): Support negative
prefix argument. Optionally wrap-around, which means to continue from
first image after reaching the last one and vice versa.
(image-dired-backward-image): Reimplement in terms of
'image-dired-forward-image'.
(image-dired-display-next-thumbnail-original)
(image-dired-display-previous-thumbnail-original): Wrap around; when
reaching the last image, continue from the first one. Add optional
prefix argument to move more than one image at a time.
2021-11-03 Stefan Kangas <stefan@marxist.se>
image-dired: Improve menus
* lisp/image-dired.el (image-dired-toggle-append-browsing)
(image-dired-toggle-movement-tracking): Improve messages.
(image-dired-thumbnail-mode-menu, image-dired-minor-mode-menu):
Make toggle entries into checkboxes. Add separators. Remove
obsoleted commands accidentally added back in merge.
2021-11-03 Stefan Kangas <stefan@marxist.se>
image-dired: Signal error if file is missing on display
* lisp/image-dired.el (image-dired-display-image): Signal error if
file is missing.
2021-11-03 Stefan Kangas <stefan@marxist.se>
image-dired: Move menu definitions to top level
* lisp/image-dired.el (image-dired-thumbnail-mode-map)
(image-dired-display-image-mode-map, image-dired-minor-mode-map):
Move menu definitions from here...
(image-dired-thumbnail-mode-menu)
(image-dired-display-image-mode-menu)
(image-dired-minor-mode-menu): ...to these new top level
definitions.
2021-11-02 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/epg.el (epg-key): Use explicit copier with proper prefix
(epg--filter-revoked-keys): Adjust sole use.
2021-11-02 Stefan Kangas <stefan@marxist.se>
* etc/PROBLEMS: Move some entries to the legacy section.
2021-11-02 Stefan Kangas <stefan@marxist.se>
Remove info for Emacs 20 users from etc/PROBLEMS
* etc/PROBLEMS: Remove information for users upgrading from Emacs
20 or older.
2021-11-02 Mattias Engdegård <mattiase@acm.org>
Optimise (cond) => nil at source level
* lisp/emacs-lisp/byte-opt.el (byte-optimize-cond):
Optimise clause-free `cond`, which can arise from earlier
transformations. This enables further optimisations.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test cases.
2021-11-02 Stefan Kangas <stefan@marxist.se>
Use current face foreground for SVG icons in customize
* etc/images/down.svg:
* etc/images/left.svg:
* etc/images/right.svg:
* etc/images/up.svg: Don't define foreground; this means they will use
the foreground of the currently defined face instead. (Bug#51556)
2021-11-02 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
bc58bea * lisp/progmodes/prog-mode.el (prog-context-menu): Use text-m...
2021-11-02 Stefan Kangas <stefan@marxist.se>
Support inserting images in tabulated-list-mode columns
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col):
Support using an image descriptor to insert an image in a column.
(tabulated-list-entries):
* doc/lispref/modes.texi (Tabulated List Mode): Update documentation
to reflect above change.
2021-11-02 Lars Ingebrigtsen <larsi@gnus.org>
Revert overlay-related changes in `C-h b'
* lisp/help.el (describe-bindings): Revert overlay-related changes
-- these are already output (normally) by `describe-buffer-bindings'.
2021-11-02 Lars Ingebrigtsen <larsi@gnus.org>
Make lambdas/closures/byte code in `C-h b' clickable
* lisp/help.el (help--describe-command): Add links for
lambdas/closures/byte code (bug#24235).
* lisp/emacs-lisp/pp.el (pp-display-expression): Autoload.
2021-11-02 Gregory Heytings <gregory@heytings.org>
Improve file-has-changed-p
* doc/lispref/files.texi: Update the documentation.
* lisp/net/mailcap.el: Add a second argument to the call to
file-has-changed-p (bug#51523).
2021-11-02 dickmao <dick.r.chiang@gmail.com>
Update keymap-tests after recent changes
* test/src/keymap-tests.el
(help--describe-vector/bug-9293-one-shadowed-in-range): Update tests
for d530f3f9ff.
(help--describe-vector/bug-9293-same-command-does-not-shadow): Update
(bug#51567).
2021-11-02 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/outline.el: Fix compilation of `outline--make-button`
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix mouse-1 on `C-h b' buttons
* lisp/outline.el (outline--make-button-overlay): Make mouse-1
work on the buttons.
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-h b' also describe overlay keymaps
* lisp/help.el (describe-bindings): Also describe overlay key
bindings.
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Add a better test for emojis
* lisp/outline.el (outline--valid-char-p)
(outline--valid-emoji-p): New predicates.
(outline--make-button, outline-minor-mode-buttons): Use them.
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-h b' indentation more regular (and avoid continuation lines)
* lisp/help.el (help--describe-command): Don't do any indentation.
(describe-map): Store data about each section.
(describe-map--align-section): New function to do indentation on a
per-block basis.
(describe-map--fill-columns): Helper function.
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix rendering of key translations
* lisp/help.el (help--describe-translation): Make obsolete.
(help--describe-command): Take an optional parameter to output key
translations.
(describe-map): Make optional parameters optional.
2021-11-01 Eli Zaretskii <eliz@gnu.org>
Improve documentation of 'file-has-changed-p'
* etc/NEWS:
* doc/lispref/files.texi (File Attributes): Improve wording of the
documentation of 'file-has-changed-p'.
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Don't output prefix keys in `C-h b', and output more data on objects
* lisp/help.el (help--describe-command): Output
[closure/lambda/byte-code] for those types of objects.
(describe-map): Don't output prefix keys.
2021-11-01 Michael Albinus <michael.albinus@gmx.de>
Exclude emacs-module-tests.el on emba
* test/infra/gitlab-ci.yml (test-native-comp-speed0):
Exclude emacs-module-tests.el.
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Add buttons to definition in help--describe-command
* lisp/help-mode.el (help-make-xrefs): Don't add buttons to
keymaps, because they're pre-buttonized.
* lisp/help.el (help--describe-command): Make buttons out of the
definitions.
2021-11-01 Lars Ingebrigtsen <larsi@gnus.org>
Tag up last NEWS change
2021-11-01 Gregory Heytings <gregory@heytings.org>
Read mailcaps again only when necessary
* doc/lispref/files.texi (File Attributes): Document it.
* lisp/files.el (file-has-changed-p): New function.
(file-has-changed-p--hash-table): Internal variable used by the
new function (bug#51523).
* lisp/emacs-lisp/shortdoc.el (file): Mention it.
* lisp/net/mailcap.el (mailcap-parse-mailcaps): Read mailcaps again
only when at least one of the mailcap files has changed. Fixes
bug#51523.
2021-11-01 Michael Albinus <michael.albinus@gmx.de>
Merge from origin/emacs-28
84cd95e04c Fix bug#51369
2021-11-01 Michael Albinus <michael.albinus@gmx.de>
Merge from origin/emacs-28
ba4daf2214 Adapt arguments of `tramp-make-tramp-file-name'
a34466731b Fix typo in describe-map-tree doc string
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Further xref fix-ups after keymap help changes
* lisp/help-mode.el (help-make-xrefs): Get continuation lines right.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix infloop in help-make-xrefs in certain keymaps
* lisp/help-mode.el (help-make-xrefs): Adjust xref symbol finding
after changes to how keymaps are output.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Make xref symbol marking work again after describe-keymap changes
* lisp/help-mode.el (help-make-xrefs): Adjust xref symbol finding
after changes to how keymaps are output.
2021-10-31 Aaron Jensen <aaronjensen@gmail.com>
* lisp/icomplete.el (icomplete-exhibit): Remove workaround
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix failing help-fns tests after layout changes in `C-h b'
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Say "Key/Binding" instead of "key/binding" in `C-h b'
* lisp/help.el (describe-map-tree): Capitalize the heading.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Don't print empty keymaps in `C-h b'
* lisp/help.el (describe-map-tree): Don't print the heading if the
keymap is empty (bug#22334). Tweak the look to compress it more
vertically.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Include the major mode name in the `C-h b' output
* lisp/calc/calc-help.el (calc-describe-bindings): Don't add the
name since it's there now.
* src/keymap.c (Fdescribe_buffer_bindings): Include the major mode
name for symmetry with the minor modes (and because it's easy to
forget).
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Don't make key binding face wider than the norm
* lisp/faces.el (help-key-binding): Don't make the chars wider
than normally, because that makes `C-h b' lining-up logic fail.
2021-10-31 Ken Brown <kbrown@cornell.edu>
Merge from origin/emacs-28
6ba4e3b78c Drop support for native compilation on 32-bit Cygwin
7e15ee5bc9 ; * doc/emacs/help.texi (Help Mode): Improve indexing.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Re-fix the new mouse event logic in outline
* lisp/outline.el (outline-show-subtree, outline-hide-subtree):
Really fix the mouse logic.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Make TAB work on the outline buttons
* lisp/outline.el (outline--insert-close-button)
(outline--insert-open-button): Make TAB work to toggle on the
buttons, too.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Clarify describe-bindings code slightly
* lisp/help.el (describe-bindings): Clarify code slightly.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Fix new mouse handling in outline
* lisp/outline.el (outline-show-subtree, outline-hide-subtree):
Don't set point if we have no event.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Add buttons to outlining and tweak `C-h b' buffer
* lisp/help.el (describe-bindings-outline): Change default to t.
(describe-bindings): Tweak the look and remove the explanation.
* lisp/outline.el (outline-minor-mode-use-buttons):
(outline-minor-mode-buttons): New user options.
(outline-hide-subtree): Update buttons.
(outline--make-button, outline--make-button-overlay)
(outline--insert-open-button, outline--insert-close-button)
(outline--fix-up-all-buttons): New functions.
2021-10-31 Eli Zaretskii <eliz@gnu.org>
Improve the "Help Mode" section of the Emacs manual
* doc/emacs/help.texi (Help Mode): Reorganize and improve wording
of the recent change. Add index entries.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Add mode tagging to previously added help commands
* lisp/help-mode.el (help-goto-previous-page): New command and key
binding.
(help-goto-previous-page): Ditto.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Add 'n'/'p' key bindings in *Help* buffers
* lisp/help-mode.el (help-goto-previous-page): New command and key
binding.
(help-goto-previous-page): Ditto.
2021-10-31 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
f1c9286 ; * doc/misc/org.org: fix capture context example
af67ce6 Merge branch 'emacs-28' of git.savannah.gnu.org:/srv/git/emac...
610680a Fix rendering of title-less <abbr> tags in shr
2ba4ccf ; * lisp/files.el (make-nearby-temp-file): Doc fix.
2021-10-31 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
5e05be5 Fix localized display of date and time in the NS port
2021-10-31 Michael Albinus <michael.albinus@gmx.de>
Adapt emba control files
* test/infra/Dockerfile.emba: Do not generate debug info.
* test/infra/gitlab-ci.yml (variables, default): Revert timeout
back to three hours.
(.job-template): Comment test prints.
(test-all-inotify): Exclude emacs-module-tests.el.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Add highlighting of the F2008 keyword "impure"
* lisp/progmodes/f90.el (f90-keywords-re): Highlight F2008 keyword
"impure" (bug#51529).
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Add new function 'font-has-char-p'
* src/font.c (Ffont_has_char_p): New function.
(Ffont_get_glyphs): Link to the new function from the doc string.
2021-10-31 Stefan Kangas <stefan@marxist.se>
Add test for Bug#51527
* test/src/keymap-tests.el (keymap-lookup-key/menu-non-symbol):
New test.
2021-10-31 Stefan Monnier <monnier@iro.umontreal.ca>
eieio-core.el: Make slot-value work on defstructs
Adjust the values in EIEIO's index-tables so they are compatible with those
of defstructs.
* lisp/emacs-lisp/eieio-core.el (eieio--slot-name-index): Don't add the
`eieio--object-num-slots` offset.
(eieio-defclass-internal): Add the `eieio--object-num-slots` offset
here instead.
(eieio-oref): Allow its use on `cl-structure-object`.
* lisp/emacs-lisp/eieio.el (eieio-pcase-slot-index-from-index-table):
Don't need to add the `eieio--object-num-slots` offset.
* doc/misc/eieio.texi (Accessing Slots, Accessing Slots):
Mention the use on structs.
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
(eieio-test-defstruct-slot-value): New test.
2021-10-31 Lars Ingebrigtsen <larsi@gnus.org>
Expand the kbd-valid-p doc string
* lisp/subr.el (kbd-valid-p): Expand the doc string.
2021-10-31 Eli Zaretskii <eliz@gnu.org>
Avoid signaling errors in lookup-key
* src/keymap.c (Flookup_key): Handle KEY vectors where not all
components are symbols. (Bug#51527
2021-10-31 Alan Third <alan@idiocy.org>
Ensure help echoes only occur once on NS
* src/nsterm.m ([EmacsView windowDidResignKey:]): Reset
any_help_event_p as it is never reset otherwise.
2021-10-31 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
335a660b4b Fix display glitches with side-by-side windows on TTY frames
4a96f32def Avoid replacing common prefix with ellipsis
2021-10-30 Stefan Kangas <stefan@marxist.se>
Remove workaround for fixed Bug#6581 from ert
* lisp/emacs-lisp/ert.el (ert-equal-including-properties): Make
into obsolete function alias for 'equal-including-properties'.
* test/src/editfns-tests.el (format-properties):
* test/lisp/emacs-lisp/ert-x-tests.el (ert-propertized-string)
(ert-test-run-tests-interactively-2): Don't use above obsolete
name.
(ert--explain-equal-including-properties-rec): New function.
(ert--explain-equal-including-properties): Use as an explainer for
'equal-including-properties' now that Bug#6581 is fixed.
* test/lisp/emacs-lisp/ert-tests.el
(ert-test-explain-equal-string-properties): Expand test.
(ert-test-equal-including-properties): Merge test into above
expanded test.
2021-10-30 Stefan Kangas <stefan@marxist.se>
Fix bug with string values in equal-including-properties
* src/intervals.c (intervals_equal_1): Factor out from
intervals_equal. Optionally use Fequal for comparison of string
values in property lists.
(intervals_equal): Update for the above.
(compare_string_intervals): Use the above optional Fequal comparison
to fix a bug where 'equal-including-properties' compared strings with
eq, instead of equal. (Bug#6581)
* test/src/fns-tests.el (fns-tests-equal-including-properties)
(fns-tests-equal-including-properties/string-prop-vals): New tests.
* test/lisp/emacs-lisp/ert-tests.el
(ert-test-equal-including-properties): Remove parts testing
'equal-including-properties'.
* lisp/emacs-lisp/ert.el (ert-equal-including-properties): Add
FIXME that this should be removed.
2021-10-30 Stefan Kangas <stefan@marxist.se>
Use primes for hash table bucket sizes
* src/dispextern.h (IMAGE_CACHE_BUCKETS_SIZE):
* src/image.c (XPM_COLOR_CACHE_BUCKETS): Use primes for hash table
bucket sizes.
2021-10-30 Eli Zaretskii <eliz@gnu.org>
Move the documentation of 'string-glyph-split' to proper place
* doc/lispref/strings.texi (Creating Strings): Move the
description of 'string-glyph-split' from here...
* doc/lispref/display.texi (Size of Displayed Text): ...to here.
2021-10-30 Jim Porter <jporterbugs@gmail.com>
Expand connection-local variables example in doc/emacs/custom.texi
* doc/emacs/custom.texi (Per-Connection Local Variables): Expand the
example to include setting 'system-uses-terminfo'.
2021-10-30 dalanicolai <dalanicolai@gmail.com>
Make list-colors-display sort list passed as argument
* lisp/facemenu.el (list-colors-display): Don't skip sorting list of
colors if it was passed as an argument. (Bug#51371)
2021-10-30 Lars Ingebrigtsen <larsi@gnus.org>
Add new function string-glyph-split
* doc/lispref/strings.texi (Creating Strings): Document it.
* lisp/emacs-lisp/shortdoc.el (string): Mention it.
* lisp/emacs-lisp/subr-x.el (string-glyph-split): New function.
2021-10-30 Kévin Le Gouguec <kevin.legouguec@gmail.com>
Avoid fonts with incomplete coverage of MATHEMATICAL chars
* lisp/international/fontset.el (setup-default-fontset): Include both
ends of each sub-range in 'script-representative-chars' (bug#51495).
Some fonts include glyphs for MATHEMATICAL SCRIPT CAPITAL codepoints
(#x1D49C-#x1D4B5) but not for MATHEMATICAL SCRIPT SMALL codepoints
(#x1D4B6-#x1D4CF), see e.g. KpMath[1].
'script-representative-chars' must thus include both CAPITAL and SMALL
codepoints to ensure that we filter those fonts out.
Bug#51495; discussed in help-gnu-emacs[2].
[1] https://mirrors.ctan.org/fonts/kpfonts-otf/doc/unimath-kpfonts.pdf
[2] <878s02u5m6.fsf@gmail.com>
https://lists.gnu.org/archive/html/help-gnu-emacs/2021-09/msg00150.html
2021-10-30 Eli Zaretskii <eliz@gnu.org>
Minor fixes for previous change
* src/w32fns.c (DWMWA_USE_IMMERSIVE_DARK_MODE_OLD): Define only if
undefined.
(w32_applytheme, w32_createwindow, globals_of_w32fns): Minor
stylistic copyedits.
* etc/NEWS: Reword the entry about using dark mode on MS-Windows.
* doc/emacs/msdos.texi (Windows Misc): Fix wording and markup in
the last change.
2021-10-30 Vince Salvino <salvino@coderedcorp.com>
Support system dark mode on Windows 10 version 1809 and higher
* src/w32fns.c (DARK_MODE_APP_NAME)
(DWMWA_USE_IMMERSIVE_DARK_MODE_OLD)
(DWMWA_USE_IMMERSIVE_DARK_MODE): Define.
(w32_applytheme): New function.
(w32_createvscrollbar, w32_createhscrollbar, w32_createwindow):
Call 'w32_applytheme'.
(globals_of_w32fns): Load 'DwmSetWindowAttribute' and
'SetWindowTheme' from their DLLs, and initialize 'w32_darkmode'.
* src/w32.c (w32_get_resource): Accept an additional argument
instead of hard-coding REG_ROOT; callers changed. (Bug#51404)
* etc/NEWS:
* doc/emacs/msdos.texi (Windows Misc): Document the new feature.
2021-10-30 Eli Zaretskii <eliz@gnu.org>
Merge from origin/emacs-28
20ebd91a73 Improve documentation of string truncation APIs
3f998a3fc8 * lisp/textmodes/css-mode.el: Fix typo. (Bug#51488)
2021-10-29 Stefan Kangas <stefan@marxist.se>
* src/image.c: Fix building with giflib on MS-Windows.
2021-10-29 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
52e7049b58 * lisp/loadup.el: Unbreak build.
91e7df281e Move lisp/shorthands.el to lisp/emacs-lisp/shorthands.el
00103154e0 Some Tramp changes, mainly in tramp-tests.el
2021-10-29 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
08de838531 ; Improve commentary in the last change
3da9fa875b Make hieroglyphs display correctly with existing fonts
928e05f2d6 Clarify "default face attributes" in the ELisp manual
5dbb04e0eb Make `C-u RET' work again
d72fefdeab Fix typos in the manual and in a comment
2021-10-29 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
f52fa1c150 image-dired: Unreverse accidentally reversed menus
# Conflicts:
# lisp/image-dired.el
2021-10-29 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
7e2b973d60 * lisp/textmodes/text-mode.el (text-mode-context-menu): Re...
da6d889e90 ; * etc/NEWS: Use active voice for 'repeat-mode', etc.
e3171e7e86 Allow automatic use of color fonts for emoji on macOS
# Conflicts:
# etc/NEWS
2021-10-29 Stefan Kangas <stefan@marxist.se>
Prefer giflib 5 macros to magic numbers
* src/image.c (DISPOSAL_UNSPECIFIED, DISPOSE_DO_NOT)
(DISPOSE_BACKGROUND, DISPOSE_PREVIOUS, NO_TRANSPARENT_COLOR)
[GIFLIB_MAJOR < 5]: Macro defined (for old versions of giflib).
(gif_load): Replace magic numbers with giflib 5 macros for disposal
and transparency_color_index.
2021-10-29 Stefan Kangas <stefan@marxist.se>
Don't parse GCB block by hand with giflib 5 or later
* src/image.c (gif_load): If GIFLIB_MAJOR > 5, use
DGifSavedExtensionToGCB instead of parsing the Graphic Control
Extension block by hand.
2021-10-29 Lars Ingebrigtsen <larsi@gnus.org>
Make message/rfc822 on buttons work again in Gnus
* lisp/gnus/gnus-art.el (gnus-article-mode): Set
mm-inline-message-prepare-function buffer-locally so that it works
both when inlining rfc822 and hitting the MIME button (bug#51388).
(gnus-mime--inline-message): Factor out into own function.
(gnus-mime-display-single): From here.
2021-10-29 Morgan J. Smith <Morgan.J.Smith@outlook.com>
Add some gnus-short-group-name tests
* test/lisp/gnus/gnus-group-tests.el (gnus-short-group-name): Add
some gnus-short-group-name tests (bug#51450).
2021-10-29 Lars Ingebrigtsen <larsi@gnus.org>
Shorten Gnus groups with [foo] in the name better
* lisp/gnus/gnus.el (gnus-short-group-name): Shorten groups with
[] in the names better (bug#51450).
2021-10-29 Stefan Kangas <stefan@marxist.se>
* src/image.c (gif_load): Minor simplification.
2021-10-29 Eli Zaretskii <eliz@gnu.org>
Fix bootstrapping broken by a recent change
* src/keymap.c (Flookup_key): Avoid crashes during bootstrap when
uni-lowercase.el is not available yet.
2021-10-28 akater <nuclearspace@gmail.com>
Indent cl-flet-like forms correctly in incomplete expressions
* lisp/emacs-lisp/lisp-mode.el
(lisp--local-defform-body-p): Support incomplete sexps
* test/lisp/progmodes/elisp-mode-resources/flet.erts:
Add tests for incomplete sexps (bug#9622).
2021-10-28 Stefan Kangas <stefan@marxist.se>
Be more allowing when looking for menu-bar items
* src/keymap.c (lookup_key_1): Factor out function from
Flookup_key.
(Flookup_key): Be case insensitive, and treat spaces as dashes,
when looking for Qmenu_bar items. (Bug#50752)
* test/src/keymap-tests.el
(keymap-lookup-key/mixed-case)
(keymap-lookup-key/mixed-case-multibyte)
(keymap-lookup-keymap/with-spaces)
(keymap-lookup-keymap/with-spaces-multibyte)
(keymap-lookup-keymap/with-spaces-multibyte-lang-env): New tests.
2021-10-28 Alan Mackenzie <acm@muc.de>
Put missing c-keep-region-active's into the source code
* lisp/progmodes/cc-cmds.el (c-beginning-of-defun): Insert
c-keep-region-active when (< arg 0).
(c-forward-conditional): Insert c-keep-region-active.
2021-10-28 Jim Porter <jporterbugs@gmail.com>
Make comint-term-environment connection-aware (bug#51426)
* lisp/comint.el (comint-term-environment): Make it connection-aware.
* doc/emacs/misc.texi (Shell Options): Document the above change, and
explain how this interacts with 'system-uses-terminfo'.
* etc/NEWS: Announce the above change.
2021-10-28 Eli Zaretskii <eliz@gnu.org>
Ignore more events in input-pending-p
* src/keyboard.c (readable_events)
(kbd_buffer_store_buffered_event): Use 'is_ignored_event' to
decide whether the input event is to be ignored.
(is_ignored_event): New function.
(syms_of_keyboard) <input-pending-p-filter-events>: New variable.
Patch from Aaron Jensen <aaronjensen@gmail.com>.
2021-10-27 Stefan Kangas <stefan@marxist.se>
Do interactive mode tagging in image-dired.el
* lisp/image-dired.el (image-dired-restore-window-configuration)
(image-dired-next-line, image-dired-previous-line)
(image-dired-mark-thumb-original-file)
(image-dired-unmark-thumb-original-file)
(image-dired-flag-thumb-original-file)
(image-dired-toggle-mark-thumb-original-file)
(image-dired-jump-original-dired-buffer)
(image-dired-delete-char, image-dired-refresh-thumb)
(image-dired-display-next-thumbnail-original)
(image-dired-display-previous-thumbnail-original): Do interactive
tagging; these will only work in 'image-dired-thumbnail-mode'.
2021-10-27 Stefan Kangas <stefan@marxist.se>
image-dired: Make thumbnail rotation commands obsolete
* lisp/image-dired.el (image-dired-cmd-rotate-thumbnail-program)
(image-dired-cmd-rotate-thumbnail-options)
(image-dired-rotate-thumbnail)
(image-dired-rotate-thumbnail-left)
(image-dired-rotate-thumbnail-right): Make obsolete in favor of
'image-dired-refresh-thumb' and 'image-rotate'. It makes no sense to
have destructive thumbnail rotation commands now that Emacs can rotate
thumbnails in memory, and it is very fast to just generate a new one
reflecting the rotation of the original.
(image-dired-thumbnail-mode-map): Remove menu entries and key bindings
for above obsolete commands. The rotate right keybinding had already
been made ineffective by the local keymap added by 'insert-image'.
2021-10-27 Stefan Kangas <stefan@marxist.se>
image-dired: Don't show thumbnails if there are no image files
* lisp/image-dired.el (image-dired-show-all-from-dir): Don't show
thumbnail buffer if there are no image files.
2021-10-27 Stefan Kangas <stefan@marxist.se>
Increase image-dired-show-all-from-dir-max-files to 500
* lisp/image-dired.el (image-dired-show-all-from-dir-max-files):
Increase default to 500 to ask for confirmation much less frequently.
The old value was added before we had asynchronous generation of
thumbnails, when a large number of files would lock up Emacs. Asking
for confirmation could probably be disabled completely these days, but
let's be conservative and set it to some large number of files for
which some users might want to see a prompt. It can't hurt.
(image-dired-show-all-from-dir): Never warn if above variable is nil.
(image-dired-bookmark-jump): Let-bind above variable to nil instead of
'most-positive-fixnum'.
* doc/emacs/dired.texi (Image-Dired): Don't mention the above
variable, as it is no longer important enough to deserve the space.
* etc/NEWS: Announce the above change.
2021-10-27 Stefan Monnier <monnier@iro.umontreal.ca>
(string-pixel-width): Rewrite to avoid side effects
* src/xdisp.c (Fwindow_text_pixel_size): Allow `window` to be a buffer.
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Simplify accordingly.
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Revert "Add tentative key bindings for the three emoji commands"
This reverts commit e678067cb5c4a642ef3fab1cc5046a34a4ae35d1.
Applied to the wrong branch.
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Add tentative key bindings for the three emoji commands
2021-10-27 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
2bdd5732aa (origin/emacs-28) ; * etc/NEWS: Fix last change.
492b927909 Fix help commands for menu-bar menus
9589be772d ; * etc/NEWS: Fix typos.
d353fc4a00 ; Explain why "kinds of atom" isn't a typo
47a3750162 ; * etc/NEWS: Improve wording of the Emoji entry.
b814712796 ; Checkdoc fixes in image-dired.el
e45b3fc521 Improve function documentation with text from XDG BDS spec
284c77eeb6 * lisp/transient.el: Update to package version 0.3.7.
40400e6977 ; Revert parts of "Use string-replace instead of replace-r...
214c2e268c ; Revert parts of "Use string-search instead of string-mat...
# Conflicts:
# etc/NEWS
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Simplify string-pixel-width
* lisp/emacs-lisp/subr-x.el (string-pixel-width): Simplify --
save-window-excursion saves dedication status (and the code was
buggy).
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Fix parsing of erts files
* lisp/emacs-lisp/ert.el (ert-test-erts-file): Fix progress
through a test file (bug#51409).
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Harden ert-resource-directory against errors
* lisp/emacs-lisp/ert-x.el (ert-resource-directory): Be more
resilient -- don't bug out if called from a file that's not
visiting a directory.
2021-10-27 Jim Porter <jporterbugs@gmail.com>
Be more efficient when checking for a matching client in server.el
lisp/server.el (server-handle-delete-frame): Use 'seq-some' to
determine if another frame for the current client exists.
(server-kill-emacs-query-function): Use 'seq-some' to determine if
another live client exists (bug#51420).
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Add new function 'string-pixel-width'
* doc/lispref/display.texi (Size of Displayed Text): Mention it.
* lisp/emacs-lisp/shortdoc.el (string): Mention it.
* lisp/emacs-lisp/subr-x.el (string-pixel-width): New function.
2021-10-27 Miha Rihtaršič <miha@kamnitnik.top>
Allow matching non-.git gitlab and gitea URLs in bug-reference
* lisp/progmodes/bug-reference.el
(bug-reference--build-forge-setup-entry): Allow matching non-.git
gitlab and gitea URLs, with and without slashes (bug#51316).
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Always start the SIGALRM atimers
* src/atimer.c (init_atimer): Always start the SIGALRM alarms,
even if we're using timerfd (bug#19776). See long, long
discussion in the bug report for why this is necessary.
2021-10-27 Lars Ingebrigtsen <larsi@gnus.org>
Redisplay after changing to the hourglass mouse pointer
* src/xterm.c (x_show_hourglass): Do a redisplay after changing to
the hourglass pointer -- otherwise it won't be displayed until a
keyboard/mouse event arrives (bug#19776).
2021-10-27 Stefan Kangas <stefan@marxist.se>
image-dired: Set line-spacing to match horizontal space
* lisp/image-dired.el (image-dired-thumbnail-mode): Set value of
'line-spacing' to approximately match horizontal space. This makes
the thumbnail view look better.
2021-10-27 Stefan Kangas <stefan@marxist.se>
image-dired: Add support for bookmark.el
* lisp/image-dired.el (image-dired-thumbnail-mode): Add bookmark.el support.
(bookmark-make-record-default, bookmark-prop-get): Declare.
(image-dired-bookmark-name, image-dired-bookmark-make-record)
(image-dired-bookmark-jump): New defuns.
2021-10-27 Stefan Kangas <stefan@marxist.se>
Add test for file-name-base
* test/lisp/files-tests.el (files-tests-file-name-base): New test.
2021-10-26 Stefan Kangas <stefan@marxist.se>
image-dired: Improve mouse behaviour
* lisp/image-dired.el (image-dired-thumbnail-mode-map): Improve mouse
behaviour: ignore dragging, as it currently doesn't do anything
useful, and make all clicks just select the thumbnail.
(image-dired-mouse-display-image)
(image-dired-mouse-select-thumbnail): Move point to closest image
after clicking in buffer.
2021-10-26 Stefan Kangas <stefan@marxist.se>
image-dired: Don't ding at beginning or end of buffer
* lisp/image-dired.el
(image-dired--display-thumb-properties-fun): New defun.
(image-dired-forward-image, image-dired-backward-image): Don't ding
when moving past first or last image; instead show a message, wait a
second and then show image properties.
2021-10-26 Stefan Kangas <stefan@marxist.se>
image-dired: Add new commands for beginning/end of buffer
* lisp/image-dired.el (image-dired-beginning-of-buffer)
(image-dired-end-of-buffer): New commands.
(image-dired-thumbnail-mode-map): Bind new beginning of buffer command
to '<' and 'M-<', and end of buffer command to '>' and 'M->'.
2021-10-26 Stefan Kangas <stefan@marxist.se>
Add new function image-at-point-p
* lisp/image.el (image-at-point-p): New defun.
* doc/lispref/display.texi (Showing Images): Document above new defun.
2021-10-26 Stefan Kangas <stefan@marxist.se>
image-dired: Use an evenly spaced grid for thumbnails
* lisp/image-dired.el (image-dired-line-up): Use an evenly spaced
grid for thumbnails, even if image sizes differ.
2021-10-26 Stefan Kangas <stefan@marxist.se>
image-dired: Use example.org in examples
* lisp/image-dired.el (image-dired-gallery-image-root-url)
(image-dired-gallery-thumb-image-root-url): Use example.org to be
RFC 2606 compliant.
2021-10-26 Stefan Kangas <stefan@marxist.se>
image-dired: Increase number of asynch thumbnail generation jobs
* lisp/image-dired.el (image-dired-queue-active-limit): Increase the
number of asynchronous thumbnail generation jobs to a maximum of 4 or
processor count divided by 2. This makes thumbnail generation around
30 % faster when benchmarking this on my machine (8 cores/4 jobs).
(image-dired-debug): New defvar.
(image-dired-debug-message): New defun.
(image-dired--generate-thumbs-start): New defvar.
(image-dired-create-thumb-1, image-dired-display-thumbs): Display time
spent on thumbnail generation if 'image-dired-debug' is non-nil.
2021-10-26 Alan Mackenzie <acm@muc.de>
CC Mode: minor amendments more accurately to handle virtual semicolons, etc.
* lisp/progmodes/cc-engine.el (c-laomib-loop): Check for a virtual semicolon
as well as a ;.
(c-guess-basic-syntax): CASE 5D - Use c-crosses-statement-barrier-p to check
whether we've gone back past a virtual semicolon.
2021-10-26 Alan Mackenzie <acm@muc.de>
* lisp/progmodes/cc-engine.el (c-fontify-new-found-type): Declare near BO File
2021-10-26 Michael Albinus <michael.albinus@gmx.de>
* test/infra/gitlab-ci.yml (build-image-inotify): Increase timeout.
(test-native-comp-speed0): Adapt make_params.
2021-10-26 Mattias Engdegård <mattiase@acm.org>
* lisp/progmodes/xref.el (xref-pop-marker-stack): Don't obsolete.
2021-10-25 Mattias Engdegård <mattiase@acm.org>
Rename `xref-pop-marker-stack` to `xref-go-back` (bug#38797)
It is the natural name after the addition of `xref-go-forward`.
The old name is retained as an alias.
* lisp/progmodes/xref.el (xref-pop-marker-stack): Rename.
(xref-go-forward, xref-quit-and-pop-marker-stack)
(xref-find-definitions):
* lisp/menu-bar.el (menu-bar-goto-menu):
* lisp/progmodes/etags.el (find-tag-marker-ring, pop-tag-mark):
* lisp/progmodes/prog-mode.el (prog-context-menu):
* doc/emacs/maintaining.texi (Looking Up Identifiers):
* etc/NEWS:
Use the new name.
2021-10-25 Eric Abrahamsen <eric@ericabrahamsen.net>
IMAP search should only use charset utf-8 with multibyte strings
Background: Exchange servers cannot accept "charset utf-8" search
strings. The code originally set that charset for any server with
literal+ capability, borking all searches on an Exchange server. This
code only sets utf-8 for multibyte search strings in particular, which
would be borken for Exchange anyway.
* lisp/gnus/gnus-search.el (gnus-search-imap-search-command): Ensure
we're only doing the literal+ dance for multibyte strings (multibyte
strings will have had newlines inserted in an earlier step).
2021-10-25 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
a2c17e115e (origin/emacs-28) Merge branch 'emacs-28' of git.savannah....
fde56eeb76 Revert "Fix a typo in emacs-lisp-intro.texi"
4779d3ba19 * doc/lispref/functions.texi (Mapping Functions): Use #' w...
85ea3f7f47 Fix issue with interpreting ANSI codes in eshell
50f9436146 image-dired: Doc fix to better explain thumbnail generation
bb475e10b9 Clarify two image-dired docstrings
f5b4bb4a6f Fix flymake example backend conditions in the manual
0771d8939a * etc/PROBLEMS: Mention problems with regexp matcher. (Bu...
ee579033b9 * test/lisp/repeat-tests.el: New file.
7385a7667f * lisp/tab-bar.el (tab-bar-move-repeat-map): Fix alias bin...
56caf1c9b8 Use restrictive umask when creating image-dired data
3b5de7f991 ; lisp/transient.el: Revert some misguided stylistic fixes.
2021-10-25 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
817c929eda Doc fix for concat
3eca2ad2a1 * lisp/image-dired.el (image-dired-external-viewer): Suppo...
2021-10-25 Glenn Morris <rgm@gnu.org>
* doc/misc/cc-mode.texi (Font Locking): Fix menu.
2021-10-25 Lars Ingebrigtsen <larsi@gnus.org>
Add the "always" zsh builtin to zsh mode
* lisp/progmodes/sh-script.el (sh-builtins): Add the "always" zsh
keyword (bug#51387).
2021-10-25 Mattias Engdegård <mattiase@acm.org>
Add xref forward history (bug#38797)
Make it possible to go forward as well as back in the Xref history.
The new `xref-go-forward` is bound to `C-M-,`.
* lisp/progmodes/etags.el (find-tag-marker-ring-length): Update.
(tags-location-ring-length): New.
(find-tag-marker-ring): Keep as dummy.
(tags-location-ring, tags-reset-tags-tables):
Use `tags-location-ring-length` instead of `xref-marker-ring-length`.
* lisp/progmodes/xref.el (xref-marker-ring-length, xref-marker-ring)
(xref-set-marker-ring-length):
Make obsolete.
(xref--history, xref-go-forward, xref-forward-history-empty-p): New.
(xref-push-marker-stack, xref-pop-marker-stack)
(xref-clear-marker-stack, xref-marker-stack-empty-p):
Use `xref--history`.
* lisp/menu-bar.el (menu-bar-goto-menu): Add Forward entry.
* doc/emacs/maintaining.texi (Looking Up Identifiers): Document.
* etc/NEWS: Announce.
2021-10-25 Lars Ingebrigtsen <larsi@gnus.org>
Allow viewing .heic images via image-convert
* lisp/files.el (auto-mode-alist): Support the Apple .heic/HEIF
image format (bug#51381).
2021-10-25 Lars Ingebrigtsen <larsi@gnus.org>
Change the with-delayed-message syntax to allow future extensibility
* doc/lispref/display.texi (Progress): Document it.
* lisp/subr.el (with-delayed-message): Change the syntax to allow
future extensibility.
* lisp/net/eww.el (eww-display-html): Use it.
2021-10-25 Lars Ingebrigtsen <larsi@gnus.org>
Heed the EMACS_IGNORE_TIMERFD environment variable
* src/emacs.c (main): Call init_atimer after setting up the
environment so that the EMACS_IGNORE_TIMERFD environment variable
is actually heeded.
2021-10-25 Martin Rudalics <rudalics@gmx.at>
Allow 'display-buffer' to set up body size of chosen window (Bug#17065)
* doc/lispref/windows.texi (Buffer Display Action Alists):
Describe new possible values for 'window-height', 'window-width'
and 'window-size' action alist entries.
* lisp/window.el (window--display-buffer): Handle new values for
'window-height', 'window-width' and 'window-size' ALIST entries.
(display-buffer): Update doc-string for new values of some
action alist entries.
* etc/NEWS: Mention new values of some action alist entries.
2021-10-25 Stefan Kangas <stefan@marxist.se>
New function xdg-state-home
* lisp/xdg.el (xdg-state-home): New function. This returns
$XDG_STATE_HOME according to the XDG Base Directory Specification
version 0.8 (08th May 2021).
2021-10-25 Stefan Kangas <stefan@marxist.se>
image-dired: Improve XDG compliance
* lisp/image-dired.el (xdg): Require.
(image-dired-main-image-directory): Prefer XDG_PICTURES_HOME.
(image-dired-thumb-name): Simplify by using 'xdg-cache-home'.
2021-10-25 Stefan Kangas <stefan@marxist.se>
Double value of image-dired-show-all-from-dir-max-files
* lisp/image-dired.el (image-dired-show-all-from-dir-max-files):
Double the amount of files in directory before prompting. This could
be even higher, as the thumbnails are generated asynchronously and are
small by default.
2021-10-24 Stefan Kangas <stefan@marxist.se>
image-dired: Add support for GraphicsMagick
* lisp/image-dired.el (image-dired-cmd-create-thumbnail-program)
(image-dired-cmd-create-thumbnail-options)
(image-dired-cmd-create-temp-image-program)
(image-dired-cmd-create-temp-image-options)
(image-dired-cmd-rotate-thumbnail-program)
(image-dired-cmd-rotate-thumbnail-options): Add support for the
GraphicsMagick command line tool ("gm convert", "gm mogrify").
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix issues with type casting in delayed message functions
* src/eval.c (with_delayed_message_display)
(with_delayed_message_cancel, Ffuncall_with_delayed_message): Fix
some type confusion.
2021-10-24 Stefan Kangas <stefan@marxist.se>
Support new Thumbnail Managing Standard sizes in image-dired
* lisp/image-dired.el
(image-dired--thumbnail-managing-standard-sizes): New defconst.
(image-dired-thumbnail-storage)
(image-dired-thumb-name, image-dired-insert-thumbnail)
(image-dired-thumb-size, image-dired-create-thumb-1): Support larger
thumbnail sizes mandated by new version of the Thumbnail Managing
Standard (December 2020, Version 0.9.0).
2021-10-24 Stefan Kangas <stefan@marxist.se>
Use SHA1 when creating thumbnail file name
* lisp/image-dired.el (image-dired-thumb-name): Improve docstring.
Use SHA1 for hashing when creating file name. SHA1 is slightly faster
than MD5, and has a few more bits.
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Remove debugging in with_delayed_message_display
* src/eval.c (with_delayed_message_display): Remove debugging.
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Display a message if HMTL rendering takes a long time
* lisp/net/eww.el (eww-display-html): Display a message if HTML
rendering takes a long time (bug#19776).
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Add new macro `with-delayed-message'
* doc/lispref/display.texi (Progress): Document it.
* lisp/subr.el (with-delayed-message): New macro.
* src/eval.c (with_delayed_message_display)
(with_delayed_message_cancel): Helper functions.
(Ffuncall_with_delayed_message): New function (bug#19776).
2021-10-24 Alan Mackenzie <acm@muc.de>
CC Mode: Fontify "found types" which are recognized after being first scanned
This aims to fix the scenario where on jit-lock's first scan of a type, it is
not recognized as such, and only later does this happen. The fontification of
such found types is now done by background scanning in short time slices
immediately after initialising the mode.
* lisp/progmodes/cc-engine.el (c-add-type-1): New function.
(c-add-type): Extract c-add-type-1 from it, and reformulate the mechanism for
protecting c-found-types from excessive partial identifiers.
* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Remove the
code which cleared c-found-types on fontification at BOB.
(c-find-types-background): New function, based on c-font-lock-declarations).
(c-type-finder-timer-func): New function.
(c-re-redisplay-timer): New variable.
(c-force-redisplay, c-fontify-new-found-type): New functions.
* lisp/progmodes/cc-mode.el (c-type-finder-timer, c-inhibit-type-finder): New
variables.
(c-leave-cc-mode-mode): Nullify c-post-command-hook, c-post-gc-hook, and
c-type-finder-timer when the last CC Mode buffer of a session is killed.
(c-type-finder-pos): New variable.
(c-basic-common-init): Initialize/Install c-post-command, c-c-type-finder-pos,
c-type-finder-timer, and c-post-gc-hook.
(c-new-id-start, c-new-id-end, c-new-id-is-type): New variables.
(c-update-new-id): New function.
(c-post-command): New post command hook function, used for checking moving
away from partially typed identifiers, and making them full identifiers.
(c-post-gc-hook): New hook to prevent CC Mode activity immediately following
GC, thus allowing keyboard/mouse input to be registered.
(c-before-change): Add code to clear c-found-types on a buffer change at BOB.
(c-after-change): Call c-update-new-id to keep track of partially typed
identifiers.
* doc/misc/cc-mode.texi (Found Types): New @section in the @Chapter Font
Locking.
* lisp/progmodes/cc-vars.el (c-type-finder-time-slot)
(c-type-finder-repeat-time, c-type-finder-chunk-size): New customizable
options.
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix mouse buttons in dired--make-directory-clickable
* lisp/dired.el (dired--make-directory-clickable): Adjust mouse
clicks to conform to our standards.
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Don't unhide first thread if entering without selecting article
* lisp/gnus/gnus-sum.el (gnus-summary-first-unread-subject)
(gnus-summary-first-unseen-subject)
(gnus-summary-first-unseen-or-unread-subject): Use it.
(gnus-summary--goto-and-possibly-unhide): New function -- don't
unhide the first thread unless necessary (bug#51344).
2021-10-24 Sharaf Zaman <shzam@sdf.org> (tiny change)
Fix a memory leak in pgtk_draw_fringe_bitmap
* src/pgtkterm.c (pgtk_draw_fringe_bitmap): we had an unbalanced
cairo_save/restore.
2021-10-24 Stefan Kangas <stefan@marxist.se>
Improve documentation of image-dired thumbnails
* lisp/image-dired.el: Fix documentation on thumbnail file format to
correctly say that it can be either PNG or JPEG; not just JPEG. Also
fix inconsistent formatting in comments.
* lisp/image-dired.el (image-dired-thumbnail-storage): Improve
docstring.
2021-10-24 Stefan Kangas <stefan@marxist.se>
Add support for pngquant to image-dired
* lisp/image-dired.el (image-dired-cmd-pngnq-program)
(image-dired-cmd-pngnq-options): Add support for pngquant.
Prefer, in this order: pngquant, pngnq-s9, pngnq-s for reasons of
speed and how actively maintained the projects seem to be.
2021-10-24 Eli Zaretskii <eliz@gnu.org>
Fix compilation errors with MinGW64 GCC 11
* lib-src/ntlib.c (IS_DIRECTORY_SEP): Remove redundant macro.
* lib-src/ntlib.c (DEFER_MS_W32_H):
* nt/addpm.c (DEFER_MS_W32_H):
* nt/cmdproxy.c (DEFER_MS_W32_H):
* nt/ddeclient.c (DEFER_MS_W32_H):
* nt/preprep.c (DEFER_MS_W32_H):
* nt/runemacs.c (DEFER_MS_W32_H): Fix a typo.
* nt/Makefile.in (BASE_CFLAGS): Add -I switches to pick up
config.h and lib/attribute.h.
2021-10-24 Paul Eggert <eggert@cs.ucla.edu>
Include <config.h> first in MS-Windows source
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Fix define-erc-response-handler indentation
* lisp/erc/erc-backend.el (define-erc-response-handler): Add
proper indentation.
2021-10-24 Stefan Kangas <stefan@marxist.se>
Add new option help-link-key-to-documentation
* lisp/help.el (help-link-key-to-documentation): New user option.
(substitute-command-keys): Add a link from keys to the command they
are bound to, if the above new option is non-nil. (Bug#8951)
* etc/NEWS: Announce the new option.
2021-10-24 William Xu <william.xwl@gmail.com>
Make dired directory components clickable
* lisp/dired.el (dired-readin): Use it.
* lisp/dired.el (dired-make-directory-clickable): New user option.
* lisp/dired.el (dired--make-directory-clickable): New function
(bug#21973).
2021-10-24 Mattias Engdegård <mattiase@acm.org>
Don't use obsolete variable `find-tag-marker-ring`
* lisp/progmodes/js.el (js-find-symbol):
* lisp/progmodes/octave.el (octave-find-definition):
Call `xref-push-marker-stack` instead of manipulating the obsolete
variable `find-tag-marker-ring`.
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Tweak bug-reference-tests
* test/lisp/progmodes/bug-reference-tests.el: Tweak tests a bit.
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Clean up duplicated setting in scheme-mode-variables
* lisp/progmodes/scheme.el (scheme-mode-variables): Remove
repeated setting.
2021-10-24 Lars Ingebrigtsen <larsi@gnus.org>
Allow matching non-.git URLs in bug-reference
* lisp/progmodes/bug-reference.el
(bug-reference--build-forge-setup-entry): Allow matching non-.git
URLs, with and without slashes (bug#51316).
2021-10-24 Stefan Kangas <stefan@marxist.se>
Don't hard-code image-dired thumbnail type
* lisp/image-dired.el (image-dired-insert-thumbnail): Detect thumbnail
image type instead of hard-coding it.
2021-10-24 Stefan Kangas <stefan@marxist.se>
Expand tests for image-type-from-file-header
* test/lisp/image-tests.el (image-tests--files): New defconst.
(image-tests--type-from-file-header): New defun.
(image-type-from-file-header-test/jpeg)
(image-type-from-file-header-test/pbm)
(image-type-from-file-header-test/png)
(image-type-from-file-header-test/svg)
(image-type-from-file-header-test/tiff)
(image-type-from-file-header-test/webp)
(image-type-from-file-header-test/xbm)
(image-type-from-file-header-test/xpm): New tests.
(image-type-from-file-header-test): Delete test.
2021-10-24 Stefan Kangas <stefan@marxist.se>
Add tests for gif to src/image-tests.el
* test/src/image-tests.el (image-tests--images): Rename from
image-tests-files. Add gif.
(image-tests-image-size/gif)
(image-tests-image-mask-p/gif)
(image-tests-image-metadata/gif): New tests.
* test/data/image/black.gif: New file.
2021-10-24 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
c7f53824a8 (origin/emacs-28) Update publicsuffix.txt from upstream
9a50f760e9 ; * doc/lispref/modes.texi (Hooks): Clarify wording. (Bug...
e154fd9119 Refer to the info node on keymaps in map-keymap docstring
4fd5c8df67 Clarify abnormal hook documentation
6fa5206770 Update to Org 9.5-59-g52e6f1
39413a45bf ; * doc/lispref/functions.texi (Calling Functions): Fix la...
43914ab01f Improve documentation of cl-reduce
ef37a86cac Improve documentation of apply-partially
1e8be48738 Fix typos
8c5fbd712b Revert commit 225ca617b7, and apply another fix
cdbd03345d Fix documentation of posn-at-x-y
598732c899 ; * src/vm-limit.c (get_lim_data): Fix a typo. (Bug#18238)
efdffd86c5 ; * etc/refcards/README: Prefer HTTPS in link.
# Conflicts:
# etc/NEWS
2021-10-24 Stefan Kangas <stefan@marxist.se>
Make dired-x-guess-file-name-at-point obsolete
* lisp/dired-x.el (dired-x-guess-file-name-at-point): Make
obsolete in favour of 'thing-at-point'.
(dired-x-read-filename-at-point): Use 'thing-at-point' instead of
above obsolete function.
2021-10-23 Michael Albinus <michael.albinus@gmx.de>
Check for image library in image-dired-tests.el
* test/lisp/image-dired-tests.el
(image-dired-tests-get-exif-file-name): Check for jpeg library.
2021-10-23 Dmitry Gutov <dgutov@yandex.ru>
Support :company-deprecated completion property
* lisp/progmodes/elisp-mode.el (elisp--company-deprecated):
New function.
(elisp-completion-at-point): Use it.
2021-10-23 Michael Albinus <michael.albinus@gmx.de>
* test/infra/gitlab-ci.yml (variables, default): Increase timeout to 4 hours.
2021-10-23 Alan Mackenzie <acm@muc.de>
Revert "CC Mode: Fontify "found types" which are recognized after being ..."
This reverts commit 51719617eb19833056618ebac403cdcaf711551a. The commit
caused a hang at start-up with a big desktop.
2021-10-23 Stefan Kangas <stefan@marxist.se>
Partially remove exiftool dependency from image-dired.el
* lisp/image-dired.el (exif): Require.
(image-dired-cmd-read-exif-data-program)
(image-dired-cmd-read-exif-data-options)
(image-dired-get-exif-data): Make obsolete in favour of using
exif.el. This removes a dependency on external exiftool for some
operations.
(image-dired-get-exif-file-name)
(image-dired-thumbnail-set-image-description): Use exif.el
functions instead of exiftool.
* lisp/image/exif.el (exif-tag-alist): Add description and
copyright fields.
* test/lisp/image-dired-tests.el: New file.
2021-10-23 Stefan Kangas <stefan@marxist.se>
Add new function exif-field
* test/lisp/image/exif-tests.el (exif-elem): Move function from here...
* lisp/image/exif.el (exif-field): ...to here, and rename.
(exif-orientation):
* test/lisp/image/exif-tests.el (test-exif-parse)
(test-exif-parse-short): Use above new function.
2021-10-22 Stefan Kangas <stefan@marxist.se>
Add links to commentary reached with finder-list-keywords
* lisp/finder.el (finder-goto-xref): Move from here...
* lisp/emacs-lisp/package.el (package--finder-goto-xref): ...to
here. Make the old name into an obsolete function alias.
(package--finder-xref): New button type.
(package--describe-add-library-links): Factor out new function...
* lisp/finder.el (finder-commentary): ...from here.
(describe-package-1): Call above new function. This fixes an
issue where commentaries reached via 'finder-list-keywords' did
not have links. (Bug#10814)
2021-10-22 Stefan Kangas <stefan@marxist.se>
* src/image.c (webp_load): Fix thinkos.
2021-10-22 Alan Mackenzie <acm@muc.de>
CC Mode: Fontify "found types" which are recognized after being first scanned
This aims to fix the scenario where on jit-lock's first scan of a type, it is
not recognized as such, and only later does this happen. The fontification of
such found types is now done by background scanning in short time slices
immediately after initialising the mode.
* lisp/progmodes/cc-engine.el (c-add-type-1): New function.
(c-add-type): Extract c-add-type-1 from it, and reformulate the mechanism for
protecting c-found-types from excessive partial identifiers.
* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare): Remove the
code which cleared c-found-types on fontification at BOB.
(c-find-types-background): New function, based on c-font-lock-declarations).
(c-types-finder-timer-func): New function.
(c-re-redisplay-timer): New variable.
(c-force-redisplay, c-fontify-new-found-type): New functions.
* lisp/progmodes/cc-mode.el (c-type-finder-timer): New variable.
(c-leave-cc-mode-mode): Nullify c-post-command-hook and c-type-finder-timer
when the last CC Mode buffer of a session is killed.
(c-type-finder-pos): New variable.
(c-basic-common-init): Initialize c-type-finder-pos and c-type-finder-timer.
(c-new-id-start, c-new-id-end, c-new-id-is-type): New variables.
(c-update-new-id): New function.
(c-post-command): New post command hook function, used for checking moving
away from partially typed identifiers, and making them full identifiers.
(c-before-change): Add code to clear c-found-types on a buffer change at BOB.
(c-after-change): Call c-update-new-id to keep track of partially typed
identifiers.
* doc/misc/cc-mode.texi (Found Types): New @section in the @Chapter Font
Locking.
* lisp/progmodes/cc-vars.el (c-type-finder-time-slot)
(c-type-finder-repeat-time, c-type-finder-chunk-size): New customizable
options.
2021-10-22 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
b0d64be0bc (origin/emacs-28) Improve some NEWS entries
7fde84e881 Improve documentation of syntax-ppss-context slightly
5ecbed01b2 ; * test/lisp/mh-e/mh-utils-tests.el: Update macro declara...
168665da59 Move some xwidget entries
efde024361 time-stamp-tests: improvements to test macros
06c944cff1 Fix rfc6068-parse-mailto-url autoload
9b6b5e37ef Regexp-quote github domains in bug-reference
1f6cdeb12c Ensure valid end/beginning lines in message-mark-inserted-...
9b46150ab0 * etc/NEWS: Improve 'repeat-mode' entry.
9c37b812da ; * lisp/repeat.el (repeat-mode): Fix docstring typo.
caf87d80fa * lisp/repeat.el (repeat-keep-prefix): Expand description.
24083c8d13 * lisp/net/eww.el (eww-retrieve-command): Add :tag.
cf7d8fb1d7 Add description of cards to etc/refcards/README
d2849cc645 Fix 'calculate-lisp-indent' when "[" starts containing sex...
2a0a368ddc Fix typo in doc/emacs/anti.texi
9529e1d2fb Update doc of Edebug specification for macros
5bc522b4f4 ; * lisp/simple.el (kill-region): A better fix for bug#51320.
ee6bdd6eef Fix non-interactive behavior of 'kill-region'
2b7655ca0e ; More accurate doc string for 'tab-bar-format'
2841e26744 * test/lisp/dabbrev-tests.el: Use 'kbd' for readable keys.
1cdb4d2077 * lisp/menu-bar.el (menu-bar-keymap): Add optional arg KEY...
# Conflicts:
# etc/NEWS
# lisp/progmodes/bug-reference.el
2021-10-22 Michael Albinus <michael.albinus@gmx.de>
Adapt some emba parameters
* test/infra/Dockerfile.emba (emacs-inotify): Reduce debug options.
* test/infra/gitlab-ci.yml (test-native-comp-speed0): Adapt make_params.
2021-10-22 Eli Zaretskii <eliz@gnu.org>
Fix WebP support on MS-Windows
* src/image.c (WebPDecodeRGBA, WebPDecodeRGB, WebPFree): Use
correct names and argument lists in DEF_DLL_FN; fix typos.
(WebPGetFeaturesInternal): Load this instead of WebPGetFeatures,
which is a static inline function in webp/decode.h.
(WebPGetFeatures): Redirect to call WebPGetFeaturesInternal.
* lisp/term/w32-win.el (dynamic-library-alist): Fix the name of
the WebP symbol.
* configure.ac (HAVE_WEBP): Fix detection of libwebp on MinGW.
* nt/INSTALL.W64:
* nt/INSTALL: Update information about libwebp availability.
2021-10-22 Stefan Kangas <stefan@marxist.se>
Add WebP image format support (Bug#51296)
* configure.ac (--with-webp): New option.
(HAVE_WEBP): New variable.
(emacs_config_features): Add webp.
* src/image.c (enum webp_keyword_index) [HAVE_WEBP]: New enum.
(webp_format) [HAVE_WEBP]: New variable.
(webp_image_p, init_webp_functions, webp_load) [HAVE_WEBP]: New
functions for WebP support.
(image_types) [HAVE_WEBP]: Define WebP format.
(syms_of_image) <Qwebp> [HAVE_WEBP]: New DEFSYM. Add image type Qwebp.
* src/Makefile.in (LIBIMAGE): Add WEBP_LIBS.
* lisp/files.el (auto-mode-alist):
* lisp/image-file.el (image-file-name-extensions):
* lisp/image.el (image-type-header-regexps)
(image-type-file-name-regexps, image-type-auto-detectable): Add WebP
support.
* lisp/term/w32-win.el (dynamic-library-alist): Add the libwebp DLL.
* INSTALL:
* admin/CPP-DEFINES:
* doc/lispref/display.texi (Image Formats, Other Image Types):
* nt/INSTALL: Document WebP support.
* test/lisp/image-tests.el (image-find-image)
(image-type-from-file-name): Expand tests.
* test/src/image-tests.el (image-tests--files): Add WebP.
(image-tests-image-size/webp, image-tests-image-mask-p/webp)
(image-tests-image-metadata/webp): New tests.
* test/data/image/black.webp: New file.
2021-10-22 Martin Rudalics <rudalics@gmx.at>
In 'window-text-pixel-size' use actual mode line heights if wanted (Bug#38181)
* src/xdisp.c (Fwindow_text_pixel_size): Run display_mode_line
when MODE_LINES wants it to take actual mode line heights into
account (Bug#38181).
2021-10-21 Stefan Kangas <stefan@marxist.se>
Remove redundant #' before lambda
* admin/unidata/unidata-gen.el (unidata-gen-table)
(unidata-gen-table-symbol, unidata-gen-table-integer)
(unidata-gen-table-numeric, unidata-gen-table-word-list)
(unidata-describe-decomposition):
* lisp/apropos.el (apropos-user-option):
* lisp/bookmark.el (bookmark-bmenu-search):
* lisp/composite.el (unicode-category-table):
* lisp/elec-pair.el (electric-pair--balance-info):
* lisp/electric.el (electric-quote-chars):
* lisp/emulation/cua-base.el (cua-rectangle-mark-key):
* lisp/epa-hook.el (epa-file-encrypt-to):
* lisp/faces.el (face-font-selection-order)
(face-font-family-alternatives, face-font-registry-alternatives)
(face-valid-attribute-values, tty-run-terminal-initialization):
* lisp/files.el (recover-file, file-expand-wildcards):
* lisp/frame.el (frames-on-display-list):
* lisp/help-at-pt.el (help-at-pt-display-when-idle):
* lisp/help-fns.el (help-fns--face-attributes):
* lisp/ido.el (ido-mode, ido-unc-hosts):
* lisp/isearch.el (isearch-highlight-regexp)
(isearch-highlight-lines-matching-regexp):
* lisp/language/indian.el (script-regexp-alist):
* lisp/language/lao.el:
* lisp/leim/quail/ipa.el (ipa-x-sampa-prepend-to-keymap-entry):
* lisp/mh-e/mh-folder.el (mh-process-commands):
* lisp/mh-e/mh-mime.el (mh-display-with-external-viewer):
* lisp/ps-mule.el (ps-mule-end-job):
* lisp/ps-print.el (ps-color-scale, ps-background-pages)
(ps-background-text, ps-background-image, ps-background)
(ps-begin-job, ps-print-translation-table):
* lisp/recentf.el (recentf-sort-ascending)
(recentf-sort-descending, recentf-sort-basenames-ascending)
(recentf-sort-basenames-descending)
(recentf-sort-directories-ascending)
(recentf-sort-directories-descending):
* lisp/replace.el (occur-engine-add-prefix):
* lisp/select.el (xselect--encode-string):
* lisp/server.el (server-use-tcp):
* lisp/ses.el (ses-sort-column):
* lisp/sort.el (sort-columns):
* lisp/term/ns-win.el (window-system-initialization):
* lisp/tree-widget.el (tree-widget-image-formats):
* lisp/whitespace.el (whitespace-report-region): Remove redundant #'
before lambda.
2021-10-21 Stefan Kangas <stefan@marxist.se>
Add comment on reworking a section in emacs-lisp-intro.texi
* doc/lispintro/emacs-lisp-intro.texi (Body of mark-whole-buffer):
Add comment about how one could rework this section.
2021-10-21 Michael Albinus <michael.albinus@gmx.de>
Configure Emacs on emba with debug options
* test/infra/Dockerfile.emba (emacs-base): Install gdb.
(emacs-inotify): Configure debug options.
2021-10-21 Lars Ingebrigtsen <larsi@gnus.org>
Actually fix the Pango build problem
* src/gtkutil.c (xg_weight_to_symbol): Don't break the build on
older systems.
2021-10-21 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
0545c70c16 (origin/emacs-28) ; * src/keyboard.c (readable_events): Ad...
805ed8d318 Fix todo-mode AOT test failures (bug#51308)
8f42ff31f6 Fix hi-lock AOT test failures (bug#51308)
8002fcd4b9 Fix socks test
4540130312 ; Fix typo
59df93e2dd * lisp/help.el (help--analyze-key): Add new arg BUFFER (bu...
cb8b12b56d Improve docstrings and NEWS item of 'repeat-mode'
06fe499614 * lisp/tab-bar.el (tab-bar-menu-bar): New command (bug#512...
8358da9c4c Display a tab bar item as sunken when appropriate
29fdc65860 Fix tab bar item highlight when a mouse click is dropped
7236592668 Refer to mouse-highlight from make-pointer-invisible docst...
cf4394a397 * etc/PROBLEMS: Add hex codepoint for NO-BREAK SPACE
2d647e88fa Describe how to debug fontconfig issues
c916040921 Adapt Tramp tests
1bb14f93f1 Convert ANSI color definitions in themes to use faces (e.g...
8e7cd29712 Revert "Revert back to using ESC as viper-ESC-key again"
91d71b38a3 Fix inset rectangle corners when sides aren't drawn (bug#5...
5c1a575ef4 Don't use color escape sequences in vc-git-expanded-log-entry
d7f595cc89 Code cleanup in tramp-tests.el
548a5db611 ; etc/NEWS fix wording
# Conflicts:
# etc/NEWS
2021-10-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix build on systems with older Pango versions
* src/gtkutil.c (xg_weight_to_symbol): Don't break the build on
older systems.
2021-10-21 Lars Ingebrigtsen <larsi@gnus.org>
Fix bold/black in w32_to_fc_weight
* src/w32font.c (w32_to_fc_weight): Use symbols.
2021-10-20 Lars Ingebrigtsen <larsi@gnus.org>
Add a comment to the Turkish casefiddle test
2021-10-20 Lars Ingebrigtsen <larsi@gnus.org>
Support the "medium" font weight
* lisp/faces.el (set-face-attribute): Mention new font weights in
doc string.
* src/font.c (struct table_entry): Allow more synonyms.
(weight_table): Expand to support separating medium and normal
weights. Also add heavy/ultra-heavy and some other variants.
(font_parse_fcname): Support more names.
* src/gtkutil.c (xg_weight_to_symbol): Support all the Pango weights.
(xg_style_to_symbol): Make into functions.
(xg_get_font): Adjust.
* src/w32font.c (w32_to_fc_weight): Use symbols.
* src/xfaces.c (syms_of_xfaces): Add the new symbols.
2021-10-20 Stefan Kangas <stefan@marxist.se>
Add some tests for floatfns.c
* test/src/floatfns-tests.el (floatfns-tests-cos)
(floatfns-tests-sin, floatfns-tests-tan, floatfns-tests-isnan)
(floatfns-tests-exp, floatfns-tests-expt, floatfns-tests-log)
(floatfns-tests-sqrt, floatfns-tests-abs, floatfns-tests-logb)
(floatfns-tests-ceiling, floatfns-tests-floor)
(floatfns-tests-round, floatfns-tests-truncate)
(floatfns-tests-fceiling, floatfns-tests-ffloor)
(floatfns-tests-fround, floatfns-tests-ftruncate)
(divide-extreme-sign): New tests.
2021-10-20 Lars Ingebrigtsen <larsi@gnus.org>
Fix typo in previous smerge-mode-map change
* lisp/vc/smerge-mode.el (smerge-mode-map): Fix typo (bug#51303).
2021-10-20 Miha Rihtaršič <miha@kamnitnik.top>
Avoid excessive specbinding in all-completions
* src/minibuf.c (match_regexps):
(Ftry_completion):
(Fall_completions):
(Ftest_completion): Use fast_string_match_internal to match against
regexps in completion-regexp-list without having to bind
case-fold-search.
2021-10-20 Lars Ingebrigtsen <larsi@gnus.org>
Further fixes for Turkish case changes in unibyte strings
* src/casefiddle.c (struct casing_context): Add new slot to keep
track of what the previous operation was.
(case_character_impl): Set it.
(do_casify_unibyte_string): Use it to handle Turkish correctly.
2021-10-20 Lars Ingebrigtsen <larsi@gnus.org>
Add new macro with-locale-environment
* lisp/international/mule-cmds.el (with-locale-environment): New macro.
(current-locale-environment): New variable.
2021-10-19 Stefan Kangas <stefan@marxist.se>
Add some tests for fns.c
* test/src/fns-tests.el (fns-tests-identity, fns-tests-random)
(fns-tests-length, fns-tests-safe-length)
(fns-tests-string-bytes): New tests.
2021-10-19 Stefan Kangas <stefan@marxist.se>
Remove some XEmacs compat code from custom.el
* lisp/custom.el (deftheme, custom-declare-theme): Remove XEmacs
compat code.
2021-10-19 Dmitry Gutov <dgutov@yandex.ru>
xref.el: Better compatibility with outdated Emacs 28 builds
* lisp/progmodes/xref.el:
Ensure better compatibility with outdated Emacs 28 builds as well
(like the pgtk branch). Bump the version.
2021-10-19 Stefan Monnier <monnier@iro.umontreal.ca>
* doc/lispref/files.texi (File Name Components): Mention GNU "path" convention
2021-10-19 Lars Ingebrigtsen <larsi@gnus.org>
Make image-tests work in a no-x build
* test/src/image-tests.el: Make the tests work in a no-x build
(bug#51291).
2021-10-19 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how 'align' and 'align-regexp' align text
* lisp/align.el (align-rules-list): Change to work without `C-u'.
(align): Doc clarification.
(align-regexp): Ditto, and change default `C-u' regexp from
"\\(\\s-*\\)" to "\\(\\s-*\\)" so that it'll make things columnar
if the user just hits RET through all the defaults.
2021-10-19 Mattias Engdegård <mattiase@acm.org>
Improve TCO test coverage
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Exercise `cond` in tail position in two different ways.
2021-10-19 Lars Ingebrigtsen <larsi@gnus.org>
Make downcasing unibyte strings in Turkish less wrong
* src/casefiddle.c (ascii_casify_character): New function.
(do_casify_unibyte_string): Use it to make downcasing tr_TR.UTF-8
"I" less wrong.
(Fdowncase): Mention caveats.
(Fupcase):
(Fcapitalize):
(Fupcase_initials): Refer to details in `downcase'.
(syms_of_casefiddle): Define more symbols.
2021-10-19 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
d742cc3c20 (origin/emacs-28) ; etc/NEWS: Fix typos
28db29590f * admin/notes/unicode: Refer to Unicode's emoji-style.txt
9bd2f59db6 Handle VS-16 correctly for non-emoji codepoints
e55e2d4a11 ; * etc/NEWS: Minor copyedit about 'repeat-mode'.
380981ddb5 Adjust bug-reference-bug-regexp default values to match on...
c1cf95a0e1 ; * doc/emacs/windows.texi: Doc fix.
98eb6d783a Fix a typo in emacs-lisp-intro.texi
f5b8f626e3 Fix some Tramp problems
fc988a7113 Adapt Tramp manual
0c241043a8 Further fixes to Elisp manual
8e8a920246 * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): ...
5a3242301d Rename tab-bar-drag-maybe to tab-bar--dragging-in-progress
bb4209a5a5 Fix xref elisp identifier namespace mistake
# Conflicts:
# etc/NEWS
2021-10-19 Dmitry Gutov <dgutov@yandex.ru>
* lisp/progmodes/xref.el: Bump version.
2021-10-19 Dmitry Gutov <dgutov@yandex.ru>
Fix Emacs 26 support in xref.el
* lisp/progmodes/xref.el (xref--defstruct): New macro.
(xref-item, xref-match-item): Use it in definitions.
2021-10-19 Michael Albinus <michael.albinus@gmx.de>
* etc/NEWS: Move sql entry up. Fix typos.
2021-10-19 Michael R. Mauger <michael@mauger.com>
SQL mode supports sending passwords in process
2021-10-18 Michael R. Mauger <michael@mauger.com>
Added sql-add-connection
* lisp/progmodes/sql.el (sql-add-connection): Added.
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Make `lookup-key' understand the new key sequence syntax
* src/keymap.c (possibly_translate_key_sequence): Factored out
into own function.
(Fdefine_key):
(Flookup_key): Use it.
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Error out on invalid `define-keymap' keywords
* lisp/subr.el (define-keymap--define): Error out on invalid
keywords (bug#51268).
* lisp/emacs-lisp/byte-opt.el (byte-optimize-define-keymap): Check
keywords at compile time.
* lisp/vc/cvs-status.el (cvs-status-mode-map): Fix keyword.
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix diff-mode-shared-map
* lisp/vc/diff-mode.el (diff-mode-shared-map): Fix syntax error in
`defvar-keymap' change.
2021-10-18 Stefan Kangas <stefan@marxist.se>
Add tests for image.c
* test/src/image-tests.el: New file.
2021-10-18 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
c163fd9260 (origin/emacs-28) Minor fixes for recent changes in ELisp ...
fefada4816 Fix example in calc manual
e74e17c1f0 Rewrites of Elisp manual including tab-bar and tab-line ch...
3b138917b7 ; * INSTALL: Fix typo.
ce71446585 * lisp/tab-bar.el: Improve docstrings (bug#51247)
ace4ce16a3 * lisp/tab-bar.el (tab-bar-mouse-move-tab): Don't drag tab...
04716ca48f Add tab-bar-drag-maybe for indication of tab dragging (bug...
81e3697600 * lisp/tab-bar.el: Add a new tab on [mouse-1] instead of [...
a191d3c725 Add new and fix existing docstrings in tab-bar.el and tab-...
77dbaedadc Add tab bar support to the nextstep port
7b6fb486c2 Fix potential buffer overflow (bug#50767)
ed9f5546aa Improve doc strings in tab-line.el
686a03ee22 More documentation fixes in tab-bar.el
35920791df Improve doc strings of tab-bar commands
2d15db6e89 Fix a semantic test on some macOS machines
ac6ac76e3a Update to Org 9.5-57-g9bc3a2
2021-10-18 Miha Rihtaršič <miha@kamnitnik.top>
*-watch-for-password-prompt: Use run-at-time to read password
* lisp/comint.el (comint-watch-for-password-prompt):
* lisp/eshell/esh-mode.el (eshell-watch-for-password-prompt):
* lisp/term.el (term-watch-for-password-prompt):
Use run-at-time to read a password (bug#51263).
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Add some defvar indent tests
Mention that we now install the pdmp file with a fingerprinted name
Add indentation rules for DEFUN's def* functions
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Update elp-not-profilable
* lisp/emacs-lisp/elp.el (elp-not-profilable): Update list of
denied functions (bug#40335).
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Remove the "def" indentation heuristic
* lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Don't
indent function calls with names that that start with "def"
specially (bug#43329).
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Fontify :doc keywords as documentation
* lisp/emacs-lisp/lisp-mode.el (lisp-string-after-doc-keyword-p):
Extend to :doc, too (bug#51230).
2021-10-18 Daniel Martín <mardani29@yahoo.es>
New option show-paren-context-when-offscreen
* lisp/simple.el (blink-paren-open-paren-line-string): Extract
functionality that shows the open paren line in the echo area into its
own function, to reuse it from paren.el.
(blink-matching-open): Use blink-paren-open-paren-line-string.
* lisp/paren.el (show-paren-context-when-offscreen): New option
show-paren-context-when-offscreen.
(show-paren-function): Implement it using
blink-paren-open-paren-line-string.
* lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p):
Make sure the feature works well with eldoc.
* test/lisp/paren-tests.el (paren-tests-open-paren-line): Test
blink-paren-open-paren-line-string.
* doc/emacs/programs.texi (Matching): Update the documentation.
* etc/NEWS: And announce the new feature.
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix possible build issue in pcvs.el and diff-mode.el
* lisp/vc/pcvs.el (easy-mmode):
* lisp/vc/diff-mode.el (easy-mmode): Require.
2021-10-18 Protesilaos Stavrou <info@protesilaos.com>
Abhiseck Paira <abhiseckpaira@disroot.org>
Protesilaos Stavrou <info@protesilaos.com>
Add sample user function in eww-auto-rename-buffer
* eww.el (eww-auto-rename-buffer): Update doc string.
Fix bug#51176.
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Fix build issue with smerge-mode
* lisp/vc/smerge-mode.el (easy-mmode): Require.
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Allow :filter t in make-process to work as with set-process-filter
* src/process.c (create_process):
(create_pty):
(Fmake_pipe_process):
(Fmake_serial_process): Don't add the read_fd if the filter is t
(which means that we don't accept output from the filter).
2021-10-18 Lars Ingebrigtsen <larsi@gnus.org>
Do kbd-valid-p prefix comparisons case-sensitively
* lisp/subr.el (kbd-valid-p): Compare case-sensitively.
2021-10-17 Stefan Kangas <stefan@marxist.se>
Recommend against using uce.el
* lisp/mail/uce.el (uce-reply-to-uce): Recommend against its use on
the first invocation. (Bug#46472)
2021-10-17 Stefan Kangas <stefan@marxist.se>
* lisp/erc/erc-compat.el (format-spec): Remove redundant require.
2021-10-17 Stefan Kangas <stefan@marxist.se>
Prefer defvar-local in MH-E
* lisp/mh-e/mh-comp.el (mh-insert-auto-fields-done-local):
* lisp/mh-e/mh-e.el (mh-thread-scan-line-map)
(mh-thread-scan-line-map-stack):
* lisp/mh-e/mh-identity.el (mh-identity-pgg-default-user-id)
(mh-identity-local):
* lisp/mh-e/mh-scan.el (mh-cmd-note):
* lisp/mh-e/mh-seq.el (mh-non-seq-mode-line-annotation):
* lisp/mh-e/mh-thread.el (mh-thread-id-hash)
(mh-thread-subject-hash, mh-thread-id-table)
(mh-thread-index-id-map, mh-thread-id-index-map)
(mh-thread-subject-container-hash, mh-thread-duplicates)
(mh-thread-history): Prefer defvar-local.
2021-10-17 Stefan Kangas <stefan@marxist.se>
Make thumbs-image-type obsolete
* lisp/thumbs.el (thumbs-image-type): Make into obsolete function
alias for 'image-type-from-file-name'. Update callers.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Use define-keymap in pcvs and pcvs-defs.el
* lisp/vc/pcvs-defs.el (cvs-mode-diff-map):
* lisp/vc/pcvs.el (pcvs-defs):
(cvs-mode-diff-map): Move maps to pcvs (because the commands are
defined in pcvs.el and #' gives us checking) and transform from
easy-mmode-defmap to define-keymap.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Convert diff-mode.el from easy-mmode-defmap to define-keymap
* lisp/vc/diff-mode.el (diff-mode-shared-map, diff-mode-map)
(diff-minor-mode-map): Convert from easy-mmode-defmap to
defvar-keymap.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Convert smerge-mode.el from easy-mmode-defmap to define-keymap
* lisp/vc/smerge-mode.el (smerge-basic-map, smerge-mode-map):
Convert form easy-mmode-defmap to define-keymap.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Add kbd examples to the doc string
* lisp/subr.el (kbd): Add some examples to the doc string.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Reverse the edmacro-parse-keys/kbd vector/string logic
* lisp/edmacro.el (edmacro-parse-keys): Convert to a vector if
needed.
* lisp/subr.el (kbd): Remove the NEED-VECTOR parameter.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Allow <mouse-1> in kbd-valid-p
* lisp/subr.el (kbd-valid-p): Allow (kbd-valid-p "<mouse-1>").
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Reinstate defvar-keymap expansion
* lisp/emacs-lisp/byte-opt.el
(byte-optimize-define-keymap--define): Make more robust.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Back out `define-keymap' optimization -- it leads to a build error
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Convert cvs-status-mode-map to new syntax
* lisp/vc/cvs-status.el (cvs-status-mode-map): Convert a small
keymap to the new ["..."] syntax.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Support a new ["..."] key binding syntax
* doc/lispref/keymaps.texi (Key Sequences):
(Changing Key Bindings): Document the various key syntaxes.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-define-key)
(byte-optimize-define-keymap)
(byte-optimize-define-keymap--define): New functions to check and
expand ["..."] syntax at compile time.
* src/keymap.c (Fdefine_key): Understand the ["..."] syntax.
(syms_of_keymap): Define `kbd' symbols.
2021-10-17 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -Wsuggest-attribute=malloc
Problem found with gcc (Ubuntu 11.2.0-7ubuntu2) 11.2.0 x86-64.
* src/sysstdio.h (emacs_fopen): Mark with ATTRIBUTE_MALLOC.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Rewrite kbd-valid-p to not use seq
* lisp/subr.el (kbd-valid-p): Rewrite to not use seq.
2021-10-17 Stefan Kangas <stefan@marxist.se>
* src/image.c: Fix comment.
2021-10-17 Eli Zaretskii <eliz@gnu.org>
Minor stylistic changes in last commit
* src/xdisp.c (adjust_glyph_width_for_mouse_face): Renamed from
'get_glyph_pixel_width_delta_for_mouse_face'; all callers
changed.
2021-10-17 Po Lu <luangruo@yahoo.com>
Fix minor issues with text display when cursor is in mouse face
* src/xdisp.c (get_cursor_offset_for_mouse_face): Don't calculate
offsets for the glyph the cursor is on, and move some logic to
get_glyph_pixel_width_delta_for_mouse_face.
(fill_composite_glyph_string)
(fill_gstring_glyph_string)
(fill_glyphless_glyph_string)
(fill_glyph_string)
(fill_image_glyph_string)
(fill_xwidget_glyph_string)
(fill_stretch_glyph_string): Set s->face to mouse face whenever
appropriate.
(get_glyph_pixel_width_delta_for_mouse_face): New function.
(set_glyph_string_background_width): Update background width and
s->width to take into account differing :box properties of the mouse
face, when producing strings for the cursor.
(erase_phys_cursor): Redraw mouse face when erasing a cursor on top of
the mouse face.
* src/xterm.c (x_set_mouse_face_gc): Stop setting s->face when under
mouse face because redisplay now does that for us.
* src/w32term.c (w32_set_mouse_face_gc): Likewise.
2021-10-17 Lars Ingebrigtsen <larsi@gnus.org>
Fix up recent kbd simplification
* lisp/subr.el (kbd): Fix breakage with X-<foo> from previous change.
2021-10-17 Michael Albinus <michael.albinus@gmx.de>
Warn about `file-notify-rm-all-watches' side effects
* doc/lispref/os.texi (File Notifications): Warn about
`file-notify-rm-all-watches' side effects.
2021-10-16 Stefan Kangas <stefan@marxist.se>
Simplify condition in kbd
* lisp/subr.el (kbd): Simplify condition. This was discussed in:
https://lists.gnu.org/r/emacs-devel/2021-10/msg01136.html
2021-10-16 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
e8488808df Avoid aborts when a thread is signaled while "waiting for ...
21397cce51 Improve documentation string for 'compilation-error-regexp...
2971a6890f * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix t...
e842d7f29a Fix removal of fringe indication of bookmarks
b5a0eda978 Prefer "graphical displays" to "X terminals" in documentation
4ad0fc0dd0 Precise documentation of file-notify-add-watch
f5b8df14c6 Fixes to account for windows' tab lines
ced72b6e4c * Fix `native-compile-target-directory' effectiveness on t...
502788bc3d Add missing single quotes in the Emacs manual
1af45ad04e ; * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix...
12654b7423 * lisp/menu-bar.el (yank-menu-length): Fix docstring (bug#...
# Conflicts:
# lisp/gnus/gnus-undo.el
# lisp/menu-bar.el
2021-10-16 Michael Albinus <michael.albinus@gmx.de>
Set EMACS_TEST_TIMEOUT for emba
* test/Makefile.in: Support EMACS_TEST_TIMEOUT environment variable.
* test/README: Mention EMACS_TEST_TIMEOUT environment variable.
* test/infra/gitlab-ci.yml (variables): Set default value of
EMACS_TEST_TIMEOUT.
(.job-template): Propagate EMACS_TEST_TIMEOUT and EMACS_TEST_VERBOSE.
(test-all-inotify): Set specific EMACS_TEST_TIMEOUT.
2021-10-16 Lars Ingebrigtsen <larsi@gnus.org>
Add new function 'kbd-valid-p'
* doc/lispref/keymaps.texi (Key Sequences): New function
'kbd-valid-p'.
* lisp/subr.el (kbd-valid-p): Document it.
2021-10-16 Michael Albinus <michael.albinus@gmx.de>
Fix :version of new faces in term.el
* lisp/term.el (term-faint, term-italic, term-slow-blink)
(term-fast-blink): Set proper :version.
2021-10-16 Stefan Kangas <stefan@marxist.se>
Remove duplicate code in edmacro-parse-keys
* lisp/subr.el (kbd): Add argument NEED-VECTOR and make it suitable
for calling from 'edmacro-parse-keys'.
* lisp/edmacro.el (edmacro-parse-keys): Replace definition with a
call to 'kbd'.
This change was discussed in:
https://lists.gnu.org/r/emacs-devel/2021-10/msg00909.html
2021-10-16 Stefan Kangas <stefan@marxist.se>
Make kbd usable during bootstrap
* lisp/subr.el (kbd): Make 'kbd' usable during bootstrap by copying
the definition of 'read-kbd-macro' into it, and adjusting it to no
longer use CL-Lib functions.
This change was discussed in:
https://lists.gnu.org/r/emacs-devel/2021-10/msg00909.html
2021-10-16 Michael Albinus <michael.albinus@gmx.de>
Add command `file-notify-rm-all-watches'
* doc/lispref/os.texi (File Notifications):
Add `file-notify-rm-all-watches'.
* etc/NEWS: Mention 'file-notify-rm-all-watches'. Fix typos.
* lisp/filenotify.el (file-notify-rm-all-watches): New defun.
* test/lisp/filenotify-tests.el (file-notify--test-cleanup):
Use `file-notify-rm-all-watches'.
(file-notify-test02-rm-watch): Test also `file-notify-rm-all-watches'.
2021-10-16 Andreas Schwab <schwab@linux-m68k.org>
* src/emacs.c (standard_args): Sort --fingerprint second.
(bug#51238)
2021-10-16 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/menu-bar.el (menu-bar-edit-menu): Expose lambdas to the compiler
2021-10-15 Amin Bandali <bandali@gnu.org>
Release ERC 5.4.1
* doc/misc/erc.texi (ERCVER): Bump to 5.4.1.
* etc/ERC-NEWS: Add entry for 5.4.1 with explanations.
* lisp/erc/erc.el (Version, erc-version): Bump to 5.4.1.
(customize-package-emacs-version-alist): Add entry for 5.4.1.
2021-10-15 Lars Ingebrigtsen <larsi@gnus.org>
Convert two `easy-mmode-defmap' usages to `defvar-keymap'
* lisp/vc/log-edit.el (log-edit-mode-map):
* lisp/vc/cvs-status.el (cvs-status-mode-map): Convert
`easy-mmode-defmap' to `defvar-keymap'.
2021-10-15 Protesilaos Stavrou <info@protesilaos.com>
Abhiseck Paira <abhiseckpaira@disroot.org>
Protesilaos Stavrou <info@protesilaos.com>
Add new option to rename eww buffers
* etc/NEWS: Document the new user options.
* lisp/net/eww.el (eww-auto-rename-buffer, eww-buffer-name-length):
Add new user options.
(eww--rename-buffer): Introduce new function that performs the
renaming of buffers.
(eww--after-page-change): Add new wrapper function which calls
'eww-update-header-line-format' and 'eww--rename-buffer'.
(eww, eww-render, eww-tag-title, eww-readable, eww-restore-history):
Include eww--after-page-change.
Fix bug#51176.
2021-10-15 Dmitry Gutov <dgutov@yandex.ru>
Special-case the "Permission denied" messages
* lisp/progmodes/project.el (project--files-in-directory):
Special-case the "Permission denied" messages, to make sure the
user sees the unreadable directory's name
(https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01015.html).
2021-10-15 Mattias Engdegård <mattiase@acm.org>
Calc: mend math-nth-root-float (bug#51209)
Reported by Iñaki Cornejo.
* lisp/calc/calc-math.el (math-nth-root-float):
Fix old refactoring mistake.
* test/lisp/calc/calc-tests.el (calc-nth-root): New test.
2021-10-15 Michael Albinus <michael.albinus@gmx.de>
Further gitlab-ci.yml changes
* test/infra/gitlab-ci.yml (.job-template): Add --timeout.
(.test-template): Adapt artifact paths.
2021-10-15 Martin Rudalics <rudalics@gmx.at>
Simplify functions dealing with preserving the size of windows
* lisp/window.el (window--preservable-size): Remove function.
(window-preserve-size, window-preserved-size)
(window--preserve-size): Simplify. Use 'window-body-height'
etc. instead of 'window--preservable-size'.
2021-10-14 Amin Bandali <bandali@gnu.org>
* doc/misc/erc.texi: Add 'ERCVER' and 'ERCDIST'.
To mention the ERC version in the manual, and to allow for more easily
overriding the distribution description when building for GNU ELPA.
2021-10-14 Lars Ingebrigtsen <larsi@gnus.org>
Use `define-keymap' in log-view.el
* lisp/vc/log-view.el (log-view-mode-map): Convert a
`easy-mmode-defmap' to `define-keymap'.
2021-10-14 Lars Ingebrigtsen <larsi@gnus.org>
define-key doc string improvement
* src/keymap.c (Fdefine_key): Explain what the STRING is used for.
(local-set-key "\C-c\C-c"
(define-keymap
:name "Zot"
"a" '("foo" . ignore)
"b" '("gazonk" . ignore)))
2021-10-14 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
9ff6999a06 (origin/emacs-28) Accept process-filter t in Tramp
cf95962092 ; * doc/lispref/processes.texi (Filter Functions): Fix las...
1ad4ad0c11 Document the t value for set-process-filter in the manual
b014efa1e5 * doc/misc/tramp.texi (Frequently Asked Questions): Add re...
b9b78b2631 Fix Help functions for clicks on tool bar and tab bar
74deafe921 ; * etc/DEBUG: Add a section about debugging native-compil...
8153f70b9c In make_lispy_position fix Bug#50993 in rudimentary fashion
0aa52e94f3 Mark vc-switch-backend as obsolete
568e479c59 Add missing parentheses in the Emacs manual
44ce50b0df Improve tooltip of mode-line-position again
9b1adf8b4f Use browse-url-button-regexp for rcirc-url-regexp
9ed53b022d * lisp/help.el (help--analyze-key): Avoid mouse-set-point ...
# Conflicts:
# etc/NEWS
2021-10-14 Eli Zaretskii <eliz@gnu.org>
Fix display of cursor in mouse-highlighted face with ':box'
* src/xdisp.c (erase_phys_cursor, show_mouse_face): Adjust
phys_cursor.x as needed if the cursor is inside mouse-highlight.
(get_cursor_offset_for_mouse_face): New function.
* src/dispnew.c (gui_update_window_end): Set
'mouse_face_overwritten_p' if the cursor is in mouse-face, to
trigger more thorough redisplay of the cursor.
(Bug#50660)
2021-10-14 Martin Rudalics <rudalics@gmx.at>
In 'window--display-buffer' handle nil size values as intended (Bug#51062)
* lisp/window.el (window--display-buffer): Make sure
that (window-height . nil), (window-width . nil)
and (window-size . nil) action alist entries are processed
as intended.
2021-10-14 Michael Albinus <michael.albinus@gmx.de>
Adapt gitlab-ci.yml paths
* test/infra/gitlab-ci.yml (.job-template): Increase timeout.
(.job-template, .build-template, .test-template)
(.gnustep-template, .filenotify-gio-template)
(.native-comp-template): Adapt paths.
2021-10-13 Dmitry Gutov <dgutov@yandex.ru>
Add new argument INCLUDE-ALL to project-find-file
* lisp/progmodes/project.el (project-find-file):
Add new argument INCLUDE-ALL. Have 'C-u' make it non-nil.
(project-or-external-find-file): Ditto.
(project-find-file-in): Add new argument INCLUDE-ALL.
(https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg00209.html)
2021-10-13 Stefan Kangas <stefan@marxist.se>
Double the default value of kill-ring-max
* lisp/simple.el (kill-ring-max): Double the default to 120.
* lisp/menu-bar.el (yank-menu-length): Doc fix.
(yank-menu-max-items): New variable.
(menu-bar-update-yank-menu): Don't display more than
'yank-menu-max-items' in the yank menu.
* doc/emacs/custom.texi (Changing a Variable):
* doc/emacs/killing.texi (Kill Ring):
* doc/lispintro/emacs-lisp-intro.texi (kill-new function):
* doc/lispref/text.texi (Internals of Kill Ring): Doc fix to use
the new value.
2021-10-13 Stefan Kangas <stefan@marxist.se>
New tests for kbd and edmacro-parse-keys
* test/lisp/edmacro-tests.el: New file.
* test/lisp/subr-tests.el (subr-test-kbd): Expand test.
2021-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Mark def* macros for indentation
* lisp/widget.el (define-widget-keywords):
* lisp/vc/pcvs.el (defun-cvs-mode):
* lisp/subr.el (defvar-local):
(defvar-keymap):
* lisp/skeleton.el (define-skeleton):
* lisp/simple.el (define-alternatives):
* lisp/progmodes/gud.el (gdb-script-mode):
* lisp/progmodes/gdb-mi.el (def-gdb-preempt-display-buffer):
(def-gdb-auto-update-trigger):
(def-gdb-auto-update-handler):
(def-gdb-trigger-and-handler):
(def-gdb-thread-buffer-command):
(def-gdb-thread-buffer-simple-command):
(def-gdb-thread-buffer-gud-command):
(def-gdb-set-positive-number):
(def-gdb-memory-format):
(def-gdb-memory-unit):
(def-gdb-memory-show-page):
* lisp/progmodes/compile.el (define-compilation-mode):
* lisp/progmodes/cc-vars.el (defcustom-c-stylevar):
* lisp/obsolete/cl.el (define-setf-expander):
(defsetf):
(define-modify-macro):
* lisp/obsolete/cl-compat.el (defkeyword):
* lisp/net/hmac-def.el (define-hmac-function):
* lisp/international/mule-conf.el (define-iso-single-byte-charset):
* lisp/international/ccl.el (define-ccl-program):
* lisp/image.el (defimage):
* lisp/gnus/gmm-utils.el (defun-gmm):
* lisp/ezimage.el (defezimage):
* lisp/erc/erc.el (define-erc-module):
* lisp/emacs-lisp/shortdoc.el (define-short-documentation-group):
* lisp/emacs-lisp/eieio.el (defclass):
* lisp/emacs-lisp/eieio-compat.el (defgeneric):
(defmethod):
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode):
(define-globalized-minor-mode):
* lisp/emacs-lisp/derived.el (define-derived-mode):
* lisp/emacs-lisp/byte-run.el (defsubst):
(define-obsolete-function-alias):
(define-obsolete-variable-alias):
* lisp/custom.el (defcustom):
(defface):
(defgroup):
(deftheme):
* lisp/cedet/semantic/wisent.el (define-wisent-lexer):
* lisp/cedet/semantic/lex.el (define-lex):
(define-lex-analyzer):
(define-lex-regex-analyzer):
(define-lex-simple-regex-analyzer):
(define-lex-block-analyzer):
(define-lex-keyword-type-analyzer):
(define-lex-sexp-type-analyzer):
(define-lex-regex-type-analyzer):
(define-lex-string-type-analyzer):
(define-lex-block-type-analyzer):
* lisp/cedet/semantic/lex-spp.el
(define-lex-spp-macro-declaration-analyzer):
(define-lex-spp-macro-undeclaration-analyzer):
(define-lex-spp-include-analyzer):
* lisp/cedet/semantic/dep.el
(defcustom-mode-local-semantic-dependency-system-include-path):
* lisp/cedet/semantic/decorate/mode.el
(define-semantic-decoration-style):
* lisp/cedet/mode-local.el (define-child-mode):
(define-overloadable-function):
(define-mode-local-override):
* lisp/calc/calc.el (defcalcmodevar):
(defmath): Explicitly mark all macros that have names that start
with "def" that should indent defunly-like (bug#43329).
2021-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Mark all def* functions that should indent as `defun'
* lisp/abbrev.el (define-abbrev):
(define-abbrev-table): Mark all functions that have names that
start with "def" that should indent according to the current
heuristics (bug#43329).
* lisp/autoinsert.el (define-auto-insert):
* lisp/button.el (define-button-type):
* lisp/subr.el (define-key-after):
(define-mail-user-agent):
(define-keymap):
* lisp/widget.el (define-widget):
* lisp/emacs-lisp/package.el (define-package):
* lisp/international/mule-cmds.el (define-char-code-property):
* lisp/international/mule.el (define-charset):
(define-coding-system):
(define-translation-table):
(define-translation-hash-table):
2021-10-13 Paul Eggert <eggert@cs.ucla.edu>
Pacify gcc -Warray-parameter
* src/pdumper.h: Declare array parameter with the same signature
that the function definition uses.
2021-10-13 Paul Eggert <eggert@cs.ucla.edu>
Pacify GCC -Wanalyzer-possible-null-dereference
This fixes the only remaining GCC diagnostics when emacs-28 is
configured with --enable-gcc-warnings. It does so by adding
ATTRIBUTE_RETURNS_NONNULL so that GCC knows certain functions
return nonnull. It also arranges for three of those functions to
always return nonnull; I thought these functions already were
doing so, but apparently not, and it is conceivable (though I
havent checked this) that changing these functions to always
return nonnull even on non-GNU platforms may fix unlikely
portability bugs elsewhere in Emacs. I used GCC 11.2.1 20210728
(Red Hat 11.2.1-1) on x86-64 when checking the diagnostics.
* configure.ac: Invoke gl_EEMALLOC before gl_INIT, in case
the regex code doesn't invoke gl_EEMALLOC; needed for src/alloc.cs
use of MALLOC_0_IS_NONNULL.
* src/alloc.c (xmalloc, xzalloc, xrealloc): Dont worry about the
special case where SIZE == 0, since lmalloc and lrealloc now
return null only on allocation failure.
(lmalloc, lrealloc): Return null only on allocation failure,
instead of having special cases that treat malloc (0) and
realloc (X, 0) as successes even when they return null.
* src/lisp.h: Add ATTRIBUTE_RETURNS_NONNULL to a few functions
that always return nonnull pointers, so that gcc -fanalyzer
does not issue diagnostics like “alloc.c: In function
allocate_vector_block: alloc.c:2985:15: warning: dereference of
possibly-NULL block [CWE-690] [-Wanalyzer-possible-null-dereference]”
as per <https://cwe.mitre.org/data/definitions/690.html>.
2021-10-13 Paul Eggert <eggert@cs.ucla.edu>
Merge from origin/emacs-28
efb1cd7fa9 ; * etc/charsets/README: Update the format documentation.
cc796b7409 Tramp doc cleanup
a338d46060 Make emacs-lisp-byte-compile-and-load load the .elc file a...
3eac7dc780 Fix point movement in image-dired
4e9452a399 Improve shortdoc for vector
f223ac6ef9 Fix test bug when calloc returns null
ebeaa54f19 Pacify GCC 11 -fanalyzer on x86-64
56d1f42f30 Improve handling of non-character events in input methods
3fbe6fd367 ; Fix mistakes in last doc rewording about shorthands
2021-10-13 Paul Eggert <eggert@cs.ucla.edu>
Change release branch to emacs-28
* admin/notes/git-workflow:
* Makefile.in (PREFERRED_BRANCH): emacs-27 → emacs-28
2021-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Update Emacs requirement after removing compat code
2021-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Allow inhibiting `not-unused' warnings
* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types): Allow
inhibiting the `not-unused' warning (bug#31641). (There has been
some discussion about removing the `not-unused' warning, but it's
still in there, so making it possible to inhibit it seems like the
right thing to do.)
* lisp/emacs-lisp/cconv.el (cconv--analyze-use): Don't warn about
`not-unused'.
2021-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Fix problem with multiline fontification in interactive Python
* lisp/progmodes/python.el
(python-shell-font-lock-post-command-hook): When doing multi-line
(`C-c SPC') inputs, remove all the preceding lines when doing
fontification (bug#47657).
2021-10-13 Michael Albinus <michael.albinus@gmx.de>
Continue to work on emba integration
* test/infra/Dockerfile.emba: Remove instrumentation.
* test/infra/gitlab-ci.yml (.job-template): Specify timeout signal.
(.job-template, .test-template): Improve wildcard.
2021-10-13 Lars Ingebrigtsen <larsi@gnus.org>
Remove some compat code from python.el
* lisp/progmodes/python.el
(python-shell-font-lock-post-command-hook): Remove Emacs 24.3 and
earlier compat code.
2021-10-13 Andreas Schwab <schwab@linux-m68k.org>
* src/pdumper.h: Include <stdio.h>.
2021-10-13 Martin Rudalics <rudalics@gmx.at>
Improve 'display-buffer' 'temp-buffer-resize-mode' cohabitation (Bug#51062)
* doc/lispref/display.texi (Temporary Displays): Explain how
to override the effect of 'temp-buffer-resize-mode' with a
suitable 'display-buffer' action alist entry.
* doc/lispref/windows.texi (Buffer Display Action Alists):
Mention that an 'inhibit-switch-frame' entry might not work
with every WM. Describe the 'window-size' entry. Describe
how automatic window resizing can be overridden.
* lisp/help.el (resize-temp-buffer-window-inhibit): New variable.
(resize-temp-buffer-window): Handle case where user overrides
automatic resizing.
* lisp/window.el (temp-buffer-window-show): Bind
'resize-temp-buffer-window-inhibit' to nil around
'display-buffer'. Do not raise frame automatically to avoid
defeating 'inhibit-switch-frame'.
(window--display-buffer): Set 'resize-temp-buffer-window-inhibit'
to t when the action alist contains a 'window-height',
'window-width' or 'window-size' entry. Use
'modify-frame-parameters' instead of 'set-frame-height' and
'set-frame-width' to avoid that the latter step on each others
toes.
(display-buffer): Fix 'inhibit-switch-frame' part in and add
'window-size' part to doc-string.
2021-10-12 Stephen Gildea <stepheng+emacs@gildea.com>
MH-E: restore message about obsolete key binding
* lisp/mh-e/mh-show.el:
* lisp/mh-e/mh-folder.el: Restore "obsolete key" message for "J w" that
was lost in the conversion from gnus-define-keys to define-keymap.
2021-10-12 Basil L. Contovounesios <contovob@tcd.ie>
Fix byte-compilation warnings in nox builds
For discussion, see bug#51139.
* lisp/edmacro.el (edmacro-fix-menu-commands): Load mwheel to pacify
free variable warnings in without-x builds.
* lisp/mh-e/mh-compat.el: Declare image.el functions that are not
preloaded in without-x builds.
* lisp/mh-e/mh-utils.el (mh--with-image-load-path): New macro.
(mh-logo-display):
* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-folder-buttons-init)
(mh-tool-bar-letter-buttons-init): Use it to pacify byte-compilation
warnings about image.el definitions not preloaded without-x.
2021-10-12 Eric Abrahamsen <eric@ericabrahamsen.net>
Clean up nnimap buffers with dead processes
* lisp/gnus/nnimap.el (nnimap-keepalive): If the keepalive "NOOP"
fails, remove the buffer with the dead process from
`nnimap-process-buffers' and `nnimap-connection-alist'.
(nnimap-find-connection): Do the same here, when the connection can't
be found.
(nnimap-close-server): Remove process buffer from lists when closing
server.
2021-10-12 Lars Ingebrigtsen <larsi@gnus.org>
decoded-time-add doc string addition
* lisp/calendar/time-date.el (decoded-time-add): Add a usage example.
2021-10-12 Michael Albinus <michael.albinus@gmx.de>
Adapt emba control files
* test/infra/Dockerfile.emba: Print core pattern.
* test/infra/gitlab-ci.yml (.job-template, .test-template):
Improve wildcard.
(.job-template): Add timeout.
2021-10-12 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
66b8dfd060 (origin/emacs-28) ; Fix last change related to shorthands
3832b983cf In Fdelete_other_windows_internal fix new total window siz...
5deb0ec14f * lisp/mh-e/mh-show.el (mh-junk-whitelist): Custom obsoles...
cf1409db71 Don't apply shorthands to punctuation-only symbols (bug#51...
b3d0f53b29 * lisp/progmodes/python.el: Bump package version to 0.28.
2021-10-12 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
47e09d1855 Copy parent face attributes to tab-line-tab-current instea...
d96f8b22c0 Another fix for 'ibuffer-shrink-to-fit' (Bug#7218, Bug#51029)
2021-10-12 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
0d374b1b83 Work around GCC bug 102671
2021-10-12 Lars Ingebrigtsen <larsi@gnus.org>
Fix more Gnus group key bindings recently changed
* lisp/gnus/gnus-group.el (:keymap): Fix some prefix keys that
ended up in the wrong place during the keymap rewrite (bug#51136).
2021-10-12 Stefan Kangas <stefan@marxist.se>
Remove more MH-E compat code
* lisp/mh-e/mh-e.el (mh-strip-package-version, defgroup-mh)
(defcustom-mh, defface-mh): Make Emacs 21 compat aliases obsolete.
Update callers.
* lisp/mh-e/mh-e.el:
(mh-exchange-point-and-mark-preserving-active-mark)
* lisp/mh-e/mh-folder.el (desktop-buffer-mode-handlers):
* lisp/mh-e/mh-mime.el (mh-mm-inline-media-tests)
(mh-have-file-command, mh-mime-security-button-map):
* lisp/mh-e/mh-show.el (mh-summary-height):
* lisp/mh-e/mh-speed.el (mh-process-kill-without-query):
* lisp/mh-e/mh-xface.el (mh-uncompface-executable)
(mh-face-to-png, mh-uncompface, mh-picon-file-contents): Remove
XEmacs and Emacs 21 and older compat code.
2021-10-12 Lars Ingebrigtsen <larsi@gnus.org>
Make dbus work in a dumped Emacs
* lisp/net/dbus.el (dbus--init): Make into a defun.
(after-pdump-load-hook): Put it onto the new pdump hook so that
it's run after startup (bug#37331).
2021-10-12 Lars Ingebrigtsen <larsi@gnus.org>
Add a new after-pdump-load-hook variable
* doc/lispref/internals.texi (Building Emacs): Document it.
* lisp/subr.el (after-pdump-load-hook): New variable.
* src/emacs.c (main): Run the new hook.
* src/pdumper.c (syms_of_pdumper): Define a symbol.
2021-10-12 Stefan Kangas <stefan@marxist.se>
Make mh-do-in-gnu-emacs obsolete
* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs): Make obsolete.
* lisp/mh-e/mh-tool-bar.el: Don't use above obsolete macro.
(mh-acros): Require to avoid warnings.
Thanks to Lars Ingebrigtsen <larsi@gnus.org>.
2021-10-12 Andreas Schwab <schwab@linux-m68k.org>
Change --fingerprint to output to stdout
* src/pdumper.c (dump_fingerprint): Add argument OUTPUT, use it
instead of stderr, update all uses. Don't print colon if LABEL is
empty.
* src/pdumper.h (dump_fingerprint): Adjust.
* src/emacs.c (main): Print fingerprint to stdout, without label.
* Makefile.in (EMACS_PDMP): Adjust.
2021-10-12 Martin Rudalics <rudalics@gmx.at>
Have 'while-no-input-ignore-events' handle idle timers too (Bug#49997)
* src/keyboard.c (read_char): Use Vwhile_no_input_ignore_events to
check which idle timers should be resumed (Bug#49997).
(init_while_no_input_ignore_events): New function to
initialize Vwhile_no_input_ignore_events.
(Vwhile_no_input_ignore_events): Say in doc-string that events in
this list do not stop idle timers.
* lisp/subr.el (while-no-input): Remove initialization of
'while-no-input-ignore-events'; do that in keyboard.c now.
2021-10-11 Stefan Monnier <monnier@iro.umontreal.ca>
lisp/erc/erc-{replace,imenu,dcc}: Tweak copyright format
* lisp/erc/erc-replace.el:
* lisp/erc/erc-imenu.el:
* lisp/erc/erc-dcc.el: Massage copyright so elpa-admin.el recognizes it
2021-10-11 Stefan Kangas <stefan@marxist.se>
Remove last XEmacs compat code from ERC
* lisp/erc/erc-dcc.el (erc-dcc-member): Remove XEmacs compat code.
* lisp/erc/erc-goodies.el (erc-move-to-prompt-setup): Doc fix;
remove spurious reference to XEmacs; this is needed also for
Emacs.
2021-10-11 Stefan Kangas <stefan@marxist.se>
Prefer setq-local in lisp/mh-e/*.el
* lisp/mh-e/mh-utils.el (mh-make-local-vars): Make obsolete.
* lisp/mh-e/mh-comp.el (mh-forward):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-identity.el (mh-identity-handler-signature)
(mh-identity-insert-attribution-verb):
* lisp/mh-e/mh-letter.el (mh-letter-mode):
* lisp/mh-e/mh-search.el (mh-search-folder):
* lisp/mh-e/mh-seq.el (mh-narrow-to-seq, mh-widen):
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
* lisp/mh-e/mh-xface.el (mh-x-image-url-display)
(mh-x-image-url-fetch-image): Prefer setq-local.
2021-10-11 Stefan Kangas <stefan@marxist.se>
Remove some more MH-E compat code
* lisp/mh-e/mh-acros.el (defun-mh, defmacro-mh): Make obsolete.
* lisp/mh-e/mh-gnus.el (mh-gnus-local-map-property): Make obsolete.
* lisp/mh-e/mh-mime.el (mh-insert-mime-security-button)
(mh-insert-mime-button): Don't use above obsolete function.
* lisp/mh-e/mh-gnus.el (mh-mm-text-html-renderer): Make obsolete.
* lisp/mh-e/mh-mime.el (mh-mm-inline-media-tests)
(mh-signature-highlight): Remove references to removed Gnus
variable 'mm-inline-text-html-renderer'.
* lisp/mh-e/mh-letter.el (mh-letter-complete): Make into obsolete
function alias for 'completion-at-point'. Update callers.
* lisp/mh-e/mh-e.el (mh-inc-spool-list, mh-show-use-xface-flag):
* lisp/mh-e/mh-comp.el (mh-ascii-buffer-p):
* lisp/mh-e/mh-show.el:
* lisp/mh-e/mh-utils.el: Remove some references to XEmacs.
* lisp/mh-e/mh-comp.el (mh-send-letter): Remove XEmacs and Emacs
compat code.
* lisp/mh-e/mh-compat.el (mh-display-completion-list): Remove
compat code for Emacs 22 and earlier.
* lisp/mh-e/mh-e.el (mh-inherit-face-flag)
(mh-min-colors-defined-flag): Make XEmacs and Emacs 21 compat
variables obsolete.
(mh-face-data): Adjust to assume above variables are always t.
* lisp/mh-e/mh-mime.el (mh-mime-button-map): Remove XEmacs and
Emacs 20 compat code.
* lisp/mh-e/mh-utils.el (mh-mapc): Make Emacs 20 compat function
into obsolete function alias for mapc. Update callers.
* lisp/mh-e/mh-xface.el (mh-show-xface-function, mh-show-xface):
Remove Emacs 20 compat code.
2021-10-11 Stefan Kangas <stefan@marxist.se>
Remove redundant calls to 'mh-do-in-gnu-emacs'
* lisp/mh-e/mh-compat.el (mh-require):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-letter.el (mh-letter-mode):
* lisp/mh-e/mh-mime.el (mh-mime-button-map)
(mh-mime-security-button-map, mh-small-image-p)
(mh-signature-highlight):
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
* lisp/mh-e/mh-utils.el (mh-logo-display)
(mh-hidden-header-keymap):
* lisp/mh-e/mh-xface.el (mh-face-display-function)
(mh-picon-image-types, mh-x-image-display): Remove redundant calls
to 'mh-do-in-gnu-emacs'.
* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs):
* lisp/mh-e/mh-tool-bar.el: Add comment explaining an issue that
stops us from making 'mh-do-in-gnu-emacs' obsolete.
2021-10-11 Glenn Morris <rgm@gnu.org>
Fix merge error for elisp-mode-tests.el
* test/lisp/progmodes/elisp-mode-tests.el (test-cl-flet-indentation):
Delete test mistakenly restored by merge conflict.
It seems this was deleted 2021-10-01 with incomplete log message
"Add more indentation tests".
2021-10-11 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
ac06608878 (origin/emacs-28) Release ERC 5.4
a1a589d07b * etc/ERC-NEWS: Announce ERC's addition to GNU ELPA.
6c7947f0a1 * etc/ERC-NEWS: Fix outline level for the recent additions.
c480b68644 Add ERC entries for 'customize-package-emacs-version-alist'
4afff515c8 Expand the full file name
36a485a1af Obsolete XEmacs compat convention in 'erc-button-press-but...
2021-10-11 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
1a1b206a8b Adapt the recent 'num_processors' change to MS-Windows
7cb4637923 Minor fix to clarify a sentence in emacs-lisp-intro
ab60144ea3 ; Pacify recent shorthand unused lexarg warnings.
e9df86004f Make tty-run-terminal-initialization load the .elc file (i...
07edc28bdb Fix ert errors when there's a test that binds `debug-on-er...
96278de8ac New function num-processors
575e626105 Add symbol property 'save-some-buffers-function' (bug#46374)
a3e10af95c Keep reading when typed RET in read-char-from-minibuffer a...
013e3be832 * lisp/userlock.el (ask-user-about-supersession-threat): A...
ae61d7a57d Fix point positioning on mouse clicks with non-zero line-h...
4c7e74c386 Complete shorthands to longhands for symbol-completing tables
c2513c5d0d Add new failing test for bug#51089
1d1e96377c ; * lisp/emacs-lisp/shortdoc.el: Fix typo.
6bf29072e9 Avoid mapping file names through 'substring'
bcce93f04c Update to Org 9.5-46-gb71474
5d408f1a24 Expanded testing of MH-E with multiple MH variants
b497add971 Fix Seccomp filter for newer GNU/Linux systems (Bug#51073).
75d9fbec88 Tramp code cleanup
# Conflicts:
# etc/NEWS
# test/lisp/progmodes/elisp-mode-tests.el
2021-10-11 Amin Bandali <bandali@gnu.org>
Revert "Obsolete XEmacs compat convention in erc-button-press-button"
This reverts commit f146325bd1556d1acafe26f6c263b83a92d3cd20.
This should be done in 'emacs-28', which will be merged into 'master'.
2021-10-11 Stefan Kangas <stefan@marxist.se>
Fontify "print" and "exec" as functions in python-mode
* lisp/progmodes/python.el (python-font-lock-keywords-level-2):
Fontify "print" and "exec" as functions, which is the case in
Python 3. (Bug#43298)
2021-10-11 Lars Ingebrigtsen <larsi@gnus.org>
Mention --fingerprint in NEWS
2021-10-11 Glenn Morris <rgm@gnu.org>
Make the installed pmdp file use a fingerprint
* Makefile.in (EMACS_PDMP): Use --fingerprint.
* doc/emacs/cmdargs.texi (Action Arguments): Document --fingerprint.
* src/emacs.c (load_pdump): Load the fingerprinted version of the
pdmp file (bug#42790).
(main): Support --fingerprint.
* src/pdumper.c (dump_fingerprint): Make non-static.
* src/pdumper.h: Declare dump_fingerprint.
2021-10-11 Lars Ingebrigtsen <larsi@gnus.org>
Fix menu display of keys when cua-mode is active
* lisp/menu-bar.el (menu-bar-edit-menu): Make the menus display
the correct keys for editing when cua-mode is active (bug#28930).
2021-10-11 Lars Ingebrigtsen <larsi@gnus.org>
Change how cua-mode defined `C-x' and `C-c'
* lisp/emulation/cua-base.el (cua-cut-handler):
(cua-copy-handler): New aliases (bug#28930).
(cua--init-keymaps): Use them for `C-x' and `C-c' to be able to
distinguish the commands when looking them up in reverse.
2021-10-11 Lars Ingebrigtsen <larsi@gnus.org>
Allow :keys in menus to be computed dynamically
* doc/lispref/keymaps.texi (Extended Menu Items): Document it
(bug#28930).
* src/keyboard.c (parse_menu_item): Allow :keys to be a function.
2021-10-11 Lars Ingebrigtsen <larsi@gnus.org>
Tweak how auto-fill fills after a period
* lisp/textmodes/fill.el (fill-nobreak-p): Don't break immediately
after a space after a period (bug#17321).
2021-10-11 Michael Albinus <michael.albinus@gmx.de>
* doc/misc/tramp.texi (Bug Reports): Describe, how to activate ELPA Tramp.
2021-10-10 Lars Ingebrigtsen <larsi@gnus.org>
Fix mairix-el.texi menu
2021-10-09 Ingo Lohmar <ingo.lohmar@posteo.net>
Fix workspace/configuration handling when given scopeuri directory
The path returned by eglot--uri-to-path is mostly used for file paths,
and therefore does not end with a slash. Such a no-trailing-slash path
violates what default-directory demands (per its docstring), which
causes hack-dir-local-variables-non-file-buffer to not find the
appropriate dir-local vars.
2021-10-09 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
394209c1a0 (origin/emacs-28) ; Fix indentation in etc/NEWS
81f20e8b89 Fix thinko in ls-lisp--insert-directory
ec9f25bd35 Mention that RET means "yes" in y-or-n-p
00eb21c897 ; * src/dispextern.h (struct glyph_string): Comment on NCH...
20eb3644ba Rewrite Antinews for Emacs 28
3a9b881603 ; * etc/NEWS: Rearrange the "incompatible changes" sections.
ebb7e26013 ; * etc/NEWS: Fix a typo.
315fe20086 ; * src/Makefile.in (../native-lisp): Add comment.
47cbd103f5 * lisp/bindings.el (mode-line-position): Improve tooltip.
35a752863a * lisp/progmodes/xref.el: Bump the version.
bbcd8cc1a9 Slight simplificaiton
e139dd1b1e Fix doc strings of 2 categories
59782839cb (xref--collect-matches-1): Remove some intermediate alloca...
1c7d056f4d ; Fix two typos where em dash was written as en dash
# Conflicts:
# etc/NEWS
2021-10-09 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/progmodes/bug-reference.el: Use new `eql` specializer syntax
2021-10-09 F. Jason Park <jp@neverwas.me>
Add ERC version to protocol log
* lisp/erc/erc.el (erc-toggle-debug-irc-protocol): Include the erc
version in the debug logs (bug#51107).
2021-10-09 Lars Ingebrigtsen <larsi@gnus.org>
Remove mistaken dired-x entry from previous info-look patch.
2021-10-09 Lars Ingebrigtsen <larsi@gnus.org>
Make `C-h S' work on symbols from most of the manuals in Emacs
* lisp/info-look.el (lambda): Add `C-h S' lookup for all the
"misc" manuals in Emacs (bug#42753).
2021-10-09 Lars Ingebrigtsen <larsi@gnus.org>
Add indices to mairix-el
* doc/misc/mairix-el.texi (Function Index): Add indices.
2021-10-09 Lars Ingebrigtsen <larsi@gnus.org>
Simplify `clean-mode'
* lisp/simple.el (clean-mode): Simplify the property exclusion.
2021-10-09 Stefan Kangas <stefan@marxist.se>
Remove duplicate definition of x-display-color-p
* lisp/emulation/viper-init.el (x-display-color-p): Remove duplicate
definition. This would just overwrite the alias defined in faces.el.
2021-10-08 Stefan Kangas <stefan@marxist.se>
Remove some unnecessary calls to mh-funcall-if-exists
* lisp/mh-e/mh-acros.el (mh-do-at-event-location):
* lisp/mh-e/mh-mime.el (mh-mime-cleanup, mh-display-smileys)
(mh-insert-mime-security-button, mh-insert-mime-button):
* lisp/mh-e/mh-show.el (mh-defun-show-buffer):
* lisp/mh-e/mh-xface.el (mh-x-image-url-fetch-image)
(mh-x-image-display, mh-picon-image-types): Remove unnecessary calls
to mh-funcall-if-exists; these functions always exist as they are
autoloaded.
2021-10-08 Stefan Kangas <stefan@marxist.se>
Remove old Gnus compat code from MH-E
* lisp/mh-e/mh-gnus.el (mh-mm-merge-handles)
(mh-mm-set-handle-multipart-parameter, mh-mm-inline-text-vcard)
(mh-mm-possibly-verify-or-decrypt)
(mh-mm-handle-multipart-ctl-parameter, mh-mm-readable-p)
(mh-mm-long-lines-p, mh-mm-keep-viewer-alive-p)
(mh-mm-destroy-parts, mh-mm-uu-dissect-text-parts)
(mh-mml-minibuffer-read-disposition): Make into obsolete aliases
for functions without the 'mh-' prefix. Update callers.
(mh-gnus-local-map-property): Remove Emacs 20 compat code.
2021-10-08 Stefan Monnier <monnier@iro.umontreal.ca>
test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el: Lexbind
Add the usual lexical-binding cookie.
2021-10-08 Stefan Kangas <stefan@marxist.se>
Remove XEmacs compat code from lisp/obsolete/*.el
* lisp/obsolete/crisp.el (crisp-kill-region)
(crisp-region-active):
* lisp/obsolete/eudcb-ph.el (eudc-ph-open-session):
* lisp/obsolete/fast-lock.el (fast-lock-save-faces):
* lisp/obsolete/iswitchb.el (iswitchb-completion-help)
(iswitchb-case):
* lisp/obsolete/otodo-mode.el (todo-mode):
* lisp/obsolete/pgg-parse.el (pgg-parse-armor):
* lisp/obsolete/pgg.el (pgg-verify-region):
* lisp/obsolete/tpu-edt.el (activate-mark-hook, tpu-mark)
(tpu-set-mark, tpu-load-xkeys):
* lisp/obsolete/tpu-mapper.el (tpu-map-key, tpu-mapper): Remove XEmacs
compat code.
2021-10-08 Stefan Kangas <stefan@marxist.se>
Remove XEmacs compat code from sql.el
* lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode)
(sql-interactive-mode): Remove XEmacs compat code. (Bug#51096)
2021-10-08 Stefan Kangas <stefan@marxist.se>
Remove Emacs 20 compat code from sql.el
* lisp/progmodes/sql.el (sql-input-ring-separator)
(sql-product-font-lock): Remove Emacs 20 compat code.
2021-10-08 Stefan Kangas <stefan@marxist.se>
Remove some additional XEmacs compat code from viper
* lisp/emulation/viper-util.el (viper-memq-char): Make into
obsolete function alias for 'memq'. Update callers.
(viper-char-equal): Make into obsolete function alias for 'eq'.
Update callers.
(viper-color-display-p): Make into obsolete function alias for
'x-display-color-p'. Update callers.
2021-10-08 Stefan Kangas <stefan@marxist.se>
Obsolete XEmacs compat convention in erc-button-press-button
* lisp/erc/erc-button.el (erc-button-press-button): Advertise new
calling convention without XEmacs compatibility.
2021-10-08 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
af01b674ce (origin/emacs-28) ; Fix spacing in previous commit
915e044d60 Use the correct label in the warning
6e83a4100a ; * admin/make-tarball.txt: Should configure --with-native...
525602d682 ; * etc/TODO (display): Add entry about Default_Ignorables.
65de510c16 ; Fix 'restore-buffer-modified-p' doc string typo
9d8202b45e Add Emacs 27 compatibility hack
89d64fca75 Pacify GCC 10.3 -Wmaybe-uninitialized
bb8ef1aa30 * lisp/tab-bar.el (tab-detach, tab-window-detach): New ali...
7ae70054aa ; * src/composite.h (LGSTRING_FONT): Add comment about its...
1af00e67d6 Include the refcards in the release tarball
3c29fb705c ; * src/Makefile.in (../native-lisp): Make the long recipe...
2021-10-07 Stefan Kangas <stefan@marxist.se>
Make mh-* XEmacs compat aliases obsolete
* lisp/mh-e/mh-acros.el (mh-make-local-hook): Make XEmacs and Emacs 20
macro obsolete. Update all callers
* lisp/mh-e/mh-compat.el (mh-require): Make XEmacs compat alias
obsolete. Update all callers
(mh-write-file-functions): Make XEmacs compat macro obsolete. Update
all callers
(mh-assoc-string, mh-display-color-cells, mh-face-foreground)
(mh-face-foreground, mh-face-background)
(mh-font-lock-add-keywords, mh-image-load-path-for-library)
(mh-image-search-load-path, mh-line-beginning-position)
(mh-line-end-position, mh-mail-abbrev-make-syntax-table)
(mh-define-obsolete-variable-alias, mh-make-obsolete-variable)
(mh-match-string-no-properties, mh-replace-regexp-in-string)
(mh-test-completion, mh-url-hexify-string, mh-view-mode-enter)
(mh-window-full-height-p): Make XEmacs compat definitions into
obsolete function aliases for the same names but without the "mh-"
prefix. Update all callers.
2021-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Update inhibit-changing-match-data obsoletion data
* lisp/subr.el (inhibit-changing-match-data): Link to
`save-match-data'.
2021-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Update Fstring_match calls in comp.c
* src/comp.c (Fcomp_el_to_eln_rel_filename, file_in_eln_sys_dir):
Update Fstring_match calls.
2021-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Make 'inhibit-changing-match-data' obsolete and adjust callers
* doc/lispref/searching.texi (Regexp Search):
(POSIX Regexps): Document this.
* lisp/subr.el (inhibit-changing-match-data): Make obsolete.
(looking-at-p): Adjust call.
* lisp/vc/vc-hg.el (vc-hg--raw-dirstate-search):
(vc-hg--ignore-patterns-ignored-p):
(vc-hg--cached-dirstate-search): Don't use
`inhibit-changing-match-data'.
* src/minibuf.c (Ftry_completion):
(Fall_completions):
(Ftest_completion): Adjust Fstring_match calls.
* src/search.c (looking_at_1): Pass in modify_data.
(Flooking_at): Add optional inhibit-modify parameter.
(string_match_1): Pass in modify_data.
(Fstring_match):
(Fposix_looking_at, Fposix_string_match): Add optional
inhibit-modify parameter.
2021-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Make gnus-define-keys obsolete
* lisp/gnus/gnus-util.el (gnus-define-keys):
(gnus-define-keys-1): Make obsolete.
2021-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Convert mh-e to use define-keymap instead of gnus-define-keys
* lisp/mh-e/mh-speed.el (mh-folder-speedbar-key-map):
* lisp/mh-e/mh-show.el (mh-show-mode-map):
* lisp/mh-e/mh-search.el (mh-letter):
(mh-search-mode-map):
* lisp/mh-e/mh-letter.el (mh-letter-mode-map):
* lisp/mh-e/mh-folder.el (mh-folder-mode-map): Convert to use
`define-keymap' instead of `gnus-define-keys'.
2021-10-07 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
7cb98ba057 (origin/emacs-28) ; * src/keyboard.c (make_lispy_position)...
2021-10-07 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
160e62a23c Improve documentation and customization of 'blink-matching...
1100fffcd3 * lisp/erc/erc.el: Don't error if 'erc-loaddefs' does not ...
8865fc02ab Add 'erc-bug' command for reporting ERC bugs
5afa07919e Add 'erc-version' and use it to display ERC version consis...
bc941846d9 Small tweaks and improvements to etc/ERC-NEWS
30b5e0a514 Add NEWS items for changes to ERC since 5.3 to etc/ERC-NEWS
f7e6c199bf Clone the frame window configuration in 'clone-frame'
5f626488d8 * lisp/tool-bar.el (tool-bar-position): Doc fix.
# Conflicts:
# etc/NEWS
2021-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Fix mh-e compilation warning
* lisp/mh-e/mh-comp.el (mh-compose-and-send-mail): Adjust doc string.
* lisp/mh-e/mh-identity.el (mh-identity-make-menu): Don't call the
obsolete `mh-identity-add-menu' function (that now does nothing).
2021-10-07 Stefan Kangas <stefan@marxist.se>
Revert "Declare compat macro mh-do-in-gnu-emacs obsolete"
This reverts commit 148b136651413d8eca0f805c786fb04b9c5878b8.
This commit led to some build failures that I don't yet understand, so
I'm reverting it for now so as not to leave master in a broken state.
2021-10-07 Stefan Kangas <stefan@marxist.se>
Delete some XEmacs compat code from mh-e/*.el
* lisp/mh-e/mh-acros.el (mh-mark-active-p):
* lisp/mh-e/mh-comp.el (mh-insert-x-mailer):
* lisp/mh-e/mh-compat.el (mh-define-obsolete-variable-alias)
(mh-make-obsolete-variable):
* lisp/mh-e/mh-folder.el (mh-folder-mode-map)
(mh-remove-xemacs-horizontal-scrollbar, mh-folder-mode):
* lisp/mh-e/mh-gnus.el (mh-gnus-local-map-property):
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/mh-e/mh-utils.el (mh-colors-available-p):
* lisp/mh-e/mh-xface.el (mh-show-xface-function): Delete some
XEmacs compat code.
2021-10-07 Stefan Kangas <stefan@marxist.se>
Declare compat macro mh-do-in-gnu-emacs obsolete
* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs): Declare compat macro
obsolete.
* lisp/mh-e/mh-compat.el (mh-require):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-letter.el (mh-letter-mode):
* lisp/mh-e/mh-mime.el (mh-mime-button-map)
(mh-mime-security-button-map, mh-small-image-p)
(mh-signature-highlight):
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
* lisp/mh-e/mh-utils.el (mh-logo-display)
(mh-hidden-header-keymap):
* lisp/mh-e/mh-xface.el (mh-face-display-function)
(mh-picon-image-types, mh-x-image-display): Don't wrap code in
compat macro 'mh-do-in-gnu-emacs'.
2021-10-07 Stefan Kangas <stefan@marxist.se>
Declare compat macro mh-do-in-xemacs obsolete
* lisp/mh-e/mh-identity.el (mh-identity-add-menu):
* lisp/mh-e/mh-acros.el (mh-do-in-xemacs): Declare obsolete.
* lisp/mh-e/mh-compat.el:
* lisp/mh-e/mh-e.el (mh-xemacs-use-tool-bar-flag):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-letter.el (mh-letter-mode):
* lisp/mh-e/mh-mime.el (mh-mime-button-map)
(mh-mime-security-button-map, mh-small-image-p)
(mh-signature-highlight):
* lisp/mh-e/mh-search.el (mh-search-mode):
* lisp/mh-e/mh-seq.el:
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/mh-e/mh-tool-bar.el (mh-tool-bar-define):
* lisp/mh-e/mh-utils.el (mh-logo-display)
(mh-hidden-header-keymap):
* lisp/mh-e/mh-xface.el (mh-face-display-function)
(mh-picon-image-types, mh-x-image-display): Delete calls to
'mh-do-in-xemacs'.
2021-10-07 Lars Ingebrigtsen <larsi@gnus.org>
Fix syntax error in previous gnus-registry-install-shortcuts change
* lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts):
Fix syntax error in previous change.
2021-10-06 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler): Scope
Fix the scoping of `tramp-archive-enabled`.
2021-10-06 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
1ccd3eb721 (origin/emacs-28) ; Fix typo in etc/NEWS
0f28ee94ac * NEWS: Mention rcirc connects to #emacs by default
aacafbe267 Refactor mh-utils-tests macro 'with-mh-test-env'
ead5c5cc51 Avoid using variable before it has been initialized
b2c50d7cf3 Clarify docstring of blink-matching-paren
d2a34cabcf ; Very minor touch-up to a recent change
36a7ce4393 ; * doc/emacs/trouble.texi (After a Crash): Fix typo.
1cd1b2835b * doc/misc/gnus.texi (Loose Threads): Use regexp-opt in ex...
9f041cdfac Bump project.el version
ad2287e659 Retain compatibility with older project.el projects
d86b2e59c7 native-comp-available-p is the definitive test
1b383ac424 Minor fix of a recently installed documentation change
4d76765b6c Fix md5 issue in recent Gnulib merge
18308b739a Tweak recent 'configure' fix
# Conflicts:
# etc/NEWS
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Reparent `gnus-article-mode-map' again
* lisp/gnus/gnus-art.el (:keymap): Make `button-buffer-map' the
parent of `gnus-article-mode-map' again.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Add new major mode 'clean-mode'
* doc/lispref/modes.texi (Major Modes): Document it.
* lisp/simple.el (clean-mode): New major mode.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Add an optional parameter to kill-all-local-variables
* doc/lispref/variables.texi (Creating Buffer-Local): Document it
(bug#30204).
* src/buffer.c (Fkill_all_local_variables): Allow killing
permanent local variables, too.
* src/print.c (temp_output_buffer_setup):
* src/minibuf.c (set_minibuffer_mode): Adjust callers.
2021-10-06 Michael Albinus <michael.albinus@gmx.de>
* admin/notes/emba (Emacs jobset): Update.
* test/infra/gitlab-ci.yml (.test-template): Uncomment
'allow_failure', it isn't needed anymore.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Make unused macro gnus-local-set-keys obsolete
* lisp/gnus/gnus-util.el (gnus-local-set-keys): Make obsolete.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Make unused gnus-define-keys-safe macro obsolete
* lisp/gnus/gnus-util.el (gnus-define-keys-safe): Make obsolete.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Use `define-keymap' in gnus-registry-install-shortcuts
* lisp/gnus/gnus-registry.el (gnus-registry-install-shortcuts):
Use `define-keymap'.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Make `gnus-define-keymap' obsolete and adjust caller
* lisp/gnus/gnus-kill.el (gnus-kill-file-mode-map): Use
`define-keymap'.
* lisp/gnus/gnus-util.el (gnus-define-keymap): Make obsolete.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix gnus-start.el compilation warning
* lisp/gnus/gnus-start.el (gnus-save-newsrc-file-last-timestamp):
Move to avoid a compilation warning.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Finish conversion of Gnus from `gnus-define-keys'
* lisp/gnus/gnus-undo.el (gnus-undo-mode-map):
* lisp/gnus/gnus-salt.el (gnus-pick-mode-map):
(gnus-binary-mode-map):
(gnus-tree-mode-map):
* lisp/gnus/gnus-msg.el (gnus-summary-send-map):
* lisp/gnus/gnus-ml.el (gnus-mailing-list-mode-map):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-setup):
* lisp/gnus/gnus-art.el (gnus-article-mode-map):
(gnus-article-edit-mode-map): Use `define-keymap' instead of
* `gnus-define-keys'.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Clear gnus-save-newsrc-file-last-timestamp on start and exit
* lisp/gnus/gnus-start.el (gnus-clear-system): Clear
`gnus-save-newsrc-file-last-timestamp' on start and exit (bug#51053).
2021-10-06 Arash Esbati <arash@gnu.org>
Improve finding external documents in reftext
* lisp/textmodes/reftex-parse.el (reftex-parse-from-file): Extend
regexp in order to support \externalcitedocument macro and a
second optional argument provided by LaTeX package xr-hyper
(bug#51054).
2021-10-06 Miha Rihtaršič <miha@kamnitnik.top>
Add tests for incomplete escape sequences in ansi-color-tests
* test/lisp/ansi-color-tests.el
(ansi-color-tests-equal-props): New function.
(ansi-color-incomplete-sequences-test): New ert test (bug#50806).
2021-10-06 Miha Rihtaršič <miha@kamnitnik.top>
Documentation fixes for recent ansi-color additions
* lisp/ansi-color.el (ansi-color-context-region): Improve formatting.
* lisp/term.el
(term-ansi-face-already-done):
(term-handle-colors-array):
Fix obsoleting version (bug#50806).
2021-10-06 Yuri D'Elia <wavexx@thregr.org>
Document the improved scroll-margin behavior
* etc/NEWS: document the improved `scroll-margin' behavior.
2021-10-06 Yuri D'Elia <wavexx@thregr.org>
Perform cleanup on errors in mouse-drag-track
* lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and
auto-hscroll-mode in mouse-drag-region and do not re-enable them until
dragging is over, making selections work as expected when inside the
margins.
* lisp/mouse.el (mouse-drag-track): Correctly reset original values
changed during execution if errors occur.
2021-10-06 Yuri D'Elia <wavexx@thregr.org>
Improve interaction between mouse-drag-region and scroll-margin
* lisp/mouse.el (mouse-drag-track): Disable both scroll-margin and
auto-hscroll-mode in mouse-drag-region and do not re-enable them until
dragging is over, making selections work as expected when inside the
margins.
2021-10-06 Lars Ingebrigtsen <larsi@gnus.org>
Fix up gnus-summary-mode-map after previous change
* lisp/gnus/gnus-sum.el (:keymap): Fix two sub-maps that were
moved to the wrong place.
2021-10-05 Lars Ingebrigtsen <larsi@gnus.org>
Convert more parts of Gnus from `gnus-define-keys' to `define-keymap'
* lisp/gnus/spam.el (gnus-summary-mode-map):
* lisp/gnus/gnus-topic.el (gnus-topic-mode-map):
* lisp/gnus/gnus-sum.el (gnus-summary-mode-map):
* lisp/gnus/gnus-srvr.el (gnus-server-mode-map):
(gnus-server-mode-map):
(gnus-browse-mode-map):
* lisp/gnus/gnus-score.el (gnus-summary-score-map):
* lisp/gnus/gnus-draft.el (gnus-draft-mode-map):
* lisp/gnus/gnus-agent.el (gnus-agent-group-mode-map):
(gnus-agent-summary-mode-map):
(gnus-agent-server-mode-map):
(gnus-category-mode-map): Convert from `gnus-define-keys' to
`define-keymap'.
* lisp/gnus/gnus.el: Define more commands.
2021-10-05 Stefan Kangas <stefan@marxist.se>
Do interactive mode tagging for proced.el
2021-10-05 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
63abe976ce (origin/emacs-28) Document minibuffer-default-prompt-forma...
b5afbedc90 Backward compatibility option for 'nobreak-char-display'
ea1b728a06 ; * lisp/dired.el: Fix typo.
984eafeb98 Unbreak the build after Gnulib update
5946370cd1 Check, whether an FUSE mount has been broken in Tramp
90575a6c0c Disable 'nobreak-char-display' in Eldoc buffers
570e2c9a17 Fix small error in comint-send-input
fd7bb31412 Update documentation of search-whitespace-regexp
1f4ced47a1 Fix cc-compat.el syntax error
b431f54c1b Mention `seq-uniq' in `delete-dups' documentation
0a7bab689c ; Minor stylistic fixes found by checkdoc
e2861e2d08 ; * etc/NEWS: Fix typo.
1a65d49931 Port recent Gnulib changes to MS-Windows
68a256c892 Update from Gnulib
63cb65dcce * Fix mh tests for native comp builds (bug#50975)
e606cc6f40 * Fix `batch-native-compile' not to spawn a subprocess
894dfe70da Fix native-compilation build from tarball on Cygwin
2ce5e08058 Remove U+FE0F from script-representative-chars
# Conflicts:
# etc/NEWS
2021-10-05 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
13f459b3ac ; Describe PROBLEMS with Unicode display on some TTYs
7a98a62079 * test/README: Mention :nativecomp tag.
2021-10-05 Basil L. Contovounesios <contovob@tcd.ie>
Fix recent "erts files" additions in ERT manual
* doc/misc/ert.texi (erts files): Indent examples with spaces rather
than tabs, since Texinfo treats tab characters as a single space;
see (info "(texinfo) @example"). Fix typos/thinkos.
2021-10-05 Stefan Kangas <stefan@marxist.se>
Make 'mapconcat' argument 'separator' optional
* src/fns.c (Fmapconcat): Make third 'separator' argument
optional. (Bug#50965)
* doc/lispref/functions.texi (Mapping Functions): Update
documentation for above change.
* test/src/fns-tests.el (fns-tests-mapconcat): New test.
* doc/misc/cl.texi (Obsolete Setf Customization): Don't use third
mapconcat argument in example.
* lisp/emacs-lisp/subr-x.el (string-join): Doc fix.
2021-10-05 Stefan Kangas <stefan@marxist.se>
Make two old function aliases obsolete
* lisp/textmodes/bibtex.el (bibtex-find-crossref)
(bibtex-find-entry): Make function aliases obsolete. These were left
behind when renaming functions, but never declared obsolete.
2021-10-05 Stefan Kangas <stefan@marxist.se>
Set advertised calling convention on make-face-* functions
* lisp/faces.el (make-face-bold, make-face-unbold)
(make-face-italic, make-face-unitalic, make-face-bold-italic):
Use `advertised-calling-convention` to avoid promoting the third
_noerror argument; it has been ignored since 1999.
2021-10-05 Lars Ingebrigtsen <larsi@gnus.org>
Change the call convention for `defvar-keymap'
* doc/lispref/keymaps.texi (Changing Key Bindings): Adjust
documentation.
* lisp/simple.el (special-mode-map):
* lisp/net/shr.el (shr-map):
* lisp/net/eww.el (eww-link-keymap):
(eww-mode-map):
(eww-submit-map):
(eww-textarea-map):
(eww-bookmark-mode-map):
(eww-history-mode-map):
(eww-buffers-mode-map):
* lisp/gnus/message.el (message-mode-map):
* lisp/gnus/gnus-html.el (gnus-html-image-map):
* lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map):
* lisp/gnus/gnus-dired.el (gnus-dired-mode-map):
* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map):
Adjust usage of `defvar-keymap'.
* lisp/subr.el (define-keymap, define-keymap--define): Change how
these functions call each other.
(defvar-keymap): Change interface to be more like `define-keymap'.
* lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): Remove.
(lisp-indent-function): Don't use it.
2021-10-05 Daniel Martín <mardani29@yahoo.es>
Update documentation about how M-x completes obsolete commands
* doc/emacs/m-x.texi (M-x): Mention that Emacs offers completion for
commands marked obsolete in the current version of Emacs (bug#51017).
2021-10-05 Miha Rihtaršič <miha@kamnitnik.top>
In term-mode, handle ANSI codes, specifying italic and other modes
* etc/e/eterm-color.ti: Add new capabilities
* lisp/term.el: New faces and variables to support new ANSI modes.
(term-termcap-format): Add new capabilities
(term-emulate-terminal): When saving cursor, additionally save the new
variables.
(term--handle-colors-list): Handle ANSI codes, specifying italic other
modes.
* test/lisp/term-tests.el (ansi-test-strings): Adjust tests.
2021-10-05 Miha Rihtaršič <miha@kamnitnik.top>
Add support for 256-color and 24bit ANSI colors in term-mode
(term-ansi-face-already-done): Make obsolete
(term--maybe-brighten-color): Remove
(term--color-as-hex): New function
(term-handle-colors-array): Make obsolete in favour of the new
function 'term--handle-colors-list'.
(term--handle-colors-list): New function, that can also handle ANSI
codes 38 and 48.
(term-handle-ansi-escape): Use it
* test/lisp/term-tests.el (ansi-test-strings): Add tests for 256-color
and 24bit ANSI colors
2021-10-05 Miha Rihtaršič <miha@kamnitnik.top>
Add support for 256-color and 24bit ANSI colors in ansi-color
* lisp/ansi-color.el (ansi-color--code-as-hex): New function to
convert from 256-color and 24-bit ANSI codes.
(ansi-color--face-vec-face): Add support for ANSI color codes greater
than 16
(ansi-color--update-face-vec): Add support for ANSI codes 38 and 48
which can specify 256-color and 24bit ANSI colors.
* test/lisp/ansi-color-tests.el (ansi-color-tests--strings): Add tests
for ANSI codes 38 and 34
2021-10-05 Miha Rihtaršič <miha@kamnitnik.top>
Optimize ansi-color.el
(ansi-color-context-region):
(ansi-color-context): Adjust doc string to the new format of
ansi-color context.
(ansi-color--find-face): Rename to ansi-color--face-vec-face
(ansi-color--face-vec-face): Adjust to the new format ansi-color
context.
(ansi-color-filter-apply):
(ansi-color-apply):
(ansi-color-filter-region):
(ansi-color-apply-on-region): Adjust to the new format of ansi-color
context in order to speed these functions up.
(ansi-color-apply-sequence): Make it obsolete.
(ansi-color--update-face-vec): New function to handle the new format
of ansi-color context.
(ansi-color-get-face-1): Make obsolete as this function isn't used any
more (bug#50806).
2021-10-05 Lars Ingebrigtsen <larsi@gnus.org>
Make `memory-report-object-size' work standalone
* lisp/emacs-lisp/memory-report.el (memory-report--type-size):
Default to nil so that the test in `memory-report-object-size' works.
(memory-report--set-size): Initialize
memory-report-object-size.
2021-10-04 Stefan Kangas <stefan@marxist.se>
Use format-prompt for many more prompts
* lisp/bookmark.el (bookmark-completing-read):
* lisp/calc/calc-prog.el (calc-user-define-formula):
* lisp/calc/calc-store.el (calc-permanent-variable):
* lisp/calc/calc-units.el (calc-convert-units)
(calc-convert-exact-units, calc-convert-temperature):
* lisp/cedet/semantic/complete.el
(semantic-complete-read-tag-engine):
* lisp/cus-edit.el (customize-read-group):
* lisp/dired-aux.el (dired-do-chxxx):
* lisp/dired-x.el (dired-mark-unmarked-files):
* lisp/emacs-lisp/debug.el (cancel-debug-on-entry)
(cancel-debug-on-variable-change):
* lisp/emacs-lisp/edebug.el (edebug-cancel-on-entry)
(edebug-remove-instrumentation):
* lisp/epa.el (epa-read-file-name, epa-export-keys):
* lisp/faces.el (read-face-name):
* lisp/format.el (format-decode-buffer, format-decode-region):
* lisp/gnus/gnus-art.el (gnus-read-save-file-name):
* lisp/gnus/gnus-util.el (gnus-completing-read):
* lisp/gnus/message.el (message-check-news-header-syntax):
* lisp/info.el (Info-follow-reference):
* lisp/international/mule-diag.el (describe-font)
(describe-fontset):
* lisp/international/quail.el (quail-show-keyboard-layout):
* lisp/language/cyril-util.el
(standard-display-cyrillic-translit):
* lisp/mail/rmailkwd.el (rmail-read-label):
* lisp/mail/rmailmm.el (rmail-mime-save):
* lisp/mail/rmailout.el (rmail-output-read-file-name):
* lisp/man.el (Man-goto-section, Man-follow-manual-reference):
* lisp/menu-bar.el (emacs-index--prompt):
* lisp/net/ange-ftp.el (ange-ftp-get-passwd):
* lisp/proced.el (proced-send-signal):
* lisp/progmodes/cpp.el (cpp-choose-face):
* lisp/progmodes/ebrowse.el (ebrowse-set-tree-indentation):
* lisp/progmodes/etags.el (visit-tags-table)
(visit-tags-table-buffer):
* lisp/progmodes/grep.el (grep-read-files):
* lisp/progmodes/hideif.el (hide-ifdef-define):
* lisp/progmodes/pascal.el (pascal-goto-defun):
* lisp/progmodes/prolog.el (prolog-read-predicate):
* lisp/progmodes/sql.el (sql-get-login-ext):
* lisp/ses.el (ses-define-local-printer):
* lisp/textmodes/artist.el (artist-figlet-choose-font):
* lisp/textmodes/tex-mode.el (tex-compile):
* lisp/vc/diff.el (diff):
* lisp/vc/ediff-ptch.el (ediff-prompt-for-patch-file):
* lisp/vc/ediff-util.el (ediff-read-file-name):
* lisp/vc/pcvs.el (cvs-mode-mark-on-state):
* lisp/vc/vc.el (vc-diff-build-argument-list-internal)
(vc-revision-other-window, vc-retrieve-tag):
* lisp/wid-edit.el: Prefer format-prompt unconditionally.
* lisp/org/org-capture.el (org-capture-fill-template):
* lisp/org/org-refile.el (org-refile-get-location):
* lisp/progmodes/python.el (python-eldoc-at-point):
* lisp/progmodes/verilog-mode.el (verilog-surelint-off)
(verilog-goto-defun):
* lisp/progmodes/xref.el (xref--read-identifier): Prefer format-prompt
when it is fboundp.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix syntax error in define-keymap doc string
* lisp/subr.el (define-keymap): Fix syntax error in (fn.
2021-10-04 Robert Pluim <rpluim@gmail.com>
Fix problem with 'vertical-motion' and emoji
* src/font.c (font_range): Pass correct position to
font_for_char (Bug#51012).
2021-10-04 Mattias Engdegård <mattiase@acm.org>
Run ERT tests with `lexical-binding` bound to `t`
* lisp/emacs-lisp/ert.el (ert-deftest, ert--run-test-internal):
Use t rather than the ambient file value for `lexical-binding` to
avoid bad lexbind coverage by mistake.
2021-10-04 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
95a0227ff7 (origin/emacs-28) Avoid exiting when outputting error mess...
b7ae0232be ; * src/Makefile.in (../native-lisp): More tweaks of the r...
6e79f8a444 Remove implemented emoji items
00bcba5125 project.el NEWS tagging
704a39f508 thing-at-mouse NEWS tagging
3a9d5f04fb Mention ffap-file-name-with-spaces in the ffap doc strin
# Conflicts:
# etc/NEWS
2021-10-04 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
3b8dda6c90 Add safety check in x_menu_show
e1fb731393 Tweak x_connection_closed when I/O error
595e506c82 * lisp/erc/erc.el (erc-user-mode): Set "+i" by default.
d00f3d4c05 Port unused decls to C2x
317eb2d5b5 Improve structure of TODO
c0793cd9de Don't use some obsolete names in documentation
87153cc915 Tweak x_hide_tip for consistency
7e871dcd27 Remove encode_terminal_code UNINITs
2a00634880 Port pdumper.c maybe_unused to C2x
6d9b3c0eaa Port systhreads.h to C2x
fd274d7d24 Pacify -Wanalyzer-null-argument in lisp_malloc
cc3fc94f09 Pacify gcc 11.2.1 -Wanalyzer-null-argument
d3a832a61a Simplify hack-read-symbol-shorthands again (bug#50946)
4831426158 Fix recipe for 'native-lisp' directory
0bb42ef803 ; * lisp/time-stamp.el (time-stamp-format): Doc string.
732c70a0d9 Simplify socket symlink-attack checking
fc32a3bd95 ; * doc/lispref/files.texi (Reading from Files): Fix wording.
3cc77aa976 Clarify (elisp) insert-file-contents with BEG or END not o...
5deeb0947d * src/Makefile.in: Simplify conditionals.
121a5abeae Move context-menu selection items Defun/List/Symbol to pro...
0c341e6e84 * lisp/tab-bar.el (tab-bar-detach-tab): Handle frame selec...
931a7276c0 * lisp/tab-line.el (tab-line-format): Add face-modified to...
3863919a00 Fix unmounting in Tramp
7a6d34cd1f * etc/themes/light-blue-theme.el: Add "Maintainer: emacs-d...
c1b1e1f545 Define HAVE_NATIVE_COMP in src/Makefile.in
137fa2d716 Rename elisp-shorthands to read-symbol-shorthands
e6fbc45b7b Font-lock shorthands in elisp-mode for quick visual recogn...
17e6f3bee5 ; Fix last change in tramp-sshfs.el
3dae1e33d1 Suppress superfluous error messages in Tramp
b228ec9fab Fix reading the tail of a file in shorthands.el
7fb2789509 Fix substitution of pretty quotes in code in easy-mmode
b47d7ce1b8 Fix agent directory deletion
b1a8a66fb0 ; * etc/TODO: Fix previous commit; delete the right thing.
6c01a21365 Clarify the purpose of internal--format-docstring-line
55dadbc57e * lisp/net/dictionary.el (context-menu-dictionary): Move m...
bb209cd5ab Update to Org 9.5-30-g10dc9d
4341e79a5f Remove bogus ":safe t" custom properties
b6f6b593c6 Fix 'apropos-compact-layout'
62d6cecfcd Remove bogus ":safe nil" custom properties
f9111d8784 The safe-local-variable property is a function (bug#50944)
3dc094abee ; Some minor tweaks to TODO
a5b4356d37 Revert "; * etc/TODO: Move elpa.gnu.org items to the end."
7bc0cee115 Revert "* etc/TODO: Rearrange to start with "Simple tasks"."
3489471417 Fix selection of fonts for Arabic on Posix platforms
13e5943386 ; Fix a typo in a doc string
bd60fca2fa Fix ox-koma-letter compilation warnings
340e527bed Preload paren.el
a9052248da Improve documentation of 'shift-select-mode'
d505971894 ; Standardize some license headers
9307889d68 Simplify shorthand injection (bug#50946)
5c77cc9584 ; * admin/release-branch.txt: Tweak previous.
# Conflicts:
# etc/NEWS
# test/lisp/subr-tests.el
2021-10-04 Eli Zaretskii <eliz@gnu.org>
Revert "Fix problem with outputting error messages while dumping Emacs"
This reverts commit 1428962590e216163f079ff838f39667383aec56.
A better fix was committed to the emacs-28 branch and will be
merged to master.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Remove :copy from define-keymap
* doc/lispref/keymaps.texi (Changing Key Bindings): Update
documentation.
* lisp/subr.el (define-keymap):
(define-keymap--define): Remove :copy from the signature.
* lisp/net/eww.el (eww-link-keymap): Use :parent.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Fix gnus-group-mode-map breakage from previous patch
* lisp/gnus/gnus-group.el (:keymap): Restore gnus-group-list-map
key strokes to the correct location.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Document with-memoization
* doc/misc/cl.texi (Modify Macros): Document with-memoization.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Add new command 'ensure-empty-lines'.
* doc/lispref/text.texi (Commands for Insertion): Document it.
* lisp/emacs-lisp/subr-x.el (ensure-empty-lines): New command.
2021-10-04 Michael Albinus <michael.albinus@gmx.de>
* test/infra/gitlab-ci.yml (test-native-comp-speed0): Fix thinko.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Add new user option 'translate-upper-case-key-bindings'
* doc/lispref/commands.texi (Key Sequence Input): Document it.
* lisp/cus-start.el (standard): defcustom it.
* src/keyboard.c (read_key_sequence): Use it.
(syms_of_keyboard): New variable 'translate-upper-case-key-bindings'.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Remove MozRepl stuff from js.el
* lisp/progmodes/js.el: Remove all the mozrepl stuff from js.el
(bug#40771).
2021-10-04 Carlos Pita <carlosjosepita@gmail.com>
Avoid a warning in python-eldoc-setup-code
* lisp/progmodes/python.el (python-eldoc-setup-code): Avoid a
deprecation warning about formatargspec (bug#50996).
2021-10-04 Gregory Heytings <gregory@heytings.org>
Fix problem with outputting error messages while dumping Emacs
* src/print.c (print_error_message): Don't call
substitute-command-keys while bootstrapping.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Allow computing :doc-spec info-look elements at run time
* lisp/info-look.el (info-lookup--expand-info): New function.
(:mode, info-lookup-add-help): Adjust doc string.
(info-lookup-add-help*): Allow adding a dynamic expansion.
(info-lookup): Expand.
(:mode): Use a dynamic expansion for Python to postpone the lookup.
(info-complete): Expand.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Update NEWS for 'define-keymap'
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Convert some keymaps to defvar-keymap
* lisp/simple.el (special-mode-map):
* lisp/net/shr.el (shr-map):
* lisp/net/eww.el (eww-link-keymap):
(eww-mode-map):
(eww-submit-map):
(eww-bookmark-mode-map):
(eww-history-mode-map):
(eww-buffers-mode-map):
* lisp/gnus/message.el (message-mode-map): Use defvar-keymap.
* lisp/gnus/gnus-eform.el (gnus-edit-form-mode-map):
* lisp/gnus/gnus-dired.el (gnus-dired-mode-map):
* lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-mode-map): Use
defvar-keymap.
* lisp/gnus/gnus-group.el (gnus-group-mode-map): Use define-keymap.
* lisp/gnus/gnus-html.el (gnus-html-image-map): Use defvar-keymap.
* lisp/gnus/gnus.el: Autoload gnus-score-edit-all-score.
2021-10-04 Lars Ingebrigtsen <larsi@gnus.org>
Add 'define-keymap' and 'defvar-keymap'
* doc/lispref/keymaps.texi (Changing Key Bindings): Document
define-keymap and defvar-keymap.
* lisp/subr.el (define-keymap): New function.
(define-keymap--define): New function.
(defvar-keymap): New macro.
* lisp/emacs-lisp/lisp-mode.el (lisp-indent--defvar-keymap): New
function.
(lisp-indent-function): Use it to indent defvar-keymap.
2021-10-03 Michael Albinus <michael.albinus@gmx.de>
* test/infra/gitlab-ci.yml (.native-comp-template): Revert change.
2021-10-03 Michael Albinus <michael.albinus@gmx.de>
Improve native compilation on emba
* test/infra/Dockerfile.emba (emacs-native-comp)
(emacs-native-comp-speed1, emacs-native-comp-speed2): New stages.
(emacs-native-comp-speed0): Adapt.
* test/infra/gitlab-ci.yml (.build-template): Add 'needs: []'.
(.native-comp-template): Use 'only:' instead of 'rules:'.
(build-native-comp-speed0): Rename from 'build-native-bootstrap-speed0'.
(build-native-comp-speed1, build-native-comp-speed2)
(test-native-comp-speed0): New jobs.
2021-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Obsolete the light-blue theme
* etc/themes/light-blue-theme.el (light-blue): Make theme obsolete
since it's not maintained and seems to serve no particular use
case (bug#47047).
2021-10-03 Lars Ingebrigtsen <larsi@gnus.org>
Allow obsoleting themes
* lisp/cus-theme.el (customize-themes): Don't list obsolete themes.
* lisp/custom.el (load-theme): Issue a warning if the theme is
obsolete (bug#47047).
2021-10-02 Stefan Kangas <stefan@marxist.se>
Expand internal--format-docstring-line test
* test/lisp/subr-tests.el (subr-test-internal--format-docstring-line):
Check for error on newline.
2021-10-02 Stefan Kangas <stefan@marxist.se>
Support 'strong-italic' facemenu face in html-mode
* lisp/textmodes/sgml-mode.el (sgml-face-tag-alist)
(sgml-mode-facemenu-add-face-function, html-face-tag-alist):
Support 'strong-italic' facemenu face.
2021-10-02 Alexandre Duret-Lutz <adl@lrde.epita.fr>
gnus-icalendar: Missing attendees are not REQ-PARTICIPANT
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--get-attendee-names)
(gnus-icalendar-event-from-ical): Do not default to REQ-PARTICIPANT
if the user was not found as an attendee.
* test/lisp/gnus/gnus-icalendar-tests.el
(gnus-icalendary-weekly-byday): Remove the ROLE property to test
that it correctly defaults to REQ-PARTICIPANT. The case where the
user is not listed is covered by gnus-icalendar-parse already
(bug#50749).
2021-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-generic.el: Fix test/lisp/loadhist-tests
Revert 2fcd34f202 which was redundant anyway since e165bf3d4
had fixed it in a better way anyway (a way which doesn't litter the
`load-history`).
2021-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher): Fix regression
2021-10-01 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/subr-x.el (with-memoization): New macro
Extracted from `cl-generic.el`.
* lisp/emacs-lisp/cl-generic.el (cl--generic-get-dispatcher)
(cl--generic-build-combined-method, cl-generic-generalizers): Use it.
(cl--generic-with-memoization): Delete.
2021-10-01 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
626696c3c8 (origin/emacs-28) * doc/lispref/control.texi (pcase Macro)...
2895cb8d49 ; * lisp/time-stamp.el: Fix wording in some documentation ...
1e79c9e9c0 ; * admin/release-branch.txt: Small edits.
f1f57a541e Fix some custom types
2021-10-01 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
5ee5a90213 (origin/emacs-28) ; Fix oddities in etc/NEWS
# Conflicts:
# etc/NEWS
2021-10-01 Glenn Morris <rgm@gnu.org>
Merge from origin/emacs-28
ad0798a395 * etc/TODO: Add interactive mode tagging.
879ef5b19a * etc/TODO: Rearrange to start with "Simple tasks".
d73f0e96a7 ; * etc/TODO: Move elpa.gnu.org items to the end.
7cf1229706 ; * etc/TODO: Mention a relevant bug report.
f733b909ff * etc/TODO: Remove outdated item. (Bug#50904)
94c247d659 ; Oops, fix up last commit
88378acbfc Rename arguments of ERC's '/whois' and simplify doc string
205eb7f801 ; s/class/type
86da812afb Migrate Xref off EIEIO
5c73dfcbcb * admin/release-branch.txt: New file.
f060d1c9a4 * lisp/dired.el (dired-omit-mode): Declare, to avoid compi...
# Conflicts:
# etc/NEWS
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix one-clause movement in erts-mode--goto-start-of-test
* lisp/progmodes/erts-mode.el (erts-mode--goto-start-of-test): Fix
so this works in one-clause tests.
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Fix text in erts-run-test message
* lisp/progmodes/erts-mode.el (erts-run-test): New command and
keystroke.
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Add new command erts-run-test
* lisp/progmodes/erts-mode.el (erts-run-test): New command and
keystroke.
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Refactor out ert-test--erts-test
* lisp/emacs-lisp/ert.el (ert-test--erts-test): Refactor out the
bulk of the function for easier reuse.
2021-10-01 Peter Münster <pm@a16n.net>
New command for unmarking all images in image-dired
* lisp/image-dired.el (image-dired-unmark-all-marks): Remove marks from
Dired buffer and update the view of the thumbnails (bug#50920).
2021-10-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
default role for attendees is REQ-PARTICIPANT
* lisp/gnus/gnus-icalendar.el
(gnus-icalendar-event--get-attendee-names,
gnus-icalendar-event-from-ical): When the ROLE property
is missing from an ATTENDEE line, follow RFC5546 and default
to REQ-PARTICIPANT.
2021-10-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
allow party crashers to respond to ical events
If an ical invitation is sent to a mailing list, the recipients
are probably not listed as attendees. However there are
legitimate situations where these unlisted (or indirectly listed)
recipients are still expected to respond. RFC5546 allows that,
calling those respondents "party crashers".
* lisp/gnus/gnus-icalendar.el
(gnus-icalendar-event:inline-reply-buttons): Display the response
buttons even if the user was not found in the list of attendees,
but change the labels of those buttons to make clear they are
not explicitly invited.
(gnus-icalendar-event--build-reply-event-body): Add an attendee
line for the user in case one was not found.
2021-10-01 Alexandre Duret-Lutz <adl@lrde.epita.fr>
reply to the organizer of an ical event
RFC5546 specifies that participant status (accepted, tentative,
declined) should be sent to the organizer of the event. That
organizer is not necessarily the sender of the invitation; for
instance Google Calendar uses custom email addresses to receive these
notifications.
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-send-buffer-by-mail):
Replace the default recipient of the reply by the organizer of the
event.
(gnus-icalendar-reply) Pass that organizer to the previous function.
2021-10-01 akater <nuclearspace@gmail.com>
Restore the flet indentation fixes
* lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): New
function.
(lisp-indent-function): Use it to fix cl-flet indentation.
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Add a new command to mark a region as a test in erts-mode
* lisp/progmodes/erts-mode.el (erts-mode--in-test-p): Fix test.
(erts-tag-region): New command and keystroke.
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Allow skipping erts tests
* doc/misc/ert.texi (erts files): Document it.
* lisp/emacs-lisp/ert.el (ert-test-erts-file): Allow skipping tests.
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Add more indentation tests for Emacs Lisp mode
2021-10-01 Lars Ingebrigtsen <larsi@gnus.org>
Add new functionality to write buffer-based tests
* doc/misc/ert.texi (erts files): New node.
* lisp/files.el (auto-mode-alist): Map .erts to erts-mode.
* lisp/emacs-lisp/ert.el (ert-test-erts-file): New function.
* lisp/emacs-lisp/ert.el (ert--erts-specifications)
(ert--erts-unquote): Helper functions.
* lisp/progmodes/erts-mode.el: New mode and file.
2021-10-01 Ihor Radchenko <yantar92@gmail.com>
Save position in mark ring before jumping to definition
* lisp/help-mode.el (help-function-def--button-function): Current
point is saved in the mark ring before jumping to definition.
2021-09-30 Eli Zaretskii <eliz@gnu.org>
Update emacs-module sources for Emacs 29
* configure.ac (module_env_snippet_29): New.
* src/module-env-28.h: Remove the comment with instructions for
the next release.
* src/module-env-29.h: New file.
2021-09-30 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version to 29.0.50
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp:
* src/msdos.c (internal_terminal_init):
* etc/refcards/ru-refcard.tex:
* etc/NEWS: Bump Emacs version to 29.0.50.
* etc/NEWS.28: New file.
* lisp/cus-edit.el (customize-changed-options-previous-release):
Update the reference version of Emacs.
2021-09-05 João Távora <joaotavora@gmail.com>
Fixup last commit
Per https://github.com/joaotavora/eglot/issues/726.
I'm still not entirely convinced using all-completion here is a good
idea. As usual the completion list we get from the server is
pre-filtered to whatever the server wishes. Letting the completion
style do its own filtering (most completion styles use
completion-regexp-list and all-completions themselves) is completely
useless here.
Let's hope it's not harmful.
* eglot.el (eglot-completion-at-point): Fix all-completions call
2021-09-05 João Távora <joaotavora@gmail.com>
Respect completion-regexp-alist in eglot's completion table
See GitHub discussion https://github.com/joaotavora/eglot/issues/726
Suggested-by: Felicián Németh <felician.nemeth@gmail.com>
Suggested-by: JD Smith
* eglot.el (eglot-completion-at-point): use all-completions.
2021-09-01 João Távora <joaotavora@gmail.com>
Fix typo in user-visible eglot-ignored-server-capabilities
The name with the typo, eglot-ignored-server-capabilites, is still
supported.
Per https://github.com/joaotavora/eglot/issues/724.
* NEWS.md: Mention change
* eglot.el (eglot-ignored-server-capabilities): New defcustom.
2021-08-17 João Távora <joaotavora@gmail.com>
Fall back to prompting user if eglot-alternatives fails
* eglot.el (eglot-alternatives): Don't error in interactive case.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/719
2021-08-17 João Távora <joaotavora@gmail.com>
Let eglot-flymake-backend be in flymake-d-functions even if eglot off
This is useful when using eglot-stay-out-of and a pattern like:
(defun my/js-mode-hook ()
(add-hook 'flymake-diagnostic-functions 'some-eslint-backend nil t))
(setq-local eglot-stay-out-of '(flymake))
(add-hook 'flymake-diagnostic-functions 'eglot-flymake-backend nil t))
(add-hook 'js-mode-hook 'my/js-mode-hook)
Then, _both_ backends will run unconditionally, but Eglot backend only
actually reports diagnostics if Eglot is on.
* eglot.el (eglot-flymake-backend): If buffer isn't being managed
by Eglot, behave as a noop.
2021-08-16 Yuuki Harano <masm+github@masm11.me>
Make PGTK's additions conditioinal
* src/.gdbinit: Make them enclosed in condition.
* src/alloc.c: Define defined_HAVE_PGTK and make it externally visible.
2021-08-16 Yuuki Harano <masm+github@masm11.me>
* lisp/term/pgtk-win.el (pgtk-preedit-text): Write doc string
* lisp/term/pgtk-win.el (pgtk-face-at-pos): Remove unused function
2021-08-15 Yuuki Harano <masm+github@masm11.me>
* lisp/term/pgtk-win.el: Remove some font stuff
pgtk-popup-font-panel does not exist.
pgtk-respond-to-change-font is not used.
2021-08-15 Yuuki Harano <masm+github@masm11.me>
* lisp/term/pgtk-win.el (pgtk-pop-up-frames): Remove since it is not used
* configure.ac: Add a notice to --with-pgtk
2021-08-15 Yuuki Harano <masm+github@masm11.me>
* configure.ac: Remove imagemagick special support code for pgtk
When emacs did not support imagemagick 7 and I had imagemagick both 6 and 7,
I wanted to use imagemagick 6.
The code is not needed any more.
2021-07-21 Brian Leung <bkleung89@gmail.com>
João Távora <joaotavora@gmail.com
Add support for locationlink
Fix https://github.com/joaotavora/eglot/issues/711.
LocationLink was added in version 3.14 of the protocol and is
sometimes used in lieu of Location for definition- and
reference-related requests.
* eglot.el (eglot--lsp-interface-alist): Update with LocationLink.
(eglot-client-capabilities): Advertise
textDocument.{definition,declaration,implementation,typeDefinition}.linkSupport.
(eglot--lsp-xrefs-for-method): Accept LocationLinks.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/712
2021-06-18 Yuuki Harano <masm+github@masm11.me>
Fix a frame created without scroll/menu/toolbar is empty
* src/pgtkterm.c (size_allocate): Get frame pointer through user_data.
(pgtk_set_event_handler): Pass it.
2021-06-18 Yuuki Harano <masm+github@masm11.me>
Revert "Revert "* src/pgtkfns.c: Do not show an empty frame prematurely""
This reverts commit b0d688673b0be774c3735eef304f69568bd59bcf.
The commit 83c35b8 causes the empty frame bug, so I reverted.
Now, I debugged so re-apply the commit.
2021-06-13 João Távora <joaotavora@gmail.com>
Transpose order of "pylsp" and "pyls" alternatives
When operating remotely, searching for an executable that don't exist
takes longer than usual. Better to put the most likely server first
in the list to minimize the slowdown.
* eglot.el (eglot-server-programs): Transpose python mode alternatives
GitHub-reference: per https://github.com/joaotavora/eglot/issues/703
2021-06-13 João Távora <joaotavora@gmail.com>
Don't call eglot--executable-find more than needed
* eglot.el (eglot-alternatives): Complexify.
(eglot--guess-contact): No need to 'executable-find' if path
absolute.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/703
2021-06-13 Yuuki Harano <masm+github@masm11.me>
Revert "* src/pgtkfns.c: Do not show an empty frame prematurely"
This reverts commit 83c35b86da233870231e30d114ffa4640eb10081.
2021-06-13 Yuuki Harano <masm+github@masm11.me>
Revert "; * src/pgtkfns.c (Fx_create_frame): Fix coding style"
This reverts commit 4b91168c657e3476b8a0a3f539ee6bcb1b71e3d5.
2021-06-13 Jindřich Makovička <makovick@gmail.com>
* src/pgtkfns.c: Do not show an empty frame prematurely
Set only the child widgets visible, leave the outer window
to pgtk_make_frame_visible .
2021-06-11 Liu Hui <ilupin@users.noreply.github.com> (tiny change)
Consider tramp in eglot-alternatives
* eglot.el (eglot-alternatives): Use eglot--executable-find.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/702
2021-06-08 Jindřich Makovička <makovick@gmail.com>
* src/pgtkselect.c: Avoid Glib assertion warnings
Do not call g_object_get_qdata, when the clipboard has no owner,
and obj is NULL. Just return Qnil immediately.
2021-06-05 Yuuki Harano <masm+github@masm11.me>
Support frame-scale-factor on pgtk frames
* src/pgtkfns.c (pgtk_frame_scale_factor): New function to get frame
scale factor.
* src/frame.h: Call it when a pgtk frame.
* src/pgtkterm.h: Add the declaration.
2021-05-30 Jindřich Makovička <makovick@gmail.com>
* src/pgtkterm.c: Honor system DPI settings
2021-05-29 Yuuki Harano <masm+github@masm11.me>
Disable hyper key when super and hyper conflict
* src/pgtkterm.c (x_find_modifier_meanings): If super_mod_mask and
hyper_mod_mask are equal, then disable hyper.
2021-05-26 João Távora <joaotavora@gmail.com>
Use project-files to know which directory watchers to skip
The directory-finding logic is probably a bit slower than using
eglot--directories-recursively, but since it honours `.gitignores` and
ignores more directories it's much faster overall. And guaranteed to
create less watchers.
Thanks to Dmitry Gutov <dgutov@yandex.ru> for the idea.
* eglot.el (eglot--directories-recursively): Remove.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/697
2021-05-26 João Távora <joaotavora@gmail.com>
Hard code an exception to "node_modules" directores
* eglot.el (eglot--directories-recursively): Fix.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/697
GitHub-reference: per https://github.com/joaotavora/eglot/issues/645
2021-05-26 João Távora <joaotavora@gmail.com>
Again speed up directory watching
Previously, given a number of globs, Eglot would try to place system
watchers only in those subdirectories that could potentially be
matched by a glob. This meant traversing the whole tree, which could
be impractical. Just place watchers in every subdirectory of the
project (you may run out of watchers).
* eglot.el (eglot-register-capability): Simplify.
(eglot--files-recursively): Delete.
(eglot--directories-recursively): Fix.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/697
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/645
2021-05-22 João Távora <joaotavora@gmail.com>
Support multiple servers out-of-box for same mode
Also per https://github.com/joaotavora/eglot/issues/537.
* eglot.el (eglot-alternatives): new helper.
(eglot-server-programs): Use it. Use clangd and pylsp.
* NEWS.md: Mention feature.
* README.md (Connecting to a server): Mention pylsp and clangd.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/688
2021-05-22 Augusto Stoffel <arstoffel@gmail.com>
Allow staying out of flymake-mode, eldoc-mode
* eglot.el (eglot--managed-mode): don't enable flymake or eldoc when
those symbols belong to eglot-stay-out-of.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/671
2021-05-22 Colin Woodbury <colin@fosskers.ca>
* src/frame.c (Fframep): Update framep docstring
2021-05-19 Yuuki Harano <masm+github@masm11.me>
Fix compile error when PGTK_DEBUG is enabled
* src/pgtkterm.c (pgtk_set_window_size): Remove "pixelwise" arg,
which is already non-existent.
2021-05-19 Yuuki Harano <masm+github@masm11.me>
* src/image.c: Fix compile error related xpm in image.c
Use the same code as NS.
2021-05-17 Troy Hinckley <t.macman@gmail.com>
Fix tests and documentation for hook
Auto detect mode suffix in hook keyword
2021-05-16 Michael Livshin <mlivshin@gmail.com>
João Távora <joaotavora@gmail.com>
Manage cross-referenced files outside project in same server
Close https://github.com/joaotavora/eglot/issues/686, Close https://github.com/joaotavora/eglot/issues/695.
* eglot.el (eglot-extend-to-xref): new defcustom, default to
nil.
(eglot--servers-by-xrefed-file): new hash table, mapping file names
to servers.
(eglot--managed-mode): use eglot-current-server, instead of
eglot--cached-server directly.
(eglot--current-server-or-lose): ditto.
(eglot--maybe-activate-editing-mode): ditto.
(eglot-current-server): move all cached-server update logic here -- if
eglot--cached-server is nil, try to find it using current project or
(optionally) xref location.
(eglot--xref-make-match): record the xref location.
* README.md (Customization): Mention new defcustom.
* NEWS.md: Mention new feature
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/76
2021-05-15 Yuuki Harano <masm+github@masm11.me>
Revert "Update texts while busy"
This reverts commit 8a649cba44cc637b5326cee9fe3febc55c653719.
Because the position of the initial frame is not desired, unless
initial-frame-alist is set.
2021-05-15 Yuuki Harano <masm+github@masm11.me>
Update texts while busy
Pgtk didn't update text and C-g didn't take effect while it is busy.
By timer interrupts, we can call pgtk_read_socket, and update texts
and handle C-g.
* src/pgtkterm.c (start_timer): New function to start timer.
(pgtk_show_hourglass): Remove code to start timer.
(pgtk_hide_hourglass): Remove code to stop timer.
(pgtk_term_init): Call start_timer().
2021-05-14 Yuuki Harano <masm+github@masm11.me>
Create a variable to enable selection on multi display
* src/pgtkselect.c (pgtk_selection_usable): If it is true, always
returns true.
(syms_of_pgtkselect): New bool variable.
2021-05-13 Yuuki Harano <masm+github@masm11.me>
Treat all the wayland connection as the same display
On Wayland,
even if without WAYLAND_DISPLAY, --display DISPLAY works, but
gdk_display_get_name() always return "wayland-0", which may be
different from DISPLAY.
If with WAYLAND_DISPLAY, then it always returns WAYLAND_DISPLAY.
So pgtk emacs is confused and enter multi display environment.
To workaround this situation, treat all the wayland-* as the same
display.
* src/pgtkfns.c (is_wayland_display): New function to decide it is a
wayland connection.
(pgtk_display_info_for_name): If both are wayland connection, then
they are the same display.
2021-05-13 Jim Porter <itsjimporter@gmail.com>
João Távora <joaotavora@gmail.com>
Correct path/uri when using tramp from ms windows
* eglot.el (eglot--connect): Ensure drive letter doesn't sneak into
rootPath. (eglot--path-to-uri): Only add a leading "/" for local MS
Windows paths. (eglot--uri-to-path): Only remove leading "/" from
local MS Windows paths.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/679
2021-05-13 João Távora <joaotavora@gmail.com>
Provide context for finer project-find-functions
* eglot.el (eglot--guess-contact): Use eglot--current-project.
(eglot): Adjust docstring.
(eglot-lsp-context): New variable.
(eglot--current-project): New helper.
(eglot--maybe-activate-editing-mode, eglot--eclipse-jdt-contact):
Use eglot--current-project.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/687
2021-05-12 Jeff Walsh <fejfighter@gmail.com>
* src/pgtkterm.c remove duplicated code
* src/pgtkterm.c (pgtk_update_window_begin):
(pgtk_update_window_end):
(pgtk_redisplay_interface): Remove duplicate code and default to the
generic gui_update_window_begin/end implementations
2021-05-10 Yuuki Harano <masm+github@masm11.me>
Fix frame size shrinking when turning fringe/scrollbars on/off
In 66a36f1, I keeped passing text size by mistake.
* src/pgtkterm.c (pgtk_set_window_size): Don't use
FRAME_PIXEL_TO_TEXT_WIDTH/HEIGHT to pass pixel size.
2021-05-09 Yuuki Harano <masm+github@masm11.me>
Fix pgtk_make_frame_visible doesn't work
* src/pgtkterm.c (pgtk_wait_for_map_event): New function to wait for
map events. The content is moved from pgtk_make_frame_visible.
(pgtk_make_frame_visible): Call pgtk_wait_for_map_event, instead of
process here directly.
(pgtk_make_frame_invisible): Call pgtk_wait_for_map_event to wait
for multiple map events.
2021-05-08 Yuuki Harano <masm+github@masm11.me>
* src/pgtkmenu.c (show_help_event): Let emacs not show menu tooltips
2021-05-08 Yuuki Harano <masm+github@masm11.me>
Entrust Gtk with handling tooltips
Previously, tooltips for menu items are below the menu.
To solve it, set tooltip text on menu items in advance, and entrust
gtk with handling tooltips.
* src/gtkutil.c (xg_show_tooltip): New function for pgtk to set
tooltip text on the widget.
(xg_hide_tooltip): New function for pgtk to clear tooltip text on the
widget.
(xg_create_frame_widgets): Don't set initial tooltips text, and don't
use qttip_cb.
(xg_create_frame_outer_widgets): Ditto.
(make_menu_item): Set tooltip text on the menu item.
* src/gtkutil.h: New declaration of xg_show_tooltip for pgtk.
* src/pgtkfns.c (Fx_show_tip): Calls xg_show_tooltip, and always ok.
2021-04-30 Steve Purcell <steve@sanityinc.com>
João Távora <joaotavora@gmail.com>
Fix emacs 28 warning by avoiding positional args in define-minor-mode
* eglot.el (eglot--managed-mode): Avoid positional args.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/685
2021-04-29 Steve Purcell <steve@sanityinc.com>
João Távora <joaotavora@gmail.com>
Allow lsp languageid to be overridden via eglot-server-programs
Close https://github.com/joaotavora/eglot/issues/678. Per https://github.com/joaotavora/eglot/issues/677
* eglot-tests.el (eglot--guessing-contact): Add
GUESSED-LANG-ID-SYM param.
(eglot-server-programs-guess-lang): New test.
* eglot.el (eglot-server-programs): Augment entries for caml-mode
and tuareg-mode. Enhance docstring.
(eglot--lookup-mode): New helper.
(eglot--guess-contact): Call eglot--lookup-mode.
(eglot, eglot-reconnect): Pass language-id to eglot--connect
(eglot--connect): Receive LANGUAGE-ID
(eglot--TextDocumentItem): Simplify. Use
`eglot--current-server-or-lose'
* README.md (Handling quirky servers): Mention new feature.
2021-04-28 Augusto Stoffel <arstoffel@gmail.com>
Add a completion-category-defaults entry
Setting completion-styles buffer-locally is harder to customize and
can break some completion UIs.
Emacs bughttps://github.com/joaotavora/eglot/issues/48073
* eglot.el: Add a completion-category-defaults entry, if applicable.
(eglot--managed-mode): Don't set `completion-styles'
(eglot-completion-at-point): Add style metadata to
completion table.
2021-04-25 Steve Purcell <steve@sanityinc.com>
Switch default langserver for ocaml to ocamllsp
The repo for ocaml-language-server has been archived and inactive
for quite some time:
https://github.com/ocaml-lsp/ocaml-language-server
Meanwhile, ocaml-lsp is the generally-preferred option, and is actively
maintained in the ocaml org itself:
https://github.com/ocaml/ocaml-lsp/
* eglot.el (eglot-server-programs): switch caml-mode entry.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/677
2021-04-23 João Távora <joaotavora@gmail.com>
Declare eglot--cached-server before use
Per https://github.com/joaotavora/eglot/issues/670.
Otherwise the dynamic binding of it in in eglot--connect won't work.
* eglot.el (eglot--cached-server): Move up.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/673
2021-04-20 João Távora <joaotavora@gmail.com>
Make eglot-current-server work in notification handlers
* eglot.el (eglot--connect): Ensure `eglot--cached-server` bound
when calling notification/request methods.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/670
2021-04-17 Daniel Perez Alvarez <danielpza@protonmail.com> (tiny change)
feat: add update custom packages command
2021-04-13 Yuuki Harano <masm+github@masm11.me>
Workaround touchscreen events are ignored on sway
On sway, gdk_device_get_window_at_position() in
xg_event_is_for_scrollbar always returns NULL, and all the touchscreen
press events are mishandled as on scrollbar.
We don't need to call xg_event_is_for_scrollbar, so removed the call.
* src/pgtkterm.c (button_event): Don't call xg_event_is_for_scrollbar.
2021-04-12 João Távora <joaotavora@gmail.com>
Add a passing test demonstrating clangd + tramp works
... It works at least within the minimal, well-controlled reproducible
settings of this test. Maybe if we knew something more about the
setup of the user who submitted this report we would be able to
concoct a failing test, but we don't.
* eglot-tests.el (subr-x): Require it
(eglot--make-file-or-dir): Return expanded file name.
(eglot-tests--lsp-abiding-column-1): New helper.
(eglot-lsp-abiding-column): Use it.
(eglot--tramp-test): Fix `skip-unless` condition.
(eglot--tramp-test-2): New test.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/667
2021-04-12 Dmitry Gutov <dgutov@yandex.ru>
Merge pull request from mohkale/company-kind
(feature): Add :company-kind to eglot-completion-at-point
GitHub-reference: https://github.com/joaotavora/eglot/issues/656
2021-04-12 Mohsin Kaleem <mohkale@kisara.moe>
Add :company-kind to eglot-completion-at-point
* eglot.el (eglot-completion-at-point): Add a :company-kind field to the
completion-at-point function so that company can associate completion
candidates with lsp types.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/652
2021-04-10 Mohsin Kaleem <mohkale@kisara.moe>
Highlight relevant part of xref hits using xref-match face
Also close https://github.com/joaotavora/eglot/issues/657.
(eglot--xref-make-match): Use face 'xref-match instead of 'highlight.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/650
2021-04-10 João Távora <joaotavora@gmail.com>
Attempt to speed up initial directory/glob correspondence
In https://github.com/joaotavora/eglot/issues/602, not only a new glob processing system was implemented, but
also a new, more correct, way to look for directories that might hold
files matched by one of these globs.
Answering this question is important because the file watchers for
'workspace/didChangeWatchedFiles' are placed on a per-directory basis.
Previously, a glob such as /foo/**/bar/*.el would fail to produce
practical file-watching effects because /foo/**/bar/ isn't really a
directory.
However, answering this question is also expensive, as the globs sent
by the LSP server are meant to match files, not directories. The only
way is to list all files under the project's root directory and test
each glob on each one. If it matches at least one file, that file's
directory is meant to be watched.
We suspect that in https://github.com/joaotavora/eglot/issues/645 and https://github.com/joaotavora/eglot/issues/633 we are falling victim to LSP server
who serve a tremendous unoptimized number of globs, one for each file.
So instead of sending just '/foo/**/bar/*.el' they send
'/foo/**/bar/quux.el', '/foo/**/bar/quuz.el', etc... which would
tremendeously slow down the process. But this is only a suspicion.
This commit tries some simple optimizations: if a directory is known
to be watch-worthy becasue one of its files matched a single glob, no
more files under that directory are tried. This should help somewhat.
Also fixed a bug in 'eglot--files-recursively', though I suspect that
doesn't make that much of a difference.
* eglot.el (eglot--directories-matched-by-globs): New helper.
(eglot--files-recursively): Fix bug.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/645
2021-04-03 João Távora <joaotavora@gmail.com>
Generalize eglot-flymake-backend
Loosen coupling between eglot-flymake-backend and flymake-mode. The
flymake-mode check in 'eglot-handle-notification publishDiagnostics'
was a hack (and it wasn't even functioning correctly on M-x
eglot-shutdown/eglot-reconnect).
This should also allow eglot-flymake-backend to be driven by
diagnostic-annotating frontends other than Flymake, such as the
popular Flycheck package.
* eglot.el (eglot--managed-mode): Use eglot--report-to-flymake.
(eglot-handle-notification textDocument/publishDiagnostics): Use
eglot--report-to-flymake.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/596
2021-03-26 rvs314 <71688932+rvs314@users.noreply.github.com> (tiny change)
Offer better control over "languageid" value sent to lsp
Handles the issue of languages whose major mode has a
different name than the name that the LSP server expects for
the language. One can now:
(put 'favourite-major-mode 'eglot-language-id "foobarbaz")
And "foobarbaz" will be used as the LSP "languageId" value.
* eglot.el (eglot--TextDocumentItem): Consult 'eglot-language-id.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/525
2021-03-19 Johnathan C. Maudlin <13183098+jcmdln@users.noreply.github.com> (tiny change)
Add support for zls, the zig language server
* eglot.el (eglot-server-programs): Add zig-mode entry.
* README.md (Connecting to a server): Mention zls.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/646
2021-03-15 bc² <odanoburu@users.noreply.github.com> (tiny change)
João Távora <joaotavora@gmail.com>
Add new command eglot-shutdown-all
Also closes https://github.com/joaotavora/eglot/issues/644
* NEWS.md: mention new command
* README.md (Commands and keybindings): mention new command. Tweak
documentation for eglot-shutdown and eglot-reconnect.
* eglot.el (eglot-shutdown): Tweak docstring.
(eglot-shutdown-all): New command.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/643
2021-03-13 Jimmy Yuen Ho Wong <wyuenho@gmail.com>
Properly sort use-package-statistics-report
2021-03-11 Yuuki Harano <masm+github@masm11.me>
Fix some leaks
* src/pgtkterm.c (x_free_frame_resources): Free cursors.
(pgtk_delete_terminal): Free cursors and events.
2021-03-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com>
Fix void-variable use-package-enable-imenu-support
2021-03-06 João Távora <joaotavora@gmail.com>
Autoload eglot-workspace-configuration's safe-l-v spec
This is useful for those who edit files in a certain source tree where
this directory-local variable is set, but without having yet loaded
eglot.el. Those users would be bothered by the usual
risky-local-variable prompt.
* eglot.el (eglot-workspace-configuration): Add autoload cookie.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/555
2021-03-06 Brian Leung <bkleung89@gmail.com>
Indicate support for activeparameter
* eglot.el (eglot-client-capabilities): Indicate :activeParameterSupport.
Fixup of commit bdf57d5d4e888a6a7b4066b87497da8a8d9e36de.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/605
2021-03-06 João Távora <joaotavora@gmail.com>
Simplify eglot--apply-workspace-edit
Suggested by Brian Leung.
* eglot.el (eglot--apply-workspace-edit): simplify
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/620
2021-03-06 Augusto Stoffel <arstoffel@gmail.com>
João Távora <joaotavora@gmail.com>
Remove highlight overlays immediately when symbol edited
* eglot.el (eglot--highlight-piggyback): Add modification-hooks
property to the created overlays.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/626
2021-03-06 Theodor Thornhill <theo@thornhill.no>
João Távora
Convert colon to hex in uri
On windows, in the path portion of the URI, ':' must be hexified to
'%3A'. In the URL scheme, the ':' stays.
* eglot.el (eglot--uri-path-allowed-chars): define what characters are
allowed in path portion of URI.
* eglot.el (eglot--path-to-uri): ensure colon in 'file://' stays, but
and others are hexified.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/638
2021-03-06 Brian Cully <bjc@kublai.com>
João Távora <joaotavora@gmail.com>
Add tramp support
Also close https://github.com/joaotavora/eglot/issues/463, close https://github.com/joaotavora/eglot/issues/84.
Thanks to Brian Cully for the original simple idea. The basic
technique is to pass :file-handler t to make-process, then tweak
eglot--uri-to-path and eglot--path-to-uri, along with some other
functions, to be aware of "trampy" paths".
Crucially, a "stty hack" was needed. It has been encapsulated in a
new a new eglot--cmd helper, which contains a comment explaining the
hack.
* eglot.el (eglot--executable-find): Shim two-arg executable-find
function only available on Emacs 27.
(eglot--guess-contact): Use eglot--executable-find.
(eglot--cmd): New helper.
(eglot--connect): Use eglot--cmd. Use :file-handler arg to
make-process.
(eglot--connect, eglot--path-to-uri): Be aware of trampy file
names.
* eglot-tests.el (eglot-tests--auto-detect-running-server-1): New helper.
(eglot--guessing-contact): Better mock for executable-find.
(eglot--tramp-test): New test.
* NEWS.md: mention TRAMP support.
* README.md: mention TRAMP support.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/637
2021-03-03 Theodor Thornhill <theo@thornhill.no>
Correctly protect against zero-length completion items
Close https://github.com/joaotavora/eglot/issues/636.
* eglot.el (eglot-completion-at-point): check for zero length string in proxy
rather than the item.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/635
2021-03-02 Yuuki Harano <masm+github@masm11.me>
Fix unicode strings can't be pasted correctly
* lisp/select.el (x-select-request-type): Use text/plain;charset=utf-8
instead.
(gui--selection-value-internal): same.
(gui-get-selection): Treat text/plain;charset=utf-8 as utf-8.
* src/pgtkselect.c (Fpgtk_get_selection_internal): Support
text/plain;charset=utf-8 as foreign-selection.
(syms_of_pgtkselect): Add new symbol.
2021-03-02 Yuuki Harano <masm+github@masm11.me>
Support selection type text/plain on wayland
Apps on XWayland need this.
* lisp/select.el (x-select-request-type): Add choice `text/plain'.
(gui--selection-value-internal): Add text/plain to the default list.
2021-02-27 Theodor Thornhill <theo@thornhill.no>
João Távora <joaotavora@gmail.com>
Protect against empty uris on windows
Per https://github.com/joaotavora/eglot/issues/630.
* eglot.el (eglot--uri-to-path): Check string length
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/610
2021-02-26 João Távora <joaotavora@gmail.com>
Urify better
See also
https://microsoft.github.io/language-server-protocol/specifications/specification-current/#uri.
* eglot.el (eglot--path-to-uri): use directory-file-name.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/627
2021-02-26 João Távora <joaotavora@gmail.com>
Fixup last commit to fix
* eglot.el (eglot-handle-request): Fixup. Use let*
GitHub-reference: https://github.com/joaotavora/eglot/issues/627
2021-02-26 João Távora <joaotavora@gmail.com>
Handle empty actions array in window/showmessagerequest
* eglot.el (eglot-handle-request window/showMessageRequest):
Handle empty actions.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/627
2021-02-24 Philipp Stephani <phst@google.com>
Remove uses of deprecated flet macro
Instead, use the non-deprecated cl-flet and cl-letf macros from the
cl-lib package.
This also allows us to remove the plist-delete helper function, which was
only used to effectively un-deprecate flet.
2021-02-24 João Távora <joaotavora@gmail.com>
Handle null reply for textdocument/definition
* eglot.el (eglot--lsp-xrefs-for-method): Handle null response
from textDocument/definition & friends.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/625
2021-02-23 Yuuki Harano <masm+github@masm11.me>
Make scrollbars ignore scroll-bar-fore/background.
* src/pgtkfns.c (pgtk_set_scroll_bar_foreground): Handle frame
parameters but actually ignore it.
(pgtk_set_scroll_bar_background): The same.
2021-02-22 Naoya Yamashita <conao3@gmail.com>
add testcase
2021-02-22 Naoya Yamashita <conao3@gmail.com>
add autoload keyword
:autoload is similar to :command but this generate autoload
statement as *no-interactive* function.
2021-02-21 Jonathan del Strother <me@delstrother.com> (tiny change)
João Távora <joaotavora@gmail.com>
Silence messages while formatting markup
Also fix https://github.com/joaotavora/eglot/issues/501.
Prior to this, activating gfm-view-mode could echo messages
like "markdown-mode math support enabled" to the minibuffer.
Message are both silenced from from the minibuffer and the
*Messaages* log.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/502
2021-02-20 Yuuki Harano <masm+github@masm11.me>
Work around I can't copy and paste unicode string to wayland chromium
* src/pgtkselect.c (Fpgtk_own_selection_internal):
Remove text/plain, since unicode strings are not correctly
encoded/decoded between Gtk and chromium(wayland) with it.
2021-02-16 Yuuki Harano <masm+github@masm11.me>
Fix I can't paste international text from clipboard
* lisp/select.el (gui--selection-value-internal):
Try UTF8_STRING when pgtk as well as x.
2021-02-16 Yurii Kholodkov <urist.mckorobochka@gmail.com> (tiny change)
fix docstring. was: invalid function name
2021-02-14 Basil L. Contovounesios <contovob@tcd.ie>
Fix unused macro build warning in image.c
* src/image.c
[HAVE_PGTK] (DONT_CREATE_TRANSFORMED_IMAGEMAGICK_IMAGE): Define only
if HAVE_IMAGEMAGICK is also defined, as it is otherwise
unused (bug#46491).
(image_set_transform): Reduce nesting of preprocessor conditionals.
2021-02-11 Robert Pluim <rpluim@gmail.com>
Don't crash if we can't find a monitor model name
This can happen when running emacs over a forwarded X11 connection.
* src/pgtkfns.c (pgtk_get_monitor_scale_factor): Return 0 if we're
passed a NULL model name.
2021-02-11 Yuuki Harano <masm+github@masm11.me>
Support getting a image from clipboard
* src/pgtkselect.c (Fpgtk_get_selection_internal): Reimplement
referring selection_data_to_lisp_data in xselect.c
(syms_of_pgtkselect): Add symbols.
2021-02-10 John Wiegley <johnw@newartisans.com>
Merge pull request from minad/improved-unbind
GitHub-reference: https://github.com/jwiegley/use-package/issues/910
2021-02-10 Daniel Mendler <mail@daniel-mendler.de>
unbind-key: Ensure that keys are removed from the keymap
* The removal from the keymap is performed by bind-key--remove
* Use the same argument normalization as bind-key
2021-02-10 Daniel Mendler <mail@daniel-mendler.de>
bind-key: Use new symbols for kmapvar
2021-02-07 John Wiegley <johnw@newartisans.com>
Merge pull request from tzz/tzz/use-package-use-theme
Add use-package-use-theme and avoid missing theme errors
GitHub-reference: https://github.com/jwiegley/use-package/issues/907
2021-02-06 Ted Zlatanov <tzz@lifelogs.com>
Add use-package-use-theme and avoid missing theme errors
2021-02-06 Yuuki Harano <masm+github@masm11.me>
Remove unused arg as xmenu.c
* src/pgtkmenu.c (Fx_menu_bar_open_internal): Remove unused arg.
(pgtk_activate_menubar): Remove unused arg.
(set_frame_menubar): Remove unused arg.
(initialize_frame_menubar): Remove unused arg.
2021-02-06 Misha Gusarov <dottedmag@dottedmag.net> (tiny change)
Make reading GNOME settings optional.
* src/pgtkterm.c (pgtk_term_init): Make reading GNOME settings optional.
(pgtk_text_scaling_factor): New function to read text scaling factor.
2021-02-06 Ted Zlatanov <tzz@lifelogs.com>
Merge pull request from kljohann/custom-use-single-let
Use a single let binding when expanding consecutive :custom forms
GitHub-reference: https://github.com/jwiegley/use-package/issues/906
2021-02-03 Johann Klähn <johann@jklaehn.de> (tiny change)
Use a single let binding when expanding consecutive :custom forms
2021-02-03 João Távora <joaotavora@gmail.com>
Simplify dir-watching strategy of w/didchangewatchedfiles
Instead of massaging the globPattern to match directories instead of
files, which is fragile, gather the list of directoris to watch by
matching the globPattern against every file recursively (except hidden
files and dirs).
This is still not 100% correct, but should do the right thing is most
cases. Notably, if the correct dirs are being watched, the glob
pattern is matched against all existing and new files in those
directories, which does include hidden files.
* eglot.el (eglot-register-capability): match file globs against
files only.
(eglot--files-recursively): Rename from eglot--directories-recursively.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/602
2021-02-02 João Távora <joaotavora@gmail.com>
Tweak glob-parsing grammar
Alternative groups {} don't bork on forward slash.
* eglot.el (eglot--glob-parse): Tweak {} grammar.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/602
2021-02-01 Philip Kaludercic <philipk@posteo.net>
João Távora <joaotavora@gmail.com>
Make eglot-ignored-server-capabilites defcustom a set
* eglot.el (eglot-ignored-server-capabilites): Now a set.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/467
2021-02-01 João Távora <joaotavora@gmail.com>
Speed up glob matching 2x
with-temp-buffer was taking a lot of time, presumably because it kills
the buffer. Since emacs is single-threaded, we can safely reuse a
single buffer.
* eglot.el (eglot--glob-parse): Simplify grammar.
(eglot--glob-compile): Don't with-temp-buffer.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/602
2021-02-01 John Wiegley <johnw@newartisans.com>
Merge pull request from tzz/tzz/remove-use-package-from-custom-enabled-themes
Remove use-package theme from global list of custom-enabled-themes
GitHub-reference: https://github.com/jwiegley/use-package/issues/899
2021-02-01 Felicián Németh <felician.nemeth@gmail.com>
João Távora <joaotavora@gmail.com>
Support phps-mode
phps-mode is available from ELPA, php-mode isn't.
* eglot.el (eglot-server-programs): Recognize phps-mode as a PHP mode.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/418
2021-02-01 Brian Leung <bkleung89@gmail.com> (tiny change)
Remove duplicate entry for "registration" lsp type
* eglot.el (eglot--lsp-interface-alist): Remove extra Registration entry.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/612
2021-02-01 João Távora <joaotavora@gmail.com>
Prefer typescript-language-server for js&ts
* README.md (Connecting to a server): Prefer
typescript-language-server.
* eglot.el (eglot-server-programs): Use
typescript-language-server.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/566
2021-02-01 João Távora <joaotavora@gmail.com>
Also override global flymake-diagnostic-functions
The global value of the flymake-diagnostic-functions is likely to be
of little use in Eglot-managed buffers, so don't run it. Likely the
value flymake-proc-legacy-flymake is there which is not only likely of
little uses but also causes trouble in some situations.
The user can easily avert this by leveraging the variable
eglot-stay-out-of.
* eglot.el (eglot--managed-mode): Don't run global
flymake-diagnostic-functions.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/616
2021-02-01 Brian Leung <bkleung89@gmail.com>
Explicitly require seq.el
`seq-empty-p' is not autoloaded in Emacs >= 26.3, so it must be
explicitly required.
* eglot.el: Require seq.el.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/613
2021-02-01 Brian Leung <bkleung89@gmail.com>
João Távora <joaotavora@gmail.com>
Support activeparameter property for signatureinformation
SignatureInformation.activeParameter is new in version 3.16.0 of the
protocol. When non-nil, it is used in place of
SignatureHelp.activeParameter. The latter was deemed insufficient in
languages where multiple signatures for the same function may exist
with arbitrary order of parameters, like Python.
* eglot.el (eglot--lsp-interface-alist): Add
SignatureInformation.activeParameter.
* eglot.el (eglot--sig-info): Prioritize
SignatureInformation.activeParameter over
SignatureHelp.activeParameter.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/605
2021-01-31 João Távora <joaotavora@gmail.com>
Fully handle lsp glob syntax
Thanks to Brian Leung and Dan Peterson for testing and helping me spot
bugs.
* eglot-tests.el (eglot--glob-match): New test.
* eglot.el (eglot--wildcard-to-regexp): Delete.
(eglot-register-capability): Rework.
(eglot--glob-parse, eglot--glob-compile, eglot--glob-emit-self)
(eglot--glob-emit-**, eglot--glob-emit-*, eglot--glob-emit-?)
(eglot--glob-emit-{}, eglot--glob-emit-range)
(eglot--directories-recursively): New helpers.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/602
2021-01-30 João Távora <joaotavora@gmail.com>
Flush pending changes to server before code actions request
Otherwise the actions returned by the server might be stale when the
user selects them.
* eglot.el (eglot-code-actions): Issue jsonrpc-request with deferred=t.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/609
2021-01-30 Yuuki Harano <masm+github@masm11.me>
Support child frame border width
* src/pgtkfns.c (x_set_child_frame_border_width): Port code for X.
(pgtk_frame_parm_handlers): Add hook.
(Fx_create_frame): Get default parameter.
* src/pgtkterm.c (x_draw_stretch_glyph_string): Re-port code for X.
(pgtk_clear_under_internal_border): Re-port code for X.
2021-01-30 Yichao Yu <yyc1992@gmail.com>
Add support for setting cursor location using Gtk IM Context
The existing XIC implementation doesn't work when using Gtk IM Context.
Instead, `gtk_im_context_set_cursor_location` should be used
to update the cursor information for the input method.
* src/pgtkim.c (pgtk_im_set_cursor_location): New function to tell gtk
cursor location.
* src/pgtkterm.c (pgtk_draw_window_cursor): Remove invalid code and
add new code to call the function.
* src/pgtkterm.h: Add the function declaration.
2021-01-29 João Távora <joaotavora@gmail.com>
#fix 608: fix bug in eglot-code-actions
Suggested by GitHub user "vconcat".
* eglot.el (eglot-code-actions): Use a vector for transmitting
action-kind.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/606
2021-01-28 João Távora <joaotavora@gmail.com>
* eglot.el (eglot): tweak docstring grammar.
2021-01-28 Andrii Kolomoiets <andreyk.mad@gmail.com>
João Távora <joaotavora@gmail.com>
Offer shortcut commands to commonly invoked code actions
See also https://github.com/joaotavora/eglot/issues/598.
Make eglot-code-actions accept a new action-kind argument. If there
is only one action of that kind, apply it. This allows us to create
actions shortcuts like eglot-code-action-organize-imports, etc.
* eglot.el (eglot-code-actions): Accept new argument action-kind.
(eglot--code-action): New function-defining helper macro.
(eglot-code-action-organize-imports)
(eglot-code-action-extract)
(eglot-code-action-inline)
(eglot-code-action-rewrite)
(eglot-code-action-quickfix): New commands.
* README.md: Mention new feature.
* NEWS.md: Mention new feature.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/411
2021-01-28 ssnnoo <43703153+ssnnoo@users.noreply.github.com> (tiny change)
Add fortls for fotran (f90-mode)
* eglot.el (eglot-server-programs): Add fortls
* README.md: mention fortls
GitHub-reference: close https://github.com/joaotavora/eglot/issues/603
2021-01-27 Brian Leung <bkleung89@gmail.com> (tiny change)
Add rnix-lsp server for nix-mode, community suggestion
* eglot.el (eglot-server-programs): Add rnix-lsp
* README.md: mention rnix-lsp
GitHub-reference: close https://github.com/joaotavora/eglot/issues/599
2021-01-23 Yuuki Harano <masm+github@masm11.me>
Add scale factor in display-monitor-attributes-list.
* lisp/frame.el (display-monitor-attributes-list): Add the comment.
* src/frame.c (make_monitor_attribute_list): Include the scale factor value.
(syms_of_frame): Declare intern'ed scale-factor.
* src/frame.h (struct MonitorInfo): Add scale_factor member.
* src/pgtkfns.c (Fpgtk_display_monitor_attributes_list): Set the value.
2021-01-20 Yuuki Harano <masm+github@masm11.me>
Make imagemagick images less blurry.
* src/image.c: New macro to specify non-scaled mode.
(image_set_transform): Don't skip even if imagemagick.
(imagemagick_load_image): Don't calculate desired size.
2021-01-16 Felicián Németh <felician.nemeth@gmail.com>
João Távora <joaotavora@gmail.com>
Fix eglot-completion-at-point for multiple matches
The test-completion case shouldn't return t when there are multiple
matches. Similarly, the try-completion should return t only if the
match is exact. See (info "(elisp)Programmed Completion").
* eglot.el (eglot-completion-at-point): Instead of testing
memberships, use test-completion and try-completion suggested
by (info "(elisp)Programmed Completion").
* eglot-tests.el (non-unique-completions): Add new test.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/365
2021-01-16 Andrii Kolomoiets <andreyk.mad@gmail.com>
Run exit-function only for finished completion
Per https://github.com/joaotavora/eglot/issues/594.
* eglot.el (eglot-completion-at-point): Respect 'status' argument in
completion's exit function.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/592
2021-01-13 Augusto Stoffel <arstoffel@gmail.com>
Use `path-separator', not ":", in eclipse/jdt custom code
This is needed on Windows.
* eglot.el (eglot--eclipse-jdt-contact): Replace literal ":" by `path-separator'.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/513
2021-01-13 Augusto Stoffel <arstoffel@gmail.com>
Define a face for symbol highlight
Also per https://github.com/joaotavora/eglot/issues/583.
* eglot.el (eglot-highlight-symbol-face): New face.
(eglot--highlight-piggyback): Use it.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/584
2021-01-13 João Távora <joaotavora@gmail.com>
Unbreak interactivee eglot--connect for complex contact specs
The previous commit for https://github.com/joaotavora/eglot/issues/526 was completely botched. One has to check
current-prefix-arg for the presence of C-u, not eglot--guess-contact
INTERACTIVE arg.
* eglot.el (eglot--guess-contact): Be more careful when
processing guess.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/593
2021-01-11 Yuuki Harano <masm+github@masm11.me>
Fix visual-bell on X
* src/pgtkterm.c (pgtk_flash): Change size source.
On X, surface_orig is not an image surface but xlib surface, so I
cannot get its size with cairo_image_surface_get_{width,height}.
2021-01-11 Yuuki Harano <masm+github@masm11.me>
Free unneeded context
* src/pgtkterm.c (pgtk_flash): Free unneeded cairo_t.
2021-01-10 João Távora <joaotavora@gmail.com>
C-u m-x eglot discards class guessed by eglot--guess-contact
This will prevent C-u M-x eglot RET rust-analyzer from bringing into
play the eglot-rls server class, which is only valid for the default
RLS server.
Found when testing for https://github.com/joaotavora/eglot/issues/526, though this bug might not necessarily be
the problem being reported there.
* eglot.el (eglot--guess-contact): Don't assume guessed class if
INTERACTIVE.
2021-01-10 Ted Zlatanov <tzz@lifelogs.com>
Remove use-package theme from global list of custom-enabled-themes
* eval-when-compile for cases where use-package is only required at
compile time
* remove the 'use-package theme from custom-enabled-themes so e.g.
(mapc #'disable-theme custom-enabled-themes)
won't kill user settings.
2021-01-10 Yuuki Harano <masm+github@masm11.me>
Fix gtk icon theme does not reflect
* lisp/term/pgtk-win.el (x-gtk-stock-map): Port from X.
(icon-map-list): Port from X.
(x-gtk-stock-cache): Port from X.
(x-gtk-map-stock): Port from X.
* src/pgtkterm.c (syms_of_pgtkterm): Remove duplicated definition.
2021-01-06 John Wiegley <johnw@newartisans.com>
Merge pull request from tzz/tzz/set-comment-and-synthetic-theme
GitHub-reference: https://github.com/jwiegley/use-package/issues/881
2021-01-05 Jürgen Hötzel <juergen@hoetzel.info> (tiny change)
Flex completion style is not available on emacs < 27
* eglot.el (eglot--managed-mode): check if flex style available
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/582
2021-01-03 Yuuki Harano <masm+github@masm11.me>
Add a function to set monitor scale factor manually
* src/pgtkfns.c (pgtk_get_monitor_scale_factor): New function to get
manual scale factor from alist.
(Fpgtk_set_monitor_scale_factor): New function to set manual scale
factor into alist.
(Fx_display_pixel_width): Use manual scale factor first, if not set,
use gdk's one.
(Fx_display_pixel_height): Use manual scale factor first, if not set,
use gdk's one.
(Fpgtk_display_monitor_attributes_list): Use manual scale factor
first, if not set, use gdk's one.
(syms_of_pgtkfns): initialize alist.
2021-01-03 Yuuki Harano <masm+github@masm11.me>
Fix display-pixel-width/height to return physical pixel size.
* src/pgtkfns.c (Fx_display_pixel_width):
(Fx_display_pixel_height): Return bottom/right-most of all the monitors.
2021-01-03 Yuuki Harano <masm+github@masm11.me>
Make display-mm-width/height consider multi-monitor.
* src/pgtkfns.c (Fx_display_mm_height):
(Fx_display_mm_width): Calculate width/height mm assuming monitor
other than origin does not overlap.
2021-01-03 Yuuki Harano <masm+github@masm11.me>
Fix pgtk-display-monitor-attributes-list to return physical pixel sizes.
* src/pgtkfns.c (Fpgtk_display_monitor_attributes_list): Re-port it.
2020-12-26 Yuuki Harano <masm+github@masm11.me>
Follow get-buffer-create change
* src/pgtkfns.c (Fx_show_tip): Pass nil to get-buffer-create.
2020-12-22 João Távora <joaotavora@gmail.com>
Don't block in eglot-imenu if performing non-essential task
eglot-imenu is used by imenu which in turn is used by which-func-mode
called from an idle timer. We don't want it to block in that
situation. Latest which-func mode now sets "non-essential" when
performing its duties, so we leverage that in eglot-imenu.
* eglot.el (eglot-imenu): Use non-essential.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/212
2020-12-22 João Távora <joaotavora@gmail.com>
Use flex completion if available by default
* eglot.el (eglot--managed-mode): Set completion-styles.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/575
2020-12-16 João Távora <joaotavora@gmail.com>
Bump eglot version to 1.7
* eglot.el (Version): Bump to 1.7.
(Package-Requires): Bump dependency versions.
2020-12-16 João Távora <joaotavora@gmail.com>
Allow eglot to stay out of xref configuration
* eglot.el (eglot-stay-out-of): Rework docstring.
(eglot--managed-mode): Can now stay out of xref.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/569
2020-12-16 João Távora <joaotavora@gmail.com>
Cosmetic whitespace fix (indentation, long lines, tabs->spaces)
* eglot.el (eglot-server-programs, for, eglot--after-change)
(eglot-code-actions, eglot-register-capability)
(eglot-register-capability): Fix whitespace.
2020-12-16 TANIGUCHI Kohei <a.d.xvii.kal.mai@gmail.com> (tiny change)
Use haskell-language-server in eglot-server-programs
Use haskell-language-server instead of deprecated Haskell IDE Engine
https://github.com/haskell/haskell-language-server
https://github.com/haskell/haskell-ide-engine#deprecated
* README.md: Replace Haskell IDE Engine with haskell-language-server
* eglot.el (eglot-server-programs): Replace hie-wrapper with
haskell-language-server-wrapper
GitHub-reference: close https://github.com/joaotavora/eglot/issues/572
2020-12-15 João Távora <joaotavora@gmail.com>
Robustify previous fix of onchange breakage
From the in-code comments:
;; githubhttps://github.com/joaotavora/eglot/issues/259 and githubhttps://github.com/joaotavora/eglot/issues/367: With `capitalize-word' or somesuch,
;; `before-change-functions' always records the whole word's `b-beg'
;; and `b-end'. Similarly, when coalescing two lines into one,
;; `fill-paragraph' they mark the end of the first line up to the end
;; of the second line. In both situations, args received here
;; contradict that information: `beg' and `end' will differ by 1 and
;; will likely only encompass the letter that was capitalized or, in
;; the sentence-joining situation, the replacement of the newline with
;; a space. That's we keep markers _and_ positions so we're able to
;; detect and correct this. We ignore `beg', `len' and
;; `pre-change-len' and send "fuller" information about the region
;; from the markers. I've also experimented with doing this
;; unconditionally but it seems to break when newlines are added.
* eglot.el (eglot--after-change): Robustify fix.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/367
2020-12-14 João Távora <joaotavora@gmail.com>
Don't let m-x fill-paragraph break didchange
M-x fill-paragraph represents some paragraph-fillling changes very
summarily. Filling
1 // foo
2 bar
Into
1 // foo bar
Only makes two changes: a deletion of the "// " and a replacement of a
newline with a space character. The second change fooled Eglot's fix
for https://github.com/joaotavora/eglot/issues/259, by making a change similar to the one it is made to detect
and correct. That fix should taget things that happen on the same
line, this not being one of those things.
* eglot.el (eglot--after-change): Only apply fix to https://github.com/joaotavora/eglot/issues/259 if
case-fiddling happens on same line.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/367
2020-12-13 Yuuki Harano <masm+github@masm11.me>
* src/pgtkterm.c (map_event): Remove record_asynch_buffer_change call.
2020-12-08 Yuuki Harano <masm+github@masm11.me>
Fix DEL key behavior
* lisp/simple.el (normal-erase-is-backspace-setup-frame): Include pgtk
in window-system group.
2020-11-29 Ted Zlatanov <tzz@lifelogs.com>
Create new "use-package" themse and use it for :custom with custom-theme-set-variables
set property theme-value to avoid saving variable
2020-11-29 Ted Zlatanov <tzz@lifelogs.com>
Revert "use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice"
This reverts commit 8c31c57106e2938d627bf4107627c003620d2dd5.
2020-11-29 Ted Zlatanov <tzz@lifelogs.com>
set saved-variable-comment from :custom
GitHub-reference: https://github.com/jwiegley/use-package/issues/861
2020-11-28 Yuuki Harano <masm+github@masm11.me>
Merge branch 'master' into feature/pgtk
* src/pgtkterm.c (scroll_event): Shut up warnings
2020-11-28 Yuuki Harano <masm+github@masm11.me>
Improve smooth scroll
* src/pgtkterm.c (scroll_event): Accumulate deltas and calculate
the number of lines.
(pgtk_term_init): Set smooth scroll parameters.
* src/pgtkterm.h (scroll): New members to store parameters.
2020-11-27 Yuuki Harano <masm+github@masm11.me>
Enable harfbuzz
* src/pgtkfns.c (Fx_create_frame): Register ftcrhb font driver if enabled.
2020-11-26 Yuuki Harano <masm+github@masm11.me>
Add support for hyper modifier key
* src/pgtkterm.c (x_find_modifier_meanings): Autodetect key mask.
(pgtk_gtk_to_emacs_modifiers): Use autodetected mask instead of GDK's.
(pgtk_emacs_to_gtk_modifiers): Use autodetected mask instead of GDK's.
(key_press_event): Ignore hyper as well as super.
* src/pgtkterm.h (struct pgtk_display_info): New member for hyper.
2020-11-25 Yuuki Harano <masm+github@masm11.me>
Fix compilation issue when --enable-checking=glyphs
* src/pgtkfns.c (Fx_create_frame): Remove code surrounded by GLYPH_DEBUG.
(x_create_tip_frame): Remove code surrounded by GLYPH_DEBUG.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix crash when .schema.xml is not installed
* src/pgtkfns.c (parse_resource_key): Check return value.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Add copyright line
* etc/org.gnu.emacs.defaults.gschema.xml: Add copyright line.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Work around gtk_im_context_filter_keypress() issue with super key
* src/pgtkterm.c (x_find_modifier_meanings): Convert virtual super
to non-virtual one.
(pgtk_gtk_to_emacs_modifiers): Use non-virtual one.
(pgtk_emacs_to_gtk_modifiers): Use non-virtual one.
(key_press_event): Don't call pgtk_im_context_filter_keypress while
super is pressed.
* src/pgtkterm.h (struct pgtk_display_info): New member.
2020-11-23 Jeff Walsh <jeff.walsh@drtusers-MacBook-Pro.local>
lisp/term/pgtk-win.el: Add copyright file header
2020-11-23 Jeff Walsh <jeff.walsh@drtusers-MacBook-Pro.local>
Update copyright dates for PGTK files
* src/pgtkfns.c:
* src/pgtkgui.h:
* src/pgtkim.c:
* src/pgtkmenu.c:
* src/pgtkselect.c:
* src/pgtkselect.h:
* src/pgtkterm.c:
* src/pgtkterm.h: Update copyright dates - No Funtional Changes
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix startup failure on svg-unsupported environments
* src/pgtkterm.c (pgtk_bitmap_icon): Re-port X-code.
(pgtk_term_init): Add member initialization.
* src/pgtkterm.h (struct pgtk_display_info): Add member.
(struct pgtk_output): Add member.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Avoid weird behavior when resizing with top-left corner
* src/frame.c (syms_of_frame): Defaults frame_resize_pixelwise to true.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Don't use gtk_window_resize to resize offscreen window
* src/xwidget.c (Fmake_xwidget): Use gtk_container_check_resize instead.
(Fxwidget_resize): Use gtk_container_check_resize instead.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Avoid gtk warnings on X
* src/xwidget.c (xwidget_osr_draw_cb): Call it to avoid alloc_needes.
2020-11-23 Kira Bruneau <kira.bruneau@gmail.com>
Avoid mutating invocation-name (tiny change)
* lisp/term/pgtk-win.el (window-system-initialization): copy invocation-name.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix Gtk warnings
* src/gtkutil.c (xg_frame_set_char_size): Call appropriate function
(xg_set_undecorated): Do nothing if child frame.
(xg_set_no_focus_on_map): Do nothing if child frame.
(xg_set_no_accept_focus): Do nothing if child frame.
(xg_set_frame_icon): Do nothing if child frame.
(xg_get_file_name): Do nothing if child frame.
(xg_get_font):
* src/pgtkterm.c (pgtk_focus_frame): Do nothing if child frames.
(x_set_frame_alpha): Select correct widget.
(x_new_focus_frame): Focus only when non-child frames.
(pgtk_set_event_handler): Don't set for child frames.
* src/pgtkfns.c (xg_set_icon): Do nothing if child frames.
(xg_set_icon_from_xpm_data): Do nothing if child frames.
(pgtk_set_sticky): Do nothing if child frames.
(Fx_show_tip): Do nothing if child frames.
(Fpgtk_set_mouse_absolute_pixel_position): Select correct widget.
(Fpgtk_mouse_absolute_pixel_position): Select correct widget.
* src/pgtkmenu.c (pgtk_menu_show):
(pgtk_dialog_show):
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix crash on drag and drop
* src/pgtkterm.c (pgtk_select): Move dispatch before
g_main_context_query.
(drag_drop): Remove drag_drop.
(drag_data_received): Rename arg.
(pgtk_set_event_handler): Remove drag-drop callback.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix mouse cursor doesn't appear on motion events on xwidgets
* src/xwidget.c (xwidget_osr_event_forward): Propagate motion notify.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix tooltips don't hide on events
* src/pgtkterm.c: New variable to indicate whether any event occurs.
(configure_event): Clear help string on a event.
(leave_notify_event): Clear help string on a event.
(motion_notify_event): Use gen_help_event.
(pgtk_set_event_handler): Hook configure-event for outer widgets.
(pgtk_term_init): Clear the flag.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix crash on creating child frames.
* src/pgtkfns.c (frame_geometry): Returns nil when no widget.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix crash when child frame updates toolbar
* src/gtkutil.c (update_frame_tool_bar): Do nothing when child frame.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Exclude Xlib's modifier keys
* src/pgtkterm.c (IsModifierKey): New macro.
(key_press_event): Exclude Xlib's modifier keys.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Re-implement childframe with emacsgtkfixed
* src/emacsgtkfixed.c (G_DEFINE_TYPE): Make emacs_fixed_get_type public.
* src/emacsgtkfixed.h (EMACS_TYPE_FIXED): Make emacs_fixed_get_type public.
* src/gtkutil.c (xg_frame_set_char_size): Call appropriate functions
by whether the frame is a child frame or not.
(xg_create_frame_widgets): Use GTK_WINDOW_TOPLEVEL when creating child frame.
(xg_create_frame_outer_widgets): New function.
(xg_set_skip_taskbar): Call only when top-level frame.
(xg_set_no_accept_focus): See appropriate widget.
* src/gtkutil.h: New declaration.
* src/pgtkfns.c (pgtk_set_name_internal): Do only when top-level frame.
(Fx_create_frame): Reparent the frame.
(frame_geometry): Call appropriate functions
(syms_of_pgtkfns): Port from X code.
* src/pgtkterm.c (x_free_frame_resources): Destroy appropriate widget.
(x_calc_absolute_position): Port from X code.
(x_set_offset): Re-port from X code.
(pgtk_set_window_size): Use appropriate widget.
(pgtk_make_frame_visible): Use appropriate widget.
(pgtk_make_frame_invisible): Use appropriate widget.
(x_set_parent_frame): Reparent the frame.
(x_set_z_group): Process only when top-level frame.
(pgtk_text_icon): Process only when top-level frame.
(set_fullscreen_state): Process only when top-level frame.
(frame_highlight): Hold ref.
(frame_unhighlight): Hold ref.
(pgtk_window_is_of_frame_recursive): Prune child frames.
(pgtk_window_is_of_frame): Prune child frames.
(print_widget_tree_recursive): Don't call this when not debugging.
(pgtk_handle_draw): Don't call this when not debugging.
(pgtk_set_event_handler): expect map-event for edit_widget not outer widget.
* src/pgtkterm.h (FRAME_WIDGET): New macro.
2020-11-23 Jeff Walsh <fejfighter@gmail.com>
Add support for x-support-frames
* src/pgtkfns.c (Fx_export_frames):
(syms_of_pgtkfns): port from X11 version
* src/pgtkterm.c (pgtk_cr_accumulate_data):
(pgtk_cr_destroy):
(pgtk_cr_export_frames): port from X11
* src/pgtkterm.h: add defs
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Enable GtkIMContext by default
* lisp/term/pgtk-win.el: Call pgtk-use-im-context after init.
* src/pgtkim.c (pgtk_im_use_context): New function.
(pgtk_im_init): Call pgtk_im_use_context.
(Fpgtk_use_im_context): Call pgtk_im_use_context.
(syms_of_pgtkim): New variable Vpgtk_use_im_context_on_new_connection.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Remove duplicated syms_of_xwidget call
* src/emacs.c (main): Remove duplicated syms_of_xwidget() call.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Self-implement tooltip
* src/gtkutil.c (xg_create_frame_widgets): Use popup for tooltip.
* src/pgtkfns.c (unwind_create_tip_frame): Port X code.
(x_create_tip_frame): Re-port X code.
(x_hide_tip): Re-port X code.
(Fx_show_tip): Re-port X code.
(frame_geometry): Get left_pos and top_pos here.
(syms_of_pgtkfns): Add variables for tooltip.
* src/pgtkterm.c (pgtk_set_event_handler): Set event handler for tooltip.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Add PGTK to system-configuration-features
* configure.ac: Set HAVE_PGTK when configuring for PGTK, and
add PGTK for iteration.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Re-port image drawing code from X
* src/pgtkterm.c (x_cr_draw_image): Re-port X code.
(x_draw_image_foreground): Re-port X code.
(x_draw_image_glyph_string): Re-port X code.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Make pointer visible when motion notify event
* src/pgtkterm.c (motion_notify_event): set pending_signals to true.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix non-English layout does not work
* src/pgtkterm.c (key_press_event): Use Vlocale_coding_system.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix font lock is not applied on continued lines
* src/pgtkterm.c (pgtk_parse_color): Remove alpha bits.
2020-11-23 Jeff Walsh <fejfighter@gmail.com>
Restore support for terminal only emacs in PGTK (add --with-pgtk)
* configure.ac: add "--with-pgtk" switch for building pgtk terminal
support.
Adjust X11 window system tests to no clobber pgtk preferences
2020-11-23 Jeff Walsh <fejfighter@gmail.com>
Add font chooser functionality
* src/pgtkfns.c (Fpgtk_popup_font_panel): repurpose X/gtk font chooser code
(syms_of_pgtkfns): add new symbol
2020-11-23 Jeff Walsh <fejfighter@gmail.com>
Fix migrating Child frames
* src/pgtkterm.c:
(x_calc_absolute_position): Remove Function that has no effect
(x_set_offset): titlebar off should not be stored as an offset, only
used to calculate final move locations
2020-11-23 Yuuki Harano <masm+github@masm11.me>
* src/keyboard.c (make_lispy_event): Fix coding style
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Change coding style
* src/gtkutil.c (xg_display_open):
(xg_get_image_for_pixmap):
(xg_frame_resized):
(xg_create_frame_widgets):
(x_wm_set_size_hint):
(xg_frame_restack):
(xg_finish_scroll_bar_creation):
(xg_update_scrollbar_pos):
(xg_update_horizontal_scrollbar_pos):
(xg_set_toolkit_scroll_bar_thumb):
(xg_event_is_for_scrollbar):
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Fix coding style
* src/emacs.c (main): Fix coding style
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Change coding style
* src/image.c (image_create_pattern_from_pixbuf): Change coding style
(image_create_bitmap_from_data): Change coding style
(image_create_bitmap_from_file): Change coding style
2020-11-23 Yuuki Harano <masm+github@masm11.me>
* src/pgtkselect.h: Change coding style
* src/pgtkim.c: Change coding style
* src/pgtkterm.h: Change coding style
* src/pgtkterm.h: Remove unused code
* src/pgtkgui.h: change coding style
* src/pgtkmenu.c: change coding style
* src/pgtkselect.c: change coding style
* src/pgtkfns.c: change coding style
* src/pgtkterm.c: change coding style
* src/pgtkmenu.c (set_frame_menubar): Suppress gcc warning
2020-11-23 Yuuki Harano <masm+github@masm11.me>
* src/pgtkterm.c (pgtk_defined_color): support gtk special colors
Color functions take the frame
* src/gtkutil.c (xg_check_special_colors): pass frame as argument.
* src/pgtkfns.c (x_set_foreground_color, x_set_background_color,
x_set_cursor_color, pgtk_set_scroll_bar_foreground,
pgtk_set_scroll_bar_background, Fxw_color_defined_p,
Fxw_color_values): pass frame as argument.
* src/pgtkterm.c (pgtk_parse_color): take frame as argument.
(pgtk_lisp_to_color): take frame as argument, and pass it.
Remove pgtk_lisp_to_color
* src/pgtkfns.c (x_set_foreground_color, x_set_background_color,
x_set_cursor_color): use x_decode_color instead of pgtk_lisp_to_color.
(Fxw_color_defined_p, Fxw_color_values):
use pgtk_defined_color instead of pgtk_lisp_to_color.
* src/pgtkterm.c (pgtk_lisp_to_color): remove.
* src/gtkutil.c (xg_check_special_colors): change color format
* src/pgtkterm.h: remove pgtk_lisp_to_color declaration
2020-11-23 Yuuki Harano <masm+github@masm11.me>
* pgtkmenu.c (set_frame_menubar): fix empty menu.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
Make icons and titles work like on X
* pgtk-win.el (frame-title-format, icon-title-format): remove.
* pgtkfns.c (pgtk_set_name_as_filename): remove.
* pgtkfns.c (pgtk_set_name_internal): remove gtk_window_set_icon_name call.
* pgtkfns.c (pgtk_set_name): change value of update_mode_lines.
* pgtkfns.c (pgtk_explicitly_set_name):
prefer the symbol to an immediate value.
* pgtkfns.c (pgtk_implicitly_set_name): remove pgtk_set_name_as_filename call.
* pgtkfns.c (x_set_icon_type, x_set_icon_name): re-port from X code.
* pgtkfns.c (xg_set_icon, xg_set_icon_from_xpm_data): port from X code.
* pgtkterm.c (pgtk_bitmap_icon, pgtk_text_icon, pgtk_create_terminal):
port from X code.
* pgtkterm.h: add function declarations.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
* pgtk-win.el: fix compile-time warnings.
* src/pgtkterm.c: Remove incorrect mark_object call.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
follow x_set_internal_border_width change.
* ../src/pgtkfns.c (x_set_internal_border_width):
2020-11-23 Yuuki Harano <masm+github@masm11.me>
restore frame_rehighlight_hook.
* src/frame.c (gui_set_border_width):
2020-11-23 Yuuki Harano <masm+github@masm11.me>
use pgtk_menu_set_in_use.
* ../src/pgtkfns.c:
(Fx_file_dialog, clean_up_dialog):
* src/pgtkmenu.c (pgtk_menu_wait_for_event):
2020-11-23 Yuuki Harano <masm+github@masm11.me>
implement popup/context menu
* ../src/pgtkterm.c (x_draw_glyph_string_background)
(x_draw_glyph_string_foreground)
(x_draw_composite_glyph_string_foreground)
(x_draw_glyphless_glyph_string_foreground, x_draw_relief_rect)
(x_draw_box_rect, x_draw_glyph_string_box, x_draw_image_relief)
(x_draw_image_foreground, x_draw_image_glyph_string)
(button_event):
* src/pgtkterm.h (struct pgtk_display_info):
* src/pgtkmenu.c (pgtk_menu_set_in_use)
(pgtk_menu_wait_for_event, Fx_menu_bar_open_internal)
(popup_widget_loop, pgtk_activate_menubar)
(popup_deactivate_callback, show_help_event): new functions
(menu_highlight_callback): remove
(update_frame_menubar, popup_selection_callback, pop_down_menu)
(create_and_show_popup_menu, cleanup_widget_value_tree)
(pgtk_menu_show, dialog_selection_callback): new
(create_and_show_dialog, pgtk_dialog_show, pgtk_popup_dialog)
(popup_activated, Fmenu_or_popup_active_p, syms_of_pgtkmenu):
2020-11-23 Yuuki Harano <masm+github@masm11.me>
minimize gtkutil.c differences.
* src/pgtkterm.h: remove compiletime ifdefs
* src/gtkutil.h: block out unused decl
* src/gtkutil.c:
(xg_get_pixbuf_from_pix_and_mask, xg_height_or_width_changed)
(xg_create_frame_widgets, x_wm_set_size_hint)
(xg_event_is_for_menubar, update_frame_tool_bar):
resolve argument type mismatch.
fix compatibility.
2020-11-23 Yuuki Harano <masm+github@masm11.me>
improve code readability.
* src/gtkutil.c (xg_create_frame_widgets):
2020-11-23 Jeff Walsh <jewalsh@redhat.com>
Set screen/display dpi res to make broadway work as expected
* src/pgtkterm.c (pgtk_initialize_display_info)
(window_state_event, pgtk_term_init):
* src/gtkutil.c (xg_create_frame_widgets):
* src/pgtkterm.c (pgtk_initialize_display_info)
(window_state_event, pgtk_term_init):
* src/ftcrfont.c (ftcrfont_open):
2020-11-23 Jeff Walsh <jawalsh@localhost.localdomain>
Some work toward posframe on wayland
* src/pgtkterm.c (flip_cr_context, x_set_offset): update for new functionality
(pgtk_set_window_size): remove dead code
(x_set_parent_frame): cleanup trace code
(pgtk_cr_update_surface_desired_size): add comment
* src/pgtkmenu.c (Fmenu_or_popup_active_p):
* src/pgtkfns.c (pgtk_frame_parm_handlers, Fx_create_frame):
* src/gtkutil.c (xg_create_frame_widgets, x_wm_set_size_hint):
* src/gtkutil.c (xg_create_frame_widgets):
hacky GTK offsets taht will need better calculations
Get parent frame's editor widget allocation for the offset
Fix child-frame offsets for negative values
Add some function comments around the new double context handling
2020-11-23 Jeff Walsh <jawalsh@localhost.localdomain>
End Resize flickering by copying surface rather than just clearing
* src/pgtkterm.h (FRAME_NATIVE_WINDOW):
* src/pgtkterm.c (pgtk_set_window_size): cleanup traces
(x_draw_bar_cursor, pgtk_handle_draw, syms_of_pgtkterm):
2020-11-23 Jeff Walsh <jawalsh@localhost.localdomain>
Bring pgtk more inline with X11-cairo builds
* src/pgtkterm.h (struct pgtk_output):
* src/pgtkterm.c (FRAME_CR_ACTIVE_CONTEXT, flip_cr_context)
(x_draw_bar_cursor, pgtk_scroll_run, pgtk_update_end)
(pgtk_cr_draw_image, pgtk_flash, pgtk_handle_draw)
(pgtk_cr_update_surface_desired_size, pgtk_begin_cr_clip)
(pgtk_cr_destroy_frame_context):
* src/image.c (image_create_pattern_from_pixbuf):
- Don't create a context each time, just hold a reference
- Pull in a few cairo image changes from master
- Remove redundant code in pgtk_update_begin()
2020-11-23 Yuuki Harano <masm+github@masm11.me>
update redisplay_interface.
* src/pgtkfns.c (Fx_create_frame, pgtk_default_font_parameter):
* src/pgtkterm.c (pgtk_redisplay_interface):
* src/pgtkterm.h:
2020-11-23 Yuuki Harano <masm+github@masm11.me>
emacsclient should use both of DISPLAY and WAYLAND_DISPLAY.
* lisp/server.el (server-create-window-system-frame): error out when
not on a supported window
* lib-src/emacsclient.c (decode_options): handle WALAND_DISPLAY on PGTK
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Before sleep, dispatch draw events.
* src/pgtkterm.c (pgtk_select): remove sigio signal
(pgtk_term_init): dispatch draw
2020-11-21 Jeff Walsh <jawalsh@localhost.localdomain>
End Resize flickering by copying surface rather than just clearing
* src/pgtkterm.h (struct pgtk_output): store desired sizes
* src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_HEIGHT)
(FRAME_CR_SURFACE_DESIRED_WIDTH, size_allocate, configure_event)
(pgtk_cr_update_surface_desired_size): add "desired" size for handling
surface change
* src/gtkutil.c (xg_frame_resized, xg_create_frame_widgets): remove
surface destroy, turn off double buffer call
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Add support for Jpeglib
configure.ac: enable jpeglib support for pgtk
jpeglib を使えるようにした。
imagemagick がうまく機能してるので気付かなかった…
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Let gtk handle scaling.
* src/gtkutil.c (xg_get_scale):
2020-11-21 Yuuki Harano <masm+github@masm11.me>
implement pre-edit input method
* src/termhooks.h (enum event_kind): new pgtk value
* src/pgtkterm.h (struct pgtk_display_info):
* src/pgtkterm.c (x_free_frame_resources, pgtk_delete_terminal)
(pgtk_enqueue_string, pgtk_enqueue_preedit, key_press_event)
(focus_in_event, focus_out_event, pgtk_term_init): call pgtkim
* src/pgtkim.c: new file
(im_context_commit_cb, im_context_retrieve_surrounding_cb)
(make_color_string, im_context_preedit_changed_cb)
(im_context_preedit_end_cb, im_context_preedit_start_cb)
(pgtk_im_focus_in, pgtk_im_focus_out, pgtk_im_filter_keypress)
(pgtk_im_finish, Fpgtk_use_im_context, syms_of_pgtkim):
* src/pgtkfns.c (check_pgtk_display_info):
* src/keyboard.c (kbd_buffer_get_event, make_lispy_event)
(keys_of_keyboard):
* src/emacs.c (main): add syms_of_pgtkim
* lisp/term/pgtk-win.el (pgtk-preedit-text): new defun
* configure.ac (XWIDGETS_OBJ): add pgtkim.o
input method 対応
preedit を overlay で表示するようにした。
preedit 表示後すぐに反映されなかったのを修正
この機能を ON/OFF できるようにした。
default off.
確定と同時に次の preedit が始まった場合に表示位置がおかしかったのを修正。
sample.
preedit をテキストで渡すようにした
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Support focus on click event
* src/pgtkterm.c (enter_notify_event, leave_notify_event)
(focus_in_event, focus_out_event): support focus on click
focus-on-click な環境に対応。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
experimental support of tab-bar.
* src/window.h: compile conditional
* src/pgtkterm.h: function decls
* src/pgtkterm.c (x_draw_image_relief, pgtk_create_terminal)
(motion_notify_event, button_event): tabbar support
* src/pgtkfns.c (x_set_tab_bar_lines, x_change_tab_bar_height)
(pgtk_frame_parm_handlers, Fx_create_frame, frame_geometry): tabbar support
余計なイベントが生成されていたのを修正。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Make multipdisplay work by limiting selection while enabed
* src/pgtkterm.c (pgtk_mouse_position):
* src/pgtkselect.c (pgtk_selection_usable): new function
(Fpgtk_own_selection_internal, Fpgtk_disown_selection_internal)
(Fpgtk_selection_exists_p, Fpgtk_selection_owner_p)
(Fpgtk_get_selection_internal): check usable selection
multi-display で落ちる理由を一つ潰した。
まだまだありそう。
multi-display 時は selection を使えないようにした。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Improve drawing efficency by refactoring code
* ../src/pgtkterm.c (fill_background, fill_background_by_face)
(x_draw_glyph_string_background, x_draw_glyph_string_bg_rect)
(x_draw_image_glyph_string, x_draw_stretch_glyph_string)
(pgtk_clear_under_internal_border): Refator duplcate code
更に効率化。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
improve some efficiency - simplify draws
* src/pgtkterm.h (struct pgtk_bitmap_record):
* src/pgtkterm.c (create_background_surface_by_face):
* src/image.c (image_create_pattern_from_pixbuf)
(image_create_bitmap_from_data, image_create_bitmap_from_file):
少し効率化。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
implement restacking and cleanup frame z order
src/pgtkfns.c:
(pgtk_frame_restack, Fpgtk_frame_restack, syms_of_pgtkfns):
pgtk-frame-restack を実装だけ。
ついでに、pgtk-frame-list-z-order は無意味なので削除した。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
implement pgtk-frame-list-z-order same as frame-list.
* src/pgtkfns.c (Fpgtk_frame_list_z_order): return frame list as it's
the same
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Implement Scroll-bar-forground and scroll-bar-background
* src/pgtkterm.h (struct pgtk_output):
* src/pgtkterm.c (x_free_frame_resources):
* src/pgtkfns.c (pgtk_set_scroll_bar_foreground)
(pgtk_set_scroll_bar_background, pgtk_frame_parm_handlers)
(Fx_create_frame):
* src/gtkutil.c (xg_finish_scroll_bar_creation):handle scrollbar css values
* etc/org.gnu.emacs.defaults.gschema.xml: add scroll bar fields
scroll-bar-foreground, scroll-bar-background 実装。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
implement set-tool-bar-position and set-sticky
* ../src/pgtkfns.c (pgtk_set_tool_bar_position)
(pgtk_frame_parm_handlers):
tool-bar-position 実装。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
TIMERFD support for PGTK, prevent calling when timerfd<0
* ../src/atimer.c (set_alarm):
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Add PGTK support for fullscreen
* src/gtkutil.c (x_wm_set_size_hint): Fullscreen support for PGTK
fullscreen にできるようにした。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Use gsettings instead of X resource database
* src/pgtkfns.c (pgtk_is_lower_char, pgtk_is_upper_char)
(pgtk_is_numeric_char, parse_resource_key)
(pgtk_get_defaults_value, pgtk_set_defaults_value)
(Fpgtk_set_resource, pgtk_get_string_resource): handle gsettings scheme
* m4/gsettings.m4: new file
* etc/org.gnu.emacs.defaults.gschema.xml: new file
* configure.ac (GLIB_DISABLE_DEPRECATION_WARNINGS)
(gsettingsschemadir):
* Makefile.in (gsettingsschemadir, GLIB_COMPILE_SCHEMAS)
(install, uninstall, clean):
* .gitignore: add gschema
*.gschema.valid は生成ファイルなので無視。
schema の置き場所を変更。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Implement Meta key detection
* ../src/pgtkterm.c (x_find_modifier_meanings, )
(key_press_event, construct_mouse_click, scroll_event)
(pgtk_term_init):
* src/pgtkterm.h (struct pgtk_display_info):
* ../src/gtkutil.c (xg_tool_bar_callback):
meta キーの検出を実装。
X11 で alt キーを meta キーとして使えなくなっていたのを修正。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Implement invisible-pointer to create blinking effect
* src/pgtkterm.h (struct pgtk_display_info): add cursor and callback
* src/pgtkterm.c (x_setup_pointer_blanking)
(XTtoggle_invisible_pointer, x_toggle_visible_pointer): new functions
(pgtk_create_terminal, pgtk_term_init): use gdkcursor
* src/pgtkgui.h: define Emacs_cursor as a GdkCursor
invisible pointer 実装。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
init border_pixel.
* ../src/pgtkfns.c (Fx_create_frame): remove if preprocessor
2020-11-21 Yuuki Harano <masm+github@masm11.me>
border_color/pixel width
* src/pgtkterm.h (struct pgtk_output):
* src/pgtkterm.c (x_free_frame_resources, frame_highlight)
(frame_unhighlight, pgtk_frame_rehighlight): use css information
* src/pgtkfns.c (x_set_border_color, pgtk_frame_parm_handlers)
(Fx_create_frame): new functions connected
* src/frame.c (gui_set_border_width): ifdef for PGTK
border_color/pixel 対応。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Add support for handing the internal border
src/pgtkterm.c (pgtk_clear_under_internal_border): remove #if 0
src/pgtkfns.c (x_set_internal_border_width): add clear and fill support
internal-border 対応。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Addframe highlighting support
* ../src/pgtkterm.c:
(pgtk_focus_frame, set_opacity_recursively, x_set_frame_alpha)
(frame_highlight, frame_unhighlight, pgtk_frame_rehighlight)
(XTframe_rehighlight, x_new_focus_frame, pgtk_create_terminal):
frame の highlight に対応。
とりあえず opacity のみ対応。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Add Stipple support for PGTK
* ../src/pgtkterm.c (create_background_surface_by_face)
(create_background_surface, x_draw_glyph_string_background)
(x_draw_glyph_string_bg_rect, x_draw_image_glyph_string)
(x_draw_stretch_glyph_string, pgtk_draw_fringe_bitmap): handle stipple
* ../src/image.c (image_create_bitmap_from_file, )
(syms_of_image): Add pgtk support
* ../lisp/faces.el (face-valid-attribute-values): add pgtk support
stipple 対応。
stipple がまともに動いてなかったので修正。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Add support for make-frame-(in)visible
* ../src/pgtkterm.c (pgtk_make_frame_visible_wait_for_map_event_cb)
(pgtk_make_frame_visible_wait_for_map_event_timeout)
(x_make_frame_visible, x_new_font)
(pgtk_make_frame_visible_invisible, pgtk_make_frame_visible)
(pgtk_redisplay_interface, pgtk_create_terminal, map_event)
(syms_of_pgtkterm):
make-frame-visible/invisible 実装。
2020-11-21 Jeff Walsh <fejfighter@gmail.com>
Early toolbar improvements
* src/xdisp.c (redisplay_tool_bar):
* src/pgtkterm.h:
* src/pgtkterm.c:
(pgtk_make_frame_visible, pgtk_make_frame_invisible)
(pgtk_update_begin, pgtk_parse_color, pgtk_query_colors)
(syms_of_pgtkterm):
* src/pgtkfns.c: cleanup function
* src/image.c (image_create_bitmap_from_file):
* src/gtkutil.c (xg_get_pixbuf_from_pix_and_mask):
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Add Preferred geometry settings
* ../src/pgtkterm.h (struct pgtk_output):
* ../src/pgtkterm.c (pgtk_set_window_size):
* ../src/gtkutil.c (x_wm_set_size_hint):
* ../src/emacsgtkfixed.c (emacs_fixed_get_preferred_width)
(emacs_fixed_get_preferred_height):
Fixup toolbar handling
toolbar, menubar の ON/OFF でサイズが変化していっていたのを修正。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Migrate to Emacs_GC
* ../src/xfaces.c (x_create_gc, x_free_gc):
* ../src/pgtkterm.h (struct pgtk_output, struct pgtk_output):
* ../src/pgtkterm.c (x_set_cursor_gc, x_set_mouse_face_gc)
(x_setup_relief_color, x_draw_image_foreground_1)
(x_draw_image_foreground)
(pgtk_cr_draw_image, pgtk_draw_fringe_bitmap)
(pgtk_begin_cr_clip, pgtk_set_cr_source_with_gc_foreground)
(pgtk_set_cr_source_with_gc_background):
* ../src/pgtkgui.h:
* ../src/dispextern.h (struct glyph_string): clean up XGCValues emulation
XGCValues, GC 廃止。
Emacs_GC に統一。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Add pgtk-read-file-name function
* ../src/pgtkfns.c (read_file_name_closed_cb)
(Fpgtk_read_file_name, syms_of_pgtkfns): add function
pgtk-read-file-name を作成。
toolbar からよく呼ばれるので…
2020-11-21 Jeff Walsh <fejfighter@gmail.com>
Implement menubar for pgtk emacs
* src/xdisp.c (display_menu_bar): add pgtk case
* ../src/pgtkterm.c (pgtk_create_terminal): update hooks
(pgtk_menu_show): delete
* src/pgtkterm.h: add decls
* src/pgtkmenu.c: new file
* ../src/pgtkfns.c (x_set_menu_bar_lines)
(x_change_tool_bar_height, x_set_tool_bar_lines)
(Fx_create_frame):
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Cleanup x_* to gui_ to match upstream work
* ../src/pgtkterm.h (struct pgtk_display_info):
* ../src/pgtkterm.c (mark_pgtkterm, x_free_frame_resources)
(pgtk_update_window_end, pgtk_mouse_position)
(pgtk_redisplay_interface, pgtk_query_frame_background_color)
(pgtk_delete_terminal, pgtk_create_terminal)
(pgtk_query_frame_background_color, frame_highlight)
(motion_notify_event, button_event, scroll_event):
* ../src/pgtkfns.c (x_set_cursor_color, x_icon)
(pgtk_frame_parm_handlers, x_default_font_parameter)
(Fx_create_frame):
"for the time being, commit" -- rename x->gui, frame_X_X(f) macros
ひとまず commit。
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Simplify compilaiton condtion
* ../src/menu.c (single_menu_item):
change condition.
2020-11-21 Yuuki Harano <masm+github@masm11.me>
replace listn with list.
* ../src/pgtkfns.c (frame_geometry):
replace listn with list.
2020-11-21 Yuuki Harano <masm+github@masm11.me>
Fix xdg-open handling
* ../src/pgtkterm.c (pgtk_term_init, NUM_ARGV, pgtk_term_init):
* ../lisp/net/browse-url.el (browse-url):
xdg-open できなかったのを修正。
2020-11-21 Yuuki Harano <masm@masm11.ddo.jp>
Add support for cursor_foreground_colors
* ../src/pgtkterm.c (x_set_cursor_gc):
* ../src/pgtkfns.c (x_set_cursor_color, Fx_create_frame)
(syms_of_pgtkfns):
* src/pgtkterm.h (struct pgtk_output):
cursor_foreground_color 対応。
あんまり意味なかった感じ。
2020-11-21 Yuuki Harano <masm@masm11.ddo.jp>
Don't mark name_list_element as it's not required
* ../src/pgtkterm.c (mark_pgtkterm):
これは余分。
2020-11-21 Yuuki Harano <masm@masm11.ddo.jp>
Add set_skip_taskbar frame parm
* src/pgtkfns.c (x_set_skip_taskbar, pgtk_frame_parm_handlers):
Add set_skip_taskbar
2020-11-21 Yuuki Harano <masm@masm11.ddo.jp>
Add set_undecorated frame parameter
* src/pgtkfns.c (x_set_undecorated, pgtk_frame_parm_handlers): Add
undecorated frame parameter handle
2020-11-21 Yuuki Harano <masm@masm11.ddo.jp>
Introduce Pure GTK3 port
* src/xsettings.h:
* src/xsettings.c:
(dpyinfo_valid, store_tool_bar_style_changed)
(XSETTINGS_FONT_NAME, get_prop_window, read_settings)
(apply_xft_settings, read_and_apply_settings)
(xft_settings_event, init_xsettings, xsettings_initialize):
* src/xfaces.c:
(x_create_gc, x_free_gc):
* src/xdisp.c (redisplay_tool_bar, redisplay_internal)
(draw_glyphs_debug, draw_glyphs, mouse_face_from_buffer_pos)
(note_mouse_highlight):
* src/terminal.c (Fterminal_live_p):
* src/termhooks.h (enum output_method, GCALIGNED_STRUCT)
(TERMINAL_FONT_CACHE):
* src/process.c (wait_reading_process_output):
* src/pgtkterm.h:
* src/pgtkterm.c:
* src/pgtkselect.h:
* src/pgtkselect.c:
* src/pgtkgui.h:
* src/pgtkfns.c:
* src/image.c:
(XGetPixel, XPutPixel, image_create_bitmap_from_data)
(image_create_bitmap_from_file, free_bitmap_record)
(image_destroy_x_image, gui_put_x_image, image_get_x_image)
(Create_Pixmap_From_Bitmap_Data, xbm_load_image, )
(xpm_load_image, lookup_rgb_color, image_disable_image)
(image_build_heuristic_mask, imagemagick_load_image):
* src/gtkutil.h:
* src/gtkutil.c (PGTK_TRACE, xg_set_screen, xg_display_open)
(xg_display_close, xg_create_default_cursor)
(xg_get_pixbuf_from_pix_and_mask, xg_check_special_colors)
(qttip_cb, hierarchy_ch_cb, xg_prepare_tooltip, )
(xg_show_tooltip, xg_hide_tooltip, xg_frame_resized)
(xg_frame_set_char_size, xg_height_or_width_changed)
(xg_set_widget_bg, style_changed_cb, xg_create_frame_widgets)
(xg_free_frame_widgets, x_wm_set_size_hint, xg_frame_restack)
(xg_mark_data, xg_update_frame_menubar, free_frame_menubar)
(xg_update_submenu, xg_finish_scroll_bar_creation)
(xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos)
(xg_set_toolkit_scroll_bar_thumb, xg_event_is_for_scrollbar)
(draw_page, xg_pack_tool_bar, xg_create_tool_bar)
(xg_update_tool_bar_sizes, update_frame_tool_bar)
(free_frame_tool_bar, xg_change_toolbar_position):
* src/ftcrfont.c:
(ftcrfont_draw):
* src/fringe.c:
(init_fringe_bitmap):
* src/frame.h (GCALIGNED_STRUCT, FRAME_WINDOW_P):
* src/frame.c (Fframep):
* src/font.h:
* src/font.c (syms_of_font):
* src/emacsgtkfixed.c:
(emacs_fixed_get_preferred_width)
(emacs_fixed_get_preferred_height, XSetWMSizeHints):
* src/emacs.c (main):
* src/dispnew.c (init_display_interactive):
* src/dispextern.h:
* src/alloc.c:
(garbage_collect):
* src/Makefile.in (PGTK_OBJ, PGTK_LIBS, base_obj, LIBES):
* src/.gdbinit:
* lisp/url/url-privacy.el (url-setup-privacy-info):
* lisp/term/pgtk-win.el (featurep):
* lisp/startup.el (command-line, fancy-splash-frame):
* lisp/net/eww.el (eww-form-submit, eww-form-file)
(eww-form-checkbox, eww-form-select):
* lisp/mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event):
* lisp/loadup.el (featurep):
* lisp/international/mule-cmds.el (set-coding-system-map):
* lisp/frame.el (pgtk-frame-geometry, frame-geometry)
(w32-frame-edges, frame-edges)
(pgtk-mouse-absolute-pixel-position)
(mouse-absolute-pixel-position)
(pgtk-set-mouse-absolute-pixel-position)
(pgtk-frame-list-z-order, frame-list-z-order)
(pgtk-frame-restack, frame-restack, display-mouse-p)
(display-graphic-p, display-symbol-keys-p, )
(display-pixel-height, display-mm-height, display-mm-width)
(display-backing-store, display-save-under, display-color-cells)
(display-planes, display-visual-class)
(pgtk-display-monitor-attributes-list)
(display-monitor-attributes-list):
* lisp/faces.el (face-spec-set-match-display, tool-bar):
* lisp/cus-edit.el (custom-button, custom-button-mouse)
(custom-button-pressed, custom-display):
* configure.ac (AUTO_DEPEND, XARGS_LIMIT, XWIDGETS_OBJ):
2020-11-10 John Wiegley <johnw@newartisans.com>
Update version to 2.4.1
2020-11-03 João Távora <joaotavora@gmail.com>
Don't force eglot-strict-mode completely in eglot--dcase
Doing so was by design, since there's much ambiguity between the
CodeAction and Command objects. But 'disallow-non-standard-keys is
not necessary to disambiguate, and proved harmful in this bug.
* eglot.el (eglot--dcase): Don't disallow
(eglot--check-dspec): Fix docstring.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/558
2020-11-01 Damien Merenne <damien@bloom-life.com>
João Távora <joaotavora@gmail.com>
Handle lsp 3.15's ispreferred code action property
* eglot.el (eglot--lsp-interface-alist): Add :isPreferred to CodeAction.
(eglot-client-capabilities): Announce :isPreferredSupport.
(eglot-code-actions): Consider preferred CodeAction item.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/558
2020-10-24 João Távora <joaotavora@gmail.com>
Don't send json null (elisp nil) down the wire
* eglot.el (eglot-initialization-options)
(eglot-client-capabilities): Use eglot--{}, not nil.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/300
2020-08-30 R Primus <rprimus@users.noreply.github.com> (tiny change)
Unbreak haskell's hie-wrapper built-in incantation
* eglot.el (eglot-server-programs): Add required argument for hie-wrapper
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/528
2020-08-21 Paul M. Rodriguez <paulmrodriguez@gmail.com> (tiny change)
Provide suitable default to m-x eglot-rename
* eglot.el (eglot-rename): Provide a default value.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/524
2020-08-21 Naoya Yamashita <conao3@gmail.com>
add multiple and eval :custom-face usage
This commit follows suggestion at https://github.com/jwiegley/use-package/issues/696, https://github.com/jwiegley/use-package/issues/821
2020-08-16 João Távora <joaotavora@gmail.com>
Correct paren mismatch blunder introduced by earlier commit
Per https://github.com/joaotavora/eglot/issues/512.
* eglot.el (eglot-server-programs): properly close parenthesis.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/521
2020-08-16 Steven vanZyl <rushsteve1@rushsteve1.us> (tiny change)
João Távora <joaotavora@gmail.com>
Add built-int support for godot engine
* README.md: mention Godot
* eglot.el (eglot-server-programs): Add godot engine via port
GitHub-reference: close https://github.com/joaotavora/eglot/issues/511
2020-08-11 Kaleb Elwert <belak@coded.io> (tiny change)
Remove use-package-font-lock-keywords
2020-08-05 John Wiegley <johnw@newartisans.com>
Merge pull request from wyuenho/patch-1
GitHub-reference: https://github.com/jwiegley/use-package/issues/846
2020-08-03 Philipp Stephani <phst@google.com>
Migrate remaining files to lexical binding
2020-07-27 Andrew Schwartzmeyer <andrew@schwartzmeyer.com> (tiny change)
João Távora <joaotavora@gmail.com>
Ensure completion terminates in correct buffer
To design a completion-in-region-function replacement that leverages
the elements in completion-at-point-functions, we must ensure that
their :exit-function parts execute in the correct buffer. That is the
buffer where the text to be completed lives, not necessarily the
buffer being used for user interaction.
Later on, this guarantee should be provided by Emacs itself, perhaps
by putting the correct with-current-buffer call in completion--done.
* eglot.el (eglot-completion-at-point): Ensure :exit-function's
buffer is where the source is.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/505
2020-07-21 Jimmy Yuen Ho Wong <wyuenho@gmail.com>
Merge branch 'master' into patch-1
2020-07-21 John Wiegley <johnw@newartisans.com>
Merge pull request from tzz/custom-set-default
GitHub-reference: https://github.com/jwiegley/use-package/issues/855
2020-07-13 João Távora <joaotavora@gmail.com>
Use a hash-table for storing resolved completions
* eglot.el (eglot-completion-at-point): use a hash-table for
storing resolved completions.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/510
2020-07-13 João Távora <joaotavora@gmail.com>
Reload eldoc if needed on emacs < 28
ElDoc is preloaded in Emacs, so `require`-ing won't guarantee we are
using the latest version from GNU Elpa when we load eglot.el. Use an
heuristic to see if we need to `load` it in Emacs < 28.
* eglot.el (Package-Requires): Require eldoc 1.5.0
(top): Sometimes load eldoc
2020-07-12 Ted Zlatanov <tzz@lifelogs.com>
Update the documentation for :custom as per
GitHub-reference: https://github.com/jwiegley/use-package/issues/850
2020-07-12 Jimmy Yuen Ho Wong <wyuenho@gmail.com>
Fix broken test due to
GitHub-reference: https://github.com/jwiegley/use-package/issues/850
2020-07-11 João Távora <joaotavora@gmail.com>
Fix sorting of completion items
This fixes a problem pointed out by Yuwei Tian <ibluefocus@gmail.com>.
* eglot.el (eglot-completion-at-point): Fix getting :sortText content
of the completion item.
GitHub-reference: closes https://github.com/joaotavora/eglot/issues/509
2020-07-09 João Távora <joaotavora@gmail.com>
* eglot.el (package-requires): require flymake 1.0.9 and eldoc 1.2.0
2020-07-09 João Távora <joaotavora@gmail.com>
Delegate "hover" and "signature" doc synchronization efforts to eldoc
Uses Eldoc's eldoc-documentation-functions variable. In Eldoc v1.0.0
that variable was already available as a way of handling/composing
multiple docstrings from different sources, but it didn't work
practically with mutiple concurrent async sources. This was fixed in
1.1.0, which Eglot now requires.
This fixes the synchronization problems reported in https://github.com/joaotavora/eglot/issues/494 and also
issue https://github.com/joaotavora/eglot/issues/439. It is likely that some of the exact doc-composing
functionality in Eglot, (developed during those issues) was lost, and
has to be remade, quite likely in Eldoc itself.
Flymake is now also an Eldoc producer, and therefore the problems of
github issues https://github.com/joaotavora/eglot/issues/481 and https://github.com/joaotavora/eglot/issues/454 will also soon be fixed as soon as Eglot
starts using the upcoming Flymake 1.0.9.
* NEWS.md: New entry.
* README.md (eglot-put-doc-in-help-buffer)
(eglot-auto-display-help-buffer): Remove mention to these options.
* eglot.el
(Package-Requires:) Require eldoc.el 1.1.0.
(eglot--when-live-buffer): Rename from eglot--with-live-buffer.
(eglot--when-buffer-window): New macro.
(eglot--after-change, eglot--on-shutdown, eglot-ensure): Use eglot--when-live-buffer.
(eglot--managed-mode): Use eglot-documentation-functions and eldoc-documentation-strategy.
(eglot--highlights): Move down.
(eglot-signature-eldoc-function, eglot-hover-eldoc-function)
(eglot--highlight-piggyback): New eldoc functions.
(eglot--help-buffer, eglot--update-doc)
(eglot-auto-display-help-buffer, eglot-put-doc-in-help-buffer)
(eglot--truncate-string, eglot-doc-too-large-for-echo-area)
(eglot-help-at-point): Remove all of this.
(eglot--apply-workspace-edit): Call eldoc manually after an edit.
(eglot-mode-map): Remap display-local-help to eldoc-doc-buffer
2020-07-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com>
better tests
2020-07-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com>
add test for
GitHub-reference: https://github.com/jwiegley/use-package/issues/845
2020-07-07 Jimmy Yuen Ho Wong <wyuenho@gmail.com>
Support keymap symbol in bind-key
GitHub-reference: fix https://github.com/jwiegley/use-package/issues/845
2020-06-29 John Wiegley <johnw@newartisans.com>
Merge pull request from tzz/custom-set-default
use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice
GitHub-reference: https://github.com/jwiegley/use-package/issues/850
2020-06-22 Ted Zlatanov <tzz@lifelogs.com>
use-package-core.el: use the Emacs set-default function to avoid saving :custom vars twice
2020-06-18 John Wiegley <johnw@newartisans.com>
Merge pull request from jjlee/call-hooks-even-if-no-config
GitHub-reference: https://github.com/jwiegley/use-package/issues/840
2020-06-18 John Wiegley <johnw@newartisans.com>
Merge branch 'master' into call-hooks-even-if-no-config
2020-05-31 João Távora <joaotavora@gmail.com>
Fix small problems around eglot's help buffer
Specifically:
- correctly format the message shown to the user about doc being truncated
- don't show message if the buffer is showing in some frame's window
- correctly name the help buffer switched to with `C-h .'.
This is still not ideal:
- When the `C-h .' suggestion is shown to the user, typing that keybinding
shouldn't result in a new LSP request to fetch probably the same info;
- All this functionality belongs in eldoc.el.
* eglot.el (eglot-help-at-point): Fix buffer name.
(eglot--update-doc): Provide more help.
2020-05-30 Andrii Kolomoiets <andreyk.mad@gmail.com>
João Távora <joaotavora@gmail.com>
Simplify eglot-code-actions
If no region is active, ask for code actions at point, even if there
are no diagnostics at point.
* eglot.el (eglot-code-actions): Simplify.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/473
2020-05-26 Andrii Kolomoiets <andreyk.mad@gmail.com>
Use filter-buffer-substring to get buffer text
This way modes used to represent hover info text, such as
gfm-view-mode can e.g. filter out invisible text by providing own
`filter-buffer-substring-function'.
* eglot.el (eglot--format-markup): Use `filter-buffer-substring'.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/482
2020-05-26 João Távora <joaotavora@gmail.com>
Replace uses of project-roots with project-root
* eglot.el (Package-Requires): Require project 0.3.0.
(eglot--connect, eglot-handle-request)
(eglot-initialization-options, eglot--eclipse-jdt-contact): Use
project-root.
2020-05-26 Gary Oberbrunner <garyo@oberbrunner.com> (tiny change)
Also consider label of a completionitem for snippets
* eglot.el (eglot-completion-at-point): Consider label when
expanding snippets.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/480
2020-05-25 Andrii Kolomoiets <andreyk.mad@gmail.com>
Andreii Kolomoiets <andreyk.mad@gmail.com>
Rework computation of string given to eldoc (again)
Also do some refactoring to join similar logic in
eglot-doc-too-large-for-echo-area and eglot--truncate-string.
* eglot.el (eglot-doc-too-large-for-echo-area): Now returns the
number of lines available.
(eglot--truncate-string): New helper.
(eglot--first-line-of-doc, eglot--top-lines-of-doc): Remove.
(eglot--update-doc): Use new helpers.
* eglot-tests.el (hover-multiline-doc-locus): New test
GitHub-reference: close https://github.com/joaotavora/eglot/issues/459
2020-05-25 Philipp Stephani <p.stephani2@gmail.com>
João Távora <joaotavora@gmail.com>
Fix type error in eglot--xref-make-match
Its first argument is passed to xref-make-match, which expects a string
as its SUMMARY argument, but symbol-at-point returns a symbol.
* eglot.el (eglot--lsp-xrefs-for-method): use symbol-name.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/488
2020-05-21 Rudolf Schlatte <rudi@constantly.at>
Add support for erlang_ls
* README.md: Mention erlang_ls
* eglot.el (eglot-server-programs): Add erlang_ls
GitHub-reference: close https://github.com/joaotavora/eglot/issues/471
2020-05-20 John Wiegley <johnw@newartisans.com>
Merge pull request from nahuel/patch-1
GitHub-reference: https://github.com/jwiegley/use-package/issues/843
2020-05-20 Nahuel Greco <ngreco@gmail.com>
typo, should be a vector, not a bytecode object
Solves https://github.com/jwiegley/use-package/issues/842
2020-05-18 João Távora <joaotavora@gmail.com>
Correctly place diagnostics in narrowed buffers
* eglot.el (eglot--lsp-position-to-point)
(eglot-handle-notification): save-restriction and widen
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/479
2020-05-16 João Távora <joaotavora@gmail.com>
Require xref, project and eldoc from gnu elpa
* Makefile (ELPADEPS): Install Xref, Project and Eldoc.
* eglot.el (Package-Requires): Require Xref, Project and Eldoc
from GNU ELPA.
2020-05-14 Dan Davison <dandavison7@gmail.com>
Prompt for executable if supplied name does not exist
* eglot.el (eglot--guess-contact): Interpret a list containing a
single string as an executable when forming the interactive prompt.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/474
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/478
2020-05-12 Dan Davison <dandavison7@gmail.com> (tiny change)
Don't call flymake report function if flymake is disabled
Also fix https://github.com/joaotavora/eglot/issues/472.
* eglot.el (eglot-handle-notification): Check that flymake-mode is
active before calling flymake report function.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/468
2020-05-09 John Lee <jjl@pobox.com> (tiny change)
Add special value back again, in case needed for backwards compat
I don't know why this special value exists, but perhaps old client code uses it.
The additional `t' in the macro expansion is accidental but not harmful I guess.
2020-05-09 John Lee <jjl@pobox.com> (tiny change)
Even when there's no :config, run any pre/post config hooks
i.e., following the existing docs for use-package-inject-hooks, these hooks are
run:
use-package--foo--pre-config-hook
use-package--foo--post-config-hook
This should make config customisations more predictable (for example, spacemacs
uses these hooks extensively to allow 'layers' to be customised).
I got rid of the "special" default value for :config, because it doesn't seem to
be treated any differently than nil.
Fixes https://github.com/jwiegley/use-package/issues/785
2020-05-07 Tobias Rittweiler <trittweiler@gmail.com>
Fix "free variable" warning
* eglot.el (eglot-events-buffer): Use `eglot-current-server' instead
of `eglot--cached-server' because the latter is declared later in
the file.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/460
2020-05-06 Andrii Kolomoiets <andreyk.mad@gmail.com>
Remove trailing whitespaces
* eglot.el (defvar company-backends, eglot-code-actions):
Remove trailing whitespace
2020-05-03 João Távora <joaotavora@gmail.com>
Simplify bug-reporting instructions
We assume the user has a recent enough jsonrpc.el that consolidates
events and stderr int the same transcript.
* README.md (Reporting bugs): Simplify instructions.
* eglot.el (eglot-events-buffer): Can work with no server.
2020-05-03 João Távora <joaotavora@gmail.com>
Survive hover responses with empty markdown strings
* eglot.el (eglot-help-at-point): Protect against null eglot--hover-info
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/433
2020-05-03 João Távora <joaotavora@gmail.com>
Remap display-local-help (c-h .) to eglot-help-at-point
* eglot.el (eglot-help-at-point): Fallback to display-local-help if no
hover doc
(eglot-mode-map): Remap display-local-help to eglot-help-at-point..
GitHub-reference: per https://github.com/joaotavora/eglot/issues/437
2020-05-03 Theodor Thornhill <theo@thornhill.no>
João Távora <joaotavora@gmail.com>
Tweak handling of eldoc-echo-area-use-multiline-p
Also close https://github.com/joaotavora/eglot/issues/453
* eglot.el (eglot--first-line-of-doc): New helper.
(eglot--update-doc): Tweak docstring. Simplify.
(eglot-put-doc-in-help-buffer): Tweak docstring
GitHub-reference: per https://github.com/joaotavora/eglot/issues/443
2020-05-02 João Távora <joaotavora@gmail.com>
Fontify markdown source code blocks by default
* eglot.el (eglot--format-markup): Set
markdown-fontify-code-blocks-natively to t locally.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/408
2020-05-02 Felicián Németh <felician.nemeth@gmail.com>
Declare markdown support iff gfm-view-mode installed
* eglot.el (eglot-client-capabilities): Support markdown only when
gfm-view-mode is installed.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/408
2020-05-02 Theodor Thornhill <theo@thornhill.no>
João Távora <joaotavora@gmail.com>
Always string-trim markup
* eglot.el: (eglot--format-markup): Factor string trim out
so we string-trim for all cases
GitHub-reference: close https://github.com/joaotavora/eglot/issues/450
2020-05-02 João Távora <joaotavora@gmail.com>
Kind of honour eldoc-echo-area-use-multiline-p
A reworking of an idea and original implementation by Andrii
Kolomoiets <andreyk.mad@gmail.com>. It doesn't honor it completely
because the semantics for a non-t, non-nil value are tricky. And we
don't always exactly know what the symbol prefix reliably.
* eglot.el (eglot--update-doc): Kind of honour
eldoc-echo-area-use-multiline-p.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/443
2020-05-02 Dan Davison <dandavison7@gmail.com>
Unbreak eglot--guess-contact for host-and-port case
* eglot.el (eglot--guess-contact): Fix bug in (host port) connection
case.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/446
2020-05-02 Dan Davison <dandavison7@gmail.com>
João Távora <joaotavora@gmail.com>
Tweak docstring of eglot-server-programs
* eglot.el (eglot-server-programs): Fix typos and phrasing.
2020-05-02 Ingo Lohmar <ingo.lohmar@posteo.net>
Support hierarchical documentsymbol in eglot-imenu
A reworking of an original implementation by Ingo Lohmar
<ingo.lohmar@github.com>
* eglot.el (eglot-client-capabilities, defvar): Add
DocumentSymbol.
(eglot-client-capabilities): Add
:hierarchicalDocumentSymbolSupport.
(eglot--parse-DocumentSymbol): Remove.
(eglot-imenu): Rewrite.
* NEWS.md (1.7): Mention new feature
GitHub-reference: close https://github.com/joaotavora/eglot/issues/303
2020-05-02 João Távora <joaotavora@gmail.com>
Also check types when destructuring lsp objects
The problem in this issue is that the disambiguation between Command
and CodeAction objects can only be performed by checking the types of
the keys involved. So we added that to the spec and check it at
runtime.
* eglot.el (eglot--lsp-interface-alist): Add types to
Command. Tweak docstring.
(eglot--check-object): Renamed from eglot--call-with-interface.
(eglot--ensure-type): New helper.
(eglot--interface): New helper.
(eglot--check-dspec): Renamed from eglot--check-interface.
(eglot--dbind): Simplify.
(eglot-code-actions): Adjust indentation.
* eglot-tests.el (eglot-dcase-issue-452): New test.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/452
2020-04-27 Andrii Kolomoiets <andreyk.mad@gmail.com>
João Távora <joaotavora@gmail.com>
Hide eldoc-message on empty hover info
* eglot.el (eglot-eldoc-function): Pass nil to eglot--update-doc
on empty hover info.
(eglot--update-doc): Skip update eglot help buffer if string
is nil.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/439
2020-04-27 Tobias Rittweiler <trittweiler@gmail.com>
Tests: print contents of *eglot ...* buffers in batch mode.
Useful for the CI on github. To be able to see more of the context of
a failure.
* eglot.el (eglot-server-initialized-hook): Changed semantics. Now
called when an instance of `eglot-lsp-server' is created as part of
the "connect to server" flow. Previously, there was no difference
between this hook and `eglot-connect-hook' which continues to be run
once a connection was successfully established. The
`eglot-server-initialized-hook' will now capture ALL server instances
including those that failed to be started. This change was necessary
to make the test suite be able to dump the output of processes that
fail to start when running the test suite in batch mode ("make check"
and the CI.) In PR https://github.com/joaotavora/eglot/issues/448 it was decided that it is ok to change the
semantics of this hook rather than introducing a new hook.
(eglot--connect): Change place of where the hook is run.
(eglot-connect-hook): Initialized now with
`eglot-signal-didChangeConfiguration' which was kept in
`eglot-server-initialized-hook' before.
* eglot-tests.el (eglot--call-with-fixture): Use
`eglot-server-initialized-hook' rather than `eglot-connect-hook'. And
dump the contents of the *EGLOT ...* buffers when run in
`noninteractive' (i.e. batch) mode.
(eglot--cleanup-after-test): New auxiliary function. Extracted
verbatim out of `eglot--call-with-fixture` in order to lower the
latter's LOC.
2020-04-24 Trevor Murphy <trevormurphy@google.com>
Create match xrefs when possible
"Match xrefs" are created with `xref-make-match' instead of
`xref-make'. Match xrefs support `xref-query-replace-in-results' from
the results buffer.
* eglot.el (eglot--xref-make-match): Calculate xref match length from
the eglot range.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/435
2020-04-24 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-put-doc-in-help-buffer): tiny docstring fix.
2020-04-24 João Távora <joaotavora@gmail.com>
Don't reupdate help buffer if already rendered
* eglot.el (eglot--update-doc): Don't reupdate if doc buffer
already exists.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/445
2020-04-23 Andrii Kolomoiets <andreyk.mad@gmail.com>
Use text-mode for plaintext markup
* eglot.el (eglot--format-markup): Use text-mode for
plaintext markup.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/444
2020-04-16 Felicián Németh <felician.nemeth@gmail.com>
Update dependencies and copyright years
* eglot.el: Update dependencies and copyright years.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/413
2020-04-16 Theodor Thornhill <theo@thornhill.no>
João Távora <joaotavora@gmail.com>
Simplify a bit of code
* eglot.el (eglot-move-to-lsp-abiding-column): use
already existing function to refer to lsp-abiding-column
GitHub-reference: close https://github.com/joaotavora/eglot/issues/397
2020-04-16 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 1.6
* NEWS.md: Bump to 1.6
2020-04-16 Felicián Németh <felician.nemeth@gmail.com>
João Távora <joaotavora@gmail.com>
Abide by lsp when reporting and moving to columns
* eglot.el (eglot-current-column-function): Set to
eglot-lsp-abiding-column.
(eglot-move-to-column-function): Set to
eglot-move-to-lsp-abiding-column.
* NEWS.md: Log the change here as well.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/361
2020-04-16 João Távora <joaotavora@gmail.com>
Fix eglot-move-to-lsp-abiding-column ()
Ensure conformance with the this part of the specification: "if the
character value is greater than the line length it defaults back to
the line length."
* eglot.el: (eglot-move-to-lsp-abiding-column): Don't move beyond
line-end.
GitHub-reference: https://github.com/joaotavora/eglot/issues/361
2020-04-16 Felicián Németh <felician.nemeth@gmail.com>
Send shutdown and exit messages without arguments
Fix regression introduced in 70e6157b (https://github.com/joaotavora/eglot/issues/315). According to the
LSP specification the exit notification and the shutdown request
shouldn't have arguments ("params: void"). Note that jsonrpc.el
send nil as null on the wire.
* eglot.el (eglot-shutdown): Change back the arguments of
:shutdown and :exit to nil.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/430
2020-03-22 John Wiegley <johnw@newartisans.com>
Merge pull request from jwiegley/johnw/clarify
Clarify the documentation for :after
GitHub-reference: https://github.com/jwiegley/use-package/issues/820
2020-03-20 Felicián Németh <felician.nemeth@gmail.com>
Ignore empty hover info
This just mimics a similar check in `eglot-help-at-point'.
* eglot.el (eglot-eldoc-function): Check emptiness of `contents' more
carefully.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/425
2020-03-04 John Wiegley <johnw@newartisans.com>
Clarify the documentation for :after
2020-01-13 Felicián Németh <felician.nemeth@gmail.com>
Make a public reader for project-nickname
Close https://github.com/joaotavora/eglot/issues/399.
* eglot.el (eglot-lsp-server): Add a public reader for
project-nickname as eglot-project-nickname.
(eglot--connect, eglot--read-server, eglot--mode-line-format): Use
the public variant.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/354
2020-01-13 Felicián Németh <felician.nemeth@gmail.com>
Add public hook eglot-managed-mode-hook
Per https://github.com/joaotavora/eglot/issues/354.
* eglot.el (eglot-managed-p): New function.
(eglot--managed-mode-hook): Obsolete it.
(eglot-managed-mode-hook): New hook variable.
(eglot--managed-mode): Run the new hook.
* README.md (Customization): Mention the new hook.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/182
2020-01-13 Vladimir Panteleev <git@thecybershadow.net> (tiny change)
Introduce and use eglot--{}, the empty json object
* eglot.el (Constants): Add eglot--{}.
(eglot-shutdown, eglot--connect): Use it.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/315
2020-01-13 Vladimir Panteleev <git@thecybershadow.net> (tiny change)
Call shutdown/exit methods with params:{}, not null
"null" is not a valid JSON value for "params" according to the
JSON-RPC specification.
* eglot.el (eglot-shutdown): Do the same thing as for "initialized",
and use an empty hash table to be serialized to {}.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/315
2020-01-09 Felicián Németh <felician.nemeth@gmail.com>
Support bug-reference-prog-mode
* eglot.el (Local Variables): Add bug-reference-bug-regexp and
bug-reference-url-format.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/405
2020-01-08 Felicián Németh <felician.nemeth@gmail.com>
Revert the last change about column calculation
2020-01-08 Felicián Németh <felician.nemeth@gmail.com>
Document the changes in column calculation
* eglot.el (eglot-current-column-function)
(eglot-move-to-column-function): Document the change of the
default value.
* NEWS.md: Log the change here as well.
2020-01-08 João Távora <joaotavora@gmail.com>
Abide by lsp when reporting and moving to columns
* eglot.el (eglot-current-column-function): Set to
eglot-lsp-abiding-column.
(eglot-move-to-column-function): Set to
eglot-move-to-lsp-abiding-column.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/361
2020-01-05 Felicián Németh <felician.nemeth@gmail.com>
Merge pull request from joaotavora/scratch/fix-277-exit-notification
Fix https://github.com/joaotavora/eglot/issues/277: Send exit as a notification
GitHub-reference: https://github.com/joaotavora/eglot/issues/400
2020-01-05 Felicián Németh <felician.nemeth@gmail.com>
Send exit as a notification
This is what the specification requires. @PerMildner, thanks for
reporting and analyzing the issue.
* eglot.el (eglot-shutdown): Use `notify' instead of `request' for the
`exit' LSP method.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/277
2020-01-02 João Távora <joaotavora@gmail.com>
Avoid double shutdowns and simplify shutdown logic
* eglot.el (eglot-shutdown): Don't turn off eglot--managed-mode here.
(eglot--on-shutdown): Rather here, but without autoshutdown.
(eglot--managed-mode): Don't check eglot--shutdown-requested.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/389
2020-01-02 Theodor Thornhill <theo@thornhill.no> (tiny change)
João Távora <joaotavora@gmail.com>
Use completing-read in eglot-code-actions
See also https://github.com/joaotavora/eglot/issues/386.
* eglot.el (eglot-code-actions): Replace tmm with completing-read
GitHub-reference: close https://github.com/joaotavora/eglot/issues/393
2019-12-30 Evgeni Kolev <evgenysw@gmail.com>
* eglot.el (eglot-eldoc-function): fix outdated docstring.
Fix https://github.com/joaotavora/eglot/issues/387
2019-12-28 Steve Purcell <steve@sanityinc.com>
João Távora <joaotavora@gmail.com>
Add elm-language-server as the language server for elm
* README.md (Connecting to a server): Add elm-language-server
* eglot.el (eglot-server-programs): Add elm-language-server
GitHub-reference: close https://github.com/joaotavora/eglot/issues/383
2019-12-26 Theodor Thornhill <theo@thornhill.no> (tiny change)
João Távora <joaotavora@gmail.com>
New eglot-confirm-server-initiated-edits defcustom
* eglot.el (eglot-confirm-server-initiated-edits): New defcustom.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/382
2019-12-18 Augusto Stoffel <arstoffel@gmail.com> (tiny change)
Add built-in support for tex and friends
plain-tex-mode and latex-mode are derived from tex-mode. Some other
TeX-related modes are not, so they require an explicit mention in
eglot-server-programs.
* README.md (Connecting to a server): Add Digestif to the list
* eglot.el (eglot-server-programs): Add Digestif for TeX-related modes
GitHub-reference: close https://github.com/joaotavora/eglot/issues/379
2019-12-17 Antoine Kalmbach <ane@iki.fi> (tiny change)
Add metals as the language server for scala
* README.md (Connecting to a server): Add metals to the list
* eglot.el (eglot-server-programs): Add metals for scala-mode
GitHub-reference: close https://github.com/joaotavora/eglot/issues/376
2019-12-08 João Távora <joaotavora@gmail.com>
Allow non-standard keys in textdocument/publishdiagnostics.
* eglot.el (eglot-handle-notification): Allow other keys for
textDocument/publishDiagnostics.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/357
2019-11-30 João Távora <joaotavora@gmail.com>
Unbreak window/showmessagerequest
* eglot.el (eglot-handle-request): Answer with a proper
MessageActionItem.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/362
2019-11-26 John Wiegley <johnw@newartisans.com>
Merge pull request from DamienCassou/typos
Fix typos
GitHub-reference: https://github.com/jwiegley/use-package/issues/808
2019-11-26 Damien Cassou <damien.cassou@gmail.com>
Fix typos
Typos found with codespell.
2019-11-20 João Távora <joaotavora@gmail.com>
Resolve compilation warnings
* eglot.el (company-tooltip-align-annotations): Forward declare.
(eglot--cached-server): Renamed from eglot--cached-current-server.
(eglot--managed-mode, eglot-current-server)
(eglot--current-server-or-lose)
(eglot--maybe-activate-editing-mode): use it.
(eglot-completion-at-point): Don't use insertTextFormat.
2019-11-20 João Távora <joaotavora@gmail.com>
Locally tweak imenu-create-index-function
* eglot.el (eglot--managed-mode): locally tweak
imenu-create-index-function.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/351
2019-11-18 Felicián Németh <felician.nemeth@gmail.com>
Fail when eglot-find-* finds no references
* eglot.el (eglot--lsp-xref-helper): Display message when no
references have been found instead of calling xref-find-references.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/339
2019-11-17 Xu Chunyang <4550353+xuchunyang@users.noreply.github.com> (tiny change)
Waste less space in completion annotations
* eglot.el (eglot-completion-at-point): don't add "(snippet)"
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/349
2019-11-17 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-completion-at-point): remove spurious unrelated change.
2019-11-15 João Távora <joaotavora@gmail.com>
Ensure process starts in project's root
Also fix https://github.com/joaotavora/eglot/issues/347.
* eglot.el (eglot--connect): Bind default-directory around make
process.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/330
2019-11-15 João Távora <joaotavora@gmail.com>
Let other imenu functions work if lsp server's doesn't
* eglot.el (eglot--stay-out-of-p): New helper.
(eglot--setq-saving): Use it.
(eglot--managed-mode): Use add-function :before-until for
imenu-create-index-function.
(eglot-imenu): Don't error. Fix indentation.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/343
2019-11-13 Felicián Németh <felician.nemeth@gmail.com>
Support serverinfo of lsp 3.15.0
Add support for serverInfo from the upcoming specification. This
changeset just stores the info sent by the server and slightly changes
a greeting message. But it opens up the possibility to identify
servers even when eglot uses a TCP connection and therefore makes
possible to implement server specific features (in eglot-x).
Old message:
```
Connected! Server `EGLOT (test-ccls/c++-mode)' now managing `c++-mode' buffers in project `test-ccls'.
```
New message:
```
Connected! Server `ccls' now managing `c++-mode' buffers in project `test-ccls'.
```
* eglot.el (eglot--lsp-interface-alist): Extend it with serverInfo.
(eglot-lsp-server): Add member variable server-info.
(eglot--connect): Store server-info and display server's name
when connected.
2019-11-12 r-zip <rzpilgrim@gmail.com> (tiny change)
Set nobreak-char-display to nil in *eglot-help*
* eglot.el (eglot-help-at-point): set nobreak-char-display
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/345
2019-11-10 João Távora <joaotavora@gmail.com>
Protect against empty-string inserttext in completions
* eglot.el (eglot-completion-at-point): Don't use insertText as a
proxy.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/341
2019-11-10 João Távora <joaotavora@gmail.com>
Provide stable eglot-current-server helper
It's better if eglot--current-server is removed, since it was being
abused by other packages, and has side effects. The only place where
it was really needed was eglot--maybe-activate-editing-mode, so the
find-and-cache logic has been moved there. All other places that can
handle a nil server now use eglot-current-server, the external
version.
* eglot.el (eglot-shutdown, eglot, eglot--read-server)
(eglot--mode-line-format): Use eglot-current-server.
(eglot--connect): Update comment.
(eglot--current-server): Remove.
(eglot-current-server): New helper.
(eglot--maybe-activate-editing-mode): find and cache the server here.
* eglot-tests.el (auto-detect-running-server)
(auto-shutdown, auto-reconnect, eglot-ensure)
(slow-async-connection): Use eglot-current-server.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/342
2019-11-09 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsiiformes/typos
Fix typos
GitHub-reference: https://github.com/jwiegley/use-package/issues/804
2019-11-09 João Távora <joaotavora@gmail.com>
Don't choke on workspace/configuration with no scopeuri
* eglot.el (eglot-handle-request): Don't choke on nil scopeUri.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/340
2019-11-06 Jonas Bernoulli <jonas@bernoul.li>
Fix typos
2019-11-05 Ingo Lohmar <ingo.lohmar@posteo.net>
Only set eglot--cached-current-server by (more aggressive) caching
* eglot.el (eglot--current-server): Always set cache value.
(eglot--maybe-activate-editing-mode): No need to set cached server.
2019-11-05 Ingo Lohmar <ingo.lohmar@posteo.net>
Simplify "maybe"-activation, dump "server" arg
* eglot.el (eglot--maybe-activate-editing-mode): Remove `server' arg.
2019-11-01 Ingo Lohmar <ingo.lohmar@posteo.net>
Merge -onoff proxy code into minor mode function
This simplifies bookkeeping and keeping the state of locally cached
servers, their managed buffers, and the buffer-local mode consistent.
The "on" case of the -onoff code now expects that
`eglot--cached-current-server' has been set already, the "off" case uses
the same value.
* eglot.el (eglot--managed-mode-onoff): Remove.
(eglot--managed-mode): Adopt code.
(eglot--managed-mode-off): New minimal wrapper.
2019-10-30 João Távora <joaotavora@gmail.com>
Use completionitem/resolve more abundantly
It was already used to resolve documentation bits of completions, but
it can also be useful to resolve snippet templates and such.
To resolve a completion, you need some part of a completion to start
with. If it has a :data field exists and the server supports
:resolveProvider, fetch the new object, otherwise use whatever we had
already.
* eglot.el (eglot-completion-at-point): Add another local
function for resolving completions.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/50
2019-10-28 Xu Chunyang <4550353+xuchunyang@users.noreply.github.com> (tiny change)
Support markdown for textdocument/hover ()
* eglot.el (eglot-client-capabilities): annouce markdown support for hover.
(eglot--format-markup): Format hover info with Markdown.
Fixes: https://github.com/joaotavora/eglot/issues/328
GitHub-reference: https://github.com/joaotavora/eglot/issues/329
2019-10-27 Xu Chunyang <4550353+xuchunyang@users.noreply.github.com> (tiny change)
Don't run mode hooks in eglot--format-markup
* eglot.el (eglot--format-markup): Use delay-mode-hooks.
2019-10-26 João Távora <joaotavora@gmail.com>
Support workspace/configuration
This helps users configure servers such as Gopls, which doesn't
support didChangeConfiguration signals.
* README.md (Per-project server configuration): New section.
* eglot.el (eglot-workspace-configuration): Fix docstring.
(eglot-signal-didChangeConfiguration): Rename a variable.
(eglot-handle-request workspace/configuration): New request
handler.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/326
2019-10-24 João Távora <joaotavora@gmail.com>
Expand readme.md section on handling quirky servers
Also remove explicit cquery support (cquery seems to be dead anyway).
* README.md (Handling quirky servers): New section.
* eglot.el (eglot-initialization-options eglot-cquery): Remove.
2019-10-22 João Távora <joaotavora@gmail.com>
Unbreak imenu
* eglot.el (eglot-imenu): Unbreak.
2019-10-21 João Távora <joaotavora@gmail.com>
Force company to align completion annotations in eglot sessions
* eglot.el (eglot--managed-mode): force
company-tooltip-align-annotations to t.
2019-10-21 João Távora <joaotavora@gmail.com>
Fix race condition when company-completing quickly
For some reason, probably related to the way that Eglot tries to
maintain the responsiveness of Company completion tooltips (see
below), the user's explicit input will sometimes be surprisingly
deleted by Company, leading to a horrible completion experience.
This is sometimes hard to reproduce, but appears to match this
description perfectly:
https://github.com/joaotavora/eglot/issues/319#issuecomment-542955432
Fortunately, Company has a good fix for this, which is to pass
`:company-require-match 'never` in the completion-at-point function.
This is the fix applied in this commit.
However, this line shouldn't be required since the default value for
`company-require-match` is `company-explicit-action-p`, presumably
meaning that the auto-deletion should never take place for characters
typed by the user.
This points to a bug in Company, or at least something which may have
been exacerbated by the way that Eglot aggressively fetches
completions from the server by passing :cancel-on-input to
`jsonrpc-request`, discarding out-of-date replies. Perhaps that
discarding step bears with it some side-effects that make the
`company-explicit-action-p` test return `nil` instead of the correct
`t`. Company interprets this as carte blanche to delete the last
inserted character.
* eglot.el (eglot-completion-at-point): Use :company-require-match
'never.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/319
2019-10-21 João Távora <joaotavora@gmail.com>
Unbreak m-x vc-revert, which reverts preserving modes
Unlike the normal revert-buffer command, vc-revert, doesn't re-apply
the major mode, meaning it was missing a didOpen to pair with the
didClose that is unconditionally sent on both commands.
Needed to use the dynamic variable revert-buffer-preserve-modes, and,
curiously, also forward-declare it to appease the byte compiler.
* eglot.el (eglot--managed-mode): Use after-revert-hook.
(revert-buffer-preserve-modes): Forward declare.
(eglot--after-revert-hook): Signal didOpen when preserving-modes.
(eglot--maybe-activate-editing-mode): Tweak comment.
2019-10-21 João Távora <joaotavora@gmail.com>
(again): fix issue with replace-buffer-contents
Manually calling the before/after change hooks for Emacs 26.1's buggy
replace-buffer-contents must be done with absolute positions, not
markers.
* eglot.el (eglot--apply-text-edits): Call change hooks with
buffer positions, not markers.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/259
2019-10-20 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 1.5
* NEWS.md: update.
2019-10-19 João Távora <joaotavora@gmail.com>
Let user keep control of some variables during eglot sessions
* NEWS.md: Mention new variable eglot-stay-out-of
* eglot.el (eglot-stay-out-of): New variable.
(eglot--setq-saving): Use it.
(eglot--managed-mode): Use eglot--setq-saving for imenu. No need
to remove 'eglot-flymake-backend from diagnostic functions.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/324
2019-10-19 João Távora <joaotavora@gmail.com>
Don't immediately request completions in eglot-completion-at-point
Yet another adjustment to this function. According to the
documentation of completion-at-point-functions, we should strive to
make functions like eglot-completion-at-point "cheap to run".
Requesting completion from the server immediately after calling the
function goes against that. The reason we were doing it is that it
might have helped compute more accurate "bounds" for the return value
(START and END) from possible TextEdit completion items. But I've
decided it's not worth the effort, at least for now.
* eglot.el (eglot-completion-at-point): Request completions
asynchronously.
2019-10-16 João Távora <joaotavora@gmail.com>
Protect against zero-length completions
Apparently the Vue Language Server sends such things (see https://github.com/joaotavora/eglot/issues/319).
* eglot.el (eglot-completion-at-point): Protect against
zero-length completions.
2019-10-16 João Távora <joaotavora@gmail.com>
Don't choke on single-location reply to td/definition
* eglot.el (eglot--lsp-xrefs-for-method): Accept non-vector
Location.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/321
2019-10-16 João Távora <joaotavora@gmail.com>
Unbreak eglot--setq-saving if symbol is unbound
* eglot.el (eglot--setq-saving): check if symbol is bound
2019-10-16 João Távora <joaotavora@gmail.com>
Use of company-capf backend in eglot-managed buffers
* eglot.el (company-backends): forward-declare
(eglot--managed-mode): Force company-backends to company-capf
2019-10-16 João Távora <joaotavora@gmail.com>
Play along with lsp's filtertext hacks
Reworked important parts of eglot-completion-at-point.
One of the tasks was to cleanup the nomenclature so it's easier to
spot how LSP and Emacs's views of completion techniques differ. When
reading this rather long function, remember an "item" is a plist
representing the LSP completionItem object, and "proxy" is a
propertized string that Emacs's frontends will use to represent that
completion. When the completion is close to done, the :exit-function
is called, to potentially rework the inserted text so that the final
result might be quite different from the proxy (it might be a snippet,
or even a suprising text edit).
The most important change in this commit reworks the way the
completion "bounds" are calculated in the buffer. This is the region
that Emacs needs to know that is being targeted for the completion. A
server can specify this region by using textEdit-based completions all
consistently pointing to the same range. If it does so, Emacs will
use that region instead of its own understanding of symbol
boundaries (provided by thingatpt.el and syntax tables).
To implement server-side completion filtering, the server can also
provide a filterText "cookie" in each completion, which, when
prefix-matched to the intended region, selects or rejects the
completion. Given the feedback in
https://github.com/microsoft/language-server-protocol/issues/651, we
have no choice but to play along with that inneficient and grotesque
strategy to implement flex-style matching. Like ever in LSP, we do so
while being backward-compatible to all previously supported behaviour.
* eglot.el (eglot-completion-at-point): rework.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/235
2019-10-16 João Távora <joaotavora@gmail.com>
Always filter completions client-side by prefix
Prefix completion is all we get in LSP because there are some servers
that send *all* completions everytime. This is horrible, but it's the
currently defined behaviour. See
https://github.com/microsoft/language-server-protocol/issues/651.
* eglot.el (eglot-completion-at-point): Use all-completions.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/319
2019-10-15 João Távora <joaotavora@gmail.com>
Fix bug in workspace/didchangewatchedfiles
* eglot.el (eglot-register-capability): Fix a bug and a couple of
warnings.
2019-10-15 Tom Tromey <tom@tromey.com>
Add support for the ada language server
* eglot.el (eglot-server-programs): Add ada-mode entry.
* README.md (Connecting to a server): Add Ada entry.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/316
2019-10-14 João Távora <joaotavora@gmail.com>
Fix eglot-completion-at-point to work with bare completion-at-point
Fixes https://github.com/joaotavora/eglot/issues/313, fixes https://github.com/joaotavora/eglot/issues/311, fixes https://github.com/joaotavora/eglot/issues/279
As is well known, LSP's and Emacs's completion mechanics don't fit
very well together, mostly because Emacs expects completion to be a
something of a pure function of a string argument and LSP treats as a
function of a concrete buffer position.
A further complication arises because some completion frontends like
"bare" completion-at-point make Emacs modify the buffer's contents
during the completion process, while other (notably company-mode)
don't do that. Thus, 'eglot-completion-at-point' must take extra care
to answer to the questions listed in the "(elisp)Programmed
Completion" info node based on its (quite hacky) "completions" local
var and _not_ based on the intermediate buffer contents. That var is
also used to cache the last LSP response and allow the :exit-function
callback to retrieve much more than just the completion text in
In yet another related problem, :exit-function won't be called at all
with completion-at-point if the completion table doesn't answer
properly to test-completion. A previous use of
completion-table-dynamic was found to be unsuitable here: we must
answer all the requests separately.
* eglot.el (eglot-completion-at-point): Rework.
2019-10-13 João Távora <joaotavora@gmail.com>
Unbreak xref-find-definitions
* eglot-tests.el (basic-xref): New test.
* eglot.el (eglot--collecting-xrefs): Add an edebug spec.
(eglot--lsp-xrefs-for-method): Actually collect xref.
(xref-backend-apropos): Fix indentation slightly.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/318
2019-10-11 João Távora <joaotavora@gmail.com>
Misc improvements to the xref glue code
* eglot.el (eglot-xref-backend): Don't check capability here.
(eglot--collecting-xrefs): Reworked from eglot--handling-xrefs.
(eglot--handling-xrefs): Remove.
(xref-backend-apropos, eglot--lsp-xrefs-for-method): Use eglot--collecting-xrefs.
2019-10-11 João Távora <joaotavora@gmail.com>
Rework and correct major part of xref glue code
See comments of https://github.com/joaotavora/eglot/pull/314. Up to
now, xref-backend-indentifier-completion-table was a gross hack that
only worked sometimes. It relied on some fugly gymnastics to cache a
response from :textDocument/documentSymbol and somehow used that
information to build a completion table. But it doesn't work well.
Summarily, LSP doesn't lend itself well to the xref interface of
prompting for an arbitrary identifier and then go look for whichever
type of references of that identifier. All the LSP
:textDocument/{definition,references,implementation,...} methods
expect to know the exact context of the search the user is about to
perform, in the form of a document location. That conflicts with the
xref "arbitrary string" requirement.
Therefore, the slightly limited, but much more correct way, for Eglot
to function is to override the user's preference of
xref-prompt-for-identifier, temporarily setting it to nil in
eglot--managed-mode (ideally, though, xref-prompt-for-identifier
should be a function of the backend.)
Later on, a possibly better behaved identifier completion table can be
built on top of the :workspace/symbol LSP method.
* eglot.el (xref-backend-identifier-at-point): Rewrite.
(eglot--lsp-xrefs-for-method): New helper.
(eglot--lsp-xref-helper): Use eglot--lsp-xrefs-for-method.
(eglot--xref-definitions-method): Delete.
(eglot--lsp-xref-refs): New variable.
(xref-backend-references, xref-backend-definitions): Use
eglot--lsp-xrefs-for-method.
(eglot--managed-mode): Set xref-prompt-for-identifier
to nil.
(eglot--xref-reset-known-symbols, eglot--xref-known-symbols): Delete
(xref-backend-identifier-completion-table): Nullify.
(eglot-find-declaration, eglot-find-implementation)
(eglot-find-typeDefinition): Use eglot--lsp-xref-helper.
2019-10-11 Felicián Németh <felician.nemeth@gmail.com>
Support goto-{declaration, implementation, typedefinition}
Closes https://github.com/joaotavora/eglot/issues/302.
* eglot.el (eglot--xref-definitions-method): New variable.
(xref-backend-definitions): Use it.
(eglot-find-declaration, eglot-find-implementation,
eglot-find-typeDefinition): New functions.
* README.md (Language features): Add new capabilities.
* eglot.el (eglot-client-capabilities): Add new capabilities.
(eglot-ignored-server-capabilites): Add new capability.
2019-10-05 ambihelical <ambihelical@users.noreply.github.com> (tiny change)
João Távora <joaotavora@gmail.com>
Allow user to set idle time to wait before processing changes
* eglot.el (eglot-send-changes-idle-time): New defcustom.
(eglot--after-change): Use it.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/258
2019-10-05 João Távora <joaotavora@gmail.com>
Much less noisy mode line
* eglot.el (eglot--mode-line-format): Simplify.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/236
2019-10-05 João Távora <joaotavora@gmail.com>
Unbreak elm language server which does use :triggercharacters
Only query completionProvider -> triggerCharacter information if the
server has provided it. Elm's, and probaly other's, do not provide
it, which doesn't mean they don't support completion.
* eglot.el (eglot-completion-at-point): Check that completion
capability is a list before treating it like one.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/285
2019-10-05 João Távora <joaotavora@gmail.com>
Revert "treat null/nil server capabilities as false"
This reverts commit 645bcfc6e57181c39dae1f238758e76c1759a765.
A capability of "null" is downright invalid, and must NOT be mistaken
for a value of "{}" (which indicates the presence of the capability)
or "False" (which indicates its asence). See
https://github.com/microsoft/language-server-protocol/issues/830#issuecomment-537849292
for a clarification from the LSP maintainer.
2019-10-05 Vladimir Panteleev <git@thecybershadow.net> (tiny change)
Don't send dummy json object in "initialized" notification ()
Eglot uses a JSON object { __dummy__ : true } as a placeholder instead
of the empty object {}. It does this out of necessity, since encoding
an empty object can't currently be easily using the current jsonrpc.el
library. However, this also causes the parameter to be actually sent
to the server.
Since the JSON-RPC specification states "The names MUST match exactly,
including case, to the method's expected parameters" this is
non-conforming to the protocol.
The LSP specification does not seem to indicate how servers should
handle method calls with parameters they do not support. As such,
ignoring the parameter, or reporting an error, or crashing all seem to
be "valid" behaviors as far as the specification is concerned.
We can avoid this by using an empty hash table instead of a dummy
parameter. Currently, an empty hash table is the only Emacs Lisp
object which jsonrpc.el serializes to an empty JSON object in
jsonrpc--json-encode.
* eglot.el (eglot--connect): Use make-hash-table instead of dummy
object.
GitHub-reference: https://github.com/joaotavora/eglot/issues/312
2019-10-05 Ingo Lohmar <ingo.lohmar@posteo.net>
João Távora <joaotavora@gmail.com>
Optionally shutdown after killing last buffer of managed project ()
This should close issue https://github.com/joaotavora/eglot/issues/217, also cf. https://github.com/joaotavora/eglot/issues/270.
* eglot.el (eglot-autoshutdown): New defcustom.
(eglot--managed-mode-onoff): Shutdown if so configured and
no managed buffers left.
GitHub-reference: https://github.com/joaotavora/eglot/issues/309
2019-10-05 Ingo Lohmar <ingo.lohmar@posteo.net>
João Távora <joaotavora@gmail.com>
On buffer kill, first send didclose then teardown local structures
It used to be the reverse way around, which doesn't make sense.
* eglot.el (eglot-managed-mode): Fix order in `kill-buffer-hook'
2019-09-26 galeo <galeo@users.noreply.github.com> (tiny change)
Also use signature label offsets for parameter info
According to the LSP specification, a parameter of a callable-signature
has a label and a optional doc-commet. The label of a parameter
information is either a string or an inclusive start and exclusive end
offsets within its containing signature label.
Previously, this was only taken in account for highlighting the
parameter in the definition signature.
* eglot.el (eglot--sig-info): Handle signature label offsets
when printing the signature parameter information.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/272
2019-09-24 Felicián Németh <felician.nemeth@gmail.com>
Merge pull request from jorams/nil-capabilities-as-false
Treat null/nil server capabilities as false
GitHub-reference: https://github.com/joaotavora/eglot/issues/298
2019-09-23 Ingo Lohmar <ingo.lohmar@posteo.net>
Use gopls server as the default for go ()
Developers recommend it: see
https://github.com/sourcegraph/go-langserver/blob/master/README.md
* eglot.el (eglot-server-programs): Use gopls.
* README.md: mention gopls instead of go-langserver.
GitHub-reference: https://github.com/joaotavora/eglot/issues/304
2019-09-20 Joram Schrijver <i@joram.io> (tiny change)
Treat null/nil server capabilities as false
Some language servers may specify null for some capabilities in the list
of server capabilities. This does not conform to the specification, but
treating it as false is more reasonable than treating it as true.
A current example is the PHP language server. which specifies null for
every capability it does not handle, like documentHighlightProvider.
This would cause Eglot to send constant textDocument/documentHighlight
requests, which all timed out.
* eglot.el (eglot--server-capable): Change the handling of null values
for capabilities to treat them as false instead of true.
2019-09-10 Felicián Németh <felician.nemeth@gmail.com>
Change the default of eglot-move-to-column-function
Previous default (move-to-column) works on visual columns, the LSP
specification and the new default (eglot-move-to-column) use "real"
columns. Fixes https://github.com/joaotavora/eglot/issues/293 and https://github.com/joaotavora/eglot/issues/297.
* eglot.el (eglot-move-to-column): New function.
(eglot-move-to-column-function): Use it as default.
2019-08-18 David Florness <edwargix@gmail.com> (tiny change)
Require array package to use current-line ()
The jsonrpc package (one of eglot's dependencies) recently
updated and removed the line requiring the array package. Since
current-line is provided by array and is used by eglot, require
array explicitly.
Here's jsonrpc's guilty commit:
https://git.savannah.gnu.org/cgit/emacs.git/commit/lisp/jsonrpc.el?id=c676444a43e4634c1f98ec286b5bd9e46b23216b
* eglot.el (array): Require it.
GitHub-reference: https://github.com/joaotavora/eglot/issues/294
2019-08-12 Jürgen Hötzel <juergen@archlinux.org>
Expand directory watcher globs containing ** ()
Previously, if the server requested a glob pattern like foo/**/*
to be watched, we would just error. Now we watch foo/bar/ and
foo/baz/ as if the server had requested those two watchers
instead of just the one with the **.
As a limitation, the implementation of file-expand-wildcards
doesn't fully handle ** globstars (** matches at most one path
segment).
* eglot.el (eglot-register-capability workspace/didChangeWatchedFiles):
Use file-expand-wildcards to make a ** glob into multiple **-less
globs.
GitHub-reference: https://github.com/joaotavora/eglot/issues/293
2019-07-18 Jürgen Hötzel <juergen@hoetzel.info> (tiny change)
Fix invalid guess for php language server ()
* eglot.el (eglot-server-programs): Change the position of the php
language server, otherwise it will always be hidden by the c-mode
server (php-mode is derived from c-mode).
GitHub-reference: https://github.com/joaotavora/eglot/issues/288
2019-07-16 John Wiegley <johnw@newartisans.com>
Use `require', not `load', when byte-compiling ()
Use `require', not `load', when byte-compiling
GitHub-reference: https://github.com/jwiegley/use-package/issues/783
2019-07-16 Radon Rosborough <radon.neon@gmail.com>
Update tests
Switch from `require' to `load' + `featurep'
2019-07-12 Radon Rosborough <radon.neon@gmail.com>
Use `require', not `load', when byte-compiling
2019-07-02 haqle314 <16577773+haqle314@users.noreply.github.com> (tiny change)
Fix a typo
* eglot.el (eglot--lsp-position-to-point): fix eglot--warn
call
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/273
2019-06-27 Ingo Lohmar <ingo.lohmar@posteo.net>
Simplify eldoc usage ()
* eglot-tests.el (hover-after-completions): Protect test. Rewrite
docstring.
* eglot.el (eglot--managed-mode): Don't mess with eldoc-message-function.
(eglot--eldoc-hint): Remove.
(eglot--update-doc): Rename and rewrite from eglot--eldoc-message.
(eglot-eldoc-function): Don't set eglot--eldoc-hint.
Call eglot--update-doc.
GitHub-reference: https://github.com/joaotavora/eglot/issues/269
2019-06-27 João Távora <joaotavora@gmail.com>
Leniently handle invalid positions sent by some servers
* eglot.el (eglot--lsp-position-to-point): Leniently squash
invalid character positions to 0.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/273
2019-06-20 Justin Talbott <justin@waymondo.com>
update bind-chords to use of eval-after-load when maps declared
also improve :chord keyword syntax processing to more closely mimic bind-keys since the same binding
normalizer is used.
also add tests for use-package-chords to cover these test cases
2019-06-14 Justin Talbott <justin@waymondo.com>
rename function
extract use-package-hook-handler-flatten-mode-symbols function
2019-06-14 Justin Talbott <justin@waymondo.com>
use `use-package-as-one` for normalizing `:ensure-system-package`
This makes the preferred syntax consistent with other `use-package`
keywords. All of these are now valid:
```
(use-package format-all
:ensure-system-package
(prettier . "npm i -g prettier")
(rufo . "gem install rufo"))
(use-package format-all
:ensure-system-package
((prettier . "npm i -g prettier")
(rufo . "gem install rufo")))
(use-package format-all
:ensure-system-package
(prettier . "npm i -g prettier"))
```
2019-05-29 John Wiegley <johnw@newartisans.com>
Make custom-face evaluate elisp. ()
Make custom-face evaluate elisp.
GitHub-reference: https://github.com/jwiegley/use-package/issues/773
2019-05-29 Vincent Zhang <seagle0128@gmail.com> (tiny change)
Make custom-face evaluate elisp
Fix https://github.com/jwiegley/use-package/issues/696.
2019-05-12 Akash Hiremath <akashh246@gmail.com> (tiny change)
Add built-in support for elixir's elixir-ls ()
* README.md: add elixir-ls.
* eglot.el (eglot-server-programs): add elixir-ls.
GitHub-reference: https://github.com/joaotavora/eglot/issues/264
2019-05-10 João Távora <joaotavora@gmail.com>
Work around a bug in emacs's change detection
When using capitalize-word, or any case-fiddling function,
before-change-functions will record e.g. the whole word's start and
end, even though only the first character has changed. Not only is
this longer than needed but also conflicts with what we get in
after-change-functions, which records just the one-char-long change.
Also, if the word didn't need any fiddling at all then
before-change-function will run but after-change-functions won't: an
"orphan" before-change will erroneously be sent to the server.
* eglot.el (eglot--after-change): Detect problematic case and fix
change description.
(eglot--before-change): Store markers of changed region.
(eglot--signal-textDocument/didChange): Weed out orphan changes.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/259
2019-05-09 João Távora <joaotavora@gmail.com>
Fix case when eglot-put-doc-in-help-buffer is nil
* eglot.el (eglot--eldoc-message): Check eglot-put-doc-in-help-buffer.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/263
2019-05-08 Michal Krzywkowski <k.michal@zoho.com>
Only consider eglot's own diagnostics in eglot-code-actions
* eglot.el (eglot-code-actions): Filter out non-eglot diagnostics
before sending a request to the server.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/260
2019-04-30 vjoki <vjoki@users.noreply.github.com> (tiny change)
Fix local function call in directory watcher ()
* eglot.el (eglot-register-capability
workspace/didChangeWatchFiles): fix call to handle-event.
GitHub-reference: https://github.com/joaotavora/eglot/issues/255
2019-04-14 Naoya Yamashita <conao3@gmail.com>
* use-package-core.el (use-package): fix declare style
use-package specified lisp-indent-function to indent like defun.
Currently, use-package main macro specify indent as (declare (indent 1)),
then change indent mode like defun.
(declare (indent defun)) is same effect.
And it is useful when redefining use-package.
2019-04-05 John Wiegley <johnw@newartisans.com>
Merge pull request from stribb/master
Add a line of documentation for (use-pacakage ... :hook).
GitHub-reference: https://github.com/jwiegley/use-package/issues/759
2019-04-04 Andrew Stribblehill <stribb@gmail.com> (tiny change)
Add a line of documentation for (use-pacakage ... :hook)
2019-02-13 João Távora <joaotavora@gmail.com>
Unbreak build
Messed up the name of eglot-xref-lessp-function.
* eglot.el (eglot--handling-xrefs): Use eglot-xref-lessp-function
GitHub-reference: per https://github.com/joaotavora/eglot/issues/220
2019-02-11 João Távora <joaotavora@gmail.com>
* eglot.el (xref-backend-references): don't use return-from.
2019-02-11 João Távora <joaotavora@gmail.com>
Don't sort xref's by default
But use a eglot-xref-lessp-function in case someone wants to tweak
this.
* eglot.el (eglot-xref-lessp-function): New variable.
(eglot--handling-xrefs): Use it.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/220
2019-02-11 João Távora <joaotavora@gmail.com>
Use a less buggy flymake
* eglot.el (Package-Requires) Require flymake 1.0.5
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/223
2019-02-05 João Távora <joaotavora@gmail.com>
Don't teardown company if started via trigger chars
Reported by zhanghj in https://github.com/company-mode/company-mode/issues/866
* eglot.el (eglot-completion-at-point): More carefully calculate
:company-prefix-length
2019-01-14 João Távora <joaotavora@gmail.com>
Consider mode derivation when guessing servers
* eglot.el (eglot-server-programs): Remove js2-mode and rjsx-mode.
(eglot--guess-contact): Use provided-mode-derived-p
GitHub-reference: per https://github.com/joaotavora/eglot/issues/177
2019-01-14 João Távora <joaotavora@gmail.com>
Protect against null messages from eldoc
* eglot.el (eglot--eldoc-message): Protect against nil FORMAT.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/209
2019-01-10 Sergey Kostyaev <s-kostyaev@users.noreply.github.com>
Fix bug introduced by commit fixing this issue
* eglot.el (eglot--sig-info): Protect against invalid label.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/121
2019-01-09 Brady Trainor <mail@bradyt.com> (tiny change)
Add built-in support for dart's dart_language_server
Closes https://github.com/joaotavora/eglot/issues/194.
* README.md (Connecting to a server): Add dart_language_server.
* eglot.el (eglot-server-programs): Add dart_language_server.
2019-01-09 João Távora <joaotavora@gmail.com>
Handle label offsets in parameterinformation
At least ccls uses this.
* eglot.el (eglot-client-capabilities): Declare support for
:labelOffsetSupport.
(eglot--sig-info): Handle label offsets in ParameterInformation
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/201
2019-01-07 João Távora <joaotavora@gmail.com>
Display truncated docstring if too large for echo area
* eglot.el (eglot--eldoc-message): Display first line doc.
2019-01-06 João Távora <joaotavora@gmail.com>
Rename new defcustoms with friendlier names
* eglot.el (eglot-doc-too-large-for-echo-area): Rename from
eglot-eldoc-extra-buffer-if-too-large.
(eglot-put-doc-in-help-buffer): Rename from
eglot-eldoc-extra-buffer.
(eglot-auto-display-help-buffer): Rename from
eglot-auto-display-eldoc-extra-buffer.
(eglot--eldoc-message): Use new variable names.
2019-01-06 João Távora <joaotavora@gmail.com>
Fix test failure introduced by previous commit
Remove the hack of unsetting eldoc-last-message in
eglot--eldoc-message. This allows any subsequent eglot-eldoc-function
calls (prompted by simple cursor movement) to return it immediately,
thus refreshing the help buffer with the same contents. For this to
work, we also have to set eglot--eldoc-hint globally in
eglot-eldoc-function.
An alternative to making the test pass would be to keep the hack of
unsetting eldoc-last-message only in the case that we actually get to
display the help buffer. This would actually be more efficient, but
potentially more hacky.
The bottom line here is that eldoc doesn't have a good API to deal
with asynchronous docstring fetching. See this thread:
https://lists.gnu.org/archive/html/emacs-devel/2018-05/msg00151.html
* eglot.el (eglot--eldoc-message): Don't unset eldoc-last-message.
(eglot-eldoc-function): Set eglot--eldoc-hint for synchronous
operation too.
2019-01-05 João Távora <joaotavora@gmail.com>
Show large docs in help buffer instead of echo are by default
* eglot.el (eglot--managed-mode): Add and remove from eglot--eldoc-message
(eglot--eldoc-hint, eglot--help-buffer): New helpers.
(eglot-eldoc-extra-buffer)
(eglot-auto-display-eldoc-extra-buffer): New defcustoms.
(eglot--eldoc-message): New helper.
(eglot-eldoc-function): Set eglot--eldoc-hint.
(eglot-help-at-point): Use new helpers.
(eglot-eldoc-extra-buffer-if-too-large): New predicate.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/198
2019-01-05 João Távora <joaotavora@gmail.com>
Prevent eldoc flicker when moving around
* eglot.el (eglot-eldoc-function): Return eldoc-last-message
immediately.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/198
2019-01-05 João Távora <joaotavora@gmail.com>
Handle (un)registercapability requests via generic functions
* eglot.el (Version): Bump to 1.4
(eglot-register-capability, eglot-unregister-capability): New
generic functions.
(eglot--register-unregister): Call eglot-register-capability,
eglot-unregister-capability.
(eglot-register-capability s (eql
workspace/didChangeWatchedFiles)): Rename from
eglot--register-workspace/didChangeWatchedFiles.
(eglot-unregister-capability s (eql
workspace/didChangeWatchedFiles)): Rename from
eglot--unregister-workspace/didChangeWatchedFiles.
2019-01-05 João Távora <joaotavora@gmail.com>
Appease checkdoc
* eglot.el (eglot--post-self-insert-hook)
(eglot--pre-command-hook, eglot--before-change)
(eglot--eclipse-jdt-contact): Fix docstrings.
2019-01-02 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-workspace-configuration): safe when listp.
2019-01-02 João Távora <joaotavora@gmail.com>
Run connection hooks with proper dir-locals
eglot-connect-hook and eglot-server-initialized-hook must run in a
buffer with properly setup directory-local variables for the project.
This is crucial for things like eglot-signal-didChangeConfiguration,
which needs a properly setup value of eglot-workspace-configuration to
succeed.
I could have chosen any of the buffers where Eglot is activating
itself, but the approach using
hack-dir-local-variables-non-file-buffer seems more correct, despite
the name.
* eglot.el (eglot--connect): Run connection hooks with proper
dir-locals.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/196
2019-01-01 João Távora <joaotavora@gmail.com>
Allow read-only modes for markup rendering
gfm-mode is read-only, so it must be set after the string has been
inserted in the temporary buffer.
* eglot.el (eglot--format-markup): Insert string before setting
mode.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/197
2018-12-27 João Távora <joaotavora@gmail.com>
Remove a hard dependency on flymake-mode
* eglot.el (eglot-handle-notification): Don't specifically check for
flymake-mode before reporting diagnostics.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/195
2018-12-23 João Távora <joaotavora@gmail.com>
Slightly simplify eglot-completion-at-point
* eglot.el (eglot-completion-at-point): Don't propertize
completion string with all LSP properties.
2018-12-23 João Távora <joaotavora@gmail.com>
Actually make completion sorting work
* eglot.el (eglot-completion-at-point): Complicate severely.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/190
2018-12-22 João Távora <joaotavora@gmail.com>
Fix previous commit where workaround had been removed
Do remove the workaround, but not more than that.
* eglot.el (eglot-completion-at-point): set local var strings.
2018-12-22 João Távora <joaotavora@gmail.com>
Use gfm-view-mode
* eglot.el (eglot--format-markup): Use gfm-view-mode instead of gfm-mode.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/188
2018-12-22 João Távora <joaotavora@gmail.com>
Remove workaround for company bug that has been fixed
See https://github.com/company-mode/company-mode/pull/845.
* eglot.el (eglot-completion-at-point): Remove workaround for
company-mode bug.
2018-12-19 João Távora <joaotavora@gmail.com>
* eglot.el (package-requires): require jsonrpc 1.0.7.
2018-12-16 João Távora <joaotavora@gmail.com>
Take over flymake and eldoc completely while managing buffers
Take a pragmatic approach and override all other Flymake and Eglot
backends while Eglot is enabled. Restore previous values after
eglot-shutdown.
Certainly cases might arise where using more than one datasource
besides LSP while Eglot is managing the buffer is useful. But
currently contrary, it confuses users enabling Eglot in buffers that
already have flymake/eldoc backends configured.
The reasons are slightly different for Eldoc and Flymake:
- For Eldoc the :before-until strategy only makes sense for
synchronous backends, which Eglot isn't. This conflicts with
python.el default python-eldoc-function, which is also asynchronous.
- For Flymake, the default backends in Emacs (python-mode, c-mode, and
a few others) are mainly repetitions of what LSP does. The global
value is still run though (in case you want to put, say, a
spell-checking backend there).
* eglot.el (eglot--saved-bindings, eglot--setq-saving): New
helpers.
(eglot--managed-mode): Use them.
2018-12-16 João Távora <joaotavora@gmail.com>
Be more careful when making xref summaries
* eglot.el (eglot--xref-make): Only highlight to end-of-line at
most.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/187
2018-12-16 João Távora <joaotavora@gmail.com>
Don't make bogus responses to client/(un)registercapability
* eglot.el (eglot--register-unregister): Response is void.
2018-12-16 João Távora <joaotavora@gmail.com>
Add edebug specs to destructuring macros
* eglot.el (eglot--dbind, eglot--lambda, eglot--dcase): Add edebug
specs.
2018-12-16 João Távora <joaotavora@gmail.com>
Rewrite eglot--sig-info a bit for readability
* eglot.el (eglot--sig-info): Rewrite a bit.
2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change)
Adjust active param highlighting in first line of signature (3/3)
Highlight only first active parameter match (even if there are many)
* eglot.el (eglot--sig-info): Simplify.
2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change)
Adjust active param highlighting in first line of signature (2/3)
Use regex with word boundaries when scanning for active param, to
avoid matching substrings.
* eglot.el (eglot--sig-info): Use `re-search-forward`.
2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change)
Adjust active param highlighting in first line of signature (1/3)
JT@2018/12/16: Previously, the whole first line of the rendered
documentation was searched for, potentially highlighting params
in the wrong place.
* eglot.el (eglot--sig-info): Search for active parameter within
`params-start` and `params-end`.
2018-12-16 Fredrik Bergroth <fbergroth@gmail.com> (tiny change)
Apply eglot--format-markup to signature documentation
* eglot.el (eglot--sig-info): Call eglot--format-markup on signature
documentation.
2018-12-09 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 1.3
2018-12-07 João Távora <joaotavora@gmail.com>
Be lenient by default to unknown methods or notifications
* eglot.el (eglot-strict-mode): Describe meaning of
disallow-non-standard-keys.
(eglot-handle-notification, eglot-handle-request): Check
eglot-strict-mode.
2018-12-07 João Távora <joaotavora@gmail.com>
Handle array params to server notification or requests
* eglot.el (eglot-handle-notification): Remove extraneous id
(eglot--connect): If params is an array, make it a list.
2018-12-07 João Távora <joaotavora@gmail.com>
Scratch/use elpa flymake ()
Use GNU ELPA's Flymake
* eglot.el (Package-Requires): require Flymake 1.0.2.
(version< emacs-version "27.0"): Remove horrible hack
* Makefile (ELPADEPS): Renamed from JSONRPC.
(%.elc): Use it.
(eglot-check): Use it.
GitHub-reference: https://github.com/joaotavora/eglot/issues/178
2018-12-06 João Távora <joaotavora@gmail.com>
Warn about suspicious interface usage at compile-time
For fun, set eglot-strict-mode to '(disallow-non-standard-keys
enforce-required-keys enforce-optional-keys) when compiling, or just
use flymake-mode in eglot.el.
* eglot.el (eglot--lsp-interface-alist): Use in compile-time.
Order alphabetically. Fix a few bugs.
(eglot-strict-mode): Disallow non-standard-keys when compiling.
Update docstring.
(eglot--keywordize-vars, eglot--check-interface): New
compile-time-helpers.
(eglot--dbind, eglot--dcase): Use new helpers.
2018-12-06 João Távora <joaotavora@gmail.com>
Use eglot--dbind and eglot--lambda throughout
The default behaviour of these macros is to be lenient towards servers
sending unknown keys, which should fix the issue.
* eglot.el (eglot--lsp-interface-alist): Add a bunch of new interfaces.
(eglot--connect, eglot-handle-notification)
(xref-backend-identifier-completion-table)
(xref-backend-definitions, xref-backend-apropos)
(xref-backend-references, eglot-completion-at-point)
(eglot--sig-info, eglot-help-at-point, eglot-eldoc-function)
(eglot-imenu, eglot--apply-text-edits)
(eglot--apply-workspace-edit)
(eglot--register-workspace/didChangeWatchedFiles): Use
eglot--dbind and eglot--lambda to destructure LSP objects.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/144
2018-12-04 João Távora <joaotavora@gmail.com>
Adjust previous fix
* eglot.el (eglot--before-change): Don't reset
eglot--last-inserted-char here.
(eglot--pre-command-hook): Do it here.
(eglot--managed-mode): Add/remove eglot--pre-command-hook to/from
pre-command-hook.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/173
2018-12-04 João Távora <joaotavora@gmail.com>
Fix bug introduced by previous fix
* eglot.el (eglot--CompletionParams): Don't use last-input-event.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/173
2018-12-03 João Távora <joaotavora@gmail.com>
Handle codeaction/command polymorphism with eglot--dcase
* eglot-tests.el (eglot-dcase): Augment test.
* eglot.el (eglot--lsp-interface-alist): Add Command interface.
(eglot--dcase): Fix indentation. When given interface, always
assume strict mode.
(eglot-code-actions): Use eglot--dcase.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164
2018-12-03 João Távora <joaotavora@gmail.com>
Robustify previous fix against non-standard insertion bindings
* eglot.el (eglot--managed-mode): Manage post-self-insert-hook.
(eglot--last-inserted-char): New variable.
(eglot--post-self-insert-hook): Set it.
(eglot--before-change): Reset it.
(eglot--CompletionParams): Use it.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/173
2018-12-03 Michal Krzywkowski <k.michal@zoho.com>
Properly clear old diagnostics when making new ones
* eglot.el (eglot-handle-notification
textDocument/publishDiagnostics): Call flymake report function with
:region.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/159
2018-12-02 Mario Rodas <marsam@users.noreply.github.com> (tiny change)
Use javascript-typescript-langserver for typescript-mode ()
* eglot.el (eglot-server-programs): add typescript-mode to
javascript-typescript-langserver's contact
GitHub-reference: https://github.com/joaotavora/eglot/issues/174
2018-12-02 João Távora <joaotavora@gmail.com>
Support completioncontext to help servers like ccls
* eglot.el (eglot-client-capabilities): Annouce
textDocument/completion/contextSupport.
(eglot--CompletionParams): New helper.
(eglot-completion-at-point): Use it.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/173
2018-12-01 João Távora <joaotavora@gmail.com>
Don't break in indirect buffers
Indirect buffers, such as the ones created by ediff-regions-wordwise,
have eglot enabled but not buffer-file-name. Resort to the finding
the file-name of the original buffer for these.
* eglot.el (eglot--TextDocumentIdentifier): Work in indirect
buffers.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/116
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/150
2018-12-01 Michal Krzywkowski <k.michal@zoho.com>
Use eglot--dbind for destructuring
* eglot.el (eglot--lsp-interface-alist): Add CodeAction,
FileSystemWatcher, Registration, TextDocumentEdit, WorkspaceEdit.
(eglot-handle-notification): Use eglot--dbind.
(eglot--apply-workspace-edit): Use eglot--dbind and eglot--lambda.
(eglot-code-actions): Use eglot--lambda.
(eglot--register-workspace/didChangeWatchedFiles): Use eglot--lambda.
2018-11-30 João Távora <joaotavora@gmail.com>
Introduce eglot--dcase
* eglot.el (eglot--dcase): New macro.
* eglot-tests.el (eglot-dcase-with-interface)
(eglot-dcase-no-interface): New tests.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/171
GitHub-reference: per https://github.com/joaotavora/eglot/issues/156
2018-11-30 João Távora <joaotavora@gmail.com>
Simplify interface of eglot--dbind macro
* eglot.el (eglot--dbind): Use new interface.
(eglot--lambda): Use new eglot--dbind interface.
(eglot--lsp-interface-alist): Fix docstring.
(eglot--call-with-interface): Simplify.
(eglot--plist-keys): New helper.
* eglot-tests.el (eglot-strict-interfaces):
Add a new test clause.
2018-11-28 Michal Krzywkowski <k.michal@zoho.com>
Touch up last commit
* eglot.el (eglot-current-column): Rename from eglot--current-column.
(eglot-current-column-function): Use it as value and mention in docstring.
(eglot--xref-make): Use eglot-current-column.
2018-11-27 Michal Krzywkowski <k.michal@zoho.com>
* eglot.el (eglot--current-column): new helper.
(eglot-current-column-function): Set to eglot--current-column.
(eglot--pos-to-lsp-position): Don't bind tab-width anymore.
(eglot--xref-make): Use eglot--current-column.
2018-11-27 João Távora <joaotavora@gmail.com>
Improve performance of xref summary line collection
* eglot.el (eglot--temp-location-buffers): New variable.
(eglot--handling-xrefs): New macro.
(eglot--xref-make): Use eglot--temp-location-buffers.
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos): Use eglot--handling-xrefs.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/52
GitHub-reference: per https://github.com/joaotavora/eglot/issues/127
2018-11-27 João Távora <joaotavora@gmail.com>
Use entire line as xref summary when available
After an original implementation by Michael Livshin. Also close https://github.com/joaotavora/eglot/issues/127.
* eglot.el (eglot--xref-make): Rework.
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos): Simplify call to `eglot--xref-make'.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/52
2018-11-23 João Távora <joaotavora@gmail.com>
Revert "codeaction command can be a command object ()"
This reverts commit 1e7f94d75a30628be56ad00de8c6245f5f3e9fdf.
The spec doesn't define Command as implemented in the commit.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/165
2018-11-23 Michal Krzywkowski <k.michal@zoho.com>
Codeaction command can be a command object ()
* eglot.el (eglot-code-actions): Handle case when the :command field
is not a string.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/164
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/165
2018-11-23 João Távora <joaotavora@gmail.com>
Control strictness towards incoming lsp messages
A new variable, eglot-strict-mode controls whether Eglot is strict or
lax with regard to incoming LSP messages.
1. Bug reports should be tested with eglot-strict-mode set to
'(disallow-non-standard-keys enforce-required-keys)
2. Users struggling to get non-standard servers working set this
variable to '(), nil. For now, by popular demand, this is the
default value.
Note that this commit in particular introduces a new infrastructure,
but does not yet alter any code in Eglot to use it. Neither is the
variable eglot--lsp-interface-alist populated.
* eglot-tests.el (eglot-strict-interfaces): New test.
* eglot.el (eglot--lsp-interface-alist): New variable.
(eglot-strict-mode): New variable.
(eglot--call-with-interface): New helper.
(eglot--dbind): New macro.
(eglot--lambda): New macro.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/144
GitHub-reference: per https://github.com/joaotavora/eglot/issues/156
2018-11-22 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 1.2
* eglot.el (eglot-completion-at-point): less chatter.
2018-11-22 João Távora <joaotavora@gmail.com>
Correctly insert textedit-less snippets
Fixes a slight regression from https://github.com/joaotavora/eglot/issues/160.
* eglot.el (eglot-completion-at-point): When there is plain
`insertText' snippet, delete the full completion text.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/167
2018-11-22 João Távora <joaotavora@gmail.com>
Fix potential security issue fontifying lsp doc
Previously, a server could mistankely or maliciously call *-mode
functions by in the response to a completion or hover request,
specifically in the :documentation field of the response.
Although there are plenty of similar avenues of attack in Emacs, it's
probably a good idea not to let LSP servers decide which functions to
call in an Emacs session running Eglot.
* eglot.el (eglot--format-markup): Call major-mode to fontify
buffer, not some dynamically constructed function name.
(eglot-completion-at-point): Ensure eglot--format-markup runs in
source buffer.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/154
2018-11-22 Alex Branham <alex.branham@gmail.com> (tiny change)
Add support for r's languageserver ()
* eglot.el (eglot-server-programs): Add R language server.
* README.md (Installation and usage): Mention it.
GitHub-reference: https://github.com/joaotavora/eglot/issues/161
2018-11-21 Michal Krzywkowski <k.michal@zoho.com>
Properly delete inserted text after completion
* eglot.el (eglot-completion-at-point): In :exit-function, delete only
the region of buffer that was inserted by completion.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/160
2018-11-19 John Wiegley <johnw@newartisans.com>
Merge pull request from conao3/fix_default_value
fix gethash default value for use-package-statistics-time
GitHub-reference: https://github.com/jwiegley/use-package/issues/681
2018-11-19 Michal Krzywkowski <k.michal@zoho.com>
Treat tab characters as 1 column wide in position conversion functions
Fixes https://github.com/joaotavora/eglot/issues/158.
* eglot.el (eglot--pos-to-lsp-position): Call
eglot-current-column-function with tab-width bound to 1.
(eglot--lsp-position-to-point): Call eglot-move-to-column-function
with tab-width bound to 1.
2018-11-17 Michal Krzywkowski <k.michal@zoho.com>
Format documentation of signature parameters
* eglot.el (eglot--sig-info): Call `eglot--format-markup` on parameter
:documentation.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/144
2018-11-13 João Távora <joaotavora@gmail.com>
Add ability to report lsp-compliant columns
* eglot.el (eglot-current-column-function): New variable.
(eglot-lsp-abiding-column): New helper.
(eglot--pos-to-lsp-position): Use eglot-current-column-function.
(eglot-move-to-column-function): Tweak docstring.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/125
2018-11-13 Michal Krzywkowski <k.michal@zoho.com>
Add support for textedits in completion
* eglot.el (eglot-completion-at-point): Apply the CompletionItem's
:textEdit and :additionalTextEdits when they're present.
2018-11-13 João Távora <joaotavora@gmail.com>
Tweak solution to with a hint from fangrui song
* eglot.el (eglot-move-to-lsp-abiding-column): Simplify slightly.
GitHub-reference: https://github.com/joaotavora/eglot/issues/125
2018-11-12 João Távora <joaotavora@gmail.com>
Complex completions work when chosen from *completions*
* eglot.el (eglot-completion-at-point): Make exit-function work
even if its arguments was stripped of its properties.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/148
2018-11-12 João Távora <joaotavora@gmail.com>
Add ability to move to lsp-precise columns
Also close https://github.com/joaotavora/eglot/issues/125.
Idea and much of design contributed by Michał Krzywkowski
<k.michal@zoho.com>
This introduces the variable eglot-move-to-column-function.
According to the standard, LSP column/character offsets are based
on a count of UTF-16 code units, not actual visual columns. So
when LSP says position 3 of a line containing just \"aXbc\",
where X is a multi-byte character, it actually means `b', not
`c'. This is what the function
`eglot-move-to-lsp-abiding-column' does.
However, many servers don't follow the spec this closely, and
thus this variable should be set to `move-to-column' in buffers
managed by those servers.
* eglot.el (eglot-move-to-column-function): New variable.
(eglot-move-to-lsp-abiding-column): New function.
(eglot--lsp-position-to-point): Use eglot-move-to-column-function.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/124
2018-11-10 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsiiformes/silencio
Silence byte-compiler on Emacs 25
GitHub-reference: https://github.com/jwiegley/use-package/issues/733
2018-11-10 Jonas Bernoulli <jonas@bernoul.li>
Silence byte-compiler on Emacs 25
Emacs 25 defined a global variable `features', which triggers a
warning "Lexical argument shadows the dynamic variable features".
That's not `use-package's fault, but we should suppress the warning
anyway, so that there is no additional noise that would cause us to
potentially overlook warnings that absolutely have to be addressed.
2018-11-08 João Távora <joaotavora@gmail.com>
Fix a bug introduced by previous bugfix
This commit fixes a bug but introduced another when completing a
symbol in xref-find-definitions.
commit ee58d92a7de1c8b1914c77177a7d5e755f1de827
Author: Michał Krzywkowski <k.michal@zoho.com>
Date: Sun Nov 4 16:59:05 2018 +0100
* eglot.el (xref-backend-identifier-completion-table): Use vector.
2018-11-07 João Távora <joaotavora@gmail.com>
Move constants to top instead of forward-declaring
* eglot.el (eglot--symbol-kind-names, eglot--kind-names): Move to
top of file.
2018-11-07 Mario Rodas <marsam@users.noreply.github.com> (tiny change)
Support ocaml-language-server out of the box ()
* eglot.el (eglot-server-programs): Add ocaml-language-server.
* README.md (Installation and usage): Mention ocaml-language-server
GitHub-reference: https://github.com/joaotavora/eglot/issues/149
2018-11-07 Michal Krzywkowski <k.michal@zoho.com>
* eglot.el (eglot-client-capabilities): mention supported symbolkinds.
2018-11-07 Michal Krzywkowski <k.michal@zoho.com>
Make imenu hierarchical
* eglot.el (eglot-imenu): Use :containerName to build a nested imenu
index alist.
2018-11-04 Michal Krzywkowski <k.michal@zoho.com>
Fix a bug when response to definitions request is a single location
It's valid to return just a single Location for a definitions request.
* eglot.el (xref-backend-definitions): Coerce response to a vector.
2018-11-04 João Távora <joaotavora@gmail.com>
Simplify eglot-code-action. fix compilation warning
* eglot.el (eglot-code-actions): Simplify.
(eglot-client-capabilities): Mention supported codeActionKind's
directly.
(eglot--code-action-kinds): Remove.
2018-11-04 Michal Krzywkowski <k.michal@zoho.com>
Add support for code action literals
Code action literals allow the server to simply return a WorkspaceEdit
for a code action, so the client does not have to execute a command.
* eglot.el (eglot-client-capabilities): Add :codeActionLiteralSupport.
(eglot--code-action-kinds): New variable.
(eglot-code-actions): Apply provided WorkspaceEdit.
2018-11-04 Michal Krzywkowski <k.michal@zoho.com>
Use the container name of a symbol in imenu
* eglot.el (eglot-imenu): Prepend :containerName to each symbol, when
provided.
2018-10-31 Michal Krzywkowski <k.michal@zoho.com>
Don't ignore unknown symbolkinds in imenu
Some servers provide custom SymbolKinds. For example, ccls says that
symbols defined with #define are of kind 255.
* eglot.el (eglot-imenu): Don't delete elements with unknown symbol
kind from the return list, instead put them in `(Unknown)` group.
2018-10-31 Michal Krzywkowski <k.michal@zoho.com>
Remove duplicates from imenu
* eglot.el (eglot-imenu): Don't append the result list to itself,
which causes duplicates.
2018-10-30 Alex Branham <alex.branham@gmail.com>
Require subr-x at compile time ()
if-let and when-let are macros that the byte compiler can expand
at compile time. No need to require subr-x at run time.
* eglot.el (subr-x): Require only when compiling.
GitHub-reference: https://github.com/joaotavora/eglot/issues/139
2018-10-30 João Távora <joaotavora@gmail.com>
Accept deprecated field in symbolinformation
* eglot.el (xref-backend-identifier-completion-table)
(eglot-imenu): Accept and ignore "deprecated"
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/138
2018-10-24 John Wiegley <johnw@newartisans.com>
Merge pull request from jwiegley/use-package-chords-suppress-compiler-message
prefix argument with _ to suppress Unused lexical argument warning
GitHub-reference: https://github.com/jwiegley/use-package/issues/713
2018-10-24 Dale Sedivec <dale@codefu.org> (tiny change)
Fix misspelling of "outstanding" ()
* eglot.el (eglot--mode-line-format): Fix a typo.
GitHub-reference: https://github.com/joaotavora/eglot/issues/74
2018-10-18 Michal Krzywkowski <k.michal@zoho.com>
Handle case when project was not found in eclipse.jdt.ls contact
2018-10-18 Michal Krzywkowski <k.michal@zoho.com>
Override eglot-execute-command for eclipse.jdt.ls server
* eglot.el (eglot-execute-command eglot-eclipse-jdt): New defmethod.
2018-10-18 Michal Krzywkowski <k.michal@zoho.com>
Add support for eclipse.jdt.ls server
* eglot.el (eglot-server-programs): Add java-mode entry.
(eglot-eclipse-jdt): New class.
(eglot-initialization-options): Override for eglot-eclipse-jdt.
(eglot--eclipse-jdt-contact): New function.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/63
2018-10-18 Michal Krzywkowski <k.michal@zoho.com>
Allow function contacts to be interactive
* eglot.el (eglot-server-programs): Mention that the function must
accept one argument.
(eglot--guess-contact): Pass to functional contacts the interactive
value.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/63
2018-10-15 Michal Krzywkowski <k.michal@zoho.com>
Improve signature help
* eglot.el (eglot--sig-info): Don't lose existing information.
Attempt to highlight the active parameter by searching for it's
:label in signature's :label. Append to the result first sentence
of signature's :documentation, if present.
2018-10-15 Michal Krzywkowski <k.michal@zoho.com>
Sort references and definitions by line number
* eglot.el (eglot--sort-xrefs): New function.
(xref-backend-definitions):
(xref-backend-references):
(xref-backend-apropos): Use it.
2018-10-15 Michal Krzywkowski <k.michal@zoho.com>
Merge pull request from mkcms/fix-diagnostics-wrong-type-argument
Handle case when diagnostic :character is out of range
GitHub-reference: https://github.com/joaotavora/eglot/issues/104
2018-10-15 Michal Krzywkowski <k.michal@zoho.com>
Handle case when diagnostic :character is out of range
* eglot.el (eglot-handle-notification): Don't error out when
flymake-diag-region returns nil.
2018-10-15 Michal Krzywkowski <k.michal@zoho.com>
Eglot-ignored-server-capabilites: prefer all choices over "other"
Previously the "Other" choice matched every value, so it was always
shown in the customize buffer.
* eglot.el (eglot-ignored-server-capabilites): Make the "Other" choice
the last possible option.
2018-10-03 Michal Krzywkowski <k.michal@zoho.com>
Make eglot-ignored-server-capabilites more user-friendly ()
* eglot.el (eglot-ignored-server-capabilites): Add list of possible
choices to :type, along with a user-friendly description.
GitHub-reference: https://github.com/joaotavora/eglot/issues/126
2018-09-24 Michal Krzywkowski <k.michal@zoho.com>
Correctly map documentsymbol's :kind to its name ()
Previously we were mapping :kind in DocumentSymbol with
names from the CompletionItemKind enum, whereas we should
have used the SymbolKind enum.
* eglot.el (eglot--symbol-kind-names): New variable.
(eglot-imenu): Use it instead of eglot--kind-names.
GitHub-reference: https://github.com/joaotavora/eglot/issues/121
2018-09-24 whatacold <whatacold@gmail.com> (tiny change)
Autoload eglot-ensure ()
* eglot.el (eglot-ensure): Add autoload cookie
GitHub-reference: https://github.com/joaotavora/eglot/issues/120
2018-09-17 João Távora <joaotavora@gmail.com>
Don't block kill-buffer-hook if server somehow hangs
* eglot.el (eglot--signal-textDocument/didClose): Use
with-demoted-errors.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/115
2018-09-13 Justin Talbott <justin@waymondo.com>
Merge pull request from lrochfort/ensure-system-package_use-sudo
[Fix https://github.com/jwiegley/use-package/issues/720] Install system packages using system-packages-install
GitHub-reference: https://github.com/jwiegley/use-package/issues/721
2018-09-12 Laurence Rochfort <laurence.rochfort@gmail.com> (tiny change)
[] Install system packages using system-packages-install
:ensure-system-package was installing packages by running
system-packages-get-command via async-shell-command. This meant that
system-packages-use-sudo wasn't being honoured.
This patch makes :ensure-system-package use system-packages-install
for all cases, except where a custom install command is supplied, in
which case async-shell-command is used.
This issue was introduced in 9f034a0bcfdd8c4 [https://github.com/jwiegley/use-package/issues/673], as a fix for
[https://github.com/jwiegley/use-package/issues/661]. Prior to that commit, system-packages-use-sudo was being
honoured.
This patch also fixes a bug where a cons containing a lone symbol in a
list of conses causes nil to used as the package to install.
GitHub-reference: fix https://github.com/jwiegley/use-package/issues/720
2018-09-08 Aleksey Kladov <aleksey.kladov@gmail.com> (tiny change)
Don't send other notifications before initialized
* eglot.el (eglot--connect): send initialized before
activating minor mode.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/100
2018-09-07 João Távora <joaotavora@gmail.com>
Prefer ccls over cquery for c/c++
* README.md (Installation and usage): Prefer ccls to cquery. Mention clangd.
* eglot.el (eglot-server-programs): Suggest ccls for c/c++ by default.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/94
2018-09-07 João Távora <joaotavora@gmail.com>
Fix serious breakage introduced by
string-prefix-p doesn't work on symbols
* eglot.el (eglot-handle-notification): Coerce method name to string.
GitHub-reference: https://github.com/joaotavora/eglot/issues/93
2018-09-07 Fangrui Song <i@maskray.me>
Don't warn on implementation-specific notifications ()
Only warn when method name doesn't start with '$'. Per the spec:
"if a server or client receives notifications or requests
starting with $/ it is free to ignore them if they are unknown."
* eglot.el (eglot-handle-notification t t): Check method name for $.
GitHub-reference: https://github.com/joaotavora/eglot/issues/93
2018-08-27 Evgeni Kolev <evgenysw@gmail.com> (tiny change)
When exiting emacs, don't ask the user to confirm killing processes ()
* eglot.el (eglot--connect, eglot--inferior-bootstrap): pass noquery t to
make-process.
GitHub-reference: https://github.com/joaotavora/eglot/issues/83
2018-08-25 João Távora <joaotavora@gmail.com>
Handle case when :textdocumentsync isn't a number
Also closes https://github.com/joaotavora/eglot/issues/87.
* eglot.el (eglot--signal-textDocument/didChange): Grab :change
from :textDocumentSync server capability.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/86
2018-08-20 João Távora <joaotavora@gmail.com>
Correctly delete text before expanding snippet completions
Suggested by Amol Mandhane.
* eglot.el (eglot-completion-at-point): Use length of obj in
:exit-function
GitHub-reference: close https://github.com/joaotavora/eglot/issues/82
2018-08-20 Phillip Dixon <phillip.dixon@gmail.com> (tiny change)
Ignore extra keys in textdocument/publishdiagnostics ()
Accoding to the "discussion" in https://reviews.llvm.org/D50571, it
was deemed sufficient that VSCode is fine with the non-standard
extension -- jt
* eglot.el (eglot-handle-notification): Add &allow-other-keys
GitHub-reference: https://github.com/joaotavora/eglot/issues/81
2018-08-19 João Távora <joaotavora@gmail.com>
Consider :triggercharacters in company completion
* eglot.el (eglot-completion-at-point): Take advantage of
:company-prefix-length.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/80
2018-08-18 João Távora <joaotavora@gmail.com>
Improve snippet support
* eglot.el (eglot-client-capabilities): Don't always declare
snippet support.
(eglot--snippet-expansion-fn): New helper.
(eglot-completion-at-point): Better annotations when snippets
are supported.
2018-08-18 Evgeni Kolev <evgenysw@gmail.com> (tiny change)
Add go-langserver ()
* README.md (Installation and usage): Add go-langserver.
* eglot.el (eglot-server-programs): Add go-langserver.
GitHub-reference: https://github.com/joaotavora/eglot/issues/74
2018-08-18 João Távora <joaotavora@gmail.com>
Don't error if server replies with empty hover message
* eglot.el (eglot-eldoc-function): Check non-nil contents.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/74
2018-08-17 Michal Krzywkowski <k.michal@zoho.com>
Fix textdocument/hover responses where markedstring is a plist ()
* eglot.el (eglot--hover-info): Forward all non-vector content to
eglot--format-markup.
GitHub-reference: https://github.com/joaotavora/eglot/issues/72
2018-08-17 João Távora <joaotavora@gmail.com>
Support snippet completions
* eglot.el (eglot-client-capabilities): Declare support for
snippet-based completions.
(eglot-completion-at-point): Expand snippet completions with
YASnippet if that is found.
(eglot-note, eglot-warning, eglot-error): Diagnostic
overlay priorities have to be slightly lower than yasnippet's,
which must be reasonably high.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/50
2018-08-17 João Távora <joaotavora@gmail.com>
Fix eglot-capabilities when querying for multiple features
* eglot-tests.el (eglot-capabilities): New test.
* eglot.el (eglot--server-capable): Fix problems with queries for
multiple capabilities.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/74
2018-08-13 Justin Talbott <justin@waymondo.com>
prefix argument with _ to suppress Unused lexical argument warning
per @tarsiuss comment
https://github.com/jwiegley/use-package/commit/5d9c854a6cf12fff2326ee5653e87e2d3d550a8d#commitcomment-29996666
2018-08-13 João Távora <joaotavora@gmail.com>
Prompt for server in interactive eglot-shutdown
* eglot.el (eglot--read-server): New helper.
(eglot-shutdown): Use it.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/73
2018-08-12 James Nguyen <james@jojojames.com>
Add kotlin-language-server ()
https://github.com/fwcd/KotlinLanguageServer
copyright-paperwork-exempt: yes
* README.md (Installation and Usage): declare Kotlin support.
GitHub-reference: https://github.com/joaotavora/eglot/issues/70
2018-08-12 João Távora <joaotavora@gmail.com>
Handle edits to same position in the correct order
In eglot--apply-text-edits, the markers returned by
eglot--lsp-position-to-point are of the "stay" type, i.e. have an
insertion-type of nil. This causes multiple insertion edits to the
same location to happen in the reverse order in which they appear in
the LSP message, which is a violation of the spec and a bug.
There are more ways to solve this (see related discuttion in
https://github.com/joaotavora/eglot/pull/64), but the easiest way is
to revert the order in which the edits are processed. This is because
the spec tells us that the order is only relevant in precisely this
"same position" case. So if we reverse the order we fix this bug and
don't break anything else.
* eglot.el (eglot--apply-text-edits): Apply edits in reverse..
GitHub-reference: close https://github.com/joaotavora/eglot/issues/64
2018-08-12 João Távora <joaotavora@gmail.com>
Control the size of the events buffer
* eglot.el (eglot-events-buffer-size): New defcustom.
(eglot--connect): Use it.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/41
2018-08-12 João Távora <joaotavora@gmail.com>
Implement asynchronous server connection
A new defcustom eglot-sync-connect controls this feature. If it is t,
eglot should behave like previously, waiting synchronously for a
connection to be established, with the exception that there is now a
non-nil timeout set to eglot-connect-timeout, which defaults to 30
seconds.
eglot-connect is now considerably more complicated as it replicates
most of the work that jsonrpc-request does vis-a-vis handling errors,
timeouts and user quits..
* eglot-tests.el
(eglot--call-with-dirs-and-files): Simplify cleanup logic.
(slow-sync-connection-wait)
(slow-sync-connection-intime, slow-async-connection)
(slow-sync-error): New tests.
* eglot.el (eglot-sync-connect): New defcustom.
(eglot-ensure, eglot): Simplify.
(eglot--connect): Honour eglot-sync-connect. Complicate
considerably.
(eglot-connect-timeout): New defcustom.
(Package-requires): Require jsonrpc 1.0.6
GitHub-reference: close https://github.com/joaotavora/eglot/issues/68
2018-08-11 Michal Krzywkowski <k.michal@zoho.com>
Kill server's output and events buffers from eglot-shutdown ()
* eglot.el
(Package-Requires): Require jsonrpc 1.0.5
(eglot-shutdown): Kill events and stderr buffers of the
server, unless new PRESERVE-BUFFERS argument is non-nil.
eglot-reconnect): Preserve buffers on shutdown.
* eglot-tests.el (eglot--call-with-dirs-and-files): Call
eglot-shutdown with non-nil PRESERVE-BUFFERS arg.
GitHub-reference: https://github.com/joaotavora/eglot/issues/66
2018-08-11 João Távora <joaotavora@gmail.com>
Improve eglot-execute-command api to ease overriding by servers
* eglot.el (eglot-execute-command): COMMAND can be a symbol.
(eglot-code-actions): Pass symbols to eglot-command.
2018-08-11 Michal Krzywkowski <k.michal@zoho.com>
Add a generic eglot-execute-command api
* eglot.el (eglot-execute-command): New defgeneric and method. Use it
to request :workspace/executeCommand.
(eglot-code-actions): Use it.
2018-08-11 Michal Krzywkowski <k.michal@zoho.com>
* eglot.el (eglot-cquery): capitalize docstring.
2018-08-09 João Távora <joaotavora@gmail.com>
* eglot.el (advice-add jsonrpc-request): add &allow-other-keys
2018-08-09 João Távora <joaotavora@gmail.com>
Require jsonrpc.el 1.0.2 (gnu elpa didn't build 1.0.1)
* eglot.el (Package-Requires): Require jsonrpc 1.0.2
2018-08-09 João Távora <joaotavora@gmail.com>
Snappier completions that don't hinder typing
This should improve company-capf's performance.
* eglot.el (Package-Requires): Require jsonrpc 1.0,1
(eglot-completion-at-point): Use completion-table-dynamic. Pass
CANCEL-ON-INPUT to jsonrpc-request.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/61
2018-08-09 Michal Krzywkowski <k.michal@zoho.com>
Notify server of recent changes before save notification
* eglot.el (eglot--signal-textDocument/didSave): Call
eglot--signal-textDocument/didChange.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/60
2018-08-07 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-initialization-options): fix spurious typo.
2018-08-07 João Távora <joaotavora@gmail.com>
Accept functions as entries in eglot-server-programs
CONTACT in the (MAJOR-MODE . CONTACT) association in
eglot-server-programs can now be a function of no arguments producing
any value previously valid for contact. The function is called at
time of `M-x eglot` or `eglot-ensure`. This is useful for servers
requiring command-line invocations that depend on the specific
momentary environment.
* eglot.el (eglot-server-programs): CONTACT can be a fucntion of no
arguments.
(eglot--guess-contact, eglot--connect): Accept function
CONTACTs.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/63
2018-08-05 João Távora <joaotavora@gmail.com>
Eglot-workspace-configuration's keys needn't be keywords
* eglot.el (eglot-signal-didChangeConfiguration): Convert
alist keys into a json-compatible plist.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/59
2018-08-03 João Távora <joaotavora@gmail.com>
Default eglot-handle-notifictiona|request must &allow-other-keys
* eglot.el (eglot-handle-notification, eglot-handle-request): Add
&allow-other-keys
2018-08-03 Michal Krzywkowski <k.michal@zoho.com>
Fix placement of diagnostics with same start and end positions
Some servers such as cquery and clangd publish diagnostic with
identical start and end positions.
* eglot.el (eglot-handle-notification
:textDocument/publishDiagnostics): Add 1 to :line since LSP lines
are 0-based. Don't subtract 1 from :character, since both emacs and
LSP have 0-based columns.
2018-08-02 João Távora <joaotavora@gmail.com>
Erase company-doc buffer in between doc requests
* eglot.el (eglot-completion-at-point): Erase temporary
"*eglot-doc*" buffer for company's doc.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/58
2018-07-30 Michal Krzywkowski <k.michal@zoho.com>
* eglot.el (eglot-client-capabilities): fix a typo.
2018-07-28 Michal Krzywkowski <k.michal@zoho.com>
Implement textdocument/rangeformatting
* eglot.el (eglot-format): New command.
(eglot-format-buffer): Use it as implementation.
(eglot-client-capabilities): Add :rangeFormatting.
* eglot-tests.el (formatting): Also test range formatting.
* README.md (Commands and keybindings): Mention eglot-format.
(Language features): Tick textDocument/rangeFormatting.
2018-07-28 Michal Krzywkowski <k.michal@zoho.com>
Correctly make lsp positions in narrowed buffers
* eglot.el (eglot--pos-to-lsp-position): Fix return value when
narrowing is in effect.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/54
2018-07-28 Väinö Järvelä <vaino.jarvela@gmail.com> (tiny change)
Fix typo in willsavewaituntil rpc request ()
* eglot.el (eglot--signal-textDocument/willSave): Fix typo.
GitHub-reference: https://github.com/joaotavora/eglot/issues/51
2018-07-28 Michal Krzywkowski <k.michal@zoho.com>
Work around emacs bugs 32237, 32278 ()
See:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32237
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32278
* eglot.el (eglot--apply-text-edits): Inhibit modification hooks and
call them manually for the changed region.
GitHub-reference: https://github.com/joaotavora/eglot/issues/53
2018-07-27 João Távora <joaotavora@gmail.com>
Be less verbose when using eglot-ensure
* eglot.el (eglot-ensure): Don't message when a buffer is already
managed.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/48
2018-07-26 Alan Zimmerman <alan.zimm@gmail.com>
Add entry for haskell-ide-engine in eglot-server-programs ()
* eglot.el (eglot-server-programs): Add entry for haskell-mode
GitHub-reference: https://github.com/joaotavora/eglot/issues/49
2018-07-25 João Távora <joaotavora@gmail.com>
Fix messages of eglot-ensure
* eglot.el (eglot-ensure): fix messages.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/48
2018-07-22 João Távora <joaotavora@gmail.com>
Don't turn on flymake-mode any more than is needed
If flymake-mode is in eglot--managed-mode-hook, it will be called even
if eglot--managed-mode is being turned off, which could be problematic
because it triggers a check if flymake-start-on-flymake-mode is t.
* eglot.el (eglot--managed-mode): Turn on flymake-mode and
eldoc-mode here.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/44
2018-07-20 João Távora <joaotavora@gmail.com>
Robustify in the face of manual mode changes
When manually changing the major-mode of a managed buffer, this sends
a didClose and tears down Eglot-related stuff like if were killing the
buffer. After changing the mode, we have to recheck that we are now
not managed by another server (or by the same server, in case we
changed the mode to be the same mode).
* eglot.el (eglot-shutdown): Use eglot--with-live-buffer
(eglot--on-shutdown): Use eglot--with-live-buffer
(eglot--managed-mode): Use change-major-mode-hook.
(eglot--managed-mode-onoff): Change protocol. Turn off when called
with no arguments.
(eglot--maybe-activate-editing-mode): Don't do anything if mode is
already active. Suitable for calling from
after-change-major-mode-hook.
(after-change-major-mode-hook): Add
eglot--maybe-activate-editing-mode.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/44
2018-07-15 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/autoload-keymap
Correct prefix keys after use-package-autoload-keymap
GitHub-reference: https://github.com/jwiegley/use-package/issues/686
2018-07-11 João Távora <joaotavora@gmail.com>
Implement workspace/didchangeconfiguration ()
* README.md (Supported Protocol Features, Commands and
keybindings): mention workspace/didChangeConfiguration.
* eglot.el (eglot-server-initialized-hook): New hook.
(eglot--connect): Run it.
(eglot-workspace-configuration): New variable.
(eglot-signal-didChangeConfiguration): New command.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/29
GitHub-reference: close https://github.com/joaotavora/eglot/issues/40
2018-07-11 João Távora <joaotavora@gmail.com>
Handle experimental/unknown server methods gracefully
* eglot.el (eglot-handle-notification t t, eglot-handle-request t
t): Add default handlers for unknown methods.
(eglot-handle-notification $cquery/progress)
(eglot-handle-notification $cquery/setInactiveRegions)
(eglot-handle-notification $cquery/publishSemanticHighlighting):
Remove these no-ops.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/39
2018-07-10 John Wiegley <johnw@newartisans.com>
Merge pull request from jwiegley/ensure-system-package-filepath
allow :ensure-system-package to check the presence of files at path
GitHub-reference: https://github.com/jwiegley/use-package/issues/703
2018-07-09 Justin Talbott <justin@waymondo.com>
allow :ensure-system-package to check the presence of files at path
closes https://github.com/jwiegley/use-package/issues/660
2018-07-09 João Távora <joaotavora@gmail.com>
Jsonrpc.el is now a gnu elpa depedency
* Makefile (ELFILES): Don't include jsonrpc.
(jsonrpc-check): Remove target.
(check): Don't run jsonrpc-check
* README.md (either): Mention "packaged in a single file" again
* eglot.el (Package-Requires): Require jsonrpc 1.0.0
(Version): Bump to 1.1
* jsonrpc.el: Remove
* jsonrpc-tests.el: Remove
2018-07-08 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-completion-at-point): fix broken indentation
2018-07-08 Ricardo Martins <ricardo@scarybox.net> (tiny change)
Format documentation in completion annotations
Fixes an issue with the latest RLS, where the server returns a plist
instead of a plain string as documentation for completion candidates,
which broke the `annotation-function`. This change was introduced by
https://github.com/rust-lang-nursery/rls/commit/206a9fb41e837333d0e67187a6a9fe24868b77a4
* eglot.el (eglot-completion-at-point): Use eglot--format-markup
2018-07-06 João Távora <joaotavora@gmail.com>
Unbreak completion when no possible annotation
* eglot.el (eglot-completion-at-point): Handle case where no doc,
detail or kind.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/37
2018-07-03 John Wiegley <johnw@newartisans.com>
Merge pull request from killdash9/patch-1
Place :chords at beginning of use-package-keywords
GitHub-reference: https://github.com/jwiegley/use-package/issues/697
2018-07-02 João Távora <joaotavora@gmail.com>
Handle outrageously large and buggy line numbers
* eglot.el (eglot--lsp-position-to-point): Truncate line number to
most-positive-fixnum.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/34
2018-07-01 João Távora <joaotavora@gmail.com>
Inhibit auto-reconnect until connection is established
Otherwise, a server that crashes on startup is enough to throw Eglot
into a reconnection infloop.
* eglot.el (eglot-lsp-server): Initialize "inhibit-autoreconnect"
slot to t.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/36
2018-06-29 João Távora <joaotavora@gmail.com>
Bind default-directory when launching servers
Apparently, not doing so trips some servers, like Scala's.
* eglot.el (eglot--connect): Bind default-directory.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/33
2018-06-28 Russell Black <black.russell@gmail.com>
Place :chords at beginning of use-package-keywords
When it is at the end, the keys don't get bound until after the package has been loaded, which is bad. Placing it at the beginning allows the key bindings to be mapped to auto-loaded functions before the package is loaded, so that a key chord press triggers the package load.
2018-06-25 John Wiegley <johnw@newartisans.com>
Merge pull request from killdash9/patch-1
New style of auto-deferral for chords
GitHub-reference: https://github.com/jwiegley/use-package/issues/658
2018-06-25 John Wiegley <johnw@newartisans.com>
Merge branch 'master' into patch-1
2018-06-25 João Távora <joaotavora@gmail.com>
Cache buffer's managing server
* eglot.el (eglot--cached-current-server): New variable.
(eglot--managed-mode-onoff): Set it.
(eglot--current-server): Read it.
(eglot--maybe-activate-editing-mode): Add assertion.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/32
2018-06-25 João Távora <joaotavora@gmail.com>
Unbreak imenu for cquery servers (and probably more)
* eglot.el (eglot-imenu): Don't try to make a group for symbols
without kind.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/31
2018-06-25 João Távora <joaotavora@gmail.com>
Unbreak basic imenu functionality
* eglot.el (eglot--managed-mode): Add missing quote to
imenu-create-index-function.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/31
2018-06-25 Ricardo Martins <1706+meqif@users.noreply.github.com> (tiny change)
Fix typo in the solargraph server program
* eglot.el (eglot-server-programs): Fix typo.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/30
2018-06-23 João Távora <joaotavora@gmail.com>
Fix some rather silly bugs in some interactive specs
* eglot.el (eglot-events-buffer, eglot-stderr-buffer)
(eglot-forget-pending-continuations): Fix interactive specs.
2018-06-23 João Távora <joaotavora@gmail.com>
Implement tcp autostart/autoconnect (and support ruby's solargraph)
* README.md (Installation and usage): Mention support for
Solargraph
(Connecting via TCP): New section
(Connecting automatically): New section
* eglot.el (eglot-server-programs): Add ruby-mode.
Overhaul docstring.
(eglot-lsp-server): Add inferior-process slot.
(eglot--on-shutdown): Kill any autostarted inferior-process
(eglot--guess-contact): Allow prompting with :autoport parameter.
(eglot--connect): Consider :autoport case.
(eglot--inferior-bootstrap): New helper.
2018-06-22 João Távora <joaotavora@gmail.com>
Merge branch 'jsonrpc-refactor', bump version to 1.0
* eglot.el (Version): Bump to 1.0
2018-06-22 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.11
Merge master into jsonrpc-refactor (using imerge)
2018-06-21 João Távora <joaotavora@gmail.com>
Empty ranges are valid in lsp
The previous hack in eglot--range-region, designed to appease cquery's
occasional practice of publishing diagnostics with empty regions, was
moved to the proper notification handler.
Reported by mkcms <k.michal@zoho.com>.
* eglot.el (eglot--range-region): Allow empty ranges, which are
allowed in LSP.
(eglot-handle-notification :textDocument/publishDiagnostics): Maybe
fallback to flymake-diag-region here.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/27
2018-06-21 João Távora <joaotavora@gmail.com>
Apply text edits as a single undoable edit
As suggested by mkcms <k.michal@zoho.com>, but do it in
eglot--apply-text-edits, where it benefits all its users.
Also, just using undo-boundary is not enough, one needs
undo-amalgamate-change-group to mess with the boundaries already in
buffer-undo-list.
* eglot.el (eglot--apply-text-edits): Use
undo-amalgamate-change-group.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/22
2018-06-21 João Távora <joaotavora@gmail.com>
Report progress when applying edits
Use make-progress-reporter in eglot--apply-text-edits
As suggested by mkcms <k.michal@zoho.com>, but do it in
eglot--apply-text-edits, where it benefits all its users.
* eglot.el (eglot--apply-text-edits): Use a progress reporter.
Fix marker point recovery.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/23
2018-06-21 João Távora <joaotavora@gmail.com>
Apply text edits atomically
As suggested by mkcms <k.michal@zoho.com>, but do it in
eglot--apply-text-edits, where it benefits all its users.
* eglot.el (eglot--apply-text-edits): Use atomic-change-group.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/22
2018-06-21 João Távora <joaotavora@gmail.com>
Defer textdocument/formatting requests
* eglot.el (eglot-format-buffer): Pass DEFERRED to eglot--request.
2018-06-21 João Távora <joaotavora@gmail.com>
Simplify eglot-format-buffer
Use replace-buffer-contents, as suggested by mkcms
<k.michal@zoho.com>, but do it in eglot--apply-text-edits, where it
benefits all its users.
* README.md (Commands and keybindings): Mention
eglot-format-buffer.
* eglot.el (eglot-format-buffer): Don't try to heuristically
preserve point here.
(eglot--apply-text-edits): Use replace-buffer-contents.
* eglot-tests.el (formatting): adjust test to strictly check for point
position.
GitHub-reference: per https://github.com/joaotavora/eglot/issues/22
2018-06-20 João Távora <joaotavora@gmail.com>
Guess server for js2-mode and rjsx-mode
* eglot.el (eglot-server-programs): Add entries for js2-mode and
rjsx-mode. Coalesce entries for c++ and c-mode. Improve
docstring.
(eglot--guess-contact): Allow lists are keys in
eglot-server-programs.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/26
2018-06-20 João Távora <joaotavora@gmail.com>
Improve eglot-ensure and mention it in readme.md
* README.md (Installation and Usage): Mention eglot-ensure.
* eglot.el (eglot-ensure): No-op for non-file buffers.
(eglot--connect): Don't fallback to 'eglot-lsp-server here.
(eglot--guess-contact): Error if something can't be guessed.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/25
2018-06-16 Rami Chowdhury <460769+necaris@users.noreply.github.com> (tiny change)
Use gfm-mode for formatted strings ()
* eglot.el (eglot--format-markup): Use gfm-mode instead of
markdown-mode.
GitHub-reference: https://github.com/joaotavora/eglot/issues/20
2018-06-15 João Távora <joaotavora@gmail.com>
Minor cleanup to new textdocument/formatting feature
* README.md (Language feature): Tick textDocument/formatting
* eglot.el (eglot-client-capabilities): Add formatting capability.
Also move codeAction capability to the correct section.
(eglot-format-buffer): Remove unused lexical variable before-point.
2018-06-15 Michal Krzywkowski <k.michal@zoho.com>
Implement formatting ()
Implement textDocument/formatting
* eglot.el (eglot-format-buffer): New command to format
current buffer.
* eglot-tests.el (formatting): New test.
GitHub-reference: https://github.com/joaotavora/eglot/issues/19
2018-06-14 John Wiegley <johnw@newartisans.com>
Merge pull request from jabranham/enable-lexical-binding
Enable lexical binding
GitHub-reference: https://github.com/jwiegley/use-package/issues/657
2018-06-13 Alex Branham <alex.branham@gmail.com>
Fix use-package-normalize-function
Fix use-package-normalize-function tests
2018-06-13 Alex Branham <alex.branham@gmail.com>
Enable lexical binding
This supersedes https://github.com/jwiegley/use-package/issues/617 and closes https://github.com/jwiegley/use-package/issues/648
2018-06-13 John Wiegley <johnw@newartisans.com>
Merge pull request from taingra/master
Added an Introduction taken from the README
GitHub-reference: https://github.com/jwiegley/use-package/issues/692
2018-06-13 John Wiegley <johnw@newartisans.com>
Update use-package.texi
2018-06-13 Thomas Ingram <taingram@mtu.edu> (tiny change)
Added an Introduction taken from the README
2018-06-13 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.10
2018-06-13 João Távora <joaotavora@gmail.com>
Fix a bug when eglot--request times out
* eglot.el (eglot--request): Better timeout
message.
(eglot--async-request): Must return the timer.
2018-06-13 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-shutdown): accept timeout param.
2018-06-13 João Távora <joaotavora@gmail.com>
Fix bug in querying server capabilities
This lead to javascript-typescript-stdio being sent an incremental
didChange notif, which it doesn't support.
* eglot.el (eglot--server-capable): Fix bug.
2018-06-10 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.9
Merge branch 'master' into jsonrpc-refactor
2018-06-10 João Távora <joaotavora@gmail.com>
New eglot-ensure to put in a major-mode's hook
* eglot.el (Commentary): Mention eglo-ensure.
(eglot--connect): Rearrange args.
(eglot--guess-contact): Rename from eglot--interactive.
(eglot): Use eglot--guess-contact.
(eglot, eglot-reconnect): Rearrange call to eglot--connect.
(eglot-ensure): New command to put in mode hook.
* eglot-tests.el (eglot--tests-connect): New helper.
(auto-detect-running-server, auto-reconnect, rls-watches-files)
(rls-basic-diagnostics, rls-hover-after-edit, rls-rename)
(basic-completions, hover-after-completions): Use it.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/17
2018-06-10 João Távora <joaotavora@gmail.com>
Remove connection grabbing antics from jsonrpc.el
* eglot.el (eglot--managed-mode): Don't touch
jsonrpc-find-connection-functions.
(eglot--current-server-or-lose, eglot--current-server): New
functions (resuscitate).
(eglot-shutdown, eglot, eglot-reconnect)
(eglot--server-capable, eglot--maybe-activate-editing-mode)
(eglot-clear-status, eglot--mode-line-format)
(eglot--signal-textDocument/didChange)
(eglot--signal-textDocument/didOpen)
(eglot--signal-textDocument/didSave)
(xref-backend-identifier-completion-table)
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos, eglot-completion-at-point)
(eglot-help-at-point, eglot-eldoc-function, eglot-imenu)
(eglot-rename, eglot-code-actions): Use eglot--current-server and
eglot--current-server-or-lose.
(eglot-events-buffer, eglot-stderr-buffer)
(eglot-forget-pending-continuations): New commands.
(eglot--mode-line-format): Use eglot-stderr-buffer.
* jsonrpc.el (jsonrpc-find-connection-functions)
(jsonrpc-current-connection, jsonrpc-current-connection-or-lose):
Remove.
(jsonrpc-stderr-buffer, jsonrpc-events-buffer): Simplify.
(jsonrpc-forget-pending-continuations): No longer interactive.
* eglot-tests.el (auto-detect-running-server, auto-reconnect): Use
eglot--current-server.
2018-06-10 João Távora <joaotavora@gmail.com>
Simplify jsonrpc status setting
* eglot.el (eglot--connect): Don't set jsonrpc-status.
(eglot-clear-status): New interactive command.
(eglot--mode-line-format): Simplify.
* jsonrpc.el (jsonrpc--async-request-1): Simplify.
(jsonrpc-connection): Replace status with last-error.
(jsonrpc-clear-status): Delete.
(jsonrpc--connection-receive): Set last-error.
2018-06-09 João Távora <joaotavora@gmail.com>
Request dispatcher's return value determines response
No more jsonrpc-reply.
* eglot.el (eglot-handle-request window/showMessageRequest):
Simplify.
(eglot--register-unregister): Simplify.
(eglot-handle-request workspace/applyEdit): Simplify.
(eglot--apply-text-edits): Signal a jsonrpc-error.
(eglot--apply-workspace-edit): Simplify.
* jsonrpc-tests.el (jsonrpc--with-emacsrpc-fixture): Don't
jsonrpc--reply.
* jsonrpc.el (jsonrpc-error, jsonrpc-connection, jsonrpc-request):
Improve docstring.
(jsonrpc-error): Polymorphic args.
(jsonrpc--unanswered-request-id): Remove.
(jsonrpc--connection-receive): Rework and simplify.
(jsonrpc-reply): Simplify.
2018-06-09 João Távora <joaotavora@gmail.com>
Merge branch 'master' into jsonrpc-refactor
2018-06-09 João Távora <joaotavora@gmail.com>
Fix indentation f@#$%^ by previous commit
Courtesy of aggressive-indent-mode... Agressive it is...
2018-06-09 João Távora <joaotavora@gmail.com>
Attempt to handle rls sophisticated globs for didchangewwatchedfiles
* eglot.el (eglot--wildcard-to-regexp): New helper.
(eglot--register-workspace/didChangeWatchedFiles): Use it.
2018-06-08 João Távora <joaotavora@gmail.com>
Check flymake-mode before calling report-fn
* eglot.el (eglot-handle-notification): Check flymake-mode.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/16
2018-06-08 João Távora <joaotavora@gmail.com>
Merge master into jsonrpc-refactor
2018-06-08 João Távora <joaotavora@gmail.com>
Simplify jsonrpc connection shutdown
* eglot.el (eglot--process): Delete.
(eglot-shutdown): Use jsonrpc-shutdown.
(eglot--on-shutdown): Simplify.
(eglot-reconnect): Simplify.
(eglot--connect): Simplify.
* jsonrpc-tests.el (jsonrpc--with-emacsrpc-fixture): Simplify.
* jsonrpc.el (jsonrpc-process-type, jsonrpc-running-p)
(jsonrpc-shutdown): New methods.
* eglot-tests.el (auto-reconnect): Use jsonrpc--process.
(eglot--call-with-dirs-and-files): Use jsonrpc-running-p.
2018-06-08 João Távora <joaotavora@gmail.com>
Support json.c. api purely based on classes
No more jsonrpc-connect.
This is a big commit because of a data loss problem. It should be at
least two separate commits (json.c-support and new API)
* eglot.el (eglot-server-programs): Rework docstring.
(eglot-handle-request): Don't take ID param
(eglot-lsp-server): No more initargs.
(eglot--interactive): Return 5 args.
(eglot): Take 5 args.
(eglot-reconnect): Pass 6 args to eglot--connect.
(eglot--dispatch): Remove.
(eglot--connect): Take 6 args. Rework.
(eglot-handle-notification): Change all specializations
to use a non-keyword symbol spec.
(eglot-handle-request): Remove ID param from all
specializations. Don't pass ID to jsonrpc-reply.
(eglot--register-unregister): Don't take JSONRPC-ID arg.
Don't pass ID to jsonrpc-reply.
* jsonrpc-tests.el (returns-3, signals-an--32603-JSONRPC-error)
(times-out, stretching-it-but-works)
(json-el-cant-serialize-this, jsonrpc-connection-ready-p)
(deferred-action-intime, deferred-action-toolate)
(deferred-action-timeout): Pass JSON objects compatible with
json.c
(jsonrpc--test-client, jsonrpc--test-endpoint): New classes
(jsonrpc--with-emacsrpc-fixture): Don't use jsonrpc-connect.
(jsonrpc-connection-ready-p): Update signature.
* jsonrpc.el: Rewrite commentary.
(jsonrpc-connection): Rework class.
(jsonrpc-process-connection): Rework class.
(initialize-instance): New methods..
(jsonrpc--json-read, jsonrpc--json-encode): Reindent.
(jsonrpc-connect): Delete.
(jsonrpc--json-read, jsonrpc--json-encode):
New functions for working with json.c
(jsonrpc--process-filter): Call them.
(jsonrpc--unanswered-request-id): New variable.
(jsonrpc--connection-receive): Use jsonrpc--unanswered-request-id
(jsonrpc-connection-send): Take keyword params to build message
instead of message.
(jsonrpc-notify, jsonrpc--async-request-1): Use new
jsonrpc-connection-send.
(jsonrpc-reply): Simplify.
* eglot-tests.el (rls-watches-files, rls-basic-diagnostics)
(rls-hover-after-edit): Correctly compare using string= and
non-keyword symbols.
2018-06-06 João Távora <joaotavora@gmail.com>
Slightly polish the flymake integration
For backends, like RLS, that don't textDocument/publishDiagnostics
right away, assume that the file is clean. Since Flymake allows
multiple reportings, it should be OK.
* eglot.el (eglot--unreported-diagnostics): Move variable up here.
(eglot--maybe-activate-editing-mode): Assume no diagnostics on
open.
2018-06-06 João Távora <joaotavora@gmail.com>
* eglot.el (eglot--make-process): use 'utf-8-emacs-unix
Attempt to improve the situation reported in https://github.com/joaotavora/eglot/issues/14.
2018-06-05 João Távora <joaotavora@gmail.com>
Merge master into jsonrpc-refactor (using imerge)
2018-06-05 João Távora <joaotavora@gmail.com>
Shoosh compiler
* eglot.el (eglot-server-ready-p): Use cl-defmethod
2018-06-05 João Távora <joaotavora@gmail.com>
Cleanup the flymake 26.1 hack slightly
* eglot.el (eglot-handle-notification): Use proper flymake
diagnostic types.
(eglot-code-actions): Use eglot--diag-data.
(eglot--make-diag, eglot--diag-data): New aliases to
`flymake-diagnostic-data' and `flymake-make-diagnostic'.
(eglot-error eglot-warning eglot-note)
(dolist eglot-error eglot-warning eglot-note): put
flymake-overlay-control in these.
(eglot-error eglot-warning eglot-note): put corresponding
flymake-category.
(horrible hack at the end): Move the Flymake 26.1 hack here.
2018-06-04 João Távora <joaotavora@gmail.com>
Support purposedly ignoring a server capability
* eglot.el (eglot-ignored-server-capabilites): New defcustom.
(eglot--server-capable): Use it.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/12
2018-06-04 brotzeit <brotzeitmacher@gmail.com>
Fix typos
Close https://github.com/joaotavora/eglot/issues/13.
* eglot.el (eglot--all-major-modes)
(eglot--notify, eglot--xref-reset-known-symbols): Fix typos.
2018-06-03 Justin Burkett <justin@burkett.cc>
Correct prefix keys after use-package-autoload-keymap
By adding events of the form (cons t event) to unread-command-events, Emacs
correctly updates this-command-keys for the subsequent use of the prefix.
Before this change, packages like my which-key were not getting the correct
prefix after use-package-autoload-keymap loaded the relevant package.
See https://github.com/justbur/emacs-which-key/issues/192
2018-06-01 João Távora <joaotavora@gmail.com>
Fix another merge-related bug in eglot-eldoc-function
* eglot.el (eglot-eldoc-function): Correctly destructure
eglot--range-region.
2018-06-01 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-eldoc-function): remove spurious log message
* eglot.el (version): bump to 0.8
2018-06-01 João Távora <joaotavora@gmail.com>
Fix completionitem/resolve
Should fix interoperation with company-quickhelp.
* eglot.el (eglot-completion-at-point): Correctly pass properties
to completionItem/resolve.
2018-06-01 João Távora <joaotavora@gmail.com>
Explicitly trigger eldoc after workspace edits
It's usually a nice thing to do.
* eglot.el (eglot--apply-workspace-edit): Call
eglot-eldoc-function.
2018-06-01 João Távora <joaotavora@gmail.com>
New command m-x eglot-code-actions
Also available when left-clicking diagnostics.
* README.md: Mention eglot-code-actions. Slightly rewrite
differences to lsp-mode.
* eglot.el (eglot-code-actions): New command.
(eglot-handle-notification :textDocument/publishDiagnostics): Use
eglot--make-diag and eglot--overlay-diag-props.
(eglot--mode-line-props): Use eglot--mouse-call.
(eglot--mouse-call): Renamed from eglot--mode-line-call.
(eglot-client-capabilities): List :executeCommand and :codeAction
as capabilities.
(eglot--diag, advice-add flymake--highlight-line): Horrible hack.
(eglot--overlay-diag-props): Horrible hack.
2018-06-01 João Távora <joaotavora@gmail.com>
Revert an unfinished feature that made it to the last commit
commit ee6ab89666704232f744d6262040979b0142c44b
Author: João Távora <joaotavora@gmail.com>
Date: Fri Jun 1 14:43:30 2018 +0100
Add MELPA badge
2018-06-01 João Távora <joaotavora@gmail.com>
Add melpa badge
* README.mdown: Now in MELPA too
2018-06-01 João Távora <joaotavora@gmail.com>
Prevent possible cquery choke on :initializationoptions
Hopefully help debug https://github.com/joaotavora/eglot/issues/10.
* eglot.el (eglot-initialization-options): Use `list'
2018-05-30 João Távora <joaotavora@gmail.com>
Merge master into jsonrpc-refactor (using imerge)
2018-05-29 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.7
2018-05-28 João Távora <joaotavora@gmail.com>
More yak shaving
* eglot.el (eglot--with-live-buffer, eglot--widening): New macros.
(eglot--lambda): Move up here.
(eglot--process-filter): Simplify with eglot--with-live-buffer.
(eglot--async-request): Simplify with eglot--with-live-buffer.
(eglot--TextDocumentItem): Simplify with eglot--widening.
(eglot--signal-textDocument/didChange, eglot--apply-text-edits):
Simplify with eglot--widening.
2018-05-28 João Távora <joaotavora@gmail.com>
New m-x eglot-stderr-buffer useful for debugging
* eglot.el (eglot--make-process): Save stderr buffer in process.
(eglot-stderr-buffer): New interactive command.
(eglot--mode-line-format): Bind C-mouse-1 to new
eglot-stderr-buffer.
2018-05-27 João Távora <joaotavora@gmail.com>
On reconnection, ignore errors of shutting down hung server
* eglot.el
(eglot, eglot-reconnect): Ignore any errors on shutdown.
2018-05-27 João Távora <joaotavora@gmail.com>
Be more criterious before running the idle timer
* eglot.el (eglot--change-idle-timer): make a defvar-local
(eglot--after-change): Only run timer if the buffer is live.
2018-05-27 João Távora <joaotavora@gmail.com>
Make eglot--recent-changes a simpler list
* eglot.el (eglot-server-ready-p): Don't add default method here.
(eglot-server-ready-p): Do it here.
(eglot--outstanding-edits-p): Remove.
(eglot--before-change, eglot--after-change)
(eglot--signal-textDocument/didChange): Use eglot--recent-changes
as a list. Simplify.
(eglot--signal-textDocument/didOpen): Use eglot--recent-changes as
a list.
2018-05-27 João Távora <joaotavora@gmail.com>
Set eglot--versioned-identifier to 0 on didopen
Else cquery will rightfully complain about this.
* eglot.el (eglot--signal-textDocument/didOpen): Also set
eglot--versioned-identifier to 0.
2018-05-27 João Távora <joaotavora@gmail.com>
Correctly apply workspace edits in documentchanges form
This was breaking M-x eglot-rename for cquery
* eglot.el (eglot--apply-workspace-edit): Fix and simplify.
2018-05-27 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.6
2018-05-27 João Távora <joaotavora@gmail.com>
Hopefully fix the flymake bootstrap problem
Immediately after M-x eglot, eglot's use of flymake was having trouble
detecting the first diagnostics sent from the server, resulting in an
annoying "Wait" in the mode-line.
* eglot.el (eglot--current-flymake-report-fn): Move up here.
(eglot--managed-mode): Set eglot--current-flymake-report-fn to nil
on teardown.
(eglot--maybe-activate-editing-mode): Simplify.
(eglot-handle-notification textDocument/publishDiagnostics): Set unreported-diagnostics to a cons.
(eglot-handle-notification eglot-rls window/progress): Simplify.
* eglot-tests.el (rls-basic-diagnostics): Simplify test.
2018-05-27 João Távora <joaotavora@gmail.com>
Set spinner in textdocument/didchange as it matters to rls
Otherwise, the asynch eldoc action will immediately send the
textDocument/documentHighlight requests, without understanding that
they need to be deferred a bit more.
* eglot.el (eglot--signal-textDocument/didChange): Set the spinner
here.
2018-05-27 João Távora <joaotavora@gmail.com>
Fix assorted cquery-related bugs
Some versions of cquery send a :role key as part of the response to
textDocument/documentHighlight. Ignore it for now.
Also cquery sometimes send 0-length ranges upon which we now fallback
to flymake-diag-region.
Finally, in eglot-eldoc-funciton, the previous hack of calling the
eglot--hover-info outside of the when-buffer-window macrolet contained
a bug. It must be called in the correct buffer. Revert the hack and do
it by querying from eglot.el if ert is running tests.
* eglot.el (eglot--range-region): Return a cons and fallback to
flymake-diag-region if server returned a useless range.
(eglot-handle-notification, eglot--hover-info): Update call to
eglot--range-region.
(eglot-help-at-point): Ensure `eglot--hover-info` runs in right
buffer.
(eglot-eldoc-function): Don't abuse eldoc-last-message like this.
Also update call to eglot--range-region. Consider ert-running-test
(eglot--apply-text-edits): Use pcase-lambda.
(ert): require it.
2018-05-26 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.5
2018-05-26 João Távora <joaotavora@gmail.com>
Merge branch 'cquery-support' into master
The conflicts in eglot.el where fixed by calling the new eglot--debug
helper coming from 'cquery-support'. This helper was converted to
allow a non-string format passed directly to eglot--log-event.
Also fixed some compilation warnings.
* eglot.el (eglot--debug): Allow non-string FORMAT to be a JSON
object. (eglot-handle-notification :$cquery/progress)
(eglot-handle-notification :$cquery/setInactiveRegions)
(eglot-handle-notification :$cquery/publishSemanticHighlighting):
Solve compilation warnings.
2018-05-26 João Távora <joaotavora@gmail.com>
Really ensure eglot--shutdown deletes a process completely
* eglot.el (eglot-lsp-server): rename slot "moribund" to
"shutdown-requested"
(eglot--connect): Don't check if shutdown was requested here.
(eglot--process-sentinel): Set shutdown-requested to
:sentinel-done here.
(eglot-shutdown): use eglot--shutdown-requested. Improve check
for process liveness.
2018-05-26 João Távora <joaotavora@gmail.com>
Get rid of eglot--obj, an uninteresting abstraction
* eglot.el (eglot--obj): Get rid of this. It wasn't widely used
anyway.
(eglot-client-capabilities)
(eglot--connect, eglot--async-request, eglot--notify)
(eglot--reply, eglot--pos-to-lsp-position, eglot-handle-request)
(eglot--register-unregister, eglot-handle-request)
(eglot--TextDocumentIdentifier)
(eglot--VersionedTextDocumentIdentifier)
(eglot--TextDocumentItem, eglot--TextDocumentPositionParams)
(eglot--signal-textDocument/didChange)
(eglot--signal-textDocument/didSave)
(xref-backend-identifier-completion-table)
(xref-backend-references, xref-backend-apropos, eglot-imenu)
(eglot-rename): Use list instead of eglot--obj.
2018-05-26 João Távora <joaotavora@gmail.com>
Cleanup deferred request mechanism with a readable log
* eglot.el (eglot-lsp-server): Rework doc of deferred-actions
slot.
(defvar eglot--next-request-id): Move down, now buffer local.
(defun eglot--next-request-id): Remove.
(eglot--call-deferred): Be more informative.
(eglot--async-request): Simplify.
2018-05-26 João Távora <joaotavora@gmail.com>
Simpify eglot--server-receive
* eglot.el (eglot--obj): Cleanup whitespace.
(eglot--server-receive): Simplify.
2018-05-26 João Távora <joaotavora@gmail.com>
Don't rely on flymake's idle timer for textdocument/didchange
* eglot.el (eglot--after-change): Set idle timer here.
(eglot--change-idle-timer): New var.
(eglot--signal-textDocument/didChange): No seed to set spinner here.
(eglot-flymake-backend) Don't send didChange here.
2018-05-25 João Távora <joaotavora@gmail.com>
Document current api breaches a bit
* eglot-tests.el (eglot--call-with-dirs-and-files)
(auto-reconnect): use eglot--process
* eglot.el (eglot-shutdown, eglot, eglot-reconnect)
(eglot--connect): Use eglot--process
(eglot--process): Alias to concentrate the hack here.
(eglot--signal-textDocument/didChange): Tweak comment.
2018-05-25 João Távora <joaotavora@gmail.com>
Merge branch use-eieio-server-defclass into jsonrpc-refactor
2018-05-24 Josh Elsasser <jelsasser@appneta.com>
Log debug messages through eglot--debug
* eglot.el (eglot--async-request, eglot--process-sentinel):
(eglot--call-deferred): Use eglot--debug to log messages to
the server events buffer.
(eglot--server-receive): Demote "Notification unimplemented"
message on missing handlers to a pure debug message.
2018-05-24 Josh Elsasser <jelsasser@appneta.com>
Demote unvisited diagnostics logging to debug level
The PublishDiagnostic spec (LSP Specification, 3.0) does not
strictly forbid the server from publishing diagnostics before
a file has been visited.
* eglot.el (eglot--server-textDocument/publishDiagnostics): Log
the "received diagnostics for unvisited file" warning as debug
to avoid spamming users of compliant language servers.
2018-05-24 Josh Elsasser <jelsasser@appneta.com>
Introduce eglot--debug for unimportant messages
* eglot.el (eglot--debug): New function to log noisy or trivial
messages to the eglot events buffer.
2018-05-24 Josh Elsasser <jelsasser@appneta.com>
Add cquery support for c/c++ projects
Implements minimal support for the core cquery language
server. None of its extensions are implemented yet.
* eglot.el (eglot-server-programs): Add cquery to list
of guessed programs for c-mode and c++-mode.
(eglot-initialization-options eglot-cquery): Specialize init
options to pass cquery a cache directory and disable a flood
of $cquery/progress messages.
(eglot-handle-notification $cquery/publishSemanticHighlighting):
(eglot-handle-notification $cquery/setInactiveRegions):
(eglot-handle-notification $cquery/progress): New no-op functions
to avoid filling logs with "unknown message" warnings.
(eglot-cquery): New eglot-lsp-server subclass.
* README.md: Mention cquery in the README.
2018-05-22 João Távora <joaotavora@gmail.com>
Fix indentation broken by the defclass monster commit
* eglot.el (for, eglot-handle-notification publishDiagnostics)
(eglot-handle-request registerCapability, eglot-handle-request
unregisterCapability, eglot-handle-request applyEdit): fix
indentation.
2018-05-22 João Távora <joaotavora@gmail.com>
Introduce new api methods for experimental clients to use
Should help Josh Elsasser implement pull request https://github.com/joaotavora/eglot/issues/6.
* eglot.el (eglot--obj): Move upwards in file.
(eglot-server-ready-p): Tweak comment.
(eglot-initialization-options): New API defgeneric..
(eglot-client-capabilities): New API defgeneric.
(eglot--client-capabilities): Remove.
(eglot--connect): Call new API methods here.
2018-05-22 João Távora <joaotavora@gmail.com>
Do rust's rls hack properly with new class-based api
* eglot.el (eglot-server-ready-p): New API method.
(eglot-handle-request, eglot-handle-notification): New
defgeneric's.
(eglot--ready-predicates, eglot--server-ready-p): Remove.
(eglot--async-request): Call eglot-server-ready-p.
(eglot--request): Tweak comment.
(eglot--rls-probably-ready-for-p): Remove.
(eglot-server-ready-p eglot-rls): Adapts earlier
eglot--rls-probably-ready-for-p.
(eglot-handle-notification eglot-rls): Specialize to eglot-rls.
(eglot-rls): New eglot-lsp-server subclass.
* eglot-tests.el (auto-detect-running-server)
(auto-reconnect, basic-completions)
(hover-after-completions): Use eglot--interactive
2018-05-22 João Távora <joaotavora@gmail.com>
Use an eieio class to represent a server.
Allow clients of eglot.el to use specific server classes to represent
experimental servers.
Wherever you used to read "proc" you now probably read "server",
unless it's really the process properties that are sought after.
Should help Josh Elsasser implement pull request https://github.com/joaotavora/eglot/issues/6.
* eglot-tests.el (eglot--call-with-dirs-and-files)
(auto-detect-running-server, auto-reconnect, basic-completions)
(hover-after-completions): Adapt to server defclass instead of
proc.
* eglot.el
(eglot-server-programs): Add docstring.
(eglot--processes-by-project): Removed.
(eglot--servers-by-project): New variable.
(eglot--current-process): Removed.
(eglot--current-server): New function.
(eglot-server): New class.
(cl-print-object eglot-server): New method.
(eglot--current-process-or-lose): Removed.
(eglot--current-server-or-lose): New function.
(eglot--define-process-var): Remove.
(eglot--make-process): Rework.
(eglot--project-short-name): Remove.
(eglot--connect): Rework.
(eglot--interactive): Rework to allow custom classes.
(eglot, eglot-reconnect, eglot--process-sentinel)
(eglot--process-filter, eglot-events-buffer, eglot--log-event):
Rework.
(eglot--process-receive): Removed.
(eglot--server-receive): New function.
(eglot--send): Renamed from eglot--process-send.
(eglot--process-send): Removed.
(eglot-forget-pending-continuations)
(eglot-clear-status, eglot--call-deferred)
(eglot--server-ready-p, eglot--async-request, eglot--request)
(eglot--notify, eglot--reply, eglot--managed-mode-onoff)
(eglot--maybe-activate-editing-mode, eglot--mode-line-format):
Rework.
(eglot-shutdown): Rework.
(eglot-handle-notification *, eglot-handle-request *)
(eglot--register-unregister)
(eglot--signal-textDocument/didOpen)
(eglot--signal-textDocument/didClose)
(eglot--signal-textDocument/willSave)
(eglot--signal-textDocument/didSave)
(xref-backend-identifier-completion-table)
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos, eglot-completion-at-point)
(eglot-help-at-point, eglot-eldoc-function, eglot-imenu)
(eglot-rename)
(eglot--register-workspace/didChangeWatchedFiles)
(eglot--unregister-workspace/didChangeWatchedFiles)
(eglot--rls-probably-ready-for-p, eglot-handle-notification):
Rework (proc->server)
fixup
* eglot-tests.el (eglot--call-with-dirs-and-files)
(auto-detect-running-server, auto-reconnect, basic-completions)
(hover-after-completions):
* eglot.el (eglot--processes-by-project): Removed.
(eglot--servers-by-project): New variable.
(eglot--current-process): Removed.
(eglot--current-server): New function.
2018-05-21 João Távora <joaotavora@gmail.com>
Introduce eglot-handle-request and eglot-handle-notification as api
* eglot.el (eglot--process-receive): Call eglot-handle-request and
eglot-handle-notification.
(eglot-handle-notification, eglot-handle-request): New generic
functions.
(eglot--server-window/showMessage)
(eglot--server-window/progress)
(eglot--server-telemetry/event, eglot--server-window/logMessage):
Convert to eglot-handle-notification.
(eglot-handle-request, eglot--server-client/registerCapability)
(eglot--server-client/unregisterCapability)
(eglot-handle-request): Convert to eglot-handle-request.
2018-05-20 João Távora <joaotavora@gmail.com>
Get rid of jsonrpc.el customization group and timeout
* eglot.el (eglot-shutdown, eglot--signal-textDocument/willSave):
Pass :timeout to jsonrpc-request.
(defadvice jsonrpc-request): Add :timeout kwarg
* jsonrpc.el (defgroup jsonrpc, jsonrpc-request-timeout): Remove.
(jrpc-default-request-timeout): New constant.
(jsonrpc-async-request): Use it.
(jsonrpc-request): Accept timeout kwarg and pass it on.
2018-05-20 João Távora <joaotavora@gmail.com>
Heroically merge master into jsonrpc-refactor (using imerge)
2018-05-20 João Távora <joaotavora@gmail.com>
Rename jrpc.el to jsonrpc.el
* eglot.el [everywhere]: jrpc -> jsonrpc everywhere.
Reindent.
* eglot-tests.el [everywhere]: jrpc -> jsonrpc everywhere.
* jsonrpc.el: New file.
* Makefile: jrpc.el -> jsonrpc.el
2018-05-19 João Távora <joaotavora@gmail.com>
Fix a bug introduced in the previous commit
* eglot.el (eglot--format-markup): Ignore errors when calling
possibly unknown functions.
(eglot-completion-at-point): Use eglot--format-markup
(eglot--hover-info): Yak shaving
2018-05-19 João Távora <joaotavora@gmail.com>
Rewrite a couple of defs and shave a yak
* eglot.el (eglot--define-process-var): Simplify.
(eglot--format-markup): Rewrite.
(eglot--warn, eglot--pos-to-lsp-position)
(eglot--lsp-position-to-point, eglot--server-capable)
(eglot--maybe-activate-editing-mode)
(eglot--server-textDocument/publishDiagnostics)
(eglot--server-workspace/applyEdit, eglot--hover-info): Yak
shaving.
2018-05-19 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.4
2018-05-19 John Wiegley <johnw@newartisans.com>
Merge pull request from akhramov/fix/ensure-system-package-cleanup
ensure-system-package cleanup
GitHub-reference: https://github.com/jwiegley/use-package/issues/683
2018-05-19 Artyom Khramov <futu.fata@gmail.com> (tiny change)
Ensure system package cleanup
The function introduced in https://github.com/jwiegley/use-package/issues/673 wasn't declared at compile time, and
it made byte compiler unhappy. Moreover, it was forgotten to remove
redundant compile time variables. Thanks @tarsius for pointing that
out.
This change
* Removes redundant variable declarations
* Adds `system-packages-get-command` function declaration.
2018-05-19 João Távora <joaotavora@gmail.com>
Add some completion tests for pyls
* eglot-tests.el (edebug): Require it.
(eglot--call-with-dirs-and-files): Simplify.
(eglot--call-with-test-timeout): Don't timeout if edebug.
(auto-detect-running-server, auto-reconnect): Skip unless rls is
found.
(basic-completions): New test.
(hover-after-completions): New failing test.
* eglot.el (eglot-eldoc-function): Force write
eldoc-last-message, for tests sake.
2018-05-19 João Távora <joaotavora@gmail.com>
Handle managed buffers in own process var
This should save some trouble when testing noninteractively. Because
eglot--shutdown didn't turn off the minor mode, test code running
immediately after it could still make didClose requests, for example.
The sentinel was the previous responsible for turning off the minor
mode and didn't get a chance to run in that case. Now eglot--shutdown
is also responsible for turning off the minor mode.
All this should be hidden behind eglot--managed-mode-onoff.
* eglot.el (eglot--managed-buffers): New process-local variable.
(eglot--process-sentinel): Turn off managed mode.
(eglot--managed-mode-onoff): New function.
(eglot--managed-mode): Don't offer to kill server here.
(eglot--buffer-managed-p): Remove.
(eglot--maybe-activate-editing-mode): Activate mode here.
(eglot-shutdown): Turn off minor mode here.
(eglot--server-window/progress): Simplify slightly.
2018-05-19 João Távora <joaotavora@gmail.com>
Robustness fixes for the request mechanism
* eglot.el (eglot--async-request): Pass actual id to eglot--log-event
(eglot--request): Also cancel any continuations.
2018-05-19 João Távora <joaotavora@gmail.com>
Check capabilities before sending :completionitem/resolve
* eglot.el (eglot--server-capable): Rewrite.
(eglot-completion-at-point): Check caps before sending
:completionItem/resolve
2018-05-19 João Távora <joaotavora@gmail.com>
Better decide what text exactly to present as completions
For inserting, :insertText takes precedence over :label.
For annotating, first sentence of :documentation, then :detail,
then :kind name.
Also remember to send didChange in the :exit-function
* eglot.el (eglot-completion-function): Rework main function and
:annotation-function, and :exit-function
2018-05-19 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-clear-status): remember to update modeline
2018-05-19 João Távora <joaotavora@gmail.com>
Collect regions to change as markers, then edit
* eglot.el (eglot--lsp-position-to-point): Accept MARKER optional
arg.
(eglot--range-region): Accept MARKERS optional arg. Return a list.
(eglot--server-textDocument/publishDiagnostics)
(eglot--hover-info, eglot-eldoc-function): eglot--range-region
returns a list, not a cons.
(eglot--apply-text-edits): First collect regions as markers, then
edit.
GitHub-reference: close https://github.com/joaotavora/eglot/issues/4
2018-05-19 João Távora <joaotavora@gmail.com>
If we're going to send rootpath, better send an absolute one
javascript-typescript-langserver complained.
* eglot.el (eglot--connect): Use expand-file-name.
2018-05-19 João Távora <joaotavora@gmail.com>
Robustify timer handling for eglot--async-request
This basically cherry-picks an ealier commit for the jsonrpc-refactor
branch:
a2aa1ed..: João Távora 2018-05-18 Robustify timer handling for jrpc-async-request
* jrpc.el (jrpc--async-request): Improve timeout handling. Return a list (ID TIMER)
(jrpc--request): Protect against user-quits, cancelling timer
2018-05-19 João Távora <joaotavora@gmail.com>
Simplify some infrastructure fucntions
* eglot.el (eglot--contact): Simplify docstring.
(eglot--make-process): Simplify.
(eglot--connect): Simplify.
(eglot--interactive): Simplify and correct odd bug.
(eglot--process-sentinel): Correct messages. Delete before
attempting reconnection.
(eglot-shutdown): Simplify.
2018-05-19 Naoya Yamashita <conao3@gmail.com>
fix gethash default value for use-package-statistics-time
float-time expect list like (HIGH LOW USEC PSEC)
> HIGH has the most significant bits of the seconds, while LOW has the
> least significant 16 bits. USEC and PSEC are the microsecond and
> picosecond counts.
by `current-time` in editfns.c
2018-05-18 João Távora <joaotavora@gmail.com>
Jrpc.el should know nothing of mode-line updates
* eglot.el (eglot--dispatch): METHOD can be a symbol.
Call force-mode-line-update here.
2018-05-18 João Távora <joaotavora@gmail.com>
Improve jrpc.el's doc (and change jrpc-request's protocol a tiny bit)
* jrpc.el (jrpc-async-request)
(jrpc-request,jrpc-notify,jrpc-reply): Improve docstring.
(jrpc-connect): Improve docstring and add autoload cookie
(jrpc-request): DEFERRED param is now &key
(defgroup jrpc): Fix description.
* eglot.el (advice-add jrpc-request): Use &key deferred.
(eglot-completion-at-point): Pass :deferred to jrpc-request
2018-05-18 João Távora <joaotavora@gmail.com>
Merge branch 'master' into jsonrpc-refactor (using good ol' git merge)
2018-05-17 João Távora <joaotavora@gmail.com>
* eglot.el (version): bump to 0.3
2018-05-17 João Távora <joaotavora@gmail.com>
Make it work on windows
Apparently passing :coding 'no-conversion to make-process on windows
is essential to receive any text at all in the process filter.
Also needed to tweak uri-to-path and path-to-uri.
Thanks to lsp-mode.el for these hints
* eglot.el (eglot--make-process): Pass :coding 'no-conversion to
make-process.
(eglot--path-to-uri): Add a forward slash if windows-nt.
(eglot--uri-to-path): Remove a forward slash if windows-nt.
(eglot--server-textDocument/publishDiagnostics): Simplify and use
eglot--uri-to-path.
2018-05-17 João Távora <joaotavora@gmail.com>
Fix eglot--error and eglot--message helpers
* eglot.el (eglot--error, eglot--message):
Safely interpret %s.
2018-05-17 João Távora <joaotavora@gmail.com>
* eglot.el (eglot--lambda): add missing indent spec.
2018-05-16 João Távora <joaotavora@gmail.com>
Simplify some function calling infrastructure
eglot--mapply is a confusing abstraction. Hide some of that confusion
behind eglot--lambda. More stably dispatch server notifications and
requests without introspecting their contents.
* eglot.el (eglot--process-receive): Simplify.
(eglot--async-request): Improve doc.
(eglot--request): Simplify.
(eglot--mapply): Remove.
(xref-backend-identifier-completion-table)
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos, eglot-completion-at-point)
(eglot-eldoc-function, eglot-imenu, eglot--apply-text-edits):
Don't use eglot--mapply, use normal mapcar/mapc.
2018-05-16 João Távora <joaotavora@gmail.com>
Replace eglot--with-lsp-range with a function and pcase-let
* eglot.el (eglot--with-lsp-range): Remove.
(eglot--range-region): New function.
(eglot--server-textDocument/publishDiagnostics)
(eglot--hover-info, eglot-eldoc-function)
(eglot--apply-text-edits): Use it.
2018-05-16 João Távora <joaotavora@gmail.com>
Simpler callback protocol for jsonrpc parameters and results
Instead of introspecting the :params or :result object to discover if
an object is present, and changing the Elisp function call type
(funcall vs apply) accordingly, alway funcall. It's up to the
application to destructure if it wishes. jrpc-lambda can help with
that and keep the application code simple.
* eglot.el (eglot--on-shutdown): Fix indentation.
(eglot--dispatch): Simplify.
(xref-backend-identifier-completion-table)
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos, eglot-completion-at-point)
(eglot-eldoc-function, eglot-imenu, eglot--apply-text-edits):
Don't use jrpc-mapply.
* jrpc.el (jrpc--process-receive): Allow only keys defined in
JSONRPC2.0
(jrpc--process-receive): Don't overload function call type based
on remote response.
(jrpc-lambda): Return a unary lambda.
(jrpc-request): Simplify.
(jrpc-mapply): Remove.
2018-05-16 João Távora <joaotavora@gmail.com>
More flexible jrpc.el and improve eglot.el's doc
Generalize and rework CONTACT arg to jrpc-connect
* eglot.el (eglot--command-history): Tweak docstring.
(eglot--interactive): Rework.
(eglot): Rework docstring. COMMAND is now CONTACT.
(eglot--connect): Use new jrpc-connect protocol.
(eglot-server-programs): Reword doc.
* jrpc.el (jrpc--make-process): Use new form of CONTACT.
(jrpc-connect): Explain new semantics of CONTACT.
2018-05-15 João Távora <joaotavora@gmail.com>
Merge master into jsonrpc-refactor (using imerge)
2018-05-15 João Távora <joaotavora@gmail.com>
Add php's php-language-server to built-in guessed servers
Closes https://github.com/joaotavora/eglot/issues/1. The problem in that issue is that php-language-server has a
bug when it's not passed it the deprecated ":rootPath" field. The bug
doesn't happen if the ":processId" field is also absent. Eglot was
triggering the bug, because it didn't pass ":rootPath", but there's
nothing wrong in doing so.
* README.md: Add php-language-server to the built-in list.
* eglot.el (eglot-server-programs): Add php-language-server.
(eglot--connect): Also pass (deprecated) rootPath.
2018-05-15 João Távora <joaotavora@gmail.com>
Bump version and slightly improve doc
* eglot.el: Bump version. Add nicer Commentary header.
(eglot): Improve docstring.
* README.md: Update
2018-05-14 João Távora <joaotavora@gmail.com>
More quietly report request timeouts as events
* eglot.el (eglot--sync-request): Use eglot--log-event
2018-05-14 João Távora <joaotavora@gmail.com>
Shutdown server if connection initialization fails
Also tweak autoreconnection logic
* eglot.el (eglot--connect): Immediately `eglot-shutdown` if
connection initialization failed. Don't treat interactive calls
specially.
(eglot--process-sentinel): Tweak messages.
2018-05-14 João Távora <joaotavora@gmail.com>
Fix a ridiculous bug when generating transient projects
* eglot.el (eglot--find-current-process, eglot--interactive): Fix
horrible bug.
2018-05-14 João Távora <joaotavora@gmail.com>
Fix a ridiculous bug when generating transient projects
* eglot.el (eglot--find-current-process, eglot--interactive): Fix
horrible bug.
2018-05-14 João Távora <joaotavora@gmail.com>
Jrpc-connect is now passed a generic dispatching function
* eglot.el (eglot--dispatch): New helper.
(eglot--connect): Use it.
* jrpc.el (jrpc--dispatcher, jrpc--request-continuations)
(jrpc--server-request-ids): New process-local var.
(jrpc--pending-continuations, jrpc--method-prefix): Remove.
(jrpc-connect): Take DISPATCHER instead of PREFIX.
(jrpc--process-receive): Use proc's dispatcher.
(jrpc--process-send): Make private.
(jrpc-forget-pending-continuations, jrpc-async-request)
(jrpc-reply, jrpc-notify): Use new function names.
2018-05-14 João Távora <joaotavora@gmail.com>
Merge master into jsonrpc-refactor (using imerge)
2018-05-14 João Távora <joaotavora@gmail.com>
Proper server shutdown when jrpc.el is used
The shutdown hook can't be a buffer-local thing, it has
to be a server property. Also, on shutdown in eglot.el,
remember to first unmanage buffers and only then affect
eglot--processes-by-project.
* eglot.el (eglot--on-shutdown): reverse order of first
two sexps.
(eglot--connect): Pass a shutdown function to jrpc-connect
(eglot--managed-mode): Don't use jrpc-server-moribund-hook
(eglot--buffer-managed-p): Simplify. Use eglot--find-current-process.
2018-05-14 João Távora <joaotavora@gmail.com>
Support didchangewatchedfiles with dynamic registration
RLS uses this, presumaly for knowing about Cargo.toml changes and stuff.
* README.md: Update protocol compliance.
* eglot.el (filenotify): Require it.
(eglot--file-watches): New process-local var.
(eglot--process-sentinel): Kill all watches
(eglot--register-unregister): New helper.
(eglot--server-client/registerCapability): Simplify.
(eglot--server-client/unregisterCapability): New method.
(eglot--register-workspace/didChangeWatchedFiles)
(eglot--unregister-workspace/didChangeWatchedFiles): New
capability.
(eglot--client-capabilities): Update.
2018-05-14 João Távora <joaotavora@gmail.com>
Remove an unused variable
* eglot.el (eglot--expect-carriage-return): Get rid of this.
2018-05-14 João Távora <joaotavora@gmail.com>
Now send willsavewaituntil
* eglot.el (eglot--client-capabilities): Report willSaveWaitUntil.
(eglot--server-workspace/applyEdit): Fix docstring.
(eglot--signal-textDocument/willSave): Send willSaveWaitUntil
(eglot--signal-textDocument/didOpen)
(eglot--signal-textDocument/didClose): Don't eglot--obj.
(eglot--apply-text-edits): Simplify. Use current buffer.
(eglot--apply-workspace-edit): Use new eglot--apply-text-edits.
2018-05-14 João Távora <joaotavora@gmail.com>
Don't define a menu if nothing to show there for now
* eglot.el (eglot-menu): Remove it.
(eglot--mode-line-format): Don't define a menu.
2018-05-13 João Távora <joaotavora@gmail.com>
Use rls in travis ci and add actual tests
Also run a hook when connected
* eglot-tests.el (eglot--with-dirs-and-files)
(eglot--make-file-or-dirs, eglot--call-with-dirs-and-files)
(eglot--find-file-noselect): New helpers.
(auto-detect-running-server, auto-reconnect): New actual tests.
* eglot.el (eglot-connect): Run hook when connected
(eglot-connect-hook): New variable
* .travis.yml: Use rust stable and install rls
* README.md: Update mention of automated tests
2018-05-13 João Távora <joaotavora@gmail.com>
Fix automatic project creation
* eglot.el (eglot): Take PROJECT arg. Return process.
(eglot--interactive): Returns a project.
2018-05-13 João Távora <joaotavora@gmail.com>
Work with any old directory, no formal project needed
Actually, uses a "transient project" which project-current returns if
desperate.
* README.md: Update
* eglot.el (eglot--current-process)
(eglot--current-process-or-lose): Simplify.
(eglot): Maybe prompt user for project.
2018-05-13 João Távora <joaotavora@gmail.com>
Ask server for textdocument/signaturehelp if it supports it
* eglot.el (eglot--client-capabilities): Capable of signature Help.
(eglot--sig-info): Helper for eglot-eldoc-function.
(eglot-eldoc-function): Send textDocument/signatureHelp
* README.md: Update to mention textDocument/signatureHelp
2018-05-13 João Távora <joaotavora@gmail.com>
Fix copyright header. obviously not since 2003
2018-05-13 Justin Talbott <justin@waymondo.com>
Merge pull request from andschwa/remap-command
Document that remapping commands is supported with bind-key
GitHub-reference: https://github.com/jwiegley/use-package/issues/674
2018-05-12 João Távora <joaotavora@gmail.com>
Refactor json-rpc lib jrpc.el from eglot.el
* eglot.el [too many to mention]: Move lower level functions to
jrpc.el. Hook onto jrpc's external interfaces.
* jrpc.el: New file
2018-05-12 João Távora <joaotavora@gmail.com>
Reinstate the catch/loop/throw idiom in eglot-request
This reverts parts of commit fabee14ed5b32c30c6ac5cb1ce88f387522a6a1e.
Unfortunately, this may cause problems when calling the error
callbacks directly as in the process sentinel. In that particular
scenario the accept-process-output won't have return, because no
output has is being handled. Consequently, if we're unlucky, we have
another 30 seconds to way before the flag is tested and the loop
exits.
* eglot.el (eglot-request): Use catch/loop/throw again
2018-05-12 João Távora <joaotavora@gmail.com>
Fix copyright header. obviously not since 2003
2018-05-12 João Távora <joaotavora@gmail.com>
New command eglot-help-at-point and a readme update
* README.md (Commands and keybindings): New section.
* eglot.el (eglot-eldoc-function): Use eglot--hover-info.
Don't care about kind in highlightSymbol
(eglot--hover-info): New helper.
(eglot-help-at-point): New command.
2018-05-11 João Távora <joaotavora@gmail.com>
Get rid of catch/loop/throw idiom (suggested by thien-thi nguyen)
* eglot.el (eglot--process-filter)
(eglot--request): Replace catch/loop/throw idiom with let/test/loop/set
2018-05-11 João Távora <joaotavora@gmail.com>
Rework autoreconnection logic
Can't be a global var, has to be a per process thing.
* eglot.el (eglot-autoreconnect): New defcustom
(eglot--inhibit-autoreconnect): Renamed from eglot--inhibit-autoreconnect
(eglot--connect): Run autoreconnect timer here.
(eglot--inhibit-auto-reconnect): Removed.
(eglot--process-sentinel): Don't run timer here. Rework.
(eglot, eglot-reconnect): Pass INTERACTIVE to eglot--connect.
2018-05-10 João Távora <joaotavora@gmail.com>
Duh, json.el is in emacs, and json-mode.el is useless here
* eglot.el (Package-Requires): Don't require json-mode
2018-05-10 João Távora <joaotavora@gmail.com>
Prepare to sumbit to gnu elpa
* eglot.el: Update headers.
2018-05-10 João Távora <joaotavora@gmail.com>
(eglot--xref-make): fix use of cl-destructuring-bind.
2018-05-10 João Távora <joaotavora@gmail.com>
Misc little adjustments for readability
* eglot.el (eglot--log-event, eglot--process-receive)
(eglot--xref-make, xref-backend-apropos): Use cl-destructuring-bind.
(eglot--server-window/showMessageRequest): Compact.
2018-05-10 João Távora <joaotavora@gmail.com>
Support :completionitem/resolve
This is quite handy with company and company-quickhelp
* eglot.el (eglot-completion-at-point): Send
:completionItem/resolve
* README.md: Mention completionItem/resolve
2018-05-10 João Távora <joaotavora@gmail.com>
Rename functions. eglot--request is now the synchronous one
* eglot.el (eglot--connect, eglot-shutdown)
(xref-backend-identifier-completion-table)
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos, eglot-completion-at-point, eglot-rename):
Call eglot--request.
(eglot--async-request): Renamed from eglot--request.
(eglot--request): Renamed from eglot--sync-request.
(eglot--TextDocumentIdentifier)
(eglot--VersionedTextDocumentIdentifier)
(eglot--TextDocumentPositionParams, eglot--TextDocumentItem):
Renamed from the more verbose eglot--current-buffer-* variante.
(eglot-rename, eglot-imenu, eglot-eldoc-function)
(eglot-completion-at-point, xref-backend-definitions)
(xref-backend-identifier-at-point)
(eglot--signal-textDocument/didSave)
(xref-backend-identifier-completion-table)
(eglot--signal-textDocument/didClose)
(eglot--signal-textDocument/didOpen)
(eglot--signal-textDocument/didChange): Use new function names.
2018-05-10 João Távora <joaotavora@gmail.com>
Friendlier m-x eglot
* eglot.el (eglot-server-programs): Renamed from eglot-executables
(eglot--interactive): Redesign
(eglot): Docstring.
(eglot--connect): Now a synchronous gig.
(eglot--interactive): Friendlier.
(eglot): Improve docstring, rework a bit.
(eglot-reconnect): Rework a bit.
(eglot--process-sentinel): Insert "byebye" ruler here.
* README.md: Update
2018-05-10 João Távora <joaotavora@gmail.com>
Improve eglot-eldoc-function
Use the :range key if the server provided it. Also simplify code with
a new eglot--with-lsp-range macro.
* eglot.el (eglot--format-markup): Tweak comment.
(eglot--with-lsp-range): New helper macro.
(eglot--server-textDocument/publishDiagnostics)
(eglot--apply-text-edits): Use it.
(eglot-eldoc-function): Use range if server provides it.
2018-05-10 João Távora <joaotavora@gmail.com>
Reduce log chatter
* eglot.el (eglot--process-sentinel, eglot--request): Use
eglot--log-event.
(eglot--log-event): Print "message" if type unknown.
(eglot--debug, eglot--log): Remove.
(eglot--server-window/logMessage, eglot--server-telemetry/event):
Make noops.
(eglot--call-deferred): Also reduce chatter here.
2018-05-10 João Távora <joaotavora@gmail.com>
Only call deferred actions after a full message has been received
Otherwise it can be quite wasteful.
* eglot.el (eglot--process-filter): Don't eglot--call-deferred here.
(eglot--process-receive): Do it here.
2018-05-10 João Távora <joaotavora@gmail.com>
Resist server failure during synchronous requests
Calling the error handler unprotected could lead to the rest of the
sentinel not running at all. This defeated the auto-reconnection in
Rust, for example.
* eglot.el (eglot--process-sentinel): Rework.
2018-05-10 João Távora <joaotavora@gmail.com>
Simplify mode-line updating logic
* eglot.el (eglot--define-process-var): Simplify.
(eglot--short-name, eglot--spinner, eglot--status): Don't
auto-update mode-line.
(eglot--process-receive): Update it here.
2018-05-10 João Távora <joaotavora@gmail.com>
More rls-specifics: update flymake diags when indexing done
RLS could/should report diagnostics for every opened file, even if
there aren't any problems. Because it doesn't, loop for every buffer
managed by the process and call eglot--current-flymake-report-fn
* eglot.el
(eglot--server-window/progress): Call eglot--current-flymake-report-fn
2018-05-10 João Távora <joaotavora@gmail.com>
Adjust flymake integration
When opening a new file (signalling textDocument/didOpen) it makes
sense to call the flymake callback (if it exists) with no diagnostics,
just to get rid of that "Wait", since we don't know if later in this
callback cycle the server will ever report new diagnostics.
* eglot.el (eglot--managed-mode): Don't call flymake-mode or eldoc-mode
(eglot--managed-mode-hook): Add them here.
(eglot--maybe-activate-editing-mode): Call flymake callback.
(eglot--server-textDocument/publishDiagnostics): Set unreported
diagnostics to nil if invoking callback.
2018-05-10 João Távora <joaotavora@gmail.com>
Shorten summary line to appease package-lint.el
2018-05-10 João Távora <joaotavora@gmail.com>
More correctly setup rust-mode-related autoloads
By autoloading the add-hook form and the eglot--setup-rls-idiosyncrasies
definition, a user can start rust-mode without loading eglot.el along
with it.
* eglot.el (rust-mode-hook)
(eglot--setup-rls-idiosyncrasies): Wrap in autoloaded progn.
2018-05-09 João Távora <joaotavora@gmail.com>
Add minimal headers, commentary and autoloads
2018-05-09 João Távora <joaotavora@gmail.com>
Fancier rls spinner
* eglot.el (eglot--mode-line-format): Use (nth 3) of
eglot--spinner.
(eglot--server-window/progress): Save detail message in spinner.
2018-05-09 João Távora <joaotavora@gmail.com>
New "deferred requests" that wait until server is ready
Calling textDocument/hover or textDocument/documentHighlight before
the server has had a chance to process a textDocument/didChange is
normally useless. The matter is worse for servers like RLS which only
become ready much later and send a special notif for it (see
https://github.com/rust-lang-nursery/rls/issues/725).
So, keeping the same coding style add a DEFERRED arg to eglot--request
that makes it maybe not run the function immediately. Add a bunch of
logic for probing readiness of servers.
* README.md: Update
* eglot.el (eglot--deferred-actions): New process-local var.
(eglot--process-filter): Call deferred actions.
(eglot--request): Rewrite.
(eglot--sync-request): Rewrite.
(eglot--call-deferred, eglot--ready-predicates)
(eglot--server-ready-p): New helpers.
(eglot--signal-textDocument/didChange): Set spinner and call
deferred actions.
(eglot-completion-at-point): Pass DEFERRED to eglot-sync-request.
(eglot-eldoc-function): Pass DEFERRED to eglot-request
(eglot--rls-probably-ready-for-p): New helper.
(rust-mode-hook): Add eglot--setup-rls-idiosyncrasies
(eglot--setup-rls-idiosyncrasies): New helper.
2018-05-09 João Távora <joaotavora@gmail.com>
Call eglot-eldoc-function after completion finishes
* eglot.el (eglot-completion-at-point): Call
eglot-eldoc-function after completion finishes.
2018-05-09 João Távora <joaotavora@gmail.com>
Simplify `eglot-shutdown`
* eglot.el (eglot, eglot-reconnect)
(eglot--managed-mode): Call new eglot-shutdown.
(eglot-shutdown): Simplify.
(eglot--process-sentinel): Also call error functions.
(eglot--process-filter): Reindent.
2018-05-09 João Távora <joaotavora@gmail.com>
Get rid of eglot-mode
* eglot.el (eglot--managed-mode): Don't call eglot-mode. When
shutting down, offer to kill server.
(mode-line-misc-info): Update to use eglot--managed-mode
2018-05-09 João Távora <joaotavora@gmail.com>
Simplify eglot--signal-textdocument/didchange
* eglot.el (eglot--recent-before-changes)
(eglot--recent-after-changes): Delete.
(eglot--recent-changes): New var.
(eglot--outstanding-edits-p, eglot--before-change)
(eglot--after-change): Rewrite.
(eglot--signal-textDocument/didChange): Rewrite.
(eglot--signal-textDocument/didOpen): Initialize
buffer-local eglot--recent-changes here.
2018-05-09 João Távora <joaotavora@gmail.com>
Fix odd bugs and tweak stuff
* eglot.el (eglot--log-event): Insert before markers.
(eglot--process-receive): Shave lines.
(xref-backend-references): Use cl-return-from.
(eglot--log-event): Simplify
(eglot-completion-at-point): Saner annotation
2018-05-08 João Távora <joaotavora@gmail.com>
Support workspace/applyedit
* eglot.el (eglot--reply): Don't send result or error if not
provided.
(eglot--server-workspace/applyEdit): New server method.
(eglot--apply-text-edits): Rework.
(eglot--apply-workspace-edit): New helper.
(eglot-rename): Simplify.
2018-05-08 João Távora <joaotavora@gmail.com>
Support textdocument/rename
* README.md: Mention rename support.
* eglot.el (eglot--uri-to-path): Handle uri hidden in keywords.
(eglot--apply-text-edits): New helper.
(eglot-rename): New interactive command.
(eglot--client-capabilities): Add rename capability.
2018-05-08 João Távora <joaotavora@gmail.com>
Reasonable textdocument/documenthighlight support
* README.md: Update.
* eglot.el (eglot--current-buffer-TextDocumentPositionParams): New
helper.
(xref-backend-identifier-completion-table): Refactor a bit.
(xref-backend-identifier-at-point): Use when-let and
eglot--current-buffer-TextDocumentPositionParams
(xref-backend-definitions, xref-backend-references): Refactor a
bit.
(eglot-completion-at-point): Use
eglot--current-buffer-TextDocumentPositionParams
(eglot-eldoc-function): Rewrite to handle
textDocument/documentHighlight.
(eglot--highlights): New variable.
(eglot--client-capabilities): Update with support for documentHighlight.
2018-05-07 João Távora <joaotavora@gmail.com>
Fix odd bugs
* eglot.el (eglot--process-receive, eglot--request): Set status to
actual error message.
(eglot--managed-mode): Manage imenu-create-index-function
correctly.
(eglot--mode-line-format): Print error status.
2018-05-07 João Távora <joaotavora@gmail.com>
When killing server, always wait 3 seconds
* eglot.el (eglot--request): Accept TIMEOUT param.
2018-05-07 João Távora <joaotavora@gmail.com>
Try to fix some textdocument/completion bugs
* eglot.el (eglot-completion-at-point): Rework slightly.
2018-05-07 João Távora <joaotavora@gmail.com>
Half-decent imenu support via textdocument/documentsymbol
* README.md: Update capability
* eglot.el (eglot--lsp-position-to-point): New function.
(eglot--managed-mode): Handle imenu-create-index-function.
(eglot--server-textDocument/publishDiagnostics): Use
eglot--lsp-position-to-point.
(eglot-imenu): New function.
(eglot--client-capabilities): Capable of documentSymbol.
2018-05-07 João Távora <joaotavora@gmail.com>
Only request stuff that server says it's capable of
* eglot.el (eglot--server-capable): New helper.
(eglot-xref-backend)
(xref-backend-identifier-completion-table)
(xref-backend-references, xref-backend-apropos)
(eglot-completion-at-point, eglot-eldoc-function): Use it.
2018-05-07 João Távora <joaotavora@gmail.com>
Simplify mode-line code with a helper.
* eglot.el (eglot--mdoe-line-props): New helper.
(eglot--mode-line-format): Use it.
2018-05-07 João Távora <joaotavora@gmail.com>
Get rid of eglot--buffer-open-count
Hasn't really proved useful yet.
* eglot.el (eglot--buffer-open-count): Remove.
(eglot--signal-textDocument/didOpen)
(eglot--signal-textDocument/didClose): Simplify.
2018-05-07 João Távora <joaotavora@gmail.com>
Get rid of eglot--special-buffer-process
Hasn't really proved useful yet.
* eglot.el (eglot--special-buffer-process): Delete.
(eglot--current-process): Simplify.
(eglot--events-buffer): Simplify.
2018-05-07 João Távora <joaotavora@gmail.com>
* eglot.el: reformat to shave off some lines.
2018-05-07 João Távora <joaotavora@gmail.com>
Fix bug in hover support
* eldoc.el (eglot-eldoc-function): Use eglot--format-markup.
(subr-x): Require it.
(eglot--format-markup): Pacify byte-compiler.
2018-05-07 João Távora <joaotavora@gmail.com>
Clean up client capabilities
* eglot.el (eglot--client-capabilities): Clean up client
capabilities.
2018-05-07 João Távora <joaotavora@gmail.com>
Half-baked textdocument/hover support
* eglot.el (eglot--format-markup): New helper.
(eglot--managed-mode): Handle eldoc-documentation-function.
(eglot-eldoc-function): New function.
* README.md: update
2018-05-07 João Távora <joaotavora@gmail.com>
Tweak the async request engine.
* eglot.el (eglot--request): Return the continuation id.
(eglot--lambda): Move up in the file.
(eglot--sync-request): Use a catch-tag.
2018-05-07 João Távora <joaotavora@gmail.com>
Explain why didopen on after-revert-hook is a bad idea
The reason is that the global find-file-hook is called again, and that
already does the didOpen. Too many didOpen's would be bad.
* eglot.el (eglot--managed-mode): Remove commented lines.
2018-05-07 João Távora <joaotavora@gmail.com>
Half-decent completion support
* README.md: Update.
* eglot.el (eglot--kind-names): New variable.
(eglot--managed-mode): Handle completion-at-point-functions.
(eglot-completion-at-point): New function.
2018-05-07 João Távora <joaotavora@gmail.com>
Solve another textdocument/didchange bug
* eglot.el (eglot--signal-textDocument/didChange): Rework a bit.
(eglot--after-change): Store the actual after-text in the
eglot--recent-after-changes.
2018-05-07 João Távora <joaotavora@gmail.com>
Support javascript's javascript-typescript-langserver
* README.md: Improve a bit
* eglot.el (eglot--make-process): Take MANAGED-MAJOR-MODE arg
(eglot-executables): Add basic javascript support.
(eglot--connect): Pass mode to eglot--make-process
(eglot--interactive): Check that guessed command is a listp.
(eglot): Minor improvement to message.
(eglot--current-buffer-TextDocumentItem): Guess language from mode
symbol.
2018-05-07 João Távora <joaotavora@gmail.com>
Increase request timeout length to 10 seconds
* eglot.el (eglot-request-timeout): New var.
(eglot--request): Use it.
2018-05-07 João Távora <joaotavora@gmail.com>
Workaround two suspected emacs bugs
* eglot.el (eglot--process-filter): Use a proper unique tag. Use
unwind-protect.
(eglot--sync-request): Rework.
(eglot--server-client/registerCapability): Use a proper done tag.
2018-05-07 João Távora <joaotavora@gmail.com>
Etoomanylambdas
* eglot.el (eglot--sync-request): Remove a lambda.
2018-05-07 João Távora <joaotavora@gmail.com>
Fix the odd bug here and there
* eglot.el (eglot--connect): Activate editing mode where
applicable here.
(eglot, eglot-reconnect): Not here or here.
(eglot--process-sentinel): Catch auto-reconnect errors.
(eglot--notify): Dont send 'id=null', it messes up js's lsp
(eglot--reply): Do send id here.
(eglot--log-event): Simplify protocol. Complexify implementation.
(eglot--process-receive, eglot--process-send): Simplify
eglot--log-event call.
(eglot--request, eglot--notify, eglot--reply): Simplify
eglot--process-send call
(eglot--server-client/registerCapability): Fix bug when replying
with wrong id.
(eglot--xref-reset-known-symbols): Take DUMMY arg.
2018-05-06 João Távora <joaotavora@gmail.com>
Half-decent xref support
* eglot.el
(eglot--xref-known-symbols): New hacky var.
(eglot--xref-reset-known-symbols): New helper.
(xref-find-definitions, xref-find-references): Advise after to
call the new helper.
(xref-backend-identifier-completion-table): Rework.
(eglot--xref-make): New helper.
(xref-backend-definitions): Use it.
(xref-backend-references, xref-backend-apropos): Implement.
(eglot--obj): Add a debug spec.
(eglot--lambda): Add debug spec.
2018-05-04 João Távora <joaotavora@gmail.com>
Very basic xref support
* eglot.el (eglot--pos-to-lisp-position): Move up.
(eglot--mapply, eglot--lambda): New helpers.
(eglot--uri-to-path): New helper.
(eglot--managed-mode): Manage xref-backend-functions.
(eglot-xref-backend): New function.
(xref-backend-identifier-completion-table)
(xref-backend-identifier-at-point)
(xref-backend-definitions): New methods.
(xref-backend-references)
(xref-backend-apropos): New methods, still unimplemented.
2018-05-04 João Távora <joaotavora@gmail.com>
New helper eglot--sync-request
This should help with xref definitions
* eglot.el (eglot--request): Rework a bit. Continuation is always
cleared on timeout, regardless of user-supplied fn.
(eglot--sync-request): New function.
(eglot--process-receive): watch out for vector results.
2018-05-04 João Távora <joaotavora@gmail.com>
Cleanup mistake with textdocumentitem and textdocumentidentifier
Also introduce eglot--path-to-uri
* eglot.el (eglot--path-to-uri): Rename from eglot--uri and rework.
(eglot--connect): Use it.
(eglot--current-buffer-TextDocumentIdentifier): New function.
(eglot--current-buffer-VersionedTextDocumentIdentifier)
(eglot--signal-textDocument/didChange)
(eglot--signal-textDocument/didClose)
(eglot--signal-textDocument/willSave)
(eglot--signal-textDocument/didSave): Use it.
2018-05-04 João Távora <joaotavora@gmail.com>
Handle dynamic registration in general (but nothing specific yet)
* eglot.el (eglot--server-client/registerCapability): Implement.
(eglot--register-workspace/didChangeWatchedFiles): Dummy registrator.
2018-05-04 João Távora <joaotavora@gmail.com>
Honour textdocumentsync
* eglot.el (eglot--signal-textDocument/didChange): Honour textDocumentSync
2018-05-04 João Távora <joaotavora@gmail.com>
Be quite explicit about our lack of capabilities right now
* eglot.el (eglot--client-capabilities): Spread out.
2018-05-04 João Távora <joaotavora@gmail.com>
Use rooturi instead of rootpath
* eglot.el (eglot--connect)
(eglot--current-buffer-VersionedTextDocumentIdentifier): Use
eglot--uri.
(eglot--uri): New function.
2018-05-04 João Távora <joaotavora@gmail.com>
Make reported capabilities into its own function
* eglot.el (eglot--client-capabilities): New function.
(eglot--connect): Use it.
2018-05-04 João Távora <joaotavora@gmail.com>
Include source info in diagnostics
* eglot.el (eglot--server-textDocument/publishDiagnostics):
Include source info.
2018-05-04 João Távora <joaotavora@gmail.com>
Reply to client/registercapability (don't handle it yet)
* eglot.el (eglot--server-client/registerCapability): New
function.
2018-05-04 João Távora <joaotavora@gmail.com>
Handle requests from server correctly
* eglot.el (eglot--process-receive): Redesign.
(eglot--process-send): Take REPLY arg. Discover if message is error.
(eglot--reply): new function
(eglot--log-event): Tweak docstring.
(eglot--process-receive): Reply with -32601 if unimplemented.
(eglot--server-window/showMessageRequest)
(eglot--server-client/registerCapability): Use eglot--reply
2018-05-04 João Távora <joaotavora@gmail.com>
Don't auto-reconnect if last attempt lasted less than 3 seconds
* eglot.el (eglot--inhibit-auto-reconnect): New var.
(eglot--process-sentinel): Use it.
2018-05-04 João Távora <joaotavora@gmail.com>
Workaround rls's regusal to treat nil as empty json object
* eglot.el (eglot--connect): Use dummy params.
2018-05-04 João Távora <joaotavora@gmail.com>
Eglot-editing-mode becomes eglot--managed-mode
* eglot.el (eglot--sentinel): Use eglot--managed-mode.
(eglot--managed-mode-map): Renamed from eglot-editing-mode-map.
(eglot--managed-mode): Renamed from eglot-editing-mode.
(eglot-mode): Simplify.
(eglot--buffer-managed-p): New function.
(eglot--maybe-activate-editing-mode): Simplify.
2018-05-04 João Távora <joaotavora@gmail.com>
Make m-x eglot's interactive spec a separate function
* eglot.el (eglot--interactive): New function.
(eglot): Rework a little.
2018-05-04 João Távora <joaotavora@gmail.com>
When user declines to reconnect, first quit existing server
* eglot.el (eglot): Rework reconnection logic.
2018-05-04 João Távora <joaotavora@gmail.com>
Connect to lsp server via tcp
* eglot.el (eglot--make-process): Rename from
eglot-make-local-process.
(eglot): Fix docstring and rework.
(eglot--bootstrap-fn): Remove
(eglot--contact): New process-local var.
(eglot--connect): Take CONTACT arg.
(eglot--reconnect): Rework.
2018-05-04 João Távora <joaotavora@gmail.com>
More correctly keep track of didopen/didclose per buffer
* eglot.el (eglot--buffer-open-count): Now a process-local var.
(eglot--signal-textDocument/didOpen, eglot--signal-textDocument/didClose):
Use it.
2018-05-03 João Távora <joaotavora@gmail.com>
Fix mode-line mouse-clicks from outside selected window
* eglot.el (eglot--mode-line-call): New helper.
(eglot--mode-line-format): Use it.
2018-05-03 João Távora <joaotavora@gmail.com>
* eglot.el (eglot--process-receive): skip null method notifs.
2018-05-03 João Távora <joaotavora@gmail.com>
Trim some edges and add a bunch of boring rpc methods
* eglot.el (eglot--connect): Don't call eglot--protocol-initialize.
(eglot--process-filter): Break long line.
(eglot--process-receive): Also pass id to handler if a server request.
(eglot--log): New helper.
(eglot-editing-mode): Manage before-revert-hook,
after-revert-hook, before-save-hook, after-save-hook.
(eglot--protocol-initialize): Removed.
(eglot--server-window/showMessage): Simplify.
(eglot--server-window/showMessageRequest)
(eglot--server-window/logMessage, eglot--server-telemetry/event):
New handlers.
(eglot--signal-textDocument/willSave)
(eglot--signal-textDocument/didSave): New notifications.
(eglot--signal-textDocument/didOpen)
(eglot--signal-textDocument/didClose): Check
eglot--buffer-open-count.
(eglot--buffer-open-count): New var.
2018-05-03 João Távora <joaotavora@gmail.com>
Fix a couple of rust-related edge cases
* eglot.el (eglot--server-window/progress): Allow other keys.
(eglot--server-textDocument/publishDiagnostics): Allow :group in diagnostic
spec.
2018-05-03 João Távora <joaotavora@gmail.com>
Fix textdocument/didchange
* eglot.el (eglot-editing-mode): Manage before-change-functions.
(eglot--recent-changes): Deleted.
(eglot--recent-before-changes): New var.
(eglot--recent-after-changes): Renamed from eglot--recent-changes.
(eglot--pos-to-lsp-position, eglot--before-change): New helpers.
(eglot--after-change): Rework.
(eglot--signal-textDocument/didChange): Rework.
2018-05-03 João Távora <joaotavora@gmail.com>
Rename rpc methods for clarity
* eglot.el (eglot--process-receive): Search for RPC server methods
under `eglot--server-'
(eglot-editing-mode, eglot--maybe-activate-editing-mode): Use new
signal names.
(eglot--server-window/showMessage): Rename from
eglot--window/showMessage.
(eglot--server-textDocument/publishDiagnostics): Renamed from
eglot--textDocument/publishDiagnostics.
(eglot--current-buffer-versioned-identifier): Remove.
(eglot--current-buffer-VersionedTextDocumentIdentifier): Use
eglot--versioned-identifier.
(eglot--signal-textDocument/didChange): Renamed from
eglot--maybe-signal-didChange.
(eglot--signal-textDocument/didOpen): Renamed from
eglot--signalDidOpen.
(eglot--signal-textDocument/didClose): Rename from
eglot--signalDidClose.
(eglot-flymake-backend): Call eglot--signal-textDocument/didChange.
(eglot--server-window/progress): Rename from
eglot--window/progress.
2018-05-03 João Távora <joaotavora@gmail.com>
Reorganize file
* eglot.el (eglot-mode-line): Move up.
(eglot-make-local-process, eglot--all-major-modes, eglot--obj)
(eglot--project-short-name, eglot--all-major-modes)
(eglot-reconnect, eglot--maybe-activate-editing-mode)
(eglot--protocol-initialize)
(eglot--window/showMessage, eglot--current-flymake-report-fn)
(eglot--unreported-diagnostics)
(eglot--textDocument/publishDiagnostics, eglot--signalDidOpen)
(eglot--signalDidClose): Move around.
(eglot-quit-server): Renamed to eglot-shutdown.
(eglot-shutdown): New function
2018-05-03 João Távora <joaotavora@gmail.com>
Delete two useless forward declarations
* eglot.el (eglot-mode, eglot-editing-mode-map): Remove forward decls.
2018-05-03 João Távora <joaotavora@gmail.com>
Fix flymake diagnostic positions
It's better not to use flymake-diag-region here.
* eglot.el (eglot--textDocument/publishDiagnostics):
Calculate position by hand.
2018-05-03 João Távora <joaotavora@gmail.com>
Must re-announce didopen after reconnect
* eglot.el (eglot-reconnect): Also call
eglot--maybe-activate-editing-mode for all buffers.
2018-05-03 João Távora <joaotavora@gmail.com>
Fix another flymake sync bug
* eglot.el (eglot-flymake-backend): Only report unreported sometimes.
(eglot--maybe-activate-editing-mode): Start flymake explicitly
when didOpen.
(eglot--textDocument/publishDiagnostics): No need to set
unreported-diagnostics to nil.
(flymake): Require it.
2018-05-03 João Távora <joaotavora@gmail.com>
Make m-x eglot the main entry point
* eglot.el (eglot-new-process): Removed
(eglot): Rename from eglot-new-process.
(eglot-editing-mode): Mention M-x eglot
* README.md: Use M-x eglot
2018-05-03 João Távora <joaotavora@gmail.com>
Fix assorted bugs
* eglot.el (eglot--special-buffer-process): Must be buffer-local.
(eglot--define-process-var): Fix disaster waiting to happen.
(eglot--process-receive): Explicitly pass PROC to
eglot--pending-continuations.
(eglot--textDocument/publishDiagnostics): Clear unreported diagnostics
2018-05-03 João Távora <joaotavora@gmail.com>
Watch for files opened under umbrella of existing process
* eglot.el (eglot--connect): Call success-fn with a proc.
(eglot-reconnect): Adapt to new eglot--connect.
(eglot-new-process): Call eglot--maybe-activate-editing-mode
(eglot--maybe-activate-editing-mode): New function.
(find-file-hook): Add it here.
2018-05-03 João Távora <joaotavora@gmail.com>
Multiple servers per project are possible
A server manages a specific major-mode within a project.
* eglot.el (eglot--processes-by-project): Add docstring.
(eglot--current-process): Search new eglot--processes-by-project
format.
(eglot--major-mode): New variable.
(eglot--moribund, eglot--project): Update docstring.
(eglot--project-short-name, eglot--all-major-modes): New helpers.
(eglot--connect): Rework.
(eglot-new-process): Rework severely.
(eglot--command-history): New variable.
(eglot--process-sentinel): Use new
eglot--processes-by-project. Update mode line.
(eglot-editing-mode): Don't start processes, just suggest it.
2018-05-03 João Távora <joaotavora@gmail.com>
Appease checkdoc.el
* eglot.el (eglot--process-send, eglot--next-request-id)
(eglot--current-buffer-VersionedTextDocumentIdentifier)
(eglot--current-buffer-TextDocumentItem)
(eglot--after-change, eglot--signalDidOpen)
(eglot--signalDidClose, eglot--maybe-signal-didChange):
Add docstring.
2018-05-03 João Távora <joaotavora@gmail.com>
Simplify flymake integration
And get rid of the ridiculous environment thingy
* eglot.el (eglot--process-sentinel): Continuations are triplets.
(eglot--environment-vars, eglot--environment): Remove.
(eglot--process-receive): Simplify.
(eglot--unreported-diagnostics): New variable.
(eglot--textDocument/publishDiagnostics): Simplify.
(eglot-flymake-backend): Report unreported diagnostics.
2018-05-03 João Távora <joaotavora@gmail.com>
Signal textdocument/didclose
* eglot.el (eglot-editing-mode): Signal didClose.
(eglot--signalDidClose): New.
2018-05-03 João Távora <joaotavora@gmail.com>
Rework connection restarting again
Quitting a process removes it from the project.
* eglot.el (eglot-editing-mode,eglot-mode): Forward declare.
(eglot--project): New process-local var.
(eglot--connect): Takes a project.
(eglot-new-process): Rework.
(eglot--sentinel): Remove proc from eglot--processes-by-project.
2018-05-03 João Távora <joaotavora@gmail.com>
Redesign and simplify parser
Fix horrible bugs. This is the correct way.
* eglot.el (eglot--process-filter): Redesign.
2018-05-02 João Távora <joaotavora@gmail.com>
Auto-reconnect on unexpected connection loss
* eglot.el (eglot-reconnect): Only quit if indeed not quit
already.
(eglot-new-process): Burn the command in the bootstrap fn.
(eglot--process-sentinel): Automatically reconnect if closed
unexpectedly.
(eglot--warn): Also message to *Messages*
2018-05-02 João Távora <joaotavora@gmail.com>
Ready to start fixing flymake integration
* eglot.el (eglot-editing-mode): Turn on flymake-mode.
(eglot-flymake-backend): Always start by reporting no diagnostics.
(eglot--textDocument/publishDiagnostics): No annoying message.
2018-05-02 João Távora <joaotavora@gmail.com>
Slightly more user friendly start
* eglot.el (eglot-new-process): signal DidOpen for every file in project.
(eglot-editing-mode): Offer to start process.
2018-05-02 João Távora <joaotavora@gmail.com>
Don't clutter ui with warnings
* eglot.el (warnings): require it.
(eglot--warn): set warning-minimum-level
2018-05-02 João Távora <joaotavora@gmail.com>
Rework commands for connecting and reconnecting
* eglot.el (eglot--current-process-or-lose): Add doc.
(eglot--command): Remove.
(eglot--bootstrap-fn): New process-local variable.
(eglot--connect): Redesign.
(eglot-make-local-process): New function.
(eglot-reconnect): New interactive command.
(eglot-new-process): Redesign.
(eglot--process-sentinel): Add doc.
(eglot--protocol-initialize): Rework.
(eglot--mode-line-format): Use eglot-reconnect.
2018-05-02 João Távora <joaotavora@gmail.com>
Less obstrusive flymake stuff for now
* eglot.el (eglot--after-change, eglot-flymake-backend): Fix.
2018-05-02 João Távora <joaotavora@gmail.com>
Events buffer uses eglot-mode, source buffers use eglot-editing-mode
* eglot.el (eglot--special-buffer-process): New var.
(eglot--current-process): Consider eglot--special-buffer-process.
(eglot-events-buffer): Use eglot-mode
(eglot-editing-mode): New minor mode.
(eglot-mode): Turns on eglot-editing-mode maybe.
2018-05-02 João Távora <joaotavora@gmail.com>
Change status to error everytime an error is found
* eglot.el (eglot--process-receive): Also set error status.
(eglot--request): Fix a compilation warning.
2018-05-02 João Távora <joaotavora@gmail.com>
Correctly report what we currently are capable of
Which is almost nothing.
* eglot.el (eglot--protocol-initialize): Clean up.
2018-05-02 João Távora <joaotavora@gmail.com>
Add eglot-clear-status interactive command
* eglot.el (eglot-clear-status): New
(eglot-forget-pending-continuations): Fix bug.
(eglot--mode-line-format): Add link to eglot-clear-status.
2018-05-02 João Távora <joaotavora@gmail.com>
Auto update mode-line after setting some process properties
* eglot.el (eglot--define-process-var): Rework.
(eglot--short-name, eglot--spinner, eglot--status): Update mode-line
after setting it.
2018-05-02 João Távora <joaotavora@gmail.com>
Start experimenting with python
* eglot.el (eglot-executables): Add pyls.
2018-05-02 João Távora <joaotavora@gmail.com>
Don't switch to possibly dead buffer in sentinel
* eglot.el (eglot--process-sentinel): Don't with-current-buffer.
2018-05-02 João Távora <joaotavora@gmail.com>
Report server status in the mode-line
* eglot.el (eglot--status): New var.
(eglot--log-event): Try to be more useful for other stuff.
(eglot--protocol-initialize): Set status to nil on
successful connect.
(eglot--window/showMessage): Set status to error if needed.
(eglot--mode-line-format): Display status if serious.
2018-05-01 João Távora <joaotavora@gmail.com>
Implement spinners and rls's window/progress
* eglot.el (eglot--window/progress): New.
(eglot--mode-line-format): Rework.
(eglot--snpinner): New var.
(compile): require it.
2018-05-01 João Távora <joaotavora@gmail.com>
Fix parser to accept multiple messages in one chunk
* eglot.el (eglot--process-filter): Redesign slightly.
(eglot--message-mark): Remove. don't need this.
2018-05-01 João Távora <joaotavora@gmail.com>
Lay groundwork for uniform treatment of network connections
* eglot.el (eglot--connect): New helper.
(eglot-new-process): Use it.
(pcase): Require it.
2018-05-01 João Távora <joaotavora@gmail.com>
Doc fixes
* eglot.el (eglot-mode-map): Move up before minor mode.
2018-05-01 João Távora <joaotavora@gmail.com>
* eglot.el (eglot-mode-map): move up before minor mode.
2018-04-30 João Távora <joaotavora@gmail.com>
Start working on this again
* eglot.el (url-util): Require it.
(eglot--process-sentinel): pending continuations now are quads (added env).
(eglot--process-filter): Unwind message markers correctly if handling fails.
(eglot--obj): Simple macro.
(eglot--log-event): Add some info to logged event.
(eglot--environment-vars, eglot--environment): Helper vars.
(eglot--process-receive): Improve.
(eglot--process-send): Niver log.
(eglot--request): Use eglot--obj. Add environment.
(eglot--notify): New helper.
(eglot--protocol-initialize): RLS must like file://
(eglot--current-flymake-report-fn): New var.
(eglot--textDocument/publishDiagnostics): Use flymake from Emacs 26.
(eglot-mode): Proper minor mode.
(eglot--recent-changes, eglot--versioned-identifier): New stuff.
(eglot--current-buffer-versioned-identifier)
(eglot--current-buffer-VersionedTextDocumentIdentifier)
(eglot--current-buffer-TextDocumentItem, eglot--after-change)
(eglot--signalDidOpen, eglot--maybe-signal-didChange): New stuff.
(eglot-flymake-backend): More or less a flymake backend function.
2018-04-30 João Távora <joaotavora@gmail.com>
Fix mode line
* eglot.el (mode-line-misc-info): conditionalize to eglot-mode
2018-04-30 João Távora <joaotavora@gmail.com>
Fix some byte-compilation warnings
2018-04-30 Andrew Schwartzmeyer <andrew@schwartzmeyer.com> (tiny change)
Document that remapping commands is supported with bind-key
2018-04-26 Justin Talbott <justin@waymondo.com>
Merge pull request from akhramov/fix/ensure-system-package-noconfirm
[Fix https://github.com/jwiegley/use-package/issues/661] ensure-system-package: honor system-packages customizations
GitHub-reference: https://github.com/jwiegley/use-package/issues/673
2018-04-25 Artyom Khramov <futu.fata@gmail.com> (tiny change)
[] ensure-system-package: honor system-packages customizations
ensure-system-package doesn't honor system-packages
customizations (https://github.com/jwiegley/use-package/issues/661), because system-packages didn't provide an API
to retrieve shell command to be executed.
This change makes use of the new system-packages'
`system-package-get-command` function and therefore fixes the issue.
GitHub-reference: fix https://github.com/jwiegley/use-package/issues/661
2018-03-24 Russell Black <black.russell@gmail.com>
Update use-package-chords.el
2018-03-23 Russell Black <black.russell@gmail.com>
Update use-package-chords.el
new style of auto-deferral for chords
2018-03-16 Justin Talbott <justin@waymondo.com>
Merge pull request from waymondo/master
:ensure-system-package - allow cdr of cons to be a package name symbol
GitHub-reference: https://github.com/jwiegley/use-package/issues/654
2018-03-16 Justin Talbott <justin@waymondo.com>
:ensure-system-package allow cdr of cons to be a package name symbol
closes https://github.com/jwiegley/use-package/issues/652
2018-03-14 John Wiegley <johnw@newartisans.com>
Merge pull request from valignatev/master
Encourage installation via https instead of http
GitHub-reference: https://github.com/jwiegley/use-package/issues/651
2018-03-14 Valentin Ignatev <valentjedi@gmail.com>
Encourage installation via https instead of http
2018-03-13 John Wiegley <johnw@newartisans.com>
Merge pull request from DamienCassou/fix-report-again
Fix report again after revert
GitHub-reference: https://github.com/jwiegley/use-package/issues/647
2018-03-12 Damien Cassou <damien.cassou@gmail.com>
Fix compile-time warnings due to the statistics-reporting code
The code worked because the file is using dynamic binding.
2018-03-12 Damien Cassou <damien.cassou@gmail.com>
Add missing require
This is used for `hash-table-keys`.
Fix https://github.com/jwiegley/use-package/issues/644.
2018-03-12 John Wiegley <johnw@newartisans.com>
Merge pull request from jwiegley/revert-645-fix-report
Revert "Fix report"
GitHub-reference: https://github.com/jwiegley/use-package/issues/646
2018-03-12 John Wiegley <johnw@newartisans.com>
Revert "Fix report"
2018-03-12 John Wiegley <johnw@newartisans.com>
Merge pull request from DamienCassou/fix-report
Fix report
GitHub-reference: https://github.com/jwiegley/use-package/issues/645
2018-03-11 Damien Cassou <damien.cassou@gmail.com>
Fix compile-time warnings due to the statistics-reporting code
The code worked because the file is using dynamic binding.
2018-03-11 Damien Cassou <damien.cassou@gmail.com>
Add missing require
This is used for `hash-table-keys`.
Fix https://github.com/jwiegley/use-package/issues/644.
2018-03-08 John Wiegley <johnw@newartisans.com>
Merge pull request from DamienCassou/tabulated-list
Use a tabulated-list to display package configuration statistics
GitHub-reference: https://github.com/jwiegley/use-package/issues/642
2018-03-08 Damien Cassou <damien.cassou@gmail.com>
Use a tabulated-list to display package configuration statistics
Fix https://github.com/jwiegley/use-package/issues/641
2018-03-05 John Wiegley <johnw@newartisans.com>
Merge pull request from matthewbauer/patch-1
Support ":package" in use-package
GitHub-reference: https://github.com/jwiegley/use-package/issues/633
2018-02-25 Matthew Justin Bauer <mjbauer95@gmail.com>
Support ":package" in use-package
bind-key supports the keyword ":package" but use-package does not know that. Adding this should be helpful. In the future, maybe we could automatically fill in with the use-package package, but that could be a breaking change.
2018-02-06 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/normalize-fix
Fix usage of plist argument in use-package-normalize-plist
GitHub-reference: https://github.com/jwiegley/use-package/issues/625
2018-02-06 Justin Burkett <justin@burkett.cc>
Fix usage of plist argument in use-package-normalize-plist
Previously the argument was never used.
2018-02-06 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/ignore-keywords
Add use-package-ignore-unknown-keywords option
GitHub-reference: https://github.com/jwiegley/use-package/issues/624
2018-02-06 Justin Burkett <justin@burkett.cc>
Add use-package-ignore-unknown-keywords option
This option allows use-package to skip over keywords it doesn't recognize.
2018-01-27 John Wiegley <johnw@newartisans.com>
Revert "Merge pull request from jabranham/lexical-bindings"
This reverts commit d21787f1d64a740c0e00899835d9200a0e4690df, reversing
changes made to fd8a3510fd1a555b925f57b2870917e3c4ea0206.
GitHub-reference: https://github.com/jwiegley/use-package/issues/617
2018-01-27 John Wiegley <johnw@newartisans.com>
Revert "Move variable bindings to the bottom of each file"
This reverts commit c29193bf0724633adf7183dad2d0b6faf7d029ab.
2018-01-27 John Wiegley <johnw@newartisans.com>
Move variable bindings to the bottom of each file
2018-01-27 John Wiegley <johnw@newartisans.com>
Merge pull request from jabranham/lexical-bindings
[WIP] Lexical bindings
GitHub-reference: https://github.com/jwiegley/use-package/issues/617
2018-01-27 Alex Branham <alex.branham@gmail.com>
Don't remove sharp quotes
Test still requires cl
Fix byte compiler warnings
Use lexical bindings and remove cl package
2018-01-27 John Wiegley <johnw@newartisans.com>
Merge pull request from jabranham/system-packages-update
System packages update
GitHub-reference: https://github.com/jwiegley/use-package/issues/616
2018-01-26 Alex Branham <alex.branham@gmail.com>
lexical binding
Prefer non-obsolete var names
2018-01-08 John Wiegley <johnw@newartisans.com>
Merge pull request from jabranham/fix-byte-compiler
Prefer org-table-align to orgtbl-ctrl-c-ctrl-c
GitHub-reference: https://github.com/jwiegley/use-package/issues/611
2018-01-08 Alex Branham <alex.branham@gmail.com>
Prefer org-table-align to orgtbl-ctrl-c-ctrl-c
org-table-align is an autoloaded function so the byte compiler can
find it. orgtbl-ctrl-c-ctrl-c isn't so we get a warning about
undefined functions.
2017-12-26 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/elisp-cap
Handle automatic macro expansion by elisp-completion-at-point
GitHub-reference: https://github.com/jwiegley/use-package/issues/599
2017-12-26 John Wiegley <johnw@newartisans.com>
Merge pull request from nickmccurdy/render-report-table
Render the use-package-report table using Org
GitHub-reference: https://github.com/jwiegley/use-package/issues/592
2017-12-20 wouter bolsterlee <wouter@bolsterl.ee> (tiny change)
Fix sanity check for correct :custom-face format
Instead of testing the length of each form passed to :custom-face,
the sanity check would test the number of forms passed to :custom-face,
causing it to fail when more than 2 face customisations are used.
Fixes https://github.com/jwiegley/use-package/issues/600.
2017-12-19 Justin Burkett <justin@burkett.cc>
Handle automatic macro expansion by elisp-completion-at-point
The function `elisp--local-variables' inserts an unbound variable,
`elisp--witness--lisp', into macro forms to determine the locally bound
variables for `elisp-completion-at-point'. It ends up throwing a lot of errors
since it can occupy the position of a keyword (or look like a second argument to
a keyword that takes one). Deleting it when it's at the top level should be
harmless since there should be no locally bound variables to discover here
anyway.
2017-12-17 John Wiegley <johnw@newartisans.com>
Guard a call to display-warning with ignore
Fixes https://github.com/jwiegley/use-package/issues/589
2017-12-16 Nick McCurdy <nick@nickmccurdy.com>
Render the use-package-report table using Org
I noticed that the "Gathering Statistics" instructions for rendering the Org
table could be automated for convenience. Now the table is reformatted
automatically, and you can still manually sort it. I'm not sorting it by default
to maintain the same order of use-package forms for easier troubleshooting.
2017-12-16 John Wiegley <johnw@newartisans.com>
All the second argument in use-package-defaults lists to be a function
Address the question raised in https://github.com/jwiegley/use-package/issues/591
2017-12-13 John Wiegley <johnw@newartisans.com>
Add a test related to
GitHub-reference: https://github.com/jwiegley/use-package/issues/589
2017-12-13 John Wiegley <johnw@newartisans.com>
Add more tests related to issue
GitHub-reference: https://github.com/jwiegley/use-package/issues/572
2017-12-11 John Wiegley <johnw@newartisans.com>
Minor simplification of a function
2017-12-11 John Wiegley <johnw@newartisans.com>
bind-keys fixes related to
GitHub-reference: https://github.com/jwiegley/use-package/issues/482
2017-12-10 John Wiegley <johnw@newartisans.com>
Add a clarifying test for
GitHub-reference: https://github.com/jwiegley/use-package/issues/482
2017-12-09 John Wiegley <johnw@newartisans.com>
Fix a scoping issues with multiple occurrences of :bind
Fixes https://github.com/jwiegley/use-package/issues/585
2017-12-08 John Wiegley <johnw@newartisans.com>
Start building a use-package linter in use-package-lint.el
use-package-normalize/:disabled has the wrong number of arguments
Remove several unnecessary calls to `ignore'
Add another :bind test
2017-12-07 John Wiegley <johnw@newartisans.com>
Add further note to NEWS.md
Add tests for two more issues
Fix the tests
Clarify a note in NEWS.md
2017-12-07 John Wiegley <johnw@newartisans.com>
Changes to the way auto-deferral is indicated
This change adds a new extension hook `use-package-autoloads/<KEYWORD>` for
specifying exactly which autoloads a keyword should imply. This is the proper
way to indicate autoloads, rather than adding to the `:commands` entry as was
done before.
Further, autoloading now must occur in order to cause implied deferred
loading; if :bind is used with only lambda forms, for example, this will not
cause deferred loading without `:defer t`.
2017-12-07 John Wiegley <johnw@newartisans.com>
Introduce new customization variable `use-package-merge-key-alist'
2017-12-07 John Wiegley <johnw@newartisans.com>
Use cl-gentemp in another place
This avoids "Variable unknown" errors if a byte-compiled init.elc happening to
encounter an error while evaluating an :init or :config block.
2017-12-06 John Wiegley <johnw@newartisans.com>
Correctly fix the problem of unreferenced symbols after compilation
Fixes https://github.com/jwiegley/use-package/issues/571
2017-12-06 John Wiegley <johnw@newartisans.com>
Revert "Pre-expand lexical-let, since otherwise it requires cl to be loaded"
This reverts commit 7cc17cee8f8ae2093d98efebf429cd10e9b0b81c.
2017-12-06 John Wiegley <johnw@newartisans.com>
Pre-expand lexical-let, since otherwise it requires cl to be loaded
Fixes https://github.com/jwiegley/use-package/issues/571
2017-12-06 John Wiegley <johnw@newartisans.com>
Add documentation for `use-package-report'
use-package-defaults predicate must also receive the package name
Remove Package-Requires for diminish and delight, as these are optional
Add a comment as to why max-lisp-eval-depth is set in -tests.el
2017-12-06 John Wiegley <johnw@newartisans.com>
Add missing autoload cookie, and make lack of a normalizer an error
Fixes https://github.com/jwiegley/use-package/issues/566
2017-12-06 John Wiegley <johnw@newartisans.com>
Don't compute the verbose debug text unless it's requested
2017-12-06 John Wiegley <johnw@newartisans.com>
Add :bind test for a single cons cell
Relates to https://github.com/jwiegley/use-package/issues/566
2017-12-06 John Wiegley <johnw@newartisans.com>
Add support for gathering statistics on use-package declarations
2017-12-06 John Wiegley <johnw@newartisans.com>
Respect keyword ordering in use-package-deferring-keywords
Relates to https://github.com/jwiegley/use-package/issues/565
2017-12-06 John Wiegley <johnw@newartisans.com>
Clarify :config with setq versus :custom
Fixes https://github.com/jwiegley/use-package/issues/564
2017-12-06 John Wiegley <johnw@newartisans.com>
Update some GPL version references
Fixes https://github.com/jwiegley/use-package/issues/563
2017-12-06 John Wiegley <johnw@newartisans.com>
Allow the expansion of :after (:or foo bar) to be byte-compiled
Make the expanded text for :after cleaner
2017-12-05 John Wiegley <johnw@newartisans.com>
Several changes as suggested by flycheck
2017-12-05 John Wiegley <johnw@newartisans.com>
Don't auto-defer if the package itself was given to :load
Otherwise, we'd be senselessly waiting for the package to load.
2017-12-05 John Wiegley <johnw@newartisans.com>
Enable all tests on Travis
Allow `:load t' to mean the same as :load of the package name
Whitespace change
Default running-on-travis to t
Enable 4 tests that work when not run on Travis
For now, stub out test that breaks Travis
Stub some referenced variables, for Travis
Add note in NEWS.md about :requires vs. :if
2017-12-05 John Wiegley <johnw@newartisans.com>
Lower the priority of :if/:when/:unless in use-package-keywords
Fixes https://github.com/jwiegley/use-package/issues/560
2017-12-05 John Wiegley <johnw@newartisans.com>
Enhance fix-expansion to take surrounding let bindings into account
2017-12-05 John Wiegley <johnw@newartisans.com>
Rewrite normalization of :bind and :bind*
Fixes https://github.com/jwiegley/use-package/issues/550
2017-12-05 John Wiegley <johnw@newartisans.com>
Normalize errors should be errors, that are then caught by :catch
2017-12-05 John Wiegley <johnw@newartisans.com>
Avoid using pcase and many other macros in macro-expanded forms
This is related to https://github.com/jwiegley/use-package/issues/550
2017-12-05 John Wiegley <johnw@newartisans.com>
Fix bad interaction between bind-keys* and the :package keyword
Fixes https://github.com/jwiegley/use-package/issues/558
2017-12-05 John Wiegley <johnw@newartisans.com>
Add missing autoload cookies
Fixes https://github.com/jwiegley/use-package/issues/555
2017-12-05 Radon Rosborough <radon.neon@gmail.com>
Fix function accidentally made interactive
2017-12-04 John Wiegley <johnw@newartisans.com>
Use cl-gensym
2017-12-04 John Wiegley <johnw@newartisans.com>
Fix the case where :ensure is given no arguments
Fixes https://github.com/jwiegley/use-package/issues/543
2017-12-04 John Wiegley <johnw@newartisans.com>
Some Emacsen don't have gensym
Fixes https://github.com/jwiegley/use-package/issues/544
2017-12-04 John Wiegley <johnw@newartisans.com>
Add note in NEWS.md about :after and autoloaded keybindings
2017-12-04 John Wiegley <johnw@newartisans.com>
Add a note to `bind-key` on the usage of the KEYMAP argument
Fixes https://github.com/jwiegley/use-package/issues/542
2017-12-04 John Wiegley <johnw@newartisans.com>
Add a bind-key test
2017-12-04 John Wiegley <johnw@newartisans.com>
Support :ensure (pkg :pin archive)
Fixes https://github.com/jwiegley/use-package/issues/506
2017-12-04 John Wiegley <johnw@newartisans.com>
Add several missing comments
Swap the order of two definitions
2017-12-04 John Wiegley <johnw@newartisans.com>
Fix an argument process problem with bind-key
Fixes https://github.com/jwiegley/use-package/issues/334
2017-12-04 John Wiegley <johnw@newartisans.com>
Comment out two tests that break on Travis
Rename up-* files to use-package-* for consistency
Merge branch 'split-bind-key'
Commit .texi file, as it requires several dependencies to generate
Merge branch 'master' into next
Add a test-in-progress for issue 506
2017-12-04 John Wiegley <johnw@newartisans.com>
Add new customization variables `use-package-hook-name-suffix'
Fixes https://github.com/jwiegley/use-package/issues/530
2017-12-04 John Wiegley <johnw@newartisans.com>
Split key binding functionality out into its own file
Please the byte-compiler
Require cl for the use-package tests
Expand use-package-core as a macro, to avoid load time dependency
2017-12-04 John Wiegley <johnw@newartisans.com>
:ensure can be a list; correct handling of multiple :ensure keywords
Fixes https://github.com/jwiegley/use-package/issues/539
2017-12-04 John Wiegley <johnw@newartisans.com>
Ensure that :commands always declare-function at compile time
2017-12-04 John Wiegley <johnw@newartisans.com>
Add a new :catch keyword, and move :preface before such handling
Fixes https://github.com/jwiegley/use-package/issues/534
2017-12-04 John Wiegley <johnw@newartisans.com>
Fix duplication in an error message
Add expand-maximally macro to up-tests.el
2017-12-04 John Wiegley <johnw@newartisans.com>
Revert "Reduce some code duplication"
This reverts commit 1e560c514004747062276ca59ddf425a3edc44cd.
2017-12-04 John Wiegley <johnw@newartisans.com>
Move :preface handling within the code
Add two new tests
Reduce some code duplication
Normalize some whitespace and ordering in new code
2017-12-04 John Wiegley <johnw@newartisans.com>
Move :init back to happening after all autoloads have occurred
Fixes https://github.com/jwiegley/use-package/issues/535
2017-12-04 John Wiegley <johnw@newartisans.com>
Move :init back to happening after all autoloads have occurred
Fixes https://github.com/jwiegley/use-package/issues/535
2017-12-04 Justin Talbott <justin@waymondo.com>
Add `use-package-chords` and `use-package-ensure-system-package`
Also update docs on usage
connect to https://github.com/jwiegley/use-package/issues/516
2017-12-04 John Wiegley <johnw@newartisans.com>
Change order of :defines and :functions within `use-package-keywords'
Add further notes to NEWS.md, in light of recent breakages
Add new customization variable `use-package-deferring-keywords'
Minor comment change
up-ensure's customization variables are now in their own group
Remove code from up-core.el that is now in up-diminish.el
Add notes to NEWS.md
Correction to a macro expansion
Delete an unneeded blank line
Reduce some code duplication
Normalize the code emitted by :mode, :interpreter, :magic, etc
Add 'errors as another option to `use-package-verbose'
Only emit the debugging context text once
2017-12-03 John Wiegley <johnw@newartisans.com>
Correction to error detection at both :init and :config times
Report errors during deferred :config as intelligent warnings also
Drop some unnecessary detail from a warning message
Minor simplification
Fix a byte-compiler warning in up-ensure.el
Move optional jumping functionality to its own module
Break out ensure/diminish/delight into their own support files
Move the use-package-keywords defcustom to the top of the file
Disable a test that is not working on Travis
Move functions around for better logical grouping
More variable renaming needed in the tests
Change most use-package-- prefixes to just use-package-
Remove a local variable binding
Always catch errors during configuration
Separate out all tests, the better to identify which one failed
Define macroexpand-1 for older Emacsen
2017-12-03 John Wiegley <johnw@newartisans.com>
A great deal of internal reorganization and simplification
All handlers now address their own domain of work; :after has become safer;
keyword normalization is multi-stage process; setting use-package-verbose to
`debug' produces useful output in the *use-package* buffer in the case of load
time errors; use-package errors (even internal) won't stop Emacs from
starting (though a serious internal bug that errors out every use-package form
may stop anything from being configured!); and more.
2017-12-02 Radon Rosborough <radon.neon@gmail.com>
Fix `use-package-ensure-function' docstring typo
2017-12-01 John Wiegley <johnw@newartisans.com>
If use-package-verbose is t, show loading times when :after is used
2017-12-01 John Wiegley <johnw@newartisans.com>
Remove the :defer-install keyword
This may reappear as its own add-on to use-package in the future. See https://github.com/jwiegley/use-package/issues/442.
2017-12-01 John Wiegley <johnw@newartisans.com>
:demand should not override an explicit use of :after
Fixes https://github.com/jwiegley/use-package/issues/529
2017-12-01 John Wiegley <johnw@newartisans.com>
Remove some debug code that crept in
Add tests for the last two keywords
Add many more tests
Always wrap the expanded body from use-package in (progn)
2017-12-01 John Wiegley <johnw@newartisans.com>
Comment out :no-require test for now
It works on my machine, but not with what Travis runs.
2017-12-01 John Wiegley <johnw@newartisans.com>
Don't factor out a volatile variable
Possibly fixes https://github.com/jwiegley/use-package/issues/527
2017-12-01 John Wiegley <johnw@newartisans.com>
Add many new tests
2017-12-01 John Wiegley <johnw@newartisans.com>
Generate :defines and :functions correctly
So they actually inhibit byte-compilation warnings as they were meant to.
2017-12-01 John Wiegley <johnw@newartisans.com>
Correct the ordering of :preface, :load-path, :defines and :functions
Whitespace fix
Move :hook before :defer
Don't macroexpand bind-keys, leave that to the evaluator
Always use `load' when loading for the sake of compilation
Sort keywords at the appropriate time
Change the :config default, if none has been set in vars
:no-require t should never require
Code reformatting
2017-11-30 John Wiegley <johnw@newartisans.com>
Allow match-expansion to take multiple cases
Add test for use-package-test-normalize/:ensure
Add the missing plist-delete
Remove an unneeded defvar
2017-11-30 John Wiegley <johnw@newartisans.com>
A final fix to :ensure + :load-path
Fixes https://github.com/jwiegley/use-package/issues/190
2017-11-30 John Wiegley <johnw@newartisans.com>
Add a test case for :ensure, following up from
GitHub-reference: https://github.com/jwiegley/use-package/issues/190
2017-11-30 John Wiegley <johnw@newartisans.com>
Don't check for an :ensure that use-package-always-ensure may have added
Fixes https://github.com/jwiegley/use-package/issues/190
2017-11-30 John Wiegley <johnw@newartisans.com>
Add a use-package-version variable
Add two new tests
Add stubs for future tests of all keywords
2017-11-30 John Wiegley <johnw@newartisans.com>
Allow :ensure to take a nil value again
Fixes https://github.com/jwiegley/use-package/issues/526
2017-11-30 John Wiegley <johnw@newartisans.com>
Only add :ensure nil on :load-path if use-package-always-ensure is t
Restructure some code
2017-11-30 John Wiegley <johnw@newartisans.com>
Using :load-path without also using :ensure now implies :ensure nil
Fixes https://github.com/jwiegley/use-package/issues/190
2017-11-30 John Wiegley <johnw@newartisans.com>
Correction to use-package--recognize-function
Finishes https://github.com/jwiegley/use-package/issues/525
2017-11-30 John Wiegley <johnw@newartisans.com>
Allow keys to be bound to nil
Fixes https://github.com/jwiegley/use-package/issues/525
2017-11-29 John Wiegley <johnw@newartisans.com>
Fix a missing `and'
Use backquote rather than quote
Correct use-package-normalize-mode
Whitespace fix
Update version and copyright
2017-11-29 John Wiegley <johnw@newartisans.com>
Allow :bind ("C-c C-c" . (lambda () (ding))) and #'(lambda ...)
Fixes https://github.com/jwiegley/use-package/issues/333
Fixes https://github.com/jwiegley/use-package/issues/461
2017-11-29 John Wiegley <johnw@newartisans.com>
Reorder some items in NEWS.md
Add NEWS.md file
2017-11-29 John Wiegley <johnw@newartisans.com>
Merge pull request from basil-conto/version
Require Emacs version >= 24.3
GitHub-reference: https://github.com/jwiegley/use-package/issues/519
2017-11-29 Basil L. Contovounesios <contovob@tcd.ie>
Require Emacs version >= 24.3
Re: https://github.com/jwiegley/use-package/issues/457
2017-11-29 John Wiegley <johnw@newartisans.com>
Merge pull request from basil-conto/520
Require cl-lib and do not use seq functions
GitHub-reference: https://github.com/jwiegley/use-package/issues/521
2017-11-29 John Wiegley <johnw@newartisans.com>
Merge branch 'master' into 520
Add a missing (require 'seq)
2017-11-29 Basil L. Contovounesios <contovob@tcd.ie>
Require cl-lib and do not use seq functions
cl-lib is also required for a separate call to cl-mapcan.
Fixes https://github.com/jwiegley/use-package/issues/520
2017-11-29 John Wiegley <johnw@newartisans.com>
When use-package-inject-hooks is non-nil, always fire init/config hooks
This used to not happen if `:init` or `:config` was missing, or set to nil as
with `:init nil`.
Fixes https://github.com/jwiegley/use-package/issues/250
2017-11-28 John Wiegley <johnw@newartisans.com>
Print map keys in describe-personal-keybindings
Fixes https://github.com/jwiegley/use-package/issues/406
2017-11-28 John Wiegley <johnw@newartisans.com>
Repeating a bind no longer causes duplicates in personal-keybindings
Fixes https://github.com/jwiegley/use-package/issues/446
2017-11-28 John Wiegley <johnw@newartisans.com>
When byte-compiling, correctly output declare-function directives
Fixes https://github.com/jwiegley/use-package/issues/474
2017-11-28 John Wiegley <johnw@newartisans.com>
Make diminish a soft dependency, as delight already was
Fixes https://github.com/jwiegley/use-package/issues/493
2017-11-28 John Wiegley <johnw@newartisans.com>
Allow :diminish to take no argument, once again
Fix for single :custom (foo bar)
2017-11-28 John Wiegley <johnw@newartisans.com>
Allow :custom (foo1 bar1) (foo2 bar2) etc
Fixes https://github.com/jwiegley/use-package/issues/518
2017-11-28 John Wiegley <johnw@newartisans.com>
Add support for `:hook`
Fixes https://github.com/jwiegley/use-package/issues/444
2017-11-28 John Wiegley <johnw@newartisans.com>
Append to *use-package* when debugging, don't clear it
Fixes https://github.com/jwiegley/use-package/issues/476
2017-11-28 John Wiegley <johnw@newartisans.com>
Make unrecognized keywords a warning
This could actually be used to store your own metadata in use-package
declarations, to be (read) later by simply parsing init file contents.
Fixes https://github.com/jwiegley/use-package/issues/483
2017-11-28 John Wiegley <johnw@newartisans.com>
Upgrade license to GPL 3
Fixes https://github.com/jwiegley/use-package/issues/499
2017-11-28 John Wiegley <johnw@newartisans.com>
Don't allow :commands, :bind, etc., to be given an empty list
This makes the following an error:
:commands
:commands nil
:commands ()
Fixes https://github.com/jwiegley/use-package/issues/512
2017-11-28 John Wiegley <johnw@newartisans.com>
Explicit :defer t should override use-package-always-demand
Fixes https://github.com/jwiegley/use-package/issues/514
2017-11-28 John Wiegley <johnw@newartisans.com>
Merge pull request from drrlvn/patch-1
Remove duplicate documentation of :mode
GitHub-reference: https://github.com/jwiegley/use-package/issues/489
2017-11-28 John Wiegley <johnw@newartisans.com>
Corrections to the normalization of :custom
2017-11-28 John Wiegley <johnw@newartisans.com>
Merge pull request from joewreschnig/implicit-diminish
Allow `:diminish` with no arguments.
GitHub-reference: https://github.com/jwiegley/use-package/issues/472
2017-11-21 John Wiegley <johnw@newartisans.com>
Merge pull request from waymondo/master
Allow customized values to be nil
GitHub-reference: https://github.com/jwiegley/use-package/issues/515
2017-11-20 Justin Talbott <justin@waymondo.com>
allow customized values to be nil
2017-11-20 John Wiegley <johnw@newartisans.com>
Merge pull request from canatella/add-customization-keywords
Add customization keywords
GitHub-reference: https://github.com/jwiegley/use-package/issues/508
2017-11-10 Damien Merenne <dam@cosinux.org>
Add support for face customization
Allows customization of faces using customize-set-faces. This makes it
easier to manage customization in version control. Instead of having all the
faces written in a custom.el, the faces can be customized where the rest
of the package is configured.
2017-11-10 Damien Merenne <dam@cosinux.org>
Add support for variable customization
Allows customization of variable using customize-set-variables. This makes it
easier to manage customization in version control. Instead of having all the
variables written in a custom.el, the variable can be customized where the rest
of the package is configured.
2017-10-30 John Wiegley <johnw@newartisans.com>
Merge pull request from carldotac/master
Fix documentation typos
GitHub-reference: https://github.com/jwiegley/use-package/issues/513
2017-10-30 Carl Lieberman <dev@carl.ac>
Fix typos in docstring
2017-10-13 John Wiegley <johnw@newartisans.com>
Merge pull request from emacsjanitors/demote-manually
Don't use with-demoted-errors in use-package-ensure-elpa
GitHub-reference: https://github.com/jwiegley/use-package/issues/507
2017-10-13 Jonas Bernoulli <jonas@bernoul.li>
Cosmetic changes to use-package-ensure-elpa
2017-10-13 Jonas Bernoulli <jonas@bernoul.li>
Don't use with-demoted-errors in use-package-ensure-elpa
It expects a literal string as argument at macro-expansion
time, but we need to construct the message.
2017-10-09 Andreas Politz <politza@hochschule-trier.de>
Remove redundant checks for the empty overlay tree
* src/alloc.c (mark_buffer): Remove b->overlays check.
* src/buffer.c (copy_overlays): Also.
* src/buffer.c (swap_buffer_overlays, overlays_in): Also.
(next_overlay_change, previous_overlay_change): Also.
(overlay_touches_p, Foverlay_lists): Also.
(evaporate_overlays): Also.
* src/xdisp.c (load_overlay_strings): Also.
2017-10-07 Andreas Politz <politza@hochschule-trier.de>
Make boolean struct member use one bit
* src/itree.h (struct interval_tree): Add bit descriptor.
2017-10-07 Andreas Politz <politza@hochschule-trier.de>
Optimize struct layout for space
* src/itree.h (struct interval_node): Move color member near the end.
2017-10-07 Andreas Politz <politza@hochschule-trier.de>
Make boolean struct member use one bit
* src/itree.h (struct interval_node): Add bit descriptor.
2017-10-07 Andreas Politz <politza@hochschule-trier.de>
Expand overlay multibyte tests
* test/src/buffer-tests.el (test-overlay-multibyte-transition-1):
Expand test.
(test-overlay-multibyte-transition-2): New test.
2017-10-06 Andreas Politz <politza@hochschule-trier.de>
Adapt overlays when multibyteness changes
* src/buffer.c
(set_overlays_multibyte): New function.
(set-buffer-multibyte): Use function.
2017-10-06 Andreas Politz <politza@hochschule-trier.de>
Add a function collecting all interval nodes
* src/itree.c (interval_tree_nodes): New function
2017-10-05 Andreas Politz <politza@hochschule-trier.de>
Fix assignment of offset to newly inserted nodes.
* src/itree.c (interval_tree_insert): Fix offset.
2017-10-05 Andreas Politz <politza@hochschule-trier.de>
Add offsets when inspecting a node's children's values
*src/itree.c (interval_tree_insert_gap): Add offset.
2017-10-05 Andreas Politz <politza@hochschule-trier.de>
Add test exposing overlay bug
* test/src/buffer-tests.el (overlay-autogenerated-test-64): New test.
2017-10-05 Andreas Politz <politza@hochschule-trier.de>
Add test regarding overlay and buffer encoding
* test/src/buffer-tests.el (test-overlay-multibyte-transition-1):
New test exposing a bug regarding overlays when changing the
multibyteness of a buffer.
2017-10-04 Andreas Politz <politza@hochschule-trier.de>
Provide a new tree data-structure for overlays.
* src/itree.c
(interval_generator_narrow, interval_generator_next)
(interval_node_init, interval_node_begin)
(interval_node_end, interval_node_set_region)
(interval_tree_create, interval_tree_clear)
(interval_tree_init, interval_tree_destroy)
(interval_tree_size, interval_tree_insert)
(interval_tree_contains, interval_tree_remove)
(interval_tree_validate, interval_tree_iter_start)
(interval_tree_iter_finish, interval_tree_iter_next)
(interval_tree_iter_ensure_space, interval_tree_max_height)
(interval_tree_insert_gap, interval_tree_delete_gap)
(interval_generator_create, interval_generator_reset)
(interval_generator_ensure_space, interval_node_intersects)
(interval_generator_next, interval_generator_narrow)
(interval_generator_destroy, interval_stack_create)
(interval_stack_destroy, interval_stack_clear)
(interval_stack_ensure_space, interval_stack_push)
(interval_stack_push_flagged, interval_stack_pop)
(interval_tree_update_limit, interval_tree_inherit_offset)
(interval_tree_propagate_limit, interval_tree_rotate_left)
(interval_tree_rotate_right, interval_tree_insert_fix)
(interval_tree_remove_fix, interval_tree_transplant)
(interval_tree_subtree_min): New file and new functions.
* src/itree.h: New file.
* configure.ac: Create Makefile for manual overlay tests.
* src/Makefile.in: Add itree.o target.
* src/alloc.c (build_overlay, mark_overlay, mark_buffer)
(sweep_misc, sweep_buffers): Adapt to new tree data-structure.
* src/buffer.c (overlays_in, overlays_at): Remove unused arguments
prev_ptr and change_req, adapt to new data-structure and reuse
code.
(copy_overlays, drop_overlays, delete_all_overlays)
(reset_buffer, kill-buffer, buffer-swap-text, next_overlay_change)
(previous_overlay_change, mouse_face_overlay_overlaps)
(disable_line_numbers_overlay_at_eob, overlay_touches_p)
(overlay_strings, adjust_overlays_for_insert)
(adjust_overlays_for_delete, overlayp, make-overlay, move-overlay)
(delete-overlay, overlay-start, overlay-end, overlay-buffer)
(overlay-properties, overlays-at, overlays-in)
(next-overlay-change, previous-overlay-change, overlay-put)
(overlay-get, report_overlay_modification, evaporate_overlays)
(init_buffer_once): Adapt to changes and tree data-structure.
(overlay-lists, overlay-recenter): Funtions are now obsolete, but
kept anyway.
(set_buffer_overlays_before, set_buffer_overlays_after)
(recenter_overlay_lists,fix_start_end_in_overlays,fix_overlays_before)
(unchain_overlay,): Removed functions of the old list
data-structure.
(swap_buffer_overlays, make_sortvec_item): New functions.
(sort_overlays): Adapt to changes and tree data-structure.
(sortvec): Moved to buffer.h .
(make_lispy_interval_node, overlay_tree, overlay-tree)
[ITREE_DEBUG]: New debugging functions.
* src/buffer.h (overlays_before, overlays_after): Removed struct
member of the list data-structure.
(overlays): Added tree struct member.
(sortvec): Moved here from buffer.c .
(GET_OVERLAYS_AT): Adapt to changes.
(set_buffer_intervals, OVERLAY_START, OVERLAY_END, OVERLAY_PLIST):
Adapt to tree data-structure.
(OVERLAY_POSITION): Removed macro of the list data-structure.
(OVERLAY_REAR_ADVANCE_P, OVERLAY_FRONT_ADVANCE_P): New macros.
(overlay_start, overlay_end)
(set_overlay_region, maybe_alloc_buffer_overlays)
(free_buffer_overlays, add_buffer_overlay)
(remove_buffer_overlay, buffer_overlay_iter_start)
(buffer_overlay_iter_next, buffer_overlay_iter_finish)
(buffer_overlay_iter_narrow): New functions.
(compare_overlays, make_sortvec_item): Export functions.
* src/editfns.c (overlays_around): Reuse overlays_in.
(get-pos-property): Adapt to tree data-structure.
(transpose-regions): Remove call to deleted function.
* src/fileio.c: (insert-file-contents): Remove
references to deleted struct member.
* src/fns.c (internal_equal): Adapt to tree data-structure.
* src/indent.c (check_display_width): Adapt to tree
data-structure.
(skip_invisible): Remove call to deleted function.
* src/insdel.c (adjust_markers_for_insert): Remove calls to
deleted functions.
* src/intervals.c (adjust_for_invis_intang): Adapt to tree
data-structure.
* src/keyboard.c (adjust_point_for_property): Adapt to tree
data-structure.
* src/lisp.h (Lisp_Overlay): Modified struct layout.
* src/print.c (temp_output_buffer_setup, print_object): Adapt to
tree data-structure.
* src/textprop.c (get_char_property_and_overlay): Adapt to tree
data-structure. Take advantage of the new data-structure.
* src/window.h (overlay_matches_window): New function.
* src/xdisp.c (next_overlay_change): Removed function. Use
next-overlay-change, which does not use xmalloc anymore.
(handle_single_display_spec, load_overlay_strings)
(back_to_previous_visible_line_start, note_mouse_highlight): Adapt
to tree data-structure.
(move_it_to, display_line): Remove calls to deleted functions.
* src/xfaces.c (face_at_buffer_position): Adapt to changes and
tree data-structure.
* test/src/buffer-tests.el: Many tests regarding overlays added.
* test/manual/noverlay/itree-tests.c: New file with tests of the
tree data-structure on the C level.
* test/manual/noverlay/Makefile.in: New file.
* test/manual/noverlay/check-sanitize.sh: New file.
* test/manual/noverlay/emacs-compat.h: New file.
* test/manual/noverlay/.gitignore: New file.
* test/manual/noverlay/overlay-perf.el: New file providing
performance tests.
* test/manual/noverlay/many-errors.h: New file.
2017-08-16 João Távora <joaotavora@gmail.com>
Overhaul async mechanism safety
2017-08-16 João Távora <joaotavora@gmail.com>
Simplify `eglot--protocol-initialize`
* eglot.el (eglot--protocol-initialize): Simplify
2017-08-16 João Távora <joaotavora@gmail.com>
Experimental diagnostic overlays
Minor cleanup
Cancel timeouts when process dies unexpectedly
Organize a bit
Improve `eglot--current-process'
Handle notifications
Introduce and use `eglot--current-process-or-lose'
Add a mode-line construct and some minor fanciness
Rename eglot--continuations eglot--pending-continuations
Remove a couple of comments
2017-08-15 João Távora <joaotavora@gmail.com>
Initial commit
2017-08-13 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/feat/fix-install-deferred
Fix bug in use-package-install-deferred-package
GitHub-reference: https://github.com/jwiegley/use-package/issues/479
2017-07-30 Dror Levin <spatz@psybear.com>
Remove duplicate documentation of :mode
2017-07-10 John Wiegley <johnw@newartisans.com>
Merge pull request from joewreschnig/481-delight-docs
Document :delight in the doc string and README.
GitHub-reference: https://github.com/jwiegley/use-package/issues/484
2017-07-10 Joe Wreschnig <joe.wreschnig@gmail.com>
Document :delight in the doc string and README
2017-07-08 Joe Wreschnig <joe.wreschnig@gmail.com>
Allow `:diminish` with no arguments
When given no arguments, have :diminish assume it should diminish a
mode named after the current package (the packages name, with “-mode”
appended, if its not already) to an empty string.
When given only a string to diminish an implicit package name to, do
not append “-mode” to the package name if it already ends with
it. (This is a backwards-incompatible change if someone was
diminishing a package named “foo-mode” implementing `foo-mode-mode`.)
Add test cases for `use-package-normalize-diminish`.
This addresses some of the redundancy mentioned in issue https://github.com/jwiegley/use-package/issues/288.
2017-07-02 John Wiegley <johnw@newartisans.com>
Merge pull request from joewreschnig/477-delight-wrappers
Allow multiple :delight arguments, or omitting the mode. (https://github.com/jwiegley/use-package/issues/477)
GitHub-reference: https://github.com/jwiegley/use-package/issues/480
2017-07-02 Joe Wreschnig <joe.wreschnig@gmail.com>
Allow :major as the third argument in :delight calls
2017-07-02 Joe Wreschnig <joe.wreschnig@gmail.com>
Allow multiple :delight arguments, or omitting the mode. ()
This allows using forms such as
(use-package foo :delight)
;; => (delight 'foo-mode)
(use-package foo :delight " f")
;; => (delight 'foo-mode " f")
(use-package foo :delight (a-mode) (b-mode " b")
;; => (delight 'a-mode) (delight 'b-mode " b")
This brings support for `:delight` in line with `:diminish`.
GitHub-reference: https://github.com/jwiegley/use-package/issues/477
2017-06-30 Radon Rosborough <radon.neon@gmail.com>
Fix bug in use-package-install-deferred-package
Previously, deferred installation didn't work because I didn't convert
the result of a `completing-read' back from a string to a symbol,
which meant the hash-table lookup failed.
2017-06-16 John Wiegley <johnw@newartisans.com>
Merge pull request from joewreschnig/magic-469
Add `:magic` and `:magic-fallback` keywords (issue https://github.com/jwiegley/use-package/issues/469).
GitHub-reference: https://github.com/jwiegley/use-package/issues/473
2017-06-15 Joe Wreschnig <joe.wreschnig@gmail.com>
Add `:magic` and `:magic-fallback` keywords (issue)
These keywords work equivalently to `:mode` or `:interpreter`, but for
`magic-mode-alist` and `magic-fallback-mode-alist`.
The handler function implementation is now passed a list to add to,
and shared by all four of them.
GitHub-reference: https://github.com/jwiegley/use-package/issues/469
2017-05-22 David Leatherman <git@david.leatherman.fm> (tiny change)
Protect against errors during package install
If the network is missing and there is a new use-package with :ensure,
startup would fail part of the way through due package.el being unable
to reach the package repo. This will catch that error and report it
while allowing startup to continue.
2017-05-09 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/feat/failed-autoload-msg
Fix quoting error in failed autoload message
GitHub-reference: https://github.com/jwiegley/use-package/issues/456
2017-05-07 Radon Rosborough <radon.neon@gmail.com>
Fix quoting error in failed autoload message
2017-04-05 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/normalize-nil
Make use-package-normalize-value handle nil better
GitHub-reference: https://github.com/jwiegley/use-package/issues/449
2017-04-05 Radon Rosborough <radon.neon@gmail.com>
Make use-package-normalize-value handle nil better
The previous version of `use-package-normalize-value', when passed
nil, would return the list (symbol-value (quote nil)). This meant that
keywords which used `use-package-normalize-value' or the higher-level
normalizer `use-package-normalize-test' would get a non-nil
argument (i.e. the above list) even when the user specified nil to the
package.
This had the concrete impact of making it so that :defer-install nil
was treated as :defer-install t.
2017-04-03 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/fix-bind-key-filter
Don't mutilate keyword arguments in :bind
GitHub-reference: https://github.com/jwiegley/use-package/issues/447
2017-04-03 Radon Rosborough <radon.neon@gmail.com>
Add comment explaining keyword-argument patch
2017-04-03 Radon Rosborough <radon.neon@gmail.com>
Don't mutilate keyword arguments in :bind
The parsing logic in `use-package-normalize-pairs' is not designed to
deal with keyword arguments. However, `use-package-normalize-pairs' is
used to process the arguments to :bind, which can include keyword
arguments. These keyword arguments are supposed to be passed untouched
to the underlying `bind-keys' function, but there is a clause in
`use-package-normalize-pairs' that replaces lists with their first
element. Thus an invocation like:
(use-package company
:bind (:map company-active-map
:filter (company-explicit-action-p)
("RET" . company-complete-selection)))
Generates code like this:
(bind-keys
:map company-active-map
:filter company-explicit-action-p
("RET" . company-complete-selection))
Which generates an error since `company-explicit-action-p' is now
being referenced as a variable rather than a function.
The proper solution is to refactor the logic that goes into parsing
uses of :bind, but this commit adds a temporary patch to eliminate the
above problem, while trying to be as reverse-compatible as possible.
In particular it just inhibits the list-to-first-element
transformation when the previous element processed was a keyword.
2017-03-27 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/fix-after
Fix :after keyword
GitHub-reference: https://github.com/jwiegley/use-package/issues/439
2017-03-27 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/always-defer-install
Add use-package-always-defer-install
GitHub-reference: https://github.com/jwiegley/use-package/issues/443
2017-03-26 Radon Rosborough <radon.neon@gmail.com>
Add use-package-always-defer-install
See https://github.com/jwiegley/use-package/pull/433#issuecomment-289317875
2017-03-19 Radon Rosborough <radon.neon@gmail.com>
Fix :after keyword
Commit [1] broke the functionality of :after (see [2]) due to an
extraneous quote being added.
[1]: bd2afa53c7580d23ed8008267b80e1834b6e6600
[2]: https://github.com/jwiegley/use-package/pull/433#issuecomment-287606553
2017-03-19 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/defer-install
[RFC] Support for deferred installation
GitHub-reference: https://github.com/jwiegley/use-package/issues/433
2017-03-18 Radon Rosborough <radon.neon@gmail.com>
Merge remote-tracking branch 'origin/master' into defer-install
Resolve merge conflicts.
2017-03-18 Radon Rosborough <radon.neon@gmail.com>
Update docstring, installation prompt message
Various improvements for deferred installation
2017-03-08 Radon Rosborough <radon.neon@gmail.com>
Get :defer-install completely working, in theory
A quoting error has been fixed in `use-package-handler/:defer'.
`use-package-install-deferred-package' has been updated to return t
if the package was actually installed, and nil otherwise.
The fake autoloads generated during deferred installation are
doctored so Emacs does not think they were defined in the user's
init-file.
The docstrings of the fake autoloads have been improved.
Arguments and interactivity are now correctly passed to the
autoloaded function.
The autoload now skips requiring the feature and calling the
original function if the user declines to install the package. This
prevents unprofessional errors.
2017-03-08 Radon Rosborough <radon.neon@gmail.com>
Improve deferred installation mechanism
This time around, I've gotten rid of the advice on `require' (that was
never going to work) and instead made `use-package' try to handle
loading the package at the appropriate time. In particular, when
deferred installation is active, all the autoloads generated by
`use-package' are not regular autoloads, but regular functions that
will install the relevant package, require the relevant feature, and
only then call the newly defined (autoloaded) function.
Some smarter logic has been added to make sure things like `:demand'
play nicely with the autoloading system; see the extensive comment in
`use-package-handler/:defer-install' for more information on how that
works.
There was a section in `use-package-install-deferred-package' which
referred to a nonexistent variable `use-package--deferred-features';
that has been removed.
There is now, in addition to `use-package-ensure-function', a new
variable called `use-package-pre-ensure-function'. This is intended
for use by package managers which, unlike package.el, activate
autoloads package-by-package instead of all at once. Even if a package
is marked for deferred installation, the user would likely want its
autoloads activated immediately *if* it was already installed. The
logic for doing that can now be put in
`use-package-pre-ensure-function'.
2017-03-08 Radon Rosborough <radon.neon@gmail.com>
Merge branch 'generalized-ensure' into defer-install
2017-03-08 Radon Rosborough <radon.neon@gmail.com>
Update docstring for use-package-ensure-function
Now it properly reflects the API changes recently made.
2017-03-08 Radon Rosborough <radon.neon@gmail.com>
First cut at :defer-install keyword
This new keyword, if provided along with a non-nil value, causes the
action of :ensure to be deferred until "necessary". Package
installation can be triggered by the user calling the new interactive
function `use-package-install-deferred-package', or by the feature
declared by the `use-package' form being required. This latter
behavior seems to be the simplest way to make sure that package
installation actually takes place when it needs to, but it requires
that an advice be added to `require', which may be considered overly
intrusive. (Also, it's generally considered bad practice for functions
in Emacs to put advice on other functions in Emacs.) Thus it may make
sense to add an option or function to explicitly enable this behavior,
if there does not turn out to be a better way to accomplish deferred
installation.
Documentation has not been updated to reflect :defer-install yet.
2017-03-08 Radon Rosborough <radon.neon@gmail.com>
Extend capabilities of use-package-ensure-function
Modify the expected API of `use-package-ensure-function' so that it is
passed three arguments: the name of the package declared in the
`use-package' form; the argument passed to `:ensure'; and the current
`state' plist created by previous handlers. (Previously, it was only
given a single argument, which was the argument passed to `:ensure',
or the name of the package declared in the `use-package' form, if the
former was `t'.
This allows for more flexibility in the capabilities of the
`use-package-ensure-function' implementation. For example, its
behavior can change depending on the values of other keywords, if
those keywords modify the `state' plist appropriately.
2017-02-18 John Wiegley <johnw@newartisans.com>
Revert "Return `t' after calling `eval-after-load'"
This reverts commit 87a8ff6d693f3cc79ea423ca8c8e0a60b0bc596c.
2017-02-16 John Wiegley <johnw@newartisans.com>
Support multiple symbols passed to :after
The following expressions are now permitted:
foo ; load after foo is loaded
foo bar ; load after both foo and bar are loaded
:all foo bar ; same as previous
:any foo bar ; load after either foo or bar is loaded
:any (:all foo bar) baz ; more complex combinations...
:any (:all foo bar) (:all baz wow)
:all (:any foo bar) (:any baz wow)
Fixes https://github.com/jwiegley/use-package/issues/283
2017-02-16 John Wiegley <johnw@newartisans.com>
:mode and :interpreter can now accept (rx ...) forms
Fixes https://github.com/jwiegley/use-package/issues/204
2017-02-16 John Wiegley <johnw@newartisans.com>
Return `t' after calling `eval-after-load'
Fixes https://github.com/jwiegley/use-package/issues/174
2017-02-16 John Wiegley <johnw@newartisans.com>
Add autoload cookie for use-package-autoload-keymap
Fixes https://github.com/jwiegley/use-package/issues/337
2017-02-13 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/find-form
Add function use-package-jump-to-package-form
GitHub-reference: https://github.com/jwiegley/use-package/issues/359
2017-02-13 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/imenu3
Improve imenu support
GitHub-reference: https://github.com/jwiegley/use-package/issues/356
2017-02-13 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/fix-use-package-defaults
Fix use-package-defaults
GitHub-reference: https://github.com/jwiegley/use-package/issues/430
2017-02-13 Radon Rosborough <radon.neon@gmail.com>
Fix use-package-defaults
This patch should address issues https://github.com/jwiegley/use-package/issues/428 and https://github.com/jwiegley/use-package/issues/429. See https://github.com/jwiegley/use-package/issues/426 for
discussion. In brief, the issue was that use-package-sort-keywords was
not applied when the predicates in use-package-defaults did not return
true, when it should have been applied unconditionally.
2017-02-13 Radon Rosborough <radon.neon@gmail.com>
Unrevert "Add use-package-defaults"
This reverts commit 013425edeb1829f5d21514f77d41763347538b14.
2017-02-13 John Wiegley <johnw@newartisans.com>
Revert "Add use-package-defaults"
This reverts commit 3dec23c0860ad297436b9b71b221491ae3790cce.
2017-02-12 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/use-package-defaults
Add use-package-defaults
GitHub-reference: https://github.com/jwiegley/use-package/issues/426
2017-01-16 Radon Rosborough <radon.neon@gmail.com>
Add use-package-defaults
Previously, the :config, :ensure, and :pin keywords had default
values (dependent on the values of the use-package-always-ensure and
use-package-always-pin). This change allows the user to customize the
default values used for those keywords, and add default values for
their own keywords in a non-hacky way.
This functionality would be useful for (as an example) the
quelpa-use-package package, which needs to use an advice to override
the functionality of :ensure. The same problem prevents adding a
use-package-always-quelpa variable in any reasonable way, without a
way to customize the default values of keywords.
2017-01-16 John Wiegley <johnw@newartisans.com>
Merge pull request from raxod502/use-package-ensure-function
Add use-package-ensure-function
GitHub-reference: https://github.com/jwiegley/use-package/issues/427
2017-01-15 Radon Rosborough <radon.neon@gmail.com>
Add use-package-ensure-function
This allows the user to customize the :ensure keyword by using a
different package manager than package.el.
2016-12-22 John Wiegley <johnw@newartisans.com>
Add new customization option `use-package-always-demand`
This is equivalent to adding `:demand t` to all `use-package` declarations,
and has the same semantics as doing so (meaning it can be overridden locally
using `:defer t` in a declaration).
Fixes https://github.com/jwiegley/use-package/issues/423
2016-12-18 John Wiegley <johnw@newartisans.com>
Merge pull request from basil-conto/preface
Increase :preface priority
GitHub-reference: https://github.com/jwiegley/use-package/issues/418
2016-12-18 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/outline
Support outline-minor-mode
GitHub-reference: https://github.com/jwiegley/use-package/issues/420
2016-12-18 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/bind-later
Delay decision whether to use eval-after-load until run-time
GitHub-reference: https://github.com/jwiegley/use-package/issues/419
2016-12-18 Jonas Bernoulli <jonas@bernoul.li>
Delay decision whether to use eval-after-load until run-time
Just because a keymap variable is bound at macro-expansion-time
doesn't mean that it must be bound at run-time too.
Change `bind-keys-form', which is used by `bind-keys' and other
macros, to return a form which delays the decision on whether to
wrap the binding forms with `eval-after-load' until run-time.
Fixes https://github.com/jwiegley/use-package/issues/378.
2016-12-17 Jonas Bernoulli <jonas@bernoul.li>
Support outline-minor-mode
In "use-package.el" prefix headings with ";;;" instead of just
";;". In "bind-key.el" add the missing ";;; Code:" heading.
In both libraries set `outline-regexp' to an appropriate value.
2016-12-16 Basil L. Contovounesios <contovob@tcd.ie>
Increase :preface priority
Reconcile order of `use-package-keywords' with the README
description of `:preface' as occurring before everything but
`:disabled'.
2016-10-31 John Wiegley <johnw@newartisans.com>
Merge pull request from phst/bug398
Declare package-read-all-archive-contents
GitHub-reference: https://github.com/jwiegley/use-package/issues/402
2016-10-31 Philipp Stephani <phst@google.com>
Declare package-read-all-archive-contents
Fixes https://github.com/jwiegley/use-package/issues/398
2016-10-31 Philipp Stephani <phst@google.com>
Remove tests, which dont work
Fixes https://github.com/jwiegley/use-package/issues/399
2016-10-31 Noam Postavsky <npostavs@gmail.com>
Don't allow implicit package name arg for binders
It's unlikely that
(use-package foopkg :bind "<some-key>")
intendes to bind <some-key> to 'foopkg command.
2016-10-31 Noam Postavsky <npostavs@gmail.com>
Don't allow nil as a mode function
This means (use-package foopkg :mode (".foo")) will add (".foo"
. foopkg) into auto-mode-alist instead of the broken (".foo" . nil),
this is more consistent with the behaviour of (use-package foopkg
:mode (".foo" ".bar")).
2016-10-31 Noam Postavsky <npostavs@gmail.com>
Refactor pair normalizers; add tests for them
This is not a pure refactoring, it also fixes a bug where
:bind ([keysym] . "string") would actually bind keysym to nil (i.e.,
unbind it). It now binds to "string" as expected.
2016-10-31 Noam Postavsky <npostavs@gmail.com>
Remove obsolete mplist tests
The mplist functions were removed in the 2.0
refactoring (4ae584f3ff0e9bda05420ec3b8598e59374b0899).
2016-10-17 John Wiegley <johnw@newartisans.com>
Bump version to 2.3
2016-08-15 John Wiegley <johnw@newartisans.com>
Merge pull request from appleby/master
Ensure package-pinned-packages is bound before referencing it.
GitHub-reference: https://github.com/jwiegley/use-package/issues/376
2016-08-15 Mike Appleby <mike@app.leby.org> (tiny change)
Ensure package-pinned-packages is bound before referencing it
Add a bound-and-true-p guard to package-pinned-packages before
referencing it in use-package-ensure-elpa.
Package pinning was introduced in Emacs 24.4, and hence
package-pinned-packages in unbound by default in earlier versions.
Relevant commits:
72452b5 Merge pull request https://github.com/jwiegley/use-package/issues/367 from ketbra/master
5053f75 Make pin and ensure compatible
Fixes https://github.com/jwiegley/use-package/issues/375
2016-07-22 John Wiegley <johnw@newartisans.com>
Remove the use of a tab
2016-07-22 John Wiegley <johnw@newartisans.com>
Merge pull request from ketbra/master
Update use-package.el
GitHub-reference: https://github.com/jwiegley/use-package/issues/367
2016-07-21 Matthew Feinberg <ketbra@users.noreply.github.com> (tiny change)
Make pin and ensure compatible
`:pin` does not work with `:ensure`, because it doesn't add the package to package-pinned-packages until after reading the package archive contents. This change causes the package archive contents to be reread if the package is pinned and `:ensure` is being used.
2016-07-18 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/state-noconst
Some minor fixes
GitHub-reference: https://github.com/jwiegley/use-package/issues/342
2016-07-17 Noam Postavsky <npostavs@gmail.com>
Fix declare-function call: FILE must be a string
use-package-as-string: use noerror parameter
2016-07-17 Noam Postavsky <npostavs@gmail.com>
Don't pass a constant as the state
for use-package-process-keywords, because the function may modify the
list object. Modifying a quoted constant can lead to unexpected side
effects (e.g. values from previous use-package forms end up in
subsequent ones).
2016-07-06 John Wiegley <johnw@newartisans.com>
Version 2.2
2016-07-05 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/bump-init
Move :init forms before :after and :demand
GitHub-reference: https://github.com/jwiegley/use-package/issues/360
2016-06-23 Justin Burkett <justin@burkett.cc>
Move :init forms before :after and :demand
The docstring of use-package says that :init should run before the
package is loaded but using :after moves the require statement ahead of
:init when any package specified in :after is already loaded. In the
following example, in the first case bar-x might get set before or after
bar is loaded depending on if foo is already loaded at the time, while
the second case always sets bar-x first.
(use-package bar
:after (foo)
:init (setq bar-x 2)
:config (bar-mode))
(use-package bar
:init (setq bar-x 2)
:config (bar-mode))
This commit fixes the issue and makes sure that bar-x is set before bar
is loaded by use-package. Fixes https://github.com/jwiegley/use-package/issues/352.
2016-06-22 Justin Burkett <justin@burkett.cc>
Add function use-package-jump-to-package-form
This is an attempt at resolving https://github.com/jwiegley/use-package/issues/329. The new interactive function
use-package-jump-to-package-form will prompt with a completing read of
all known packages. After selecting a package, use-package-find-require
searches load-history to see where the package was required and then I
attempt to find the correct use-package form using
use-package-form-regexp.
It will fail if the use-package form you are looking for did not
actually load the package. For example it could be something that is a
dependency of a library that was already loaded. In some sense this is a
feature because it is helpful to know that the library was already
loaded when your use-package form was encountered. It will also fail if
your use-package declaration doesn't match the regexp used, but this is
easily adjusted.
2016-06-15 Justin Burkett <justin@burkett.cc>
Improve imenu support
Instead of using defvar for lisp-mode-symbol-regexp, wait until
lisp-mode is loaded and check for its existence to avoid making
use-package the place where this variable is declared.
2016-06-14 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/imenu2
Fix imenu support for older versions
GitHub-reference: https://github.com/jwiegley/use-package/issues/355
2016-06-13 Justin Burkett <justin@burkett.cc>
Fix imenu support for older versions
lisp-mode-symbol-regexp was not defined in Emacs 24.5.
2016-06-13 John Wiegley <johnw@newartisans.com>
Merge pull request from justbur/imenu
Add imenu support for use-package forms
GitHub-reference: https://github.com/jwiegley/use-package/issues/354
2016-06-13 John Wiegley <johnw@newartisans.com>
Merge pull request from robario/patch-1
Fix to ignore load error caused via :after
GitHub-reference: https://github.com/jwiegley/use-package/issues/350
2016-06-13 Justin Burkett <justin@burkett.cc>
Add imenu support for use-package forms
Also add require forms and group both under menu "Package".
2016-06-05 robario <webmaster@robario.com> (tiny change)
Fix to ignore load error caused via :after
2016-04-03 John Wiegley <johnw@newartisans.com>
Merge pull request from xuchunyang/fix-package-install
Mark package as selected with package-install
GitHub-reference: https://github.com/jwiegley/use-package/issues/336
2016-03-31 Chunyang Xu <xuchunyang56@gmail.com>
Mark package as selected with package-install
Fixes https://github.com/jwiegley/use-package/issues/327
2016-02-27 John Wiegley <johnw@newartisans.com>
:map no longer accepts lists; only eval-after-load if necessary
Fixes https://github.com/jwiegley/use-package/issues/324
2016-02-26 John Wiegley <johnw@newartisans.com>
Normalize some error text
2016-02-26 John Wiegley <johnw@newartisans.com>
Only printing debug messages if use-package-verbose is `debug'
Fixes https://github.com/jwiegley/use-package/issues/271
2016-02-26 John Wiegley <johnw@newartisans.com>
Merge pull request from ljos/master
Quote variable in bind-keys*
GitHub-reference: https://github.com/jwiegley/use-package/issues/325
2016-02-26 John Wiegley <johnw@newartisans.com>
Repair :map handling in bind-key.el
GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/324
2016-02-26 Bjarte Johansen <bjarte.johansen@gmail.com>
Quote variable in `bind-keys*'
* bind-key.el (bind-keys*): `override-global-map' needs to be quoted so
the symbol is passed to `bind-keys-form' and not the value.
GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/323
2016-02-25 John Wiegley <johnw@newartisans.com>
Add configuration variable `use-package-check-before-init'
Fixes https://github.com/jwiegley/use-package/issues/306
2016-02-25 John Wiegley <johnw@newartisans.com>
Use `add-to-list' defensively instead of `push'
GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/293
2016-02-25 John Wiegley <johnw@newartisans.com>
Add variable `use-package-always-defer'
GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/202
2016-02-25 John Wiegley <johnw@newartisans.com>
Restore :bind-keymap, it does something special still
Remove :bind-keymaps, and only apply :map bindings after load
2016-02-25 John Wiegley <johnw@newartisans.com>
Support multiples uses of :map with :bind
GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/121
2016-02-25 John Wiegley <johnw@newartisans.com>
Add some variable settings to use-package-tests.el, thanks tarsius
2016-02-25 John Wiegley <johnw@newartisans.com>
Merge pull request from alezost/keymap-doc-fix
Handle the case when keymap has a broken documentation
GitHub-reference: https://github.com/jwiegley/use-package/issues/223
2016-02-25 John Wiegley <johnw@newartisans.com>
Add another `declare'
2016-02-25 John Wiegley <johnw@newartisans.com>
Handle :unless correctly
GitHub-reference: fixes https://github.com/jwiegley/use-package/issues/197
2016-02-09 John Wiegley <johnw@newartisans.com>
Add a comment about a recent change
2016-02-09 John Wiegley <johnw@newartisans.com>
Merge pull request from waymondo/master
Allow string values in cons for :bind keywords
GitHub-reference: https://github.com/jwiegley/use-package/issues/303
2016-02-06 John Wiegley <johnw@newartisans.com>
Merge pull request from dudebout/patch-1
Upper casing Cs corresponding to Ctrl
GitHub-reference: https://github.com/jwiegley/use-package/issues/316
2016-02-06 John Wiegley <johnw@newartisans.com>
Add an autoload cookie for `use-package'
2016-02-05 Nicolas Dudebout <nicolas.dudebout@gmail.com>
Upper casing Cs corresponding to Ctrl
A number of Cs corresponding to Ctrl have been lower cased in comments in eb6b81dfe.
2016-02-04 John Wiegley <johnw@newartisans.com>
Merge pull request from thierryvolpiatto/fix_package_install
When :ensure is used install package as a selected package.
GitHub-reference: https://github.com/jwiegley/use-package/issues/314
2016-02-04 Thierry Volpiatto <thierry.volpiatto@gmail.com>
Ensure package-install support a second argument
* use-package.el (use-package-ensure-elpa): Do it.
2016-02-04 Thierry Volpiatto <thierry.volpiatto@gmail.com>
When :ensure is used install package as a selected package
Also shutup bytecompiler about package-archive-contents.
* use-package.el (use-package-ensure-elpa): Add package to selected package
by using second arg of package install.
2016-01-25 John Wiegley <johnw@newartisans.com>
Merge pull request from kovrik/fix-pin-performance
Do not package-initialize on each :pin
GitHub-reference: https://github.com/jwiegley/use-package/issues/308
2016-01-21 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/fix/always-pin-typo
Fix errant variable name.
GitHub-reference: https://github.com/jwiegley/use-package/issues/312
2016-01-21 Phillip Lord <phillip.lord@russet.org.uk>
Fix errant variable name
2016-01-20 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/feature/always-pin
Add new option `-always-pin'
GitHub-reference: https://github.com/jwiegley/use-package/issues/310
2016-01-20 Phillip Lord <phillip.lord@russet.org.uk>
Add new option `-always-pin'
`use-package-always-pin' allows a default archive (or manual) to be
specified for all use-package statements, unless explicitly overridden.
2016-01-19 Ivan Goncharov <kovrik0@gmail.com>
Change condition that checks if package has been initialized
2016-01-17 Ivan Goncharov <kovrik0@gmail.com>
Do not package-initialize on each :pin
2016-01-12 John Wiegley <johnw@newartisans.com>
Merge pull request from kovrik/issue-299
Move :pin out of macro expansion phase
GitHub-reference: https://github.com/jwiegley/use-package/issues/302
2016-01-12 John Wiegley <johnw@newartisans.com>
Add a missing comma
Add a PREDICATE option to bind-key, and :filter to `bind-keys'
2016-01-08 Justin Talbott <justin@waymondo.com>
allow string values in cons for :bind keywords
It is possible with `bind-key` and `define-key` (and also `bind-chord`
and `key-chord-define`) to define a binding to a string's value, i.e:
``` elisp
(bind-key "C-;" "the ")
(bind-chord "^^" "λ")
```
This adds an option for `(use-package-normalize-pairs)` that allows
string values to be given with the `:bind` (and also `:chord`) keywords
to expand into these definitions.
2016-01-06 John Wiegley <johnw@newartisans.com>
Guard against a case where :load-paths is nil
2016-01-05 Ivan Goncharov <kovrik0@gmail.com>
Move :pin out of macro expansion phase fixes
Move :pin out of macro expansion phase
2015-12-20 John Wiegley <johnw@newartisans.com>
Use cl-mapcan rather than apply 'nconc; thanks wasamasa
2015-11-12 John Wiegley <johnw@newartisans.com>
Merge pull request from kovrik/byte-compile-ensure-fix
Install packages when byte-compiling (fix by @npostavs)
GitHub-reference: https://github.com/jwiegley/use-package/issues/285
2015-11-12 Ivan Goncharov <kovrik0@gmail.com>
Install packages when byte-compiling (fix by @npostavs)
2015-11-09 John Wiegley <johnw@newartisans.com>
Apply a fix from npostavs relating to
GitHub-reference: https://github.com/jwiegley/use-package/issues/279
2015-11-09 John Wiegley <johnw@newartisans.com>
Merge pull request from kovrik/master
Move :ensure option execution from macro expansion phase to runtime phase
GitHub-reference: https://github.com/jwiegley/use-package/issues/273
2015-11-05 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/feature/after
Support for after keyword.
GitHub-reference: https://github.com/jwiegley/use-package/issues/276
2015-11-04 Phillip Lord <phillip.lord@russet.org.uk>
Support for after keyword
After provides `eval-after-load' functionality for any number of
features. This helps to avoid deeply nested `use-package' statements.
Closes https://github.com/jwiegley/use-package/issues/274
2015-11-02 Ivan Goncharov <kovrik0@gmail.com>
Move :ensure option from macro expansion phase to runtime phase
2015-09-26 John Wiegley <johnw@newartisans.com>
Bump version to 2.1
2015-09-23 John Wiegley <johnw@newartisans.com>
Merge pull request from waymondo/extend-bind-handler
Pass in symbol of bind macro, for more extensible re-use of same handler
GitHub-reference: https://github.com/jwiegley/use-package/issues/259
2015-09-23 Justin Talbott <justin@waymondo.com>
pass in symbol of bind macro, for more extensible re-use of same handler
related to https://github.com/jwiegley/use-package/issues/258
2015-09-06 John Wiegley <johnw@newartisans.com>
Revert "Merge pull request from edvorg/master"
This reverts commit 38b213c6c382f87b7f6e60d0c97d37f2951c2482, reversing
changes made to 7d34df4f5dd26b6d8b0899e6508c9af5dedf2dc4.
GitHub-reference: https://github.com/jwiegley/use-package/issues/247
2015-08-30 Edward Knyshov <edvorg@gmail.com>
error handling for use-package
GitHub-reference: https://github.com/jwiegley/use-package/issues/246
2015-08-18 John Wiegley <johnw@newartisans.com>
Merge pull request from matklad/master
fix quotation error
GitHub-reference: https://github.com/jwiegley/use-package/issues/245
2015-08-17 Aleksey Kladov <aleksey.kladov@gmail.com>
fix quotation error
2015-08-14 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/string-packages
Re-add support for string package names
GitHub-reference: https://github.com/jwiegley/use-package/issues/225
2015-08-14 Noam Postavsky <npostavs@gmail.com>
Re-add support for string package names
e.g. (use-package "isearch") rather than (use-package isearch)
2015-08-01 John Wiegley <johnw@newartisans.com>
Merge pull request from nickalcock/master
Support :bind (:map '(...)).
GitHub-reference: https://github.com/jwiegley/use-package/issues/235
2015-07-31 Nick Alcock <nick.alcock@oracle.com>
Support :bind (:map '(...))
We transform it into (:map foo (...) (...)) in the normalizer, and
no longer warn about unknown sorts of arg.
2015-06-22 John Wiegley <johnw@newartisans.com>
Merge pull request from thomasf/master
Refresh package.el archives if package is missing.
GitHub-reference: https://github.com/jwiegley/use-package/issues/210
2015-06-22 Alex Kost <alezost@gmail.com>
Handle the case when keymap has a broken documentation
2015-06-11 John Wiegley <johnw@newartisans.com>
Merge pull request from killdash9/keymap
bind-keymap fixes.
GitHub-reference: https://github.com/jwiegley/use-package/issues/199
2015-06-10 John Wiegley <johnw@newartisans.com>
Merge pull request from syl20bnr/fix_hook_injection
Fix calls to run-hooks for :init and :config injected hooks
GitHub-reference: https://github.com/jwiegley/use-package/issues/213
2015-05-19 Sylvain Benner <sylvain.benner@gmail.com>
Fix calls to run-hooks for :init and :config injected hooks
2015-05-08 Thomas Frössman <thomasf@jossystem.se>
Refresh package.el archives if package is missing
2015-04-11 Russell Black <black.russell@gmail.com>
bind-keymap fixes
Override argument no longer ignored. Not adding keymap to list of
commands. `eval' no longer appears to be necessary, using direct
invocation of bind-key*.
2015-03-25 John Wiegley <johnw@newartisans.com>
Keymap bindings must be interactive
2015-03-24 John Wiegley <johnw@newartisans.com>
Failed to require a package is just a message
Minor fix to :diminish
2015-03-23 John Wiegley <johnw@newartisans.com>
Fix a bug in the :delight support
2015-03-22 John Wiegley <johnw@newartisans.com>
Add :delight support, thanks to darkfeline on GitHub
Fixes https://github.com/jwiegley/use-package/issues/189
2015-03-21 John Wiegley <johnw@newartisans.com>
Add new customization use-package-always-ensure
Fixes https://github.com/jwiegley/use-package/issues/27
2015-03-21 John Wiegley <johnw@newartisans.com>
unbind-key now removes key from personal-keybindings
Fixes https://github.com/jwiegley/use-package/issues/74
2015-03-21 John Wiegley <johnw@newartisans.com>
Fix file headers
2015-03-21 John Wiegley <johnw@newartisans.com>
Add autoload stanzas to bind-key
Fixes https://github.com/jwiegley/use-package/issues/33
2015-03-21 John Wiegley <johnw@newartisans.com>
Correction to an eval-after-load expansion
2015-03-21 John Wiegley <johnw@newartisans.com>
Change use-package to use bind-keys and bind-keys*
Fixes https://github.com/jwiegley/use-package/issues/129
2015-03-21 John Wiegley <johnw@newartisans.com>
Change bind-key* behavior to mimic bind-keys*
Fixes https://github.com/jwiegley/use-package/issues/148
2015-03-21 John Wiegley <johnw@newartisans.com>
Whitespace cleanups
2015-03-21 John Wiegley <johnw@newartisans.com>
Allow :map in bind-keys to accept multiple maps
Fixes https://github.com/jwiegley/use-package/issues/129
2015-03-21 John Wiegley <johnw@newartisans.com>
:pin should return `t'
Modular support appears to be working
2015-03-19 John Wiegley <johnw@newartisans.com>
Began work on modular handling of keywords
2015-03-19 John Wiegley <johnw@newartisans.com>
Rename use-package-with-elapsed-timer at an internal name
See https://github.com/jwiegley/use-package/issues/185
2015-03-19 John Wiegley <johnw@newartisans.com>
Remove code I did not intend to commit
2015-03-19 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/macroexp-progn
use-package-progn: replace with macroexp-progn
GitHub-reference: https://github.com/jwiegley/use-package/issues/186
2015-03-19 John Wiegley <johnw@newartisans.com>
Fix some docstrings
2015-03-19 Noam Postavsky <npostavs@gmail.com>
use-package-progn: replace with macroexp-progn
2015-03-19 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/name-keymap
get-binding-description: return keymap symbol
GitHub-reference: https://github.com/jwiegley/use-package/issues/184
2015-03-19 Noam Postavsky <npostavs@gmail.com>
get-binding-description: return keymap symbol
instead of "#<keymap>".
2015-03-19 John Wiegley <johnw@newartisans.com>
Use push instead of add-to-list
Remove a hack that is not needed anymore
2015-03-18 John Wiegley <johnw@newartisans.com>
macroexpand nested uses of use-package in :init and :config
Wrap the :preface in an eval-and-compile block
Remove a use of macroexpand
Make a warning more specific
More work to silence the byte-compiler
2015-03-17 John Wiegley <johnw@newartisans.com>
Other minor improvements for byte-compiling
Several minor improvements and fixes
Change some code for consistency's sake
2015-03-17 John Wiegley <johnw@newartisans.com>
Merge pull request from killdash9/keymap
minor fixes to get bind-keymap working in 2.0
GitHub-reference: https://github.com/jwiegley/use-package/issues/176
2015-03-17 Russell Black <black.russell@gmail.com>
minor fixes to get bind-keymap working in 2.0
2015-03-16 John Wiegley <johnw@newartisans.com>
Always return t on a successful init-time load
Fixes https://github.com/jwiegley/use-package/issues/174
2015-03-16 John Wiegley <johnw@newartisans.com>
Add to the load-path before the :preface
Fixes https://github.com/jwiegley/use-package/issues/172
2015-03-16 John Wiegley <johnw@newartisans.com>
More fixes related to byte-compilation
A few changes for byte-compilation
:defer now accepts an optional number of seconds
Permit minimal expansion of macro bodies, and other fixes
Collapse some whitespace
2015-03-16 John Wiegley <johnw@newartisans.com>
Allow vectors to be passed to :bind again
Fixes https://github.com/jwiegley/use-package/issues/166
2015-03-16 John Wiegley <johnw@newartisans.com>
Add code to workaround an inefficiency with eval-after-load
This is currently disabled, as it leads to strange byte-compilation
errors that need to be tracked down.
2015-03-16 John Wiegley <johnw@newartisans.com>
Output Compiling message only if verbose is enabled
Allow :pin to accept a symbol
2015-03-15 John Wiegley <johnw@newartisans.com>
Relax a path normalization check
Correct an erroneous symbol reference
Update docstring for :disabled
2015-03-15 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/eval-after-name
use--package: eval-after-load name
GitHub-reference: https://github.com/jwiegley/use-package/issues/168
2015-03-15 John Wiegley <johnw@newartisans.com>
Undo an erroneous change
2015-03-15 John Wiegley <johnw@newartisans.com>
Add -hook to the injected hooks
Fixes https://github.com/jwiegley/use-package/issues/161
2015-03-15 John Wiegley <johnw@newartisans.com>
Restore an earlier fix to
Fixes https://github.com/jwiegley/use-package/issues/167
GitHub-reference: https://github.com/jwiegley/use-package/issues/53
2015-03-15 John Wiegley <johnw@newartisans.com>
BREAKING CHANGE: Remove :idle and :idle-priority
I am removing this feature for now because it can result in a nasty
inconsistency. Consider the following definition:
(use-package vkill
:commands vkill
:idle (some-important-configuration-here)
:bind ("C-x L" . vkill-and-helm-occur)
:init
(defun vkill-and-helm-occur ()
(interactive)
(vkill)
(call-interactively #'helm-occur))
:config
(setq vkill-show-all-processes t))
If I load my Emacs and wait until the idle timer fires, then this is the
sequence of events:
:init :idle <load> :config
But if I load Emacs and immediately type C-x L without waiting for the
idle timer to fire, this is the sequence of events:
:init <load> :config :idle
It's possible that the user could use `featurep` in their idle to test
for this case, but that's a subtlety I'd rather avoid.
What I would consider is this: `:idle [N]` is a keyword that simply
implies `:defer`, with an option number of N to specify a second count.
After that many seconds, if the package has not yet been loaded by
autoloading, it will be loaded via the idle timer.
This approach has the benefit of complete consistency for both the idle
and the autoloaded cases. Although, the fact that it implies `:defer`
means we don't have to consider what it means to add `:idle` behavior to
a demand-loaded configuration.
2015-03-15 Noam Postavsky <npostavs@gmail.com>
use--package: eval-after-load name
instead of name-string. This prevents triggering by config file names
that have the same name as the package.
Reprise of c6d79d2cb40bd141f62eaca6dca47fb2e8e6943f
2015-03-15 John Wiegley <johnw@newartisans.com>
Support optional injection of hooks, for Spacemacs
2015-03-15 John Wiegley <johnw@newartisans.com>
Add :preface, occurring before everything except :disabled
This can be used to establish function and variable definitions that
will 1) make the byte-compiler happy (it won't complain about functions
whose definitions are unknown because you have them within a guard
block), and 2) allow you to define code that can be used in an `:if`
test.
2015-03-15 John Wiegley <johnw@newartisans.com>
Some minor code reformatting
Fix to :ensure normalization
2015-03-15 John Wiegley <johnw@newartisans.com>
Merge pull request from thomasf/master
Fix :ensure value interpretation
GitHub-reference: https://github.com/jwiegley/use-package/issues/163
2015-03-15 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/warning
use-package-expand: use display-warning
GitHub-reference: https://github.com/jwiegley/use-package/issues/162
2015-03-14 Thomas Frössman <thomasf@jossystem.se>
Fix :ensure value interpretation
2015-03-14 Noam Postavsky <npostavs@gmail.com>
use-package-expand: use display-warning
instead of with-demoted-errors. This prevents errors from getting lost
in the *Messages* buffer.
2015-03-14 John Wiegley <johnw@newartisans.com>
Begin refactoring for 2.0; NOTE: BREAKING CHANGES
The major change is that :init is now always performed before loading a
file, whether loading is deferred or not. This is a change from before,
where the semantics of :init varied between demand and defer. The new
usage is now entirely consistent.
Also, because :init and :config now mean "before" and "after", the
:pre-* and :post-* keywords are gone, as they should no longer be
necessary.
Lastly, an effort has been made to make your Emacs start even in the
presence of use-package configuration failures. So after this change,
be sure to check your *Messages* buffer. Most likely, you will have
several instances where you are using :init, but should be using :config
(this was the case for me in a number of places).
2015-03-13 John Wiegley <johnw@newartisans.com>
Many stylistics cleanups and simplifications
2015-03-13 John Wiegley <johnw@newartisans.com>
Revert "Don't add autoload for existing commands"
This reverts commit a2b23f8326d06690c8092ecc5e83ba2e4dd3c336.
2015-03-13 John Wiegley <johnw@newartisans.com>
Stylistic changes
Minor style edits
Minor changes
Show more informative errors when they occur
2015-01-18 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/master
Allow using expanded macro without loading feature
GitHub-reference: https://github.com/jwiegley/use-package/issues/151
2015-01-18 Jonas Bernoulli <jonas@bernoul.li>
Allow using expanded macro without loading feature
In the macro `use-package-with-elapased-timer' use `bound-and-true-p'
go get the values of the customizable options `use-package-verbose'
and `use-package-minimum-reported-time'. This way the library only
has to be required at compile time, provided these options are not
actually customized. If the user has changed the values, then she
also has to load the library at runtime or the macros fall back to
the default of doing their job silently. See https://github.com/jwiegley/use-package/issues/149.
2015-01-04 John Wiegley <johnw@newartisans.com>
Merge pull request from killdash9/keymap
Passing t into keymap function
GitHub-reference: https://github.com/jwiegley/use-package/issues/145
2015-01-03 Russell Black <black.russell@gmail.com>
Passing t into keymap function
2015-01-02 John Wiegley <johnw@newartisans.com>
Merge pull request from killdash9/keymap
:bind-keymap - bind a key prefix to an autoloaded package keymap
GitHub-reference: https://github.com/jwiegley/use-package/issues/142
2015-01-02 John Wiegley <johnw@newartisans.com>
Merge pull request from thiagowfx/patch-1
fix small typo (key > keymap)
GitHub-reference: https://github.com/jwiegley/use-package/issues/144
2015-01-02 Thiago Barroso Perrotta <thiagoperrotta95@gmail.com>
fix small typo (key > keymap)
2014-12-31 Russell Black <black.russell@gmail.com>
:bind-keymap - bind a key prefix to an autoloaded package keymap
2014-12-20 John Wiegley <johnw@newartisans.com>
Merge pull request from vermiculus/master
Do not quote lambda expressions
GitHub-reference: https://github.com/jwiegley/use-package/issues/140
2014-12-19 Sean Allred <code@seanallred.com>
Do not quote lambda expressions
https://emacs.stackexchange.com/a/3596
Quoting lambda expressions is at best redundant and at worst
detrimental; this commit removes all use of the sharp-quote to reduce
confusion.
2014-12-17 John Wiegley <johnw@newartisans.com>
Merge pull request from YoungFrog/fixautoloads
Don't add autoload for existing commands
GitHub-reference: https://github.com/jwiegley/use-package/issues/138
2014-12-17 John Wiegley <johnw@newartisans.com>
Merge pull request from peterhoeg/master
Check if an archive is valid when pinning
GitHub-reference: https://github.com/jwiegley/use-package/issues/137
2014-12-17 Peter Hoeg <peter@speartail.com>
Check if package-archives are valid when pinning
2014-12-17 Nicolas Richard <theonewiththeevillook@yahoo.fr>
Don't add autoload for existing commands
2014-12-16 Peter Hoeg <peter@speartail.com>
pure cleanup
2014-12-16 John Wiegley <johnw@newartisans.com>
Merge pull request from peterhoeg/master
Support for pinning package to archive
GitHub-reference: https://github.com/jwiegley/use-package/issues/136
2014-12-11 Peter Hoeg <peter@speartail.com>
support for pinning package to archive
2014-09-18 John Wiegley <johnw@newartisans.com>
Merge pull request from Silex/master
Fix "compiling" typo
GitHub-reference: https://github.com/jwiegley/use-package/issues/125
2014-09-18 John Wiegley <johnw@newartisans.com>
Merge pull request from waymondo/master
Add :bind* keyword for `bind-key*`
GitHub-reference: https://github.com/jwiegley/use-package/issues/126
2014-09-16 Justin Talbott <justin@waymondo.com>
add :bind* keyword for `bind-key*`
2014-09-16 Philippe Vaucher <philippe.vaucher@gmail.com>
Fix "compiling" typo
2014-09-14 John Wiegley <johnw@newartisans.com>
Merge pull request from thomasf/master
Display which package that has compile errors
GitHub-reference: https://github.com/jwiegley/use-package/issues/124
2014-09-14 Thomas Frössman <thomasf@jossystem.se>
Display which package that has compile errors
2014-09-08 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/master
assume the declare-function macro exists
GitHub-reference: https://github.com/jwiegley/use-package/issues/123
2014-09-07 Jonas Bernoulli <jonas@bernoul.li>
assume the declare-function macro exists
Since `declare-function' was added in Emacs 23.1 (five years ago), we
don't need to assert that it is defined. If the assertion was without
any problems there would be no harm in keeping it, but unfortunately it
causes a compile warning. Because `declare-function' is a macro with
always expands to `nil' the value of (fboundp 'declare-function) ends
up being unused.
2014-06-20 John Wiegley <johnw@newartisans.com>
Merge pull request from BernardHurley/master
bind-keys macro changed to allow prefix map to have a menu string.
GitHub-reference: https://github.com/jwiegley/use-package/issues/112
2014-06-20 Bernard Hurley <bernard@marcade.biz>
bind-keys macro changed to allow prefix map to have a menu string
2014-05-31 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/desc-vector
Avoid putting vector key sequences in personal-keybindings
GitHub-reference: https://github.com/jwiegley/use-package/issues/110
2014-05-31 Noam Postavsky <npostavs@gmail.com>
bind-key: cleanup
2014-05-31 Noam Postavsky <npostavs@gmail.com>
bind-key: no vector keys in personal-keybindings
describe-personal-keybindings requires the key sequences to be stored as
strings.
2014-05-31 Noam Postavsky <npostavs@gmail.com>
personal-keybindings: add docstring
fix typo in bind-key docstring
2014-05-25 John Wiegley <johnw@newartisans.com>
Merge pull request from alezost/bind-keys
Add bind-keys*
GitHub-reference: https://github.com/jwiegley/use-package/issues/107
2014-05-25 Alex Kost <alezost@gmail.com>
Add bind-keys* macro
2014-05-17 John Wiegley <johnw@newartisans.com>
Merge pull request from thomasf/master
Don't abort compiling package loading fails
GitHub-reference: https://github.com/jwiegley/use-package/issues/106
2014-05-17 Thomas Frössman <thomasf@jossystem.se>
Don't abort compiling if package loading fails
2014-05-08 John Wiegley <johnw@newartisans.com>
Revert "Merge pull request from alexko/master"
This reverts commit 8c04377608bd9b27d6fc6c37990984185563a907, reversing
changes made to a9ba368fa79e4c15b624de73e30c87c98475d466.
GitHub-reference: https://github.com/jwiegley/use-package/issues/104
2014-05-07 John Wiegley <johnw@newartisans.com>
Merge pull request from alexko/master
if package can't be located, treat it the same way as disabled
GitHub-reference: https://github.com/jwiegley/use-package/issues/104
2014-05-07 John Wiegley <johnw@newartisans.com>
Merge pull request from YoungFrog/fix-mult-mode
Eval backquote earlier and support non-`progn' lists.
GitHub-reference: https://github.com/jwiegley/use-package/issues/95
2014-05-06 Alex Kosorukoff <alex@3form.com>
if package can't be located, treat it the same way as disabled
There will be a message "Unable to locate <package-name>" in the log.
2014-05-05 Nicolas Richard <theonewiththeevillook@yahoo.fr>
Eval backquote earlier and support non-`progn' lists
* use-package.el (use-package-plist-get): add optional args: `eval-backquote'
and `no-progn' to control how arguments are retrieved.
(use-package-plist-get-value): remove this function
(use-package): replace calls to old function to modified function.
Fixes issue https://github.com/jwiegley/use-package/issues/94.
Rationale :
- use-package-plist-get-value was just another layer for no good reason,
and IMO its name was totally unclear.
- we now eval-as-backquote earlier, allowing constructs like:
(let ((my-list-of-commands-in-foo '(foo1 foo2)))
(use-package foo :commands ,@my-list-of-commands-in-foo))
2014-04-14 John Wiegley <johnw@newartisans.com>
Merge pull request from YoungFrog/keynameeval
* bind-key.el (bind-key): don't eval key-name at macro expansion time.
GitHub-reference: https://github.com/jwiegley/use-package/issues/102
2014-04-14 Nicolas Richard <theonewiththeevillook@yahoo.fr>
* bind-key.el (bind-key): don't eval key-name at macro expansion time
2014-04-14 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/bind-vectors
bind-keys: bind directly to prefix-map
GitHub-reference: https://github.com/jwiegley/use-package/issues/101
2014-04-14 Noam Postavsky <npostavs@gmail.com>
bind-keys: bind directly to prefix-map
instead of constructing equivalent key sequence by string concatenation.
This allows specifying vector key sequences, as in bind-key (since
f0776c2aeb3f7f0af66597e10a3e4469ca26629d).
2014-04-14 Noam Postavsky <npostavs@gmail.com>
bind-keys: ,@(when map (list map)) => map
Omitting map is same as passing nil.
2014-04-14 Noam Postavsky <npostavs@gmail.com>
fix typo
Actually the reader accepts (list 'a'b) = (list 'a 'b); it still looks
wrong.
2014-03-17 John Wiegley <johnw@newartisans.com>
Merge pull request from YoungFrog/idle-interval
Add new option use-package-idle-interval.
GitHub-reference: https://github.com/jwiegley/use-package/issues/99
2014-03-17 Nicolas Richard <theonewiththeevillook@yahoo.fr>
Add new option use-package-idle-interval
* use-package.el (use-package-idle-interval): new defcustom
(use-package-start-idle-timer): use it
(use-package-idle-eval): use it
* README.md: document it
This addresses bug https://github.com/jwiegley/use-package/issues/77
2014-03-17 John Wiegley <johnw@newartisans.com>
Merge pull request from ffevotte/idle-priority
Add a :idle-priority keyword to change the running order of idle functions
GitHub-reference: https://github.com/jwiegley/use-package/issues/98
2014-03-17 François Févotte <fevotte@gmail.com>
:idle-priority keyword to change the running order of idle functions
Lower-priority idle functions are run first. Idle functions with no
specified priority default to 5 and all functions with the same priority
are run in the order in which they are evaluated, meaning the behaviour
is backwards compatible.
Updated documentation as well.
2014-03-10 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/master
use-package-with-elapsed-timer: respect option at runtime
GitHub-reference: https://github.com/jwiegley/use-package/issues/96
2014-03-09 Jonas Bernoulli <jonas@bernoul.li>
use-package-font-lock-keywords: add use-package-with-elapsed-timer
use-package-with-elapsed-timer: add declare indent rule
2014-03-09 Jonas Bernoulli <jonas@bernoul.li>
use-package-with-elapsed-timer: respect option at runtime
Previously the option `use-package-verbose' was consulted at macro
expansion time, and as a result customizing the option did nothing,
without also recompiling `use-package.el'.
2014-03-02 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/bind-vector
let bind-key accept vectors, add docstring
GitHub-reference: https://github.com/jwiegley/use-package/issues/92
2014-03-01 Noam Postavsky <npostavs@gmail.com>
let bind-key accept vectors, add docstring
2014-02-18 John Wiegley <johnw@newartisans.com>
Merge pull request from Fuco1/variable-col-width
Add variable column width
GitHub-reference: https://github.com/jwiegley/use-package/issues/90
2014-02-18 John Wiegley <johnw@newartisans.com>
Merge pull request from Fuco1/special-form-desc
Add better descriptions for lambdas, closures, keymaps
GitHub-reference: https://github.com/jwiegley/use-package/issues/89
2014-02-18 Matus Goljer <dota.keys@gmail.com>
Add variable column width
Add better descriptions for lambdas, closures, keymaps
2014-02-17 John Wiegley <johnw@newartisans.com>
Merge pull request from Fuco1/bind-keys
Add `bind-keys` macro
GitHub-reference: https://github.com/jwiegley/use-package/issues/87
2014-02-13 Matus Goljer <dota.keys@gmail.com>
Add `bind-keys` macro
2014-02-12 Nicolas Richard <theonewiththeevillook@yahoo.fr>
Move tests to separate file
2014-02-10 Nicolas Richard <theonewiththeevillook@yahoo.fr>
Allow multiple forms after keywords
* use-package.el (use-package-mplist-get):
(use-package-plist-get):
(use-package-mplist-keys): new functions
(plist-get-value):
(use-package): use new functions
(plist-keys): remove function
The idea is to allow a modified kind of plist where keys are all
keywords that appear in the list, and values are the intermediary
elements. If a keyword is present but it's another keyword just after it
(like (use-package :defer :config (setq foo 'bar))), its associated
value will be t. If a keyword is not present, its value associated value
will be nil. Otherwise the value will be the list of elements between
the keyword and the next keyword.
2014-02-05 Adam Spiers <emacs@adamspiers.org>
stop describe-personal-keybindings adding trailing space
When emacs is configured to highlight trailing whitespace,
the *Personal Keybindings* buffer looked pretty ugly.
This fixes that.
2014-01-06 John Wiegley <johnw@newartisans.com>
Merge pull request from aspiers/best-practices
Start addressing some of @jaalto's submitted issues.
GitHub-reference: https://github.com/jwiegley/use-package/issues/79
2014-01-06 Adam Spiers <emacs@adamspiers.org>
fix bind-key URL (fixes)
Also makes a start on https://github.com/jwiegley/use-package/issues/32.
GitHub-reference: https://github.com/jwiegley/use-package/issues/58
2014-01-06 Adam Spiers <emacs@adamspiers.org>
add 'use-package-' prefix to 'with-elapsed-timer'
Fixes https://github.com/jwiegley/use-package/issues/35.
2014-01-06 John Wiegley <johnw@newartisans.com>
Merge pull request from aspiers/hyperlink-all-bindings
hyperlink functions in Comments column
GitHub-reference: https://github.com/jwiegley/use-package/issues/76
2014-01-06 John Wiegley <johnw@newartisans.com>
Merge pull request from aspiers/docs
Synchronise docs and then remove one copy to prevent future issues.
GitHub-reference: https://github.com/jwiegley/use-package/issues/78
2014-01-06 Adam Spiers <emacs@adamspiers.org>
fix DRY violation by only having documentation in one place
The documentation in README.md was previously identical to that
in the Commentary section of use-package.el, modulo the following
differences:
- No elisp comment ";; " prefix
- Code blocks indented 4 columns not 2, as required by Markdown
- Elisp symbols marked in backtick delimiters for monospace, not
emacs backtick/forward tick pairs.
Unfortunately due to this duplication, sometimes only one of the
two files got updated, so they got out of sync. With us all being
human, this is likely to continue to happen as long as the
duplication exists ;-) Therefore since most users are likely to
encounter README.md before the elisp, and bearing in mind that
Markdown is a much more flexible format for documentation than
elisp comments (richer formatting, can be exported to numerous
other formats etc.), it is better to replace the docs in
use-package.el with a pointer to the README.md.
2014-01-04 Adam Spiers <emacs@adamspiers.org>
hyperlink functions in Comments column
Previously, only the functions in the Command column were hyper-linked.
Also clarify the meaning of the "was" entries in the Comments column.
2013-12-16 John Wiegley <johnw@newartisans.com>
Merge pull request from aspiers/short-mode
allow :mode and :interpreter to accept a string
GitHub-reference: https://github.com/jwiegley/use-package/issues/73
2013-12-16 Adam Spiers <emacs@adamspiers.org>
allow :mode and :interpreter to accept a string
Fixes https://github.com/jwiegley/use-package/issues/72.
2013-12-09 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/defun
use-package: use defun as lisp-indent-function
GitHub-reference: https://github.com/jwiegley/use-package/issues/69
2013-12-09 Jonas Bernoulli <jonas@bernoul.li>
use-package: use defun as lisp-indent-function
When `use-package' is called with only one keyword it is useful to
write:
(use-package foo :init
(progn
... long lines ...))
instead of
(use-package foo
:init (progn
... *too* long lines ...))
or
(use-package foo
:init
(progn
... long lines ...))
Even when there are multiple keywords or when one never wants to format
the calls to `use-package' as in the first example the use of `defun'
does not really pose a problem.
2013-12-04 John Wiegley <johnw@newartisans.com>
Add a :demand directive, to override deferred loading ()
GitHub-reference: https://github.com/jwiegley/use-package/issues/65
2013-12-04 John Wiegley <johnw@newartisans.com>
fboundp is a function, not a variable
Fixes https://github.com/jwiegley/use-package/issues/68
2013-12-04 John Wiegley <johnw@newartisans.com>
Merge pull request from dabrahams/patch-1
Backward compatibility with emacs-22.1
GitHub-reference: https://github.com/jwiegley/use-package/issues/67
2013-12-02 Dave Abrahams <dave@boostpro.com>
Backward compatibility with emacs-22.1
This change supports the emacs that ships with MacOS X, the last version not encumbered by GPLv3.
2013-12-02 John Wiegley <johnw@newartisans.com>
Default use-package-verbose to nil
2013-11-05 John Wiegley <johnw@newartisans.com>
Merge pull request from Silex/master
Remove el-get support
GitHub-reference: https://github.com/jwiegley/use-package/issues/64
2013-11-05 Philippe Vaucher <philippe.vaucher@gmail.com>
Remove el-get support
2013-10-28 John Wiegley <johnw@newartisans.com>
Merge pull request from aethanyc/add-missing-keyword
Add :pre-load to use-package-keywords
GitHub-reference: https://github.com/jwiegley/use-package/issues/62
2013-10-25 Ting-Yu Lin <aethanyc@gmail.com>
Add :pre-load to use-package-keywords
The :pre-load keyword cannot be used unless it is in
`use-package-keywords' list.
2013-10-15 John Wiegley <johnw@newartisans.com>
Merge pull request from PhilHudson/master
Properly enable runtime dependency for :idle stanza (issue https://github.com/jwiegley/use-package/issues/60)
GitHub-reference: https://github.com/jwiegley/use-package/issues/61
2013-10-15 Phil Hudson <phil.hudson@iname.com>
Properly enable runtime dependency for :idle stanza (issue)
See issue https://github.com/jwiegley/use-package/issues/60.
GitHub-reference: https://github.com/jwiegley/use-package/issues/60
2013-10-14 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/comma
remove extra comma (added by 026c46c)
GitHub-reference: https://github.com/jwiegley/use-package/issues/59
2013-10-14 Noam Postavsky <npostavs@gmail.com>
remove extra comma (added by 026c46c)
2013-10-12 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/cleanup
Cleanup
GitHub-reference: https://github.com/jwiegley/use-package/issues/57
2013-10-12 Noam Postavsky <npostavs@gmail.com>
let with-elapsed-timer return last form
make `with-elapsed-timer' hygienic
with-elapsed-timer: only check verbosity once
2013-10-12 Noam Postavsky <npostavs@gmail.com>
remove after-init-hook for override-global-mode
The INIT-VALUE argument to define-minor-mode is t, so it's enabled by
default.
2013-10-12 Noam Postavsky <npostavs@gmail.com>
macroexpand not needed
Since lambda thunking replaced quoting in a76d167.
To see why, observe that cases 3 and 4 disassemble to identical code.
The difference between cases 1 and 2 shows why the macroexpand was
needed originally.
(defmacro test-quote (name-string)
`(eval-after-load "foo"
`(with-elapsed-timer ,(format "Configuring package %s" name-string)
(message "test-quote"))))
(defmacro test-expand-quote (name-string)
`(eval-after-load "foo"
,(macroexpand-all
`(with-elapsed-timer ,(format "Configuring package %s" name-string)
(message "test-expand-quote")))))
(defmacro test-lambda (name-string)
`(eval-after-load "foo"
`(,(lambda ()
(with-elapsed-timer ,(format "Configuring package %s" name-string)
(message "test-lambda"))))))
(defmacro test-expand-lambda (name-string)
`(eval-after-load "foo"
`(,(lambda ()
,(macroexpand-all
`(with-elapsed-timer ,(format "Configuring package %s" name-string)
(message "test-lambda")))))))
(disassemble (lambda () (test-quote "testing...")))
(disassemble (lambda () (test-expand-quote "testing...")))
(disassemble (lambda () (test-lambda "testing...")))
(disassemble (lambda () (test-expand-lambda "testing...")))
2013-10-12 Noam Postavsky <npostavs@gmail.com>
cl not needed since flet was removed in 82903da
2013-10-07 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/first-keyword
Add a ":first" keyword for those occasions that it's necessary.
GitHub-reference: https://github.com/jwiegley/use-package/issues/42
2013-09-27 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/quasiquote
Quasiquote
GitHub-reference: https://github.com/jwiegley/use-package/issues/56
2013-09-25 Noam Postavsky <npostavs@gmail.com>
use plist-get-value for all non-sexp args
2013-09-25 Noam Postavsky <npostavs@gmail.com>
plist-get-value treats arg as backquoted
This allows use of variables or even arbitrary expressions to construct
use-package arguments:
(use-package some-package
:mode ,mode-spec
:bind (,binding
,@more-bindings
,@(cl-loop for i from ?a to ?z
collect `(,(string i) . nifty-function))))
2013-09-25 John Wiegley <johnw@newartisans.com>
Merge pull request from dudebout/fixes-
Removes `plist-get-sexp`
GitHub-reference: https://github.com/jwiegley/use-package/issues/55
GitHub-reference: https://github.com/jwiegley/use-package/issues/54
2013-09-25 Nicolas Dudebout <nicolas.dudebout@gmail.com>
Removes `plist-get-sexp`
This function was not working as advertised.
Then `funcall` was evaluated too early and all the benefits of late evaluation for autoloads was lost.
Furthermore, this function was not really needed in the first place:
```
(use-package foo
:config my-foo-function)
```
can easily be replaced by the following:
```
(use-package foo
:config (my-foo-function))
```
2013-09-24 John Wiegley <johnw@newartisans.com>
Merge pull request from dudebout/variable-and-function-support
Enables using variables and functions as arguments
GitHub-reference: https://github.com/jwiegley/use-package/issues/54
2013-09-24 Nicolas Dudebout <nicolas.dudebout@gmail.com>
Enables using variables and functions as arguments
This change an extra level on indirection for two cases:
+ when an association or an alist is required, it is possible to pass a
variable containing an association or an alist
+ when a sexp to be evaluated is required, it is possible to pass a
function instead
2013-09-17 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/eval-after-name
pass name (not name-string) to eval-after-load
GitHub-reference: https://github.com/jwiegley/use-package/issues/53
2013-09-16 Noam Postavsky <npostavs@gmail.com>
pass name (not name-string) to eval-after-load
Fixes https://github.com/jwiegley/use-package/issues/52: the :config block would be triggered when loading a config
file with the same name as the package and again when loading the
package itself.
2013-09-15 John Wiegley <johnw@newartisans.com>
Merge pull request from aethanyc/fix-highlight
Fix highlight use-package for Emacs snapshot
GitHub-reference: https://github.com/jwiegley/use-package/issues/49
2013-09-13 Ting-Yu Lin <aethanyc@gmail.com>
Fix highlight use-package for Emacs snapshot
The commit 57f80d4 fixed the highlight by following the regexp as for
require. However in Emacs truck, it only highlights first part of the
package name.
This change follows the regexp for require on emacs truck. See line
2327 on font-lock.el in the following patch.
https://bzr.savannah.gnu.org/lh/emacs/trunk/revision/111821
2013-09-04 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/hilite-redux
highlight use-package before typing package name
GitHub-reference: https://github.com/jwiegley/use-package/issues/47
2013-09-04 John Wiegley <johnw@newartisans.com>
Merge pull request from aethanyc/improve-output-buffer
Improve (describe-personal-keybindings) output
GitHub-reference: https://github.com/jwiegley/use-package/issues/48
2013-09-04 Ting-Yu Lin <aethanyc@gmail.com>
Improve (describe-personal-keybindings) output
Create *Personal Keybindings* by with-output-to-temp-buffer. It
redirects standard output to the buffer and display it in help mode. So
we can get help mode keybindings such as "q" for free.
Quote the command-desc output so that it is made into a hyperlink.
2013-09-03 Noam Postavsky <npostavs@gmail.com>
highlight use-package before typing package name
This follow the same pattern as the highlighting for provide and require
from `lisp-font-lock-keywords-2' in font-lock.el
2013-08-16 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/master
also check `byte-compile-current-file' for compile time loads, fixes issue https://github.com/jwiegley/use-package/issues/44
GitHub-reference: https://github.com/jwiegley/use-package/issues/45
2013-08-15 Noam Postavsky <npostavs@gmail.com>
also check `byte-compile-current-file' for compile time loads, fixes issue
`eval-when-compile' is really `eval-when-macroexpand' which includes
loading from source
GitHub-reference: https://github.com/jwiegley/use-package/issues/44
2013-08-15 Phillip Lord <phillip.lord@russet.org.uk>
Changed :first to :pre-load
Updated and extended documentation.
2013-08-13 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/master
Byte compilation, fixes for https://github.com/jwiegley/use-package/issues/29 and https://github.com/jwiegley/use-package/issues/30
GitHub-reference: https://github.com/jwiegley/use-package/issues/43
2013-08-13 Noam Postavsky <npostavs@gmail.com>
use lambda around deferred :config forms to compile them, fixes issue
GitHub-reference: https://github.com/jwiegley/use-package/issues/30
2013-08-13 Noam Postavsky <npostavs@gmail.com>
use `eval-when-compile' for loading package at compile time, fixes issue
GitHub-reference: https://github.com/jwiegley/use-package/issues/29
2013-08-13 Phillip Lord <phillip.lord@russet.org.uk>
Add a ":first" keyword for those occasions that it's necessary
2013-08-12 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/master
refine use-package highlighting regexp
GitHub-reference: https://github.com/jwiegley/use-package/issues/41
2013-08-11 Noam Postavsky <npostavs@gmail.com>
refine use-package highlighting regexp
2013-07-28 John Wiegley <johnw@newartisans.com>
Merge pull request from purcell/patch-2
Fix initial line to satisfy package.el
GitHub-reference: https://github.com/jwiegley/use-package/issues/40
2013-07-28 Steve Purcell <steve@sanityinc.com>
Fix initial line to satisfy package.el
2013-07-03 Phil Hudson <phil.hudson@iname.com>
Validate keywords. Error if any keyword is unrecognized
Conflicts:
use-package.el
2013-06-26 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/ensure-doc
Ensure doc
GitHub-reference: https://github.com/jwiegley/use-package/issues/37
2013-06-26 Phillip Lord <phillip.lord@russet.org.uk>
Added documentation to use-package macro
Documentation added for :ensure keyword
2013-05-15 John Wiegley <johnw@newartisans.com>
Merge pull request from milkypostman/master
package header should be the full filename + ext
GitHub-reference: https://github.com/jwiegley/use-package/issues/28
2013-05-15 Donald Curtis <dcurtis@milkbox.net>
package header should, hold, sold be the full filename + ext
this fixes a bug in using `(package-buffer-info)`
2013-04-27 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/font-lock
fontify use-package form
GitHub-reference: https://github.com/jwiegley/use-package/issues/25
2013-04-27 John Wiegley <johnw@newartisans.com>
Merge pull request from tarsius/master
some small cleanups
GitHub-reference: https://github.com/jwiegley/use-package/issues/24
2013-04-27 Jonas Bernoulli <jonas@bernoul.li>
fontify use-package form
add dots; cleanup whitespace
quiet byte-compiler; ensure package.el is loaded
2013-04-27 Jonas Bernoulli <jonas@bernoul.li>
don't use obsolete flet
Unfortunately there isn't a proper dynamically scoped
replacement, so we have to resort to using funcall.
2013-04-27 Jonas Bernoulli <jonas@bernoul.li>
enforce use of spaces for indentation
2013-04-23 John Wiegley <johnw@newartisans.com>
Merge pull request from purcell/patch-1
Add Package-Requires header for ELPA installations
GitHub-reference: https://github.com/jwiegley/use-package/issues/22
2013-04-23 Steve Purcell <steve@sanityinc.com>
Add Package-Requires header for ELPA installations
2013-04-16 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/easy-diminish
needed extra layer of nesting for diminish calls
GitHub-reference: https://github.com/jwiegley/use-package/issues/21
2013-04-16 Noam Postavsky <npostavs@gmail.com>
needed extra layer of nesting for diminish calls
2013-04-14 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/easy-diminish
let :diminish "string" guess correct mode symbol
GitHub-reference: https://github.com/jwiegley/use-package/issues/20
2013-04-14 John Wiegley <johnw@newartisans.com>
Merge pull request from npostavs/bind-override
let bind-key* override minor modes with emulation-mode-map-alists
GitHub-reference: https://github.com/jwiegley/use-package/issues/19
2013-04-14 Noam Postavsky <npostavs@gmail.com>
let :diminish "string" guess correct mode symbol
2013-04-13 Noam Postavsky <npostavs@gmail.com>
let bind-key* override minor modes with emulation-mode-map-alists
2013-03-23 John Wiegley <johnw@newartisans.com>
Merge pull request from PhilHudson/master
Macro expansion redux
GitHub-reference: https://github.com/jwiegley/use-package/issues/17
2013-03-23 Phil Hudson <phil.hudson@iname.com>
Runtime client code independence redux
Tweak to previous fix for expanding macros correctly at code-planting time. Specifically, eval `use-package-minimum-reported-time' at code-planting time not at runtime (which would require use-package.el to be loaded first).
2013-02-18 John Wiegley <johnw@newartisans.com>
Corrected a typo
2013-02-12 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/master
Support for idle loading of packages
GitHub-reference: https://github.com/jwiegley/use-package/issues/16
2013-02-12 Phillip Lord <phillip.lord@russet.org.uk>
Merge branch 'master' of https://github.com/jwiegley/use-package
2013-02-12 Phillip Lord <phillip.lord@russet.org.uk>
idle initiation of packages
A new feature which adds support for idle startup and loading of packages.
2013-02-06 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/master
Load time display option.
GitHub-reference: https://github.com/jwiegley/use-package/issues/15
2013-02-05 Phillip Lord <phillip.lord@russet.org.uk>
Added minimum load time display option
Makes the minimum load time before use-package displays
a message a customizable option.
2013-01-28 John Wiegley <johnw@newartisans.com>
Merge pull request from bdd/master
Remove trailing whitespace
GitHub-reference: https://github.com/jwiegley/use-package/issues/14
2013-01-28 Berk D. Demir <bdd@mindcast.org>
Cleanup trailing whitespace
Just `M-x delete-trailing-whitespace' on use-package.el
2013-01-23 John Wiegley <johnw@newartisans.com>
Merge pull request from PhilHudson/macroexpand
Macroexpand quoted eval-after-load block early
GitHub-reference: https://github.com/jwiegley/use-package/issues/13
2013-01-23 Phil Hudson <phil.hudson@iname.com>
Macroexpand quoted eval-after-load block early
The main `use-package' macro incorrectly planted code containing a call to the `with-elapsed-timer' macro in a quoted block to be run by `eval-after-load'. If package use-package was not loaded at runtime, the block would error saying correctly that `with-elapsed-timer' is undefined. This mod correctly macroexpands the block at code generation time.
2013-01-18 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/master
Better support for ELPA.
GitHub-reference: https://github.com/jwiegley/use-package/issues/11
2013-01-18 Phillip Lord <phillip.lord@russet.org.uk>
Support packages where autoload and elpa name are different
Some packages such as ECB already provide an autoload file,
so it is this that use-package needs to require. However,
the ELPA name is ecb. This commit allows ensure to take an
argument (other than t).
2013-01-17 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/master
Inline documentation
GitHub-reference: https://github.com/jwiegley/use-package/issues/10
2013-01-17 Phillip Lord <phillip.lord@russet.org.uk>
Documentation for the use-package macro
2013-01-17 Phillip Lord <phillip.lord@russet.org.uk>
Reverting "Documentation for the use-package macro."
Revert "Documentation for the use-package macro."
This reverts commit abc0ebc92dc1cf9ef9adfe133d0b30bf7382b65c.
2013-01-17 Phillip Lord <phillip.lord@russet.org.uk>
Documentation for the use-package macro
2013-01-12 John Wiegley <johnw@newartisans.com>
Merge pull request from phillord/master
ELPA support
GitHub-reference: https://github.com/jwiegley/use-package/issues/9
2012-12-31 Phillip Lord <phillip.lord@russet.org.uk>
ELPA package support
2012-11-20 John Wiegley <johnw@newartisans.com>
Merge pull request from PhilHudson/master
Support optional diminish replacement string parameter using conses
GitHub-reference: https://github.com/jwiegley/use-package/issues/4
2012-11-20 Phil Hudson <phil.hudson@iname.com>
Support diminishing to a replacement string as well as to nothing
`diminish' accepts an optional second argument, a replacement string. This change supports all the following arguments to ':diminish':
* package
* (package . "pkg")
* (package1 package2)
* ((package1 . "p1") (package2 . "p2))
The second and fourth formats are new with this change.
2012-07-30 John Wiegley <johnw@newartisans.com>
Use-package now accepts function as argument
2012-07-11 John Wiegley <johnw@newartisans.com>
Only use user-site-lisp-directory if defined
2012-06-26 John Wiegley <johnw@newartisans.com>
Correct return value from with-elapsed-timer
2012-06-22 John Wiegley <johnw@newartisans.com>
More updates to support el-get
Byte-compilation related fix
2012-06-21 John Wiegley <johnw@newartisans.com>
Added :pre-init
2012-06-20 John Wiegley <johnw@newartisans.com>
Establish autoloads after :init
2012-06-17 John Wiegley <johnw@newartisans.com>
Added :mode and :interpreter keywords
Add a note about how to use :load-path
If :load-path is absolute, don't expand it
Die typos, die
Fixed a typo
Minor reformatting
Minor grammatical nit
Integrated support for working with el-get
Make use-package-verbose customizable
Have loading timer include time to require
Fixed a typo in bind-key.el
README and other updates
2022-04-04 Eli Zaretskii <eliz@gnu.org>
* Version 28.1 released.
2022-04-03 Eli Zaretskii <eliz@gnu.org>
Bump Emacs version to 28.1
* README:
* configure.ac:
* nt/README.W32:
* msdos/sed2v2.inp: Bump Emacs version to 28.1
This file records repository revisions from
commit f2ae39829812098d8269eafbc0fcb98959ee5bb7 (exclusive) to
commit 7d1737071fba1fd83039aac34f34f6b90c9579b8 (inclusive).
See ChangeLog.3 for earlier changes.
;; Local Variables:
;; coding: utf-8
;; End:
Copyright (C) 2022 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.