1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-03 22:20:52 -08:00
emacs/lisp
Basil L. Contovounesios 72c53dcb13 Improve (WebP) image animation
This adds support for animations with heterogeneous frame durations
without sacrificing CPU (bug#47895), and plugs a memory leak in and
speeds up WebP animations (bug#66221).

* lisp/image.el (image-animate): No need to stash
image-multi-frame-p data here, as image-animate-timeout now
refetches it for each animation frame.
(image-show-frame): Fetch image-multi-frame-p anew when checking
bounds; a cached value risks going stale.  This is not on the hot
path for animations, and is mainly used when framewise stepping
through an animation interactively.
(image-animate-timeout): Fetch current frame duration anew but do so
before image-show-frame to ensure an image cache hit (bug#47895,
bug#66221).  Include time taken by local arithmetic in
'time-to-load-image'.  Update commentary.

* src/image.c (parse_image_spec): Simplify using FIXNATP.
(filter_image_spec): Remove check for :animate-multi-frame-data as
it is no longer used by image.el.
[HAVE_ANIMATION && HAVE_GIF] (struct gif_anim_handle):
[HAVE_ANIMATION && HAVE_WEBP] (struct webp_anim_handle): New
structures formalizing animation cache handles, and allowing for
more than two custom fields per image type.
(struct anim_cache): Replace generic handle and temp pointers with a
union of gif_anim_handle and webp_anim_handle.  All uses updated.
Update destructor signature accordingly.
(anim_create_cache): Use xzalloc to zero-initialize both integer and
pointer fields.  Initialize frames, width, height to -1 for
consistency with index.  Mark as ATTRIBUTE_MALLOC.
(anim_prune_animation_cache): Check whether destructor (not handle)
is null before calling it.
(gif_clear_image): Note in commentary that WebP also uses it.
(gif_destroy): Free pixmap here now that prune_anim_cache no longer
does it automatically.  Remove unused gif_err variable.
(gif_load): Avoid UB from casting destructor to a different type.
Don't redundantly check for null before xfree.  Change default frame
delay from 15fps to t, which image-multi-frame-p will translate into
image-default-frame-delay, which the user can control.
[HAVE_WEBP && WINDOWSNT] (init_webp_functions): Reconcile library
definitions with current webp_load implementation.
(webp_destroy): Free owned copy of input WebP bitstream contents.
(webp_load): Ownership of both input and decoded memory is a
function of :data vs :file and animated vs still.  Make this and
transfers of ownership to animation cache clearer by using distinct
copy/view variables.  Also make resource freeing clearer by using a
single unconditional cleanup and exit path.  Check animation cache
early to avoid rereading bitstream and reparsing headers on each
call.  Remove redundant call to WebPGetInfo since WebPGetFeatures
does the same thing.  Check more libwebpdemux return values for
failure and fix file name reported in error messages.  Remove unset
local variable 'file'.  If requested :index is ahead, fast-forward
instead of restarting from first frame.  If requested :index is
behind, reset animation decoder to first frame instead of deleting
and recreating it.  Reuse animation decoder's own WebPAnimInfo and
WebPDemuxer instance instead of creating and deleting a separate
WebPDemuxer.  Fix leak when copying :data to animation cache.  Fix
frame duration calculation, and return each frame's own duration now
that image.el supports it.  Return t as a default frame duration, as
per gif_load.  Consistently use WebPBitstreamFeatures to simplify
control flow.  Don't pollute lisp_data image-metadata for still
images with animation-related properties.
(image_types) [HAVE_WEBP]: Use gif_clear_image to clear lisp_data
for consistency with GIF code.
(syms_of_image): Remove QCanimate_multi_frame_data; no longer used.
2026-01-24 19:37:30 +01:00
..
calc ; calc: Correct width of rules composed of Unicode glyphs 2026-01-17 14:51:01 +02:00
calendar Fix inconsistent definition and usage of 'calendar-buffer' 2026-01-24 14:09:59 +02:00
cedet Fix recent test suite regression (bug#80177) 2026-01-11 18:26:53 -05:00
emacs-lisp * lisp/emacs-lisp/pcase.el (pcase--macroexpand): Normalise atom etc. 2026-01-23 16:46:34 +01:00
emulation ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
erc Use seq-doseq for iterating over strings in ERC 2026-01-11 05:25:03 -08:00
eshell ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
gnus Call browser functions via `browse-url' 2026-01-20 10:31:03 +00:00
image Refill 'image-dired-display-image-buffer' 2026-01-03 13:22:01 +02:00
international ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00
language ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
leim/quail Backslashify all open/close punctuation so we don't confuse indenter 2026-01-24 12:44:37 +02:00
mail ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00
mh-e ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
net ; Tramp code cleanup 2026-01-24 10:15:29 +01:00
nxml ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
obsolete ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
org ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
play ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
progmodes ; Fix indentation in project.el 2026-01-24 06:48:29 +02:00
term (xterm--init): Fix probem in async mode (bug#80163) 2026-01-20 22:46:31 -05:00
textmodes Support cons cell for 'line-spacing' 2026-01-24 13:32:44 +02:00
url ; Remove redundant cl-lib runtime dependencies across lisp/ 2026-01-17 15:32:15 +02:00
use-package ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
vc New bindings for vc-revert 2026-01-23 14:11:27 +00:00
abbrev.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
align.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
bind-key.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
bindings.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
bookmark.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
completion-preview.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
cus-face.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
cus-start.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
cus-theme.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
custom.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dabbrev.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
delim-col.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
delsel.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
descr-text.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
desktop.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dframe.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dired-aux.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dired-x.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
dired.el Fix support of listing switches with whitespace in Dired 2026-01-24 15:39:11 +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 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Fix a recent change of tab-bar/line faces 2026-01-12 15:10:59 +02:00
ffap.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
files.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; * lisp/format-spec.el (format-spec): Doc fix. (Bug#80078) 2026-01-03 14:21:19 +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 frame identifiers (bug#80138) 2026-01-13 09:29:44 +01:00
frameset.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
help-macro.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
help-mode.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
help.el Bind 'apropos-user-option' to C-h u 2026-01-10 12:38:05 +01: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 Avoid byte-compiled code in `ibuffer-maybe-show-predicates' value (bug#80117) 2026-01-11 22:31:49 +13:00
icomplete.el * lisp/icomplete.el (icomplete--render-vertical): Avoid trailing whitespace 2026-01-13 22:19:51 +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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
informat.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
isearch.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
isearchb.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
jit-lock.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
jka-cmpr-hook.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
jka-compr.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
json.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
jsonrpc.el Jsonrpc: don't let remote endpoint requests go unanswered 2026-01-21 12:26:24 +00:00
keymap.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
kmacro.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
ldefs-boot.el ; * lisp/ldefs-boot.el: Regenerate. 2026-01-17 17:20:22 +00:00
loadhist.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
loadup.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 2026 to copyright years. 2026-01-01 12:54:34 +00: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 Don't fail in minibuffer--completions-visible for undefined reference buffer 2026-01-19 20:27:50 +02: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
paren.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Autoload pixel-scroll-interpolate- commands. 2026-01-23 13:40:31 +00:00
plstore.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
printing.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
proced.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
rect.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
register.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 Support cons cell for 'line-spacing' 2026-01-24 13:32:44 +02:00
skeleton.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
strokes.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
subr.el Support cons cell for 'line-spacing' 2026-01-24 13:32:44 +02:00
svg.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
system-taskbar.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
t-mouse.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tab-bar.el ; Remove "--" from the name of autoloaded 'window--get-split-combination' 2026-01-22 20:09:47 +02:00
tab-line.el ; Fix a recent change of tab-bar/line faces 2026-01-12 15:10:59 +02: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tempo.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
term.el Fix updating buffer menu after invoking "M-x term" 2026-01-21 17:37:33 +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-inserts-lines: Clearer doc string 2026-01-05 15:53:47 -08:00
time.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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.12.0-15-gfe5214e6 2026-01-04 17:52:30 +01:00
tree-widget.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
treesit-x.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
treesit.el hideshow: Reword documentation (bug#80116) 2026-01-10 14:55:55 +02:00
tty-tip.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
tutorial.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
type-break.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00: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 ; whitespace-global-modes: Replace "automagically". 2026-01-12 10:38:29 +00:00
wid-browse.el ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
wid-edit.el Make tty default face show the face widget in customize 2026-01-03 13:55:19 +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 Support cons cell for 'line-spacing' 2026-01-24 13:32:44 +02: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 2026 to copyright years. 2026-01-01 12:54:34 +00: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.