emacs/lisp
João Távora 9b3855e164 Jsonrpc: rework sync request handling (bug#80623)
When the remote endpoint is handling a local request 'LR' it can
sometimes make a remote sync request 'RR' as part of its handling.  Some
endpoints (like Go's gopls) wait for Emacs's reply to 'RR' before
responding to 'LR'.  Others (like Julia's JETLS) respond to 'LR'
immediately, and only then wait for Emacs's reply to 'RR'.  Both
approaches are valid.  However, in the latter case, the handling of 'RR'
(which could well be waiting for user input from the minibuffer to
complete) is vulnerable to 'throw' from process filters handling (which
is just what happens when the endpoints replies to 'LR'), so if that
happens it will unexpectedly be aborted when the reply to 'LR' comes in,
suprising the user and causing a spurious -32603 reply to be sent.

To solve this problem, this commit first refactors the sync
request/anxious queue handling and replace plain integer keys of the
rebaptized "scontrol" alist with structured (:local ID) / (:remote ID)
pairs, using `equal' for comparisons.  This is to introduce some
clarity/sanity into this somewhat hairy code.

Then, the 'RR' situation is fixed: we push a (:remote ID) entry onto the
top of the 'jsonrpc-connection--control' stack and only then call
rdispatcher.  Any 'LR' reply arriving during dispatch is deferred as an
"anxious" continuation rather than firing its `throw' immediately.  When
rdispatcher is done, we call jsonrpc--continue at a safe point, this
will run any "anxious" continuations.

* lisp/jsonrpc.el (jsonrpc-connection): Rename -sync-request-alist to
-scontrol; accessor from jsonrpc--sync-request-alist to
jsonrpc--scontrol; update docstring for new key structure.

(jsonrpc-connection-receive): Update with-slots binding to scontrol.
Tighten anxious check to match (:local ID) keys with `equal'.  In
remote-request branch, push (:remote ID) entry before rdispatcher and
call jsonrpc--continue after jsonrpc--reply.

(jsonrpc-request): Pass (:local ID) to jsonrpc--continue.

(jsonrpc--continue): Use jsonrpc--scontrol; change `=' to `equal' in
sanity check.
p
(jsonrpc--async-request-1): Push (:local ID) entry.

(jsonrpc--log-event): Use jsonrpc--scontrol.
2026-05-04 11:47:21 +01:00
..
calc Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
calendar ; Spelling fixes. 2026-04-29 22:45:51 -07:00
cedet ede/proj-shared.el: Remove leftover obsolete EIEIO name arguments 2026-02-13 23:48:32 -05:00
emacs-lisp Ensure package archives are loaded for 'package-isolate' 2026-05-03 20:25:53 +02:00
emulation Rename 'any' to 'member-if' and deprecate 'cl-member-if' 2026-03-04 14:43:05 +00:00
erc Only perform erc-log-insert-log-on-open setup once 2026-04-30 15:46:42 -07:00
eshell Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
gnus Gnus logo in server buffer's mode line (bug#80850) 2026-05-03 12:01:21 +01:00
image Refill 'image-dired-display-image-buffer' 2026-01-03 13:22:01 +02:00
international Use plain autoload cookie with transient-define-prefix 2026-04-27 21:58:39 +02:00
language Add language-environment and input methods for Syriac 2026-04-23 11:31:10 +03:00
leim/quail Add language-environment and input methods for Syriac 2026-04-23 11:31:10 +03:00
mail (mail-citation-prefix-regexp): Fix excessive backtracking (bug#80808) 2026-04-22 08:39:48 -04:00
mh-e Improve previous change. 2026-04-10 11:04:29 -07:00
net eww-handle-link: Split HTML rel on spaces 2026-04-30 11:56:29 +01:00
nxml Fix defining a few faces as empty 2026-04-27 21:35:44 +02:00
obsolete Add predicate for initial_terminal 2026-03-26 15:19:56 +01:00
org ; Spelling fixes. 2026-04-29 22:45:51 -07:00
play Window handling bug fixes. 2026-03-17 18:32:40 -04:00
progmodes Eglot: find well behaved UTF char for code actions (bug#80326) 2026-05-02 09:56:41 +01:00
term ; * lisp/term/w32console.el (set-screen-color): Fix signature. 2026-04-08 16:33:57 +03:00
textmodes Add for <picture> to 'html-tag-alist' and 'html-tag-help' 2026-05-03 20:25:53 +02:00
url Improve documentation of 'url-retrieve' and GnuTLS peer status 2026-04-08 11:02:47 +03:00
use-package ; Fix handling of string by the use-package keyword :vc 2026-03-16 18:23:37 +01:00
vc Fix 'vc-dir-resynch-file' (bug#80803) 2026-05-02 15:11:37 +02:00
abbrev.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
align.el Fix last change in align.el 2026-02-05 10:56:51 +02:00
allout-widgets.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
allout.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ansi-color.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ansi-osc.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
apropos.el Fix apropos-print window selection 2026-02-22 17:02:34 +01:00
arc-mode.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
array.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
auth-source-pass.el Improve last change to auth-source-pass 2026-03-26 15:05:22 +01:00
auth-source.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
autoinsert.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
autorevert.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
avoid.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
battery.el Check that a UPower battery device IsPresent 2026-02-12 19:15:39 +01:00
bind-key.el Avoid infinite recursion in bind-keys-form (bug#80759) 2026-04-08 14:56:02 +00:00
bindings.el ; * lisp/bindings.el (mode-line-percent-position): Doc fix (bug#80617). 2026-03-15 12:16:40 +02:00
bookmark.el Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
bs.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
buff-menu.el Fix buffer menu unmark (bug#80082) 2026-01-13 20:49:03 +02:00
button.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
calculator.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
case-table.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.1 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.2 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.3 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.4 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.5 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.6 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.7 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.8 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.9 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.10 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.11 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.12 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.13 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.14 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.15 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.16 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ChangeLog.17 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
char-fold.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
chistory.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
cmuscheme.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
color.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
comint.el (comint--fontify-input-fontify-region): Silence messages (bug#80870) 2026-04-23 11:16:05 -04:00
completion-preview.el Remove 'completion-preview--is-calling' 2026-05-02 21:46:31 +02:00
completion.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
composite.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
COPYING
cus-dep.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
cus-edit.el New macro setopt-local and function set-local (bug#80709) 2026-04-02 13:47:36 -04:00
cus-face.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
cus-start.el New variable 'multiple-terminals-merge-keyboards' 2026-02-28 20:54:56 +00:00
cus-theme.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
custom.el ; * lisp/custom.el (copy-theme-options): New FIXME. 2026-02-21 09:35:30 +00:00
dabbrev.el (dabbrev-completion): Improve last fix for bug#80645 2026-03-22 10:58:40 -04:00
delim-col.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
delsel.el (delete-selection-repeat-replace-region): Partial fix for bug#80216 2026-03-17 12:40:22 -04:00
descr-text.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
desktop.el Add predicate for initial_terminal 2026-03-26 15:19:56 +01:00
dframe.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dired-aux.el vc-rename-file: New OK-IF-ALREADY-EXISTS parameter 2026-04-15 10:06:20 -04:00
dired-x.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dired.el Restrict Dired handling of newlines in file names 2026-04-17 19:26:37 +02:00
dirtrack.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
disp-table.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
display-fill-column-indicator.el Add predicate for initial_terminal 2026-03-26 15:19:56 +01:00
display-line-numbers.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dnd.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
doc-view.el ; * lisp/doc-view.el (doc-view-mode-p): Fix docstring. 2026-02-07 11:33:14 +01:00
dom.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dos-fns.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dos-vars.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dos-w32.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
double.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dynamic-setting.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ebuff-menu.el Use the new error API functions 2026-03-10 10:48:21 -04:00
ecomplete.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
editorconfig-conf-mode.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
editorconfig-core-handle.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
editorconfig-core.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
editorconfig-fnmatch.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
editorconfig-tools.el ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00
editorconfig.el Fix broken FOO-mode-indent-offset convention 2026-02-22 18:48:57 -05:00
edmacro.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ehelp.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
elec-pair.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
electric.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
elide-head.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
emacs-lock.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
env.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
epa-dired.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
epa-file.el Fix last change 2026-04-01 16:48:09 +02:00
epa-hook.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
epa-ks.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
epa-mail.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
epa.el Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
epg-config.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
epg.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
expand.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
external-completion.el ; (external-completion-table): Fix a couple of typos. 2026-05-01 11:23:09 +02:00
ezimage.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
face-remap.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
facemenu.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
faces.el New faces 'tab-line-active' and 'tab-line-inactive' (bug#80742) 2026-04-14 20:14:15 +03:00
ffap.el (dired-at-point-prompter): Fix bug#80545 2026-04-08 15:19:06 -04:00
filecache.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
fileloop.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
filenotify.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
files-x.el Set indent property for with-connection-local-variables 2026-04-27 21:38:00 +02:00
files.el ; Spelling fixes. 2026-04-29 22:45:51 -07:00
filesets.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
find-cmd.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
find-dired.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
find-file.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
find-lisp.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
finder.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
flow-ctrl.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
foldout.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
follow.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
font-core.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
font-lock.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
format-spec.el Call format-spec substitution functions in current buffer 2026-04-27 21:11:52 +02:00
format.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
forms.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
frame.el Add predicate for initial_terminal 2026-03-26 15:19:56 +01:00
frameset.el Add predicate for initial_terminal 2026-03-26 15:19:56 +01:00
fringe.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
generic-x.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
help-at-pt.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
help-fns.el (describe-mode): Fix bug#80170 2026-02-11 15:53:09 -05:00
help-macro.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
help-mode.el Fix [More] buttons in tutorial and other buttons in Semantic 2026-02-03 05:14:59 +02:00
help.el lisp/help.el (help-function-arglist): Fix last change 2026-04-02 15:53:40 -04:00
hex-util.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
hexl.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
hfy-cmap.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
hi-lock.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
hilit-chg.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
hippie-exp.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
hl-line.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
htmlfontify.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ibuf-ext.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ibuf-macs.el (define-ibuffer-column): Fix corner case miscompilations (bug#80180) 2026-01-14 16:52:09 -05:00
ibuffer.el ; * lisp/ibuffer.el (ibuffer-fontification-alist): Doc fix (bug#80618). 2026-03-19 17:46:57 +02:00
icomplete.el In fido-vertical-mode, let C-s and C-r recover their original use 2026-04-29 10:12:41 +01:00
ido.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ielm.el Fix behavior for ielm-dynamic-multiline-inputs (bug#80123) 2026-01-15 11:12:12 +00:00
iimage.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
image-file.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
image-mode.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
image.el Improve (WebP) image animation 2026-01-24 19:37:30 +01:00
imenu.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
indent-aux.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
indent.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
info-look.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
info-xref.el ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00
info.el (Info-documentlanguage): Keep Info-related code in info.el 2026-04-25 09:56:25 -04:00
informat.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
isearch.el ; * lisp/isearch.el (isearch-occur): Doc fix. (Bug#80785) 2026-04-16 08:26:33 +03:00
isearchb.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
jit-lock.el Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
jka-cmpr-hook.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
jka-compr.el Use the new error API functions 2026-03-10 10:48:21 -04:00
json.el Prefer value< with new 'sort' in json.el 2026-02-14 18:56:44 +01:00
jsonrpc.el Jsonrpc: rework sync request handling (bug#80623) 2026-05-04 11:47:21 +01:00
keymap.el Improve documentation of 'define-keymap' 2026-03-07 10:55:23 +02:00
kmacro.el (kmacro-end-call-mouse): Make obsolete 2026-03-27 08:54:14 -04:00
ldefs-boot.el ; Update ldefs-boot.el. 2026-04-29 14:55:23 +01:00
loadhist.el Fix predicate of plist-member on function-history 2026-02-20 23:37:48 -05:00
loadup.el * lisp/loadup.el: No longer GC after loading each file 2026-03-13 15:35:05 +01:00
locate.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
lpr.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ls-lisp.el Use the new error API functions 2026-03-10 10:48:21 -04:00
macros.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
Makefile.in ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
man.el ; Fix messages in "M-x man" 2026-01-18 14:36:51 +02:00
master.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
mb-depth.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
md4.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
menu-bar.el Add predicate for initial_terminal 2026-03-26 15:19:56 +01:00
midnight.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
minibuf-eldef.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
minibuffer.el (completion--file-name-table): Improve completion of /a/~b/c 2026-04-27 15:03:19 -04:00
misc.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
misearch.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
mouse-copy.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
mouse-drag.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
mouse.el Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
mpc.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
msb.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
mwheel.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
newcomment.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
notifications.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
novice.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
obarray.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
outline.el ; Fix quotation of some symbols 2026-04-04 13:44:08 +01:00
paren.el Fix text visibility issue with show-paren--show-context-in-overlay 2026-04-01 06:28:51 +02:00
password-cache.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcmpl-cvs.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcmpl-git.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcmpl-gnu.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcmpl-linux.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcmpl-rpm.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcmpl-unix.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcmpl-x.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pcomplete.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pgtk-dnd.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pixel-scroll.el pixel-scroll: Avoid loading `cua-base' 2026-01-31 11:01:02 +02:00
plstore.el Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
printing.el ; Fix 2 defcustoms in printing.el 2026-04-03 15:44:38 +03:00
proced.el ; Improve documentation of Proced 2026-04-25 09:01:48 +03:00
profiler.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ps-bdf.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ps-mule.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ps-print.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ps-samp.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
pulse.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
README
recentf.el ; recentf-exclude-file-by-extension-p: Restore and-let*. 2026-03-08 14:55:23 +00:00
rect.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
register.el (register--get-method-type): Fix one more case (bug#80894) 2026-04-26 12:18:44 -04:00
registry.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
repeat.el repeat: handle non-character keys with hint strings 2026-01-04 18:56:19 -05:00
replace.el Revert "New key 'M-j' for 'icomplete-mode' (bug#62108)" 2026-02-11 09:19:52 +02:00
reposition.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
reveal.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
rfn-eshadow.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ring-bell-fns.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
rot13.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
rtree.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ruler-mode.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
savehist.el Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
saveplace.el save-place-alist-to-file: Use prin1, not pp (bug#80183) 2026-01-12 09:59:40 +00:00
scroll-all.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
scroll-bar.el ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00
scroll-lock.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
select.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
send-to.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
server.el ; Improve documentation of Emacs server-client protocol 2026-05-02 12:35:48 +03:00
ses.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
shadowfile.el shadowfile.el uses eqhemeral buffer names now 2026-01-07 10:08:45 +01:00
shell.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
simple.el Fix value of 'default-line-height' 2026-04-30 19:39:42 +03:00
skeleton.el ; * lisp/skeleton.el (skeleton-insert): Doc fix. (Bug#80492) 2026-02-26 11:07:57 +02:00
so-long.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
sort.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
soundex.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
speedbar.el ; * lisp/speedbar.el (speedbar-frame-or-window): Quote arg (bug#80392). 2026-02-22 16:38:38 -08:00
sqlite-mode.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
sqlite.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
startup.el Adjust default value of 'user-lisp-ignored-directories' 2026-04-25 20:29:53 +02:00
strokes.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
subr.el Fix computation of package description file 2026-04-12 12:37:58 +02:00
svg.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
system-sleep.el ; system-sleep minor follow ups (bug#80361) 2026-02-22 10:35:23 +01:00
system-taskbar.el ; system-taskbar tweaks to dbus loading and group keyword (bug#80361) 2026-02-22 10:36:16 +01:00
t-mouse.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tab-bar.el Rebind 'tab-bar-mouse-close-tab' from <down-mouse-2> to <mouse-2> 2026-04-21 19:30:03 +03:00
tab-line.el New faces 'tab-line-active' and 'tab-line-inactive' (bug#80742) 2026-04-14 20:14:15 +03:00
tabify.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
talk.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tar-mode.el Use single-arg form of signal to re-throw an error 2026-03-10 10:48:22 -04:00
tempo.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
term.el Fix absolute cursor positioning in term.el 2026-02-22 12:39:12 +02:00
thingatpt.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
thread.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
time-stamp.el ; time-stamp: rename some internal functions to include "--" 2026-04-07 09:28:32 -07:00
time.el display-time: Add option to customize help-echo format 2026-01-31 12:12:21 +02:00
timezone.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tmm.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tool-bar.el ; * lisp/tool-bar.el (tool-bar-setup): Adapt to change for bug#80545. 2026-03-26 11:20:53 +02:00
tooltip.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
touch-screen.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
transient.el Update to Transient v0.13.2-10-gf7894ca4 2026-05-01 22:06:03 +02:00
tree-widget.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
treesit-x.el (define-treesit-generic-mode): Improve autoloading support (bug#80480) 2026-02-25 11:25:29 -05:00
treesit.el * lisp/treesit.el (treesit-outline-level): Add guard condition. 2026-05-03 18:38:43 +03:00
tty-tip.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tutorial.el ; * lisp/tutorial.el: Remove unneeded require. 2026-02-16 10:47:29 +01:00
type-break.el Use the new error API functions 2026-03-10 10:48:21 -04:00
uniquify.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
userlock.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
vcursor.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
version.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
view.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
visual-wrap.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
w32-fns.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
w32-vars.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
wdired.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
which-key.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
whitespace.el ; * lisp/whitespace.el (whitespace-global-modes): Grammar fix. 2026-03-23 21:11:38 +00:00
wid-browse.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
wid-edit.el ; Fix documentation of widget commands 2026-02-07 11:45:00 +02:00
widget.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
windmove.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
window-tool-bar.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
window-x.el ; Remove "--" from the name of autoloaded 'window--get-split-combination' 2026-01-22 20:09:47 +02:00
window.el ; Fix last fix to 'window--make-major-side-window' 2026-03-27 23:35:24 +01:00
winner.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
woman.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
x-dnd.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
xdg.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
xml.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
xt-mouse.el Add predicate for initial_terminal 2026-03-26 15:19:56 +01:00
xwidget.el ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00
yank-media.el ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.