]> git.eshelyaron.com Git - emacs.git/log
emacs.git
23 months agoHandle strings as keys in 'package-vc-ensure-packages'
Philip Kaludercic [Sun, 6 Nov 2022 08:47:39 +0000 (09:47 +0100)]
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č.

23 months ago; Fix interactive spec for 'package-vc-refresh'
Philip Kaludercic [Sun, 6 Nov 2022 08:42:52 +0000 (09:42 +0100)]
; Fix interactive spec for 'package-vc-refresh'

* lisp/emacs-lisp/package-vc.el (package-vc-refresh):

Thanks to Rudolf Adamkovič for noticing the mistake.

23 months agoAvoid raw control characters in two files
Stefan Kangas [Thu, 17 Nov 2022 19:08:54 +0000 (20:08 +0100)]
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.

23 months ago* lisp/repeat.el (describe-repeat-maps): Use fill-region-as-paragraph.
Juri Linkov [Thu, 17 Nov 2022 17:54:33 +0000 (19:54 +0200)]
* lisp/repeat.el (describe-repeat-maps): Use fill-region-as-paragraph.

23 months agoUse mapc instead of mapcar when walking rmail threads
Robert Pluim [Thu, 17 Nov 2022 15:53:41 +0000 (16:53 +0100)]
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.

23 months ago; Fix previous rmailsum change
Robert Pluim [Thu, 17 Nov 2022 15:58:34 +0000 (16:58 +0100)]
; Fix previous rmailsum change

23 months agoNew Rmail summary "by thread"
Andrea Monaco [Tue, 15 Nov 2022 19:07:18 +0000 (20:07 +0100)]
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.

23 months agoImprove progressive summaries in Rmail
Andrea Monaco [Mon, 7 Nov 2022 14:13:13 +0000 (15:13 +0100)]
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.

23 months agoCC Mode: Make implicit int types following specifiers fontify correctly
Alan Mackenzie [Thu, 17 Nov 2022 10:34:41 +0000 (10:34 +0000)]
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.

23 months ago; * lisp/progmodes/elisp-mode.el (eval-defun): Doc fix.
Eli Zaretskii [Thu, 17 Nov 2022 10:34:06 +0000 (12:34 +0200)]
; * lisp/progmodes/elisp-mode.el (eval-defun): Doc fix.

23 months agoSupport multi-line C++11 strings in Ebrowse
Jan Stranik [Fri, 28 Oct 2022 20:13:42 +0000 (16:13 -0400)]
Support multi-line C++11 strings in Ebrowse

* lib-src/ebrowse.c (yylex): Support C++11 multi-line strings.
(bug#58847)

23 months agoMake VSIZE and RSS human-readable in Proced buffers
Laurence Warne [Sun, 13 Nov 2022 19:53:17 +0000 (19:53 +0000)]
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)

23 months ago* lisp/progmodes/eglot.el (eglot-server-programs): Remove Intelephense.
Eli Zaretskii [Thu, 17 Nov 2022 09:47:34 +0000 (11:47 +0200)]
* lisp/progmodes/eglot.el (eglot-server-programs): Remove Intelephense.

23 months agoAdd Eglot alternatives for PHP language servers
USAMI Kenta [Fri, 11 Nov 2022 13:57:06 +0000 (22:57 +0900)]
Add Eglot alternatives for PHP language servers

* lisp/progmodes/eglot.el (eglot-server-programs): Add alternatives
for PHP.

23 months agoediff: Merges with ancestor: Fix computation of hunks and proposed merge
Olivier Certner [Thu, 10 Nov 2022 17:57:27 +0000 (18:57 +0100)]
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)

23 months agoshell: Add repeat-map for shell-{forward,backward}-prompt
Brian Leung [Wed, 9 Nov 2022 07:18:23 +0000 (23:18 -0800)]
shell: Add repeat-map for shell-{forward,backward}-prompt

