emacs/lisp
Andrea Alberti ca5e9976b1 Pixel-direct alignment in visual-wrap-prefix-mode (bug#81039)
`visual-wrap--content-prefix' previously returned a column count
computed as

    (max (string-width prefix)
         (ceiling (string-pixel-width prefix) avg-space-width))

with two problems:

* `string-width' ignores `buffer-invisibility-spec', so an invisible
  prefix (hidden ATX markers under `markdown-ts-hide-markup', for
  example) still reserved its character count on line 1 via a
  `min-width' display property, shifting the visible heading right.

* With variable-pitch fonts, rounding the prefix width up to whole
  columns added visible padding whenever the natural width did not
  fall on an exact column boundary.

Return the prefix's natural pixel width via `string-pixel-width'
instead, which accounts for any display transformation applied to
the prefix (invisibility, `display' replacements, text scaling,
proportional fonts).  Drop the `min-width' property from
`visual-wrap--apply-to-line' so line 1 renders at its natural width.
Switch the continuation `wrap-prefix' to a mixed-unit `:align-to'
sum form:

    (space :align-to (+ (PIX) (EXTRA-INDENT . width)))

where PIX is the prefix's pixel width and EXTRA-INDENT is
`visual-wrap-extra-indent' in canonical character widths.  The
display engine resolves each term per the active frame and sums
them, so no Lisp-level unit conversion is needed.

Since `min-width' is no longer installed, the accumulation cycle
that commit 81a5beb8af (bug#73882) worked around cannot recur.
Drop the `min-width' strip from `visual-wrap--content-prefix' and
the `min-width' removal from `visual-wrap--remove-properties'.
Keep `min-width' in `visual-wrap--safe-display-specs' so that
lines where other modes install it are not skipped.

* lisp/visual-wrap.el (visual-wrap--content-prefix): Return pixel
width instead of column count; drop the `min-width' strip.
(visual-wrap--apply-to-line): Drop `min-width' on line 1; use
mixed-unit `:align-to' sum form for the continuation wrap-prefix.
(visual-wrap--adjust-prefix): Handle only string prefixes; the
numeric (pixel) case is now handled inline in `--apply-to-line'
via the mixed-unit `:align-to' sum form.
(visual-wrap--remove-properties): Drop `min-width' removal.
(visual-wrap--safe-display-specs): Add note about `min-width'.
* test/lisp/visual-wrap-tests.el: Update expected `wrap-prefix'
values to the new sum form.
(visual-wrap-tests/invisible-prefix): New test motivated by bug#81039.
(visual-wrap-tests/negative-extra-indent): New test; verify that a
large negative `visual-wrap-extra-indent' produces a valid
wrap-prefix (the display engine clamps the stretch to zero).
* test/manual/visual-wrap-test.el: New file.  Manual test suite
for visual-eyeball verification of prefix alignment behavior.

Reported-by: Andrea Alberti <a.alberti82@gmail.com>
Co-authored-by: Stefan Monnier <monnier@iro.umontreal.ca>
2026-05-26 16:56:32 -04:00
..
calc Fix updates of embedded formulas by 'calc-embedded-update-formula' 2026-05-17 10:57:53 +03:00
calendar Rename `icalendar-recur' type and related functions 2026-05-23 13:25:19 +03:00
cedet ede/proj-shared.el: Remove leftover obsolete EIEIO name arguments 2026-02-13 23:48:32 -05:00
emacs-lisp lisp/emacs-lisp/package.el (package-quickstart-refresh): Delete stale elc 2026-05-25 17:01:07 -04:00
emulation Rename 'any' to 'member-if' and deprecate 'cl-member-if' 2026-03-04 14:43:05 +00:00
erc Merge from origin/emacs-31 2026-05-21 00:24:52 +01:00
eshell Allow child processes to continue after EPIPE 2026-05-17 17:24:10 -07:00
gnus Gnus: Prefer passing functions to message-add-action 2026-05-26 15:54:48 -04: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 shr.el: Don't insert image at outdated destination (bug#80945) 2026-05-18 22:26:12 -04:00
mh-e Improve previous change. 2026-04-10 11:04:29 -07:00
net Merge from origin/emacs-31 2026-05-23 07:23:33 -04:00
nxml Fix defining a few faces as empty 2026-04-27 21:35:44 +02:00
obsolete Mark gnus-dbus.el as obsolete 2026-05-09 12:50:23 +02:00
org ; Fix two file headers misunderstood by authors.el. 2026-05-07 20:04:04 +01:00
play Window handling bug fixes. 2026-03-17 18:32:40 -04:00
progmodes ;cperl-mode.el: Fix fontification edge cases 2026-05-25 11:23:34 +02:00
term ; * lisp/term/pgtk-win.el (icon-map-list): Fix :type. 2026-05-09 12:44:59 +03:00
textmodes Merge from origin/emacs-31 2026-05-23 17:30:21 +01:00
url ; Fix typo 2026-05-12 17:11:00 +02:00
use-package ; Fix handling of string by the use-package keyword :vc 2026-03-16 18:23:37 +01:00
vc vc-refresh-state: Use cond* 2026-05-23 12:47:24 +01: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 Improve auth-source-backend-parse 2026-05-20 10:10:30 +02: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 New variable 'completion-frontend-properties' (bug#80990) 2026-05-09 20:06:25 +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 Bump master Emacs version to 32.0.50 2026-05-07 17:46:43 +01: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 Prettify special glyphs 2026-05-23 14:12:19 +03: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 Introduce 'margin' face for window margin background 2026-05-05 11:21:57 +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 Fix file-name-non-special implementation of get-file-buffer 2026-05-12 08:48:43 +02: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 ; Improve doc strings of several Help-related user options 2026-05-06 14:19:50 +03: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 ; Improve doc strings of several Help-related user options 2026-05-06 14:19:50 +03: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 ; htmlfontify: Handle 'reset' face attribute value (bug#81032) 2026-05-14 17:11:43 +02: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 ; Improve documentation of lazy-highlight in search and replace commands 2026-05-22 14:46:13 +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 Merge from origin/emacs-31 2026-05-16 07:17:51 -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 Improve 'context-menu-send-to' (bug#79512) 2026-05-05 19:45:28 +03: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 ; Improve documentation of lazy-highlight in search and replace commands 2026-05-22 14:46:13 +03: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 Improve 'context-menu-send-to' (bug#79512) 2026-05-05 19:45:28 +03: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 ; Improve documentation of commands that move by compilation errors 2026-05-17 09:05:13 +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 Fix 'prepare-user-lisp' to follow symlinks 2026-05-11 15:36:58 +02:00
strokes.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
subr.el Detect some API violations in combine-change-calls (bug#80877) 2026-05-20 11:27:40 +00: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 terminal emulation of "ESC [ K" sequence 2026-05-09 15:33:21 +00: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.3-10-g87d0ca08 2026-05-07 17:35:17 +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 ; Fix byte-compilation warnings in non-Tree-Sitter builds 2026-05-16 14:13:56 +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 Pixel-direct alignment in visual-wrap-prefix-mode (bug#81039) 2026-05-26 16:56:32 -04: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.