* lisp/shell.el (shell-repeat-map): New defvar.  (Bug#59144)

23 months agoesh-mode: Add repeat-map for eshell-{forward,backward}-argument
Brian Leung [Wed, 9 Nov 2022 07:16:16 +0000 (23:16 -0800)]
esh-mode: Add repeat-map for eshell-{forward,backward}-argument

* lisp/eshell/esh-mode.el (eshell-command-repeat-map): New defvar.
(Bug#59144)

23 months agoem-prompt: Add repeat-map for eshell-{next,previous}-prompt
Brian Leung [Wed, 9 Nov 2022 06:11:15 +0000 (22:11 -0800)]
em-prompt: Add repeat-map for eshell-{next,previous}-prompt

* lisp/eshell/em-prompt.el (eshell-prompt-repeat-map): New keymap.
(Bug#59144)

23 months agocomint: Add repeat-map for comint-{next,previous}-prompt
Brian Leung [Wed, 9 Nov 2022 06:03:29 +0000 (22:03 -0800)]
comint: Add repeat-map for comint-{next,previous}-prompt

* lisp/comint.el (comint-repeat-map): New keymap.  (Bug#59144)

23 months agoFix display of mode line when the right divider is used
Eli Zaretskii [Thu, 17 Nov 2022 09:21:01 +0000 (11:21 +0200)]
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)

23 months ago* lisp/emacs-lisp/shortdoc.el (sequence): Don't use cl-lib (bug#59319)
Juanma Barranquero [Thu, 17 Nov 2022 08:55:02 +0000 (09:55 +0100)]
* lisp/emacs-lisp/shortdoc.el (sequence): Don't use cl-lib (bug#59319)

23 months agoMerge from origin/emacs-28
Stefan Kangas [Thu, 17 Nov 2022 08:41:05 +0000 (09:41 +0100)]
Merge from origin/emacs-28

0636e1066b ; Don't unnecessarily use non-ASCII characters in Texinfo

# Conflicts:
# doc/emacs/custom.texi

23 months ago; Fix typos (duplicate words)
Stefan Kangas [Thu, 17 Nov 2022 08:31:46 +0000 (09:31 +0100)]
; Fix typos (duplicate words)

23 months agoPrefer defvar-keymap in window.el
Stefan Kangas [Wed, 16 Nov 2022 12:42:40 +0000 (13:42 +0100)]
Prefer defvar-keymap in window.el

* lisp/window.el (other-window-repeat-map)
(resize-window-repeat-map): Prefer defvar-keymap.

23 months ago; * lisp/*.el: Fix typos in docstrings
Juanma Barranquero [Thu, 17 Nov 2022 07:45:57 +0000 (08:45 +0100)]
; * lisp/*.el: Fix typos in docstrings

* lisp/gnus/nnrss.el (nnrss-use-local, nnrss-fetch, nnrss-find-el):
* lisp/leim/quail/japanese.el ("japanese"):
* lisp/org/ol.el (org-link-search-must-match-exact-headline):
* lisp/org/org-faces.el (org-column):
* lisp/progmodes/eglot.el (eglot--stay-out-of-p)
(eglot-workspace-configuration, eglot--read-execute-code-action):
* lisp/vc/vc.el (vc-clone): Fix typos in docstrings.

23 months ago* lisp/keymap.el (defvar-keymap): Don't use pcase.
Juri Linkov [Thu, 17 Nov 2022 07:38:59 +0000 (09:38 +0200)]
* lisp/keymap.el (defvar-keymap): Don't use pcase.

23 months ago* lisp/keymap.el (defvar-keymap): Add support for repeat-mode.
Juri Linkov [Thu, 17 Nov 2022 07:25:42 +0000 (09:25 +0200)]
* 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

23 months ago* lisp/repeat.el (describe-repeat-maps): Improve the output.
Juri Linkov [Thu, 17 Nov 2022 07:20:15 +0000 (09:20 +0200)]
* 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

23 months agoFix treatment of input focus on MPX setups
Po Lu [Thu, 17 Nov 2022 07:12:16 +0000 (15:12 +0800)]
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.

23 months ago; * lisp/emacs-lisp/seq.el (seq-filter): Fix typo in doc string.
Eli Zaretskii [Thu, 17 Nov 2022 06:48:14 +0000 (08:48 +0200)]
; * lisp/emacs-lisp/seq.el (seq-filter): Fix typo in doc string.

23 months agoImprove new connections in erc-handle-irc-url
F. Jason Park [Mon, 11 Jul 2022 12:14:57 +0000 (05:14 -0700)]
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.)

23 months agoAdd optional server param to erc-networks--determine
F. Jason Park [Mon, 11 Jul 2022 12:14:57 +0000 (05:14 -0700)]
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.)

23 months agoDefault to TLS port when calling erc-tls from lisp
F. Jason Park [Mon, 11 Jul 2022 12:14:57 +0000 (05:14 -0700)]
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.)

23 months agoRefactor erc-select-read-args
F. Jason Park [Mon, 11 Jul 2022 12:14:57 +0000 (05:14 -0700)]
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.)

23 months agoAccommodate ircs:// URLs in url-irc and browse-url
F. Jason Park [Mon, 11 Jul 2022 12:14:57 +0000 (05:14 -0700)]
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.)

23 months agoWarn of future breaking change to erc-response.tags
F. Jason Park [Tue, 25 Oct 2022 05:58:13 +0000 (22:58 -0700)]
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.)

23 months agoImprove auto-reconnect visibility in ERC
F. Jason Park [Thu, 27 Oct 2022 07:21:10 +0000 (00:21 -0700)]
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
(erc-scenarios-base-cancel-reconnect): Add new test case for canceling
reconnect timers.  (Bug#58840.)

23 months ago; Make some ERC test fixtures a bit more courteous
F. Jason Park [Wed, 16 Nov 2022 09:21:20 +0000 (01:21 -0800)]
; Make some ERC test fixtures a bit more courteous

* test/lisp/erc/erc-dcc-tests.el (erc-dcc-tests--pcomplete-common):
Only emit messages when interactive.
* test/lisp/erc/resources/erc-d/erc-d-tests.el
(erc-d-tests-with-server): Shadow `erc-after-connect' so
`erc-autojoin-channels' doesn't affect other tests.
test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common--make-bindings): Shadow `erc-after-connect' here
as well.  Also require erc instead of erc-backend to silence some new
compiler warnings the cropped up after the creation of erc-common.el.

23 months agoSupport auth-source-pass in ERC
F. Jason Park [Sun, 24 Apr 2022 13:20:09 +0000 (06:20 -0700)]
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.)

23 months agoMake auth-source-pass behave more like other backends
F. Jason Park [Wed, 2 Nov 2022 05:46:24 +0000 (22:46 -0700)]
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.

23 months agoEnable/disable 'server-mode' when starting/stopping the server
Jim Porter [Wed, 2 Nov 2022 16:22:43 +0000 (09:22 -0700)]
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).

23 months agoFix two typos in a doc string
Karl Fogel [Thu, 17 Nov 2022 02:34:28 +0000 (20:34 -0600)]
Fix two typos in a doc string

23 months ago; * src/comp.c (Fnative_elisp_load): Fix typo in docstring
Juanma Barranquero [Thu, 17 Nov 2022 02:15:15 +0000 (03:15 +0100)]
; * src/comp.c (Fnative_elisp_load): Fix typo in docstring

23 months agoEUDC: Fix eudc-capf-message-expand-name nil result
Thomas Fitzsimmons [Thu, 17 Nov 2022 01:29:26 +0000 (20:29 -0500)]
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)

23 months ago* src/itree.c: Use more uniform names starting with `itree_`
Stefan Monnier [Wed, 16 Nov 2022 21:35:10 +0000 (16:35 -0500)]
* 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`.

23 months agoCall xref--analyze with correct project
Stephen Leake [Wed, 16 Nov 2022 17:52:09 +0000 (09:52 -0800)]
Call xref--analyze with correct project

* lisp/progmodes/xref.el (xref-show-definitions-buffer-at-bottom):
Call xref--analyze with correct project.

23 months agoAdd flat-button to docstring of 'set-face-attribute'
Gabriel do Nascimento Ribeiro [Tue, 15 Nov 2022 22:42:01 +0000 (19:42 -0300)]
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)

23 months agoReduce buffer-tests noisiness even more
Eli Zaretskii [Wed, 16 Nov 2022 14:37:23 +0000 (16:37 +0200)]
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)

23 months agoReduce buffer-tests noisiness when run in batch mode.
Matt Armstrong [Tue, 15 Nov 2022 18:33:00 +0000 (10:33 -0800)]
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.

23 months ago; Don't unnecessarily use non-ASCII characters in Texinfo
Eli Zaretskii [Wed, 16 Nov 2022 14:27:10 +0000 (16:27 +0200)]
; Don't unnecessarily use non-ASCII characters in Texinfo

* doc/emacs/custom.texi (Init Rebinding, Examining, Keymaps):
Use Texinfo directives instead of literal non-ASCII characters.

23 months ago; * lisp/apropos.el (apropos): Doc fix. (Bug#59248)
Eli Zaretskii [Wed, 16 Nov 2022 14:13:45 +0000 (16:13 +0200)]
; * lisp/apropos.el (apropos): Doc fix.  (Bug#59248)

23 months agoSet vc-prepare-patches-separately to nil in .dir-locals.el
Philip Kaludercic [Wed, 16 Nov 2022 08:16:28 +0000 (09:16 +0100)]
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.

23 months agoMerge from origin/emacs-28
Stefan Kangas [Wed, 16 Nov 2022 07:41:29 +0000 (08:41 +0100)]
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

23 months agoFix calculation of tab bar lines during automatic height adjustment
Po Lu [Wed, 16 Nov 2022 03:19:20 +0000 (11:19 +0800)]
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)

23 months agoFix error trapping in x_focus_frame
Po Lu [Wed, 16 Nov 2022 02:37:14 +0000 (10:37 +0800)]
Fix error trapping in x_focus_frame

* src/xterm.c (x_focus_frame): Improve commentary.  Dno not trap
errors around x_get_server_time.

23 months ago; * lisp/subr.el (match-buffers): Fix typo
Juanma Barranquero [Tue, 15 Nov 2022 10:27:56 +0000 (11:27 +0100)]
; * lisp/subr.el (match-buffers): Fix typo

23 months agoNew command 'project-list-buffers' bound to 'C-x p C-b' (bug#59153)
Juri Linkov [Tue, 15 Nov 2022 18:54:39 +0000 (20:54 +0200)]
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.

23 months ago; Fix some doc strings in elisp-mode.el
Eli Zaretskii [Tue, 15 Nov 2022 17:58:52 +0000 (19:58 +0200)]
; Fix some doc strings in elisp-mode.el

* lisp/progmodes/elisp-mode.el (elisp-enable-lexical-binding)
(elisp--local-variables-1, elisp--expect-function-p)
(eval-print-last-sexp, eval-last-sexp, elisp--eval-defun-1)
(eval-defun, elisp--eldoc-last-data, elisp-eldoc-funcall)
(elisp-eldoc-var-docstring)
(elisp-eldoc-var-docstring-with-value)
(elisp-get-fnsym-args-string)
(elisp--highlight-function-argument): Doc fixes.

23 months ago; Improve doc strings in seq.el
Eli Zaretskii [Tue, 15 Nov 2022 17:36:49 +0000 (19:36 +0200)]
; Improve doc strings in seq.el

* lisp/emacs-lisp/seq.el (seq-doseq, seq-setq, seq-elt)
(seq-length, seq-rest, seq-do, seq-mapn, seq-drop, seq-take)
(seq-drop-while, seq-take-while, seq-sort, seq-sort-by)
(seq-concatenate, seq-into, seq-filter, seq-remove)
(seq-remove-at-position, seq-every-p, seq-some, seq-find)
(seq-count, seq-contains, seq-contains-p, seq-set-equal-p)
(seq-position, seq-positions, seq-uniq, seq-mapcat)
(seq-partition, seq-union, seq-intersection, seq-difference)
(seq--count-successive, seq--elt-safe, seq-random-elt)
(seq-split, seq-keep): Doc fixes.

2 years ago; .clang-format: Support macros in comp.c, align operands correctly.
Vibhav Pant [Tue, 15 Nov 2022 14:36:56 +0000 (20:06 +0530)]
; .clang-format: Support macros in comp.c, align operands correctly.

* .clang-format (WhitespaceSensitiveMacros): Add comp.c macros that
stringify arguments, telling clang-format to not format them.
(AlignOperands): Set to Align, to make clang-format correctly align
multi-line expressions involving binary and ternary expressions.
(ForEachMacros): Add FOR_EACH_ALIST_VALUE.

2 years agoFix last change again
Po Lu [Tue, 15 Nov 2022 13:42:59 +0000 (21:42 +0800)]
Fix last change again

* src/frame.c (Freconsider_frame_fonts): Apply value of default
face again.  (bug#59283)

2 years agoMore fixes to last change
Po Lu [Tue, 15 Nov 2022 11:45:28 +0000 (19:45 +0800)]
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.

2 years agoFix recent Cairo xsettings changes
Po Lu [Tue, 15 Nov 2022 11:07:44 +0000 (19:07 +0800)]
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)

2 years agoUse substitute-command-keys for buffer-menu help
Stefan Kangas [Tue, 15 Nov 2022 07:45:02 +0000 (08:45 +0100)]
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'.

2 years ago; Auto-commit of loaddefs files.
Stefan Kangas [Tue, 15 Nov 2022 04:09:10 +0000 (05:09 +0100)]
; Auto-commit of loaddefs files.

2 years agoAdd face to key bindings suggested by M-x
Stefan Kangas [Tue, 15 Nov 2022 03:17:58 +0000 (04:17 +0100)]
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.

2 years agoExplain how to bind keys to non-ASCII sequences
Robert Pluim [Mon, 14 Nov 2022 16:12:49 +0000 (17:12 +0100)]
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.

2 years agoMake C-x 5 o work on GNOME Shell-like Wayland compositors
Po Lu [Mon, 14 Nov 2022 11:06:12 +0000 (19:06 +0800)]
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'.

2 years agoCC Mode: Prevent over-eager recognition of a variable as a found type
Alan Mackenzie [Mon, 14 Nov 2022 09:47:14 +0000 (09:47 +0000)]
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.

2 years agoPrevent crashes upon trying to focus a child frame on click
Po Lu [Mon, 14 Nov 2022 06:07:04 +0000 (14:07 +0800)]
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.

2 years agoHardcode "-name" instead of using find-name-arg
Dmitry Gutov [Mon, 14 Nov 2022 00:18:56 +0000 (02:18 +0200)]
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).

2 years ago* lisp/minibuffer.el (set-message-functions): New user option.
Juri Linkov [Sun, 13 Nov 2022 18:57:50 +0000 (20:57 +0200)]
* 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.

2 years agoFix suggest-key-bindings displaying key as command
Stefan Kangas [Sun, 13 Nov 2022 18:46:02 +0000 (19:46 +0100)]
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.

2 years ago* lisp/tab-bar.el: More improvements for tab-bar-auto-width (bug#59208)
Juri Linkov [Sun, 13 Nov 2022 18:16:17 +0000 (20:16 +0200)]
* 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.

2 years agoEglot: fix null scopeUri regression in workspace/configuration
Ingo Lohmar [Sun, 13 Nov 2022 16:27:12 +0000 (17:27 +0100)]
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.

2 years ago; * lisp/simple.el (execute-extended-command): Improve comments.
Stefan Kangas [Sun, 13 Nov 2022 14:58:48 +0000 (15:58 +0100)]
; * lisp/simple.el (execute-extended-command): Improve comments.

2 years agoNew test for execute-extended-command helper defun
Stefan Kangas [Sun, 13 Nov 2022 14:34:02 +0000 (15:34 +0100)]
New test for execute-extended-command helper defun

* test/lisp/simple-tests.el
(simple-execute-extended-command--shorter): New test.

2 years agoPrefer defvar-keymap in sql.el
Stefan Kangas [Sat, 12 Nov 2022 20:14:23 +0000 (21:14 +0100)]
Prefer defvar-keymap in sql.el

* lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode-map):
Prefer defvar-keymap.

2 years agoAdd new Go modes to eglot-server-programs
Davide Masserut [Sun, 13 Nov 2022 11:30:43 +0000 (12:30 +0100)]
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)

2 years agoFix bug#59075
Po Lu [Sun, 13 Nov 2022 09:30:37 +0000 (17:30 +0800)]
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)

2 years agoFix warnings without XCB or XFixes
Po Lu [Sun, 13 Nov 2022 07:34:16 +0000 (15:34 +0800)]
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.

2 years ago; Improve documentation of text-scale adjust commands
Eli Zaretskii [Sun, 13 Nov 2022 06:56:35 +0000 (08:56 +0200)]
; Improve documentation of text-scale adjust commands

* lisp/face-remap.el (global-text-scale-adjust)
(text-scale-adjust): Doc fixes.  (Bug#59122)

2 years agoPrevent non-local exits from ns-in-echo-area
Po Lu [Sun, 13 Nov 2022 01:03:51 +0000 (09:03 +0800)]
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.

2 years agoeglot: Support signature labels without a function name
Michal Dubiel [Sun, 23 Oct 2022 17:54:31 +0000 (19:54 +0200)]
eglot: Support signature labels without a function name

* lisp/progmodes/eglot.el (eglot--sig-info): Support signature labels
without a function name.  (Bug#58777)

Copyright-paperwork-exempt: yes

2 years agovc-git: Ensure git doesn't try to colorize stashes
Morgan Smith [Wed, 9 Nov 2022 21:16:55 +0000 (16:16 -0500)]
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)

2 years agoAdd cperl-mode to eglot-server-programs
Shohei YOSHIDA [Sat, 12 Nov 2022 13:13:57 +0000 (22:13 +0900)]
Add cperl-mode to eglot-server-programs

2 years ago.dir-locals.el (C entry). Add NO_INLINE to c-noise-macro-names
Alan Mackenzie [Sat, 12 Nov 2022 15:30:38 +0000 (15:30 +0000)]
.dir-locals.el (C entry).  Add NO_INLINE to c-noise-macro-names

2 years agoCorrectly handle key map updates on Haiku
Po Lu [Sat, 12 Nov 2022 13:11:00 +0000 (13:11 +0000)]
Correctly handle key map updates on Haiku

* src/haiku_support.cc (MessageReceived): Handle
B_KEY_MAP_LOADED by clearing the previous keymap.

2 years agoDocument that 'transient-mark-mode' is off in batch mode
Eli Zaretskii [Sat, 12 Nov 2022 11:10:24 +0000 (13:10 +0200)]
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)

2 years agoHandle request serial wraparound more correctly
Po Lu [Sat, 12 Nov 2022 10:52:36 +0000 (18:52 +0800)]
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.

2 years ago; * src/xselect.c (x_handle_selection_request): Fix typo in last change.
Po Lu [Sat, 12 Nov 2022 07:51:02 +0000 (15:51 +0800)]
; * src/xselect.c (x_handle_selection_request): Fix typo in last change.

2 years agoFix implementation of MULTIPLE
Po Lu [Sat, 12 Nov 2022 07:50:43 +0000 (15:50 +0800)]
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.

2 years ago* doc/lispref/intro.texi: Fix PDF output without VERSION. (Bug#59199)
Stefan Kangas [Sat, 12 Nov 2022 05:35:21 +0000 (06:35 +0100)]
* doc/lispref/intro.texi: Fix PDF output without VERSION.  (Bug#59199)

2 years ago; * lisp/dired.el (dired--unhide): Remove FIXME. (Bug#59047)
Eli Zaretskii [Sat, 12 Nov 2022 07:04:42 +0000 (09:04 +0200)]
; * lisp/dired.el (dired--unhide): Remove FIXME.  (Bug#59047)

2 years ago* lisp/xwidget.el: Improve Commentary.
Po Lu [Sat, 12 Nov 2022 06:06:26 +0000 (07:06 +0100)]
* lisp/xwidget.el: Improve Commentary.

2 years agoPrefer defvar-keymap in cus-theme.el
Stefan Kangas [Sat, 12 Nov 2022 06:02:30 +0000 (07:02 +0100)]
Prefer defvar-keymap in cus-theme.el

* lisp/cus-theme.el (custom-new-theme-mode-map)
(custom-theme-choose-mode-map): Prefer defvar-keymap.

2 years agoproject--buffer-list: Remove as unused
Dmitry Gutov [Sat, 12 Nov 2022 01:34:41 +0000 (03:34 +0200)]
project--buffer-list: Remove as unused

* lisp/progmodes/project.el (project--buffer-list):
Remove as unused (pointed out in bug#59153 by Juri).

2 years agoMention obsolete gnus/nnir package in Gnus manual
Eric Abrahamsen [Fri, 11 Nov 2022 18:59:00 +0000 (10:59 -0800)]
Mention obsolete gnus/nnir package in Gnus manual

* doc/misc/gnus.texi (nnir): Provide some hints for upgrade.

2 years agoMake Eglot consider FileSystemWatcher.kind when watching files
Brian Leung [Tue, 2 Feb 2021 19:23:25 +0000 (11:23 -0800)]
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).

2 years ago; Fix typos
Stefan Kangas [Fri, 11 Nov 2022 14:46:23 +0000 (15:46 +0100)]
; Fix typos