emacs/lisp
Philipp Stephani 53dfd85a7f Edebug: Disable backtracking when hitting a &define keyword.
Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Disable
backtracking when hitting a &define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&define): New unit test.
(edebug-tests--duplicate-&define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.
2021-04-10 18:19:49 +02:00
..
calc Remove redundant #' before lambda in calc/*.el 2021-04-05 17:28:05 +02:00
calendar Remove redundant #' before lambda in {calendar,erc,mh-e}/*.el 2021-04-09 00:04:13 +02:00
cedet Regenerate semantic grammars if the generating code changes 2021-04-04 16:57:55 -07:00
emacs-lisp Edebug: Disable backtracking when hitting a &define keyword. 2021-04-10 18:19:49 +02:00
emulation Use emacs-version instead of obsolete version variables 2021-04-01 01:27:38 +02:00
erc Remove redundant #' before lambda in {calendar,erc,mh-e}/*.el 2021-04-09 00:04:13 +02:00
eshell Fix cd to directories called "eshell" in eshell 2021-04-05 18:09:41 +02:00
gnus * lisp/gnus/nnagent.el: Fix spurious empty line at BOB 2021-04-10 12:19:16 -04:00
image
international Merge from origin/emacs-27 2021-04-07 07:50:17 -07:00
language Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
leim/quail Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
mail Replace local intersection functions with seq-intersection 2021-04-05 11:14:34 +02:00
mh-e Remove redundant #' before lambda in {calendar,erc,mh-e}/*.el 2021-04-09 00:04:13 +02:00
net Tramp: fix location of files on W32 2021-04-10 14:46:58 +02:00
nxml Remove local uniquify functions in favour of seq-uniq 2021-04-05 15:14:19 +02:00
obsolete * lisp/obsolete/tpu-extras.el: Avoid defadvice 2021-03-26 11:45:31 -04:00
org Address some --without-x byte-compilation warnings 2021-03-26 17:35:34 +00:00
play Use emacs-version instead of obsolete version variables 2021-04-01 01:27:38 +02:00
progmodes Fail earlier if stale Flymake report functions called 2021-04-10 11:19:34 +01:00
term Address some --without-x byte-compilation warnings 2021-03-26 17:35:34 +00:00
textmodes Make refer-every into obsolete alias for seq-every-p 2021-04-09 18:42:14 +02:00
url Replace local intersection functions with seq-intersection 2021-04-05 11:14:34 +02:00
vc Remove code commented out since 1995 from ediff-util.el 2021-04-05 11:14:34 +02:00
abbrev.el
align.el
allout-widgets.el * lisp/allout*.el: Use lexical-binding 2021-03-29 15:29:26 -04:00
allout.el * lisp/allout*.el: Use lexical-binding 2021-03-29 15:29:26 -04:00
ansi-color.el
apropos.el
arc-mode.el
array.el * lisp/array.el: Use lexical-binding 2021-04-08 14:36:51 -04:00
auth-source-pass.el * lisp/auth-source-pass.el (auth-source): Silence spurious warning 2021-03-24 13:45:13 -04:00
auth-source.el
autoarg.el
autoinsert.el
autorevert.el Merge from origin/emacs-27 2021-04-07 07:50:17 -07:00
avoid.el Use lexical-binding in avoid.el 2021-04-01 01:27:38 +02:00
battery.el
bindings.el Assume something more recent than X11R6 2021-03-20 01:26:21 +01:00
bookmark.el
bs.el Delete empty "History" sections 2021-03-30 15:50:26 +02:00
buff-menu.el
button.el
calculator.el
case-table.el
cdl.el
ChangeLog.1
ChangeLog.2
ChangeLog.3
ChangeLog.4
ChangeLog.5
ChangeLog.6
ChangeLog.7
ChangeLog.8
ChangeLog.9
ChangeLog.10
ChangeLog.11
ChangeLog.12
ChangeLog.13
ChangeLog.14
ChangeLog.15
ChangeLog.16
ChangeLog.17
char-fold.el
chistory.el Use lexical-binding in chistory.el 2021-03-31 01:43:47 +02:00
cmuscheme.el Use lexical-binding in cmuscheme.el 2021-04-09 16:12:35 +02:00
color.el
comint.el Don't set isearch-success in isearch-wrap functions 2021-04-07 19:47:09 +03:00
completion.el * lisp/completion.el: Activate lexical-binding 2021-03-29 16:46:41 -04:00
composite.el
COPYING
cus-dep.el
cus-edit.el
cus-face.el
cus-start.el
cus-theme.el
custom.el
dabbrev.el
delim-col.el
delsel.el
descr-text.el
desktop.el
dframe.el Use emacs-version instead of obsolete version variables 2021-04-01 01:27:38 +02:00
dired-aux.el Revert "Clarify dired-do-shell-command doc string" 2021-03-28 18:22:15 +03:00
dired-x.el
dired.el
dirtrack.el Use lexical-binding in dirtrack.el 2021-03-31 00:58:18 +02:00
disp-table.el
display-fill-column-indicator.el
display-line-numbers.el
dnd.el
doc-view.el Replace local intersection functions with seq-intersection 2021-04-05 11:14:34 +02:00
dom.el
dos-fns.el
dos-vars.el
dos-w32.el
double.el Use lexical-binding in double.el 2021-03-31 01:11:21 +02:00
dynamic-setting.el * lisp/dynamic-setting.el: Use lexical-binding. 2021-03-31 08:05:58 +02:00
ebuff-menu.el * lisp/ebuff-menu.el: Use lexical-binding. 2021-03-31 01:23:29 +02:00
echistory.el Use lexical-binding in echistory.el 2021-03-30 19:02:20 +02:00
ecomplete.el
edmacro.el * lisp/edmacro.el: Use lexical-binding 2021-04-10 12:18:22 -04:00
ehelp.el
elec-pair.el
electric.el
elide-head.el
emacs-lock.el
env.el
epa-dired.el
epa-file.el
epa-hook.el
epa-mail.el
epa.el
epg-config.el Use lexical-binding in epg-config.el and add tests 2021-04-01 11:07:06 +02:00
epg.el
expand.el
ezimage.el
face-remap.el
facemenu.el Autoload list-colors-display. 2021-04-10 16:13:11 +03:00
faces.el Merge from origin/emacs-27 2021-03-29 08:26:25 -07:00
ffap.el
filecache.el
fileloop.el
filenotify.el
files-x.el * lisp/files-x.el: Use lexical-binding 2021-04-10 12:08:36 -04:00
files.el
filesets.el
find-cmd.el
find-dired.el
find-file.el * lisp/find-file.el: Make the commands oblivious to mouse/non-mouse 2021-04-06 17:06:07 -04:00
find-lisp.el
finder.el Don't tag mouse command as mode exclusive 2021-03-20 00:00:49 +01:00
flow-ctrl.el
foldout.el Use lexical-binding in foldout.el 2021-04-09 14:54:04 +02:00
follow.el Use lexical-binding in follow.el 2021-03-30 15:16:28 +02:00
font-core.el
font-lock.el Revert "Remove font-lock toggle from font-lock-update" 2021-03-24 17:02:17 +01:00
format-spec.el
format.el Fix args-out-of-range error in format.el 2021-03-20 10:48:07 +02:00
forms.el * lisp/forms.el: Use lexical-binding. Remove redundant :group args 2021-03-31 18:27:14 -04:00
frame.el Address some --without-x byte-compilation warnings 2021-03-26 17:35:34 +00:00
frameset.el
fringe.el
generic-x.el Revert "Load all generic-x.el modes unconditionally" 2021-04-09 01:43:10 +02:00
help-at-pt.el * lisp/help-at-pt.el: Use lexical-binding. 2021-03-24 06:31:29 +01:00
help-fns.el
help-macro.el
help-mode.el
help.el
hex-util.el
hexl.el
hfy-cmap.el
hi-lock.el
hilit-chg.el Use lexical-binding in hilit-chg.el 2021-04-04 13:23:40 +02:00
hippie-exp.el * lisp/hippie-exp.el: Use lexical-binding 2021-04-06 00:13:44 -04:00
hl-line.el
htmlfontify.el Replace local intersection functions with seq-intersection 2021-04-05 11:14:34 +02:00
ibuf-ext.el Remove redundant #' before lambda in ibuf-*.el 2021-04-09 18:27:27 +02:00
ibuf-macs.el Remove redundant #' before lambda in ibuf-*.el 2021-04-09 18:27:27 +02:00
ibuffer.el
icomplete.el
ido.el
ielm.el
iimage.el Use lexical-binding in iimage.el 2021-03-24 09:09:52 +01:00
image-dired.el Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
image-file.el
image-mode.el Don't call `image-toggle-display-text' when toggling 2021-04-05 18:12:14 +02:00
image.el Clarify the doc string of insert-image 2021-04-04 21:47:38 +02:00
imenu.el
indent.el
info-look.el
info-xref.el
info.el
informat.el
isearch.el Terminate isearch when point has moved to another buffer 2021-04-08 22:04:39 +03:00
isearchb.el Use lexical-binding in isearchb.el 2021-04-01 10:34:39 +02:00
jit-lock.el
jka-cmpr-hook.el
jka-compr.el
json.el Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
jsonrpc.el
kermit.el
kmacro.el
ldefs-boot.el ; Auto-commit of loaddefs files. 2021-04-01 06:26:57 -07:00
linum.el Use emacs-version instead of obsolete version variables 2021-04-01 01:27:38 +02:00
loadhist.el Use lexical-binding in loadhist.el and add tests 2021-04-09 13:44:44 +02:00
loadup.el
locate.el
lpr.el Use lexical-binding in lpr.el and add rudimentary tests 2021-03-30 23:11:24 +02:00
ls-lisp.el
macros.el
Makefile.in Fix 'extraclean' targets 2021-04-01 15:57:55 +03:00
makesum.el
man.el Work around issue with (setq Man-notify-method 'aggressive) 2021-04-04 21:36:15 +02:00
master.el * lisp/master.el: Use lexical-binding. 2021-03-24 05:32:47 +01:00
mb-depth.el Improve the docs of a recent change in mb-depth.el 2021-03-19 14:46:15 +02:00
md4.el
menu-bar.el Assume something more recent than X11R6 2021-03-20 01:26:21 +01:00
midnight.el
minibuf-eldef.el
minibuffer.el Fix previous format-prompt change: The default can be a symbol 2021-03-24 18:29:11 +01:00
misc.el
misearch.el
mouse-copy.el
mouse-drag.el
mouse.el
mpc.el Replace local intersection functions with seq-intersection 2021-04-05 11:14:34 +02:00
msb.el * lisp/msb.el: Use lexical-binding 2021-04-06 00:26:38 -04:00
mwheel.el
newcomment.el * lisp/newcomment.el: Allow 'comment-continue' with whitespace (bug#47167) 2021-03-18 20:01:26 +02:00
notifications.el Use lexical-binding in notifications.el 2021-03-22 01:06:32 +01:00
novice.el * lisp/novice.el: Use lexical-binding. 2021-03-20 00:34:02 +01:00
obarray.el
outline.el
paren.el
password-cache.el
pcmpl-cvs.el
pcmpl-gnu.el
pcmpl-linux.el Delete some commented out defgroups 2021-03-24 06:15:37 +01:00
pcmpl-rpm.el
pcmpl-unix.el
pcmpl-x.el Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
pcomplete.el * lisp/pcomplete.el: Remove aliases commented out for 20 years. 2021-04-05 15:15:31 +02:00
pixel-scroll.el * lisp/pixel-scroll.el: Use lexical-binding. 2021-04-03 04:25:59 +02:00
plstore.el
printing.el Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
proced.el
profiler.el
ps-bdf.el
ps-def.el
ps-mule.el * lisp/ps-mule.el: Use lexical-binding 2021-04-10 09:52:09 -04:00
ps-print.el
ps-samp.el
README
recentf.el Use lexical-binding in recentf.el 2021-04-03 00:53:47 +02:00
rect.el
register.el
registry.el
repeat.el * lisp/repeat.el (repeat-post-hook): Check for prefix-arg. 2021-04-08 21:54:43 +03:00
replace.el Merge from origin/emacs-27 2021-04-07 07:50:13 -07:00
reposition.el
reveal.el
rfn-eshadow.el
rot13.el
rtree.el
ruler-mode.el Delete empty "History" sections 2021-03-30 15:50:26 +02:00
savehist.el
saveplace.el
scroll-all.el Use lexical-binding in scroll-all.el 2021-03-31 08:25:24 +02:00
scroll-bar.el
scroll-lock.el
select.el
server.el
ses.el Replace "(default %s)" with 'format-prompt' 2021-03-24 10:31:31 +01:00
shadowfile.el * lisp/shadowfile.el: Use lexical-binding 2021-04-08 19:34:57 -04:00
shell.el Delete some commented out defgroups 2021-03-24 06:15:37 +01:00
simple.el Don't set isearch-success in isearch-wrap functions 2021-04-07 19:47:09 +03:00
skeleton.el
so-long.el
sort.el
soundex.el
speedbar.el
startup.el
strokes.el * lisp/strokes.el: Use lexical-binding. Remove redundant :group args 2021-03-31 18:39:52 -04:00
subr.el Replace "(default %s)" with 'format-prompt' 2021-03-24 10:31:31 +01:00
svg.el
t-mouse.el
tab-bar.el * lisp/tab-bar.el: Add repeat-map keymaps. 2021-04-06 00:18:59 +03:00
tab-line.el
tabify.el
talk.el * lisp/talk.el: Use lexical-binding. 2021-03-24 09:05:06 +01:00
tar-mode.el
tempo.el
term.el Replace "(default %s)" with 'format-prompt' 2021-03-24 10:31:31 +01:00
thingatpt.el
thread.el
thumbs.el Delete empty "History" sections 2021-03-30 15:50:26 +02:00
time-stamp.el
time.el Add optional FORMAT argument to 'emacs-init-time' 2021-03-24 10:34:22 +01:00
timezone.el
tmm.el
tool-bar.el
tooltip.el
tree-widget.el Delete empty "History" sections 2021-03-30 15:50:26 +02:00
tutorial.el * lisp/tutorial.el: Use lexical-binding. 2021-03-21 02:28:20 +01:00
type-break.el
uniquify.el
userlock.el File unlock errors now issue warnings (Bug#46397) 2021-03-27 12:17:31 +03:00
vcursor.el * lisp/vcursor.el: Use lexical-binding 2021-04-03 14:15:43 -04:00
version.el
view.el Use lexical-binding in view.el 2021-03-24 06:15:37 +01:00
vt-control.el
vt100-led.el
w32-fns.el
w32-vars.el
wdired.el * lisp/wdired.el (wdired--self-insert): Fix thinko 2021-03-27 14:31:40 -04:00
whitespace.el
wid-browse.el Actually use lexical-binding in wid-browse.el 2021-03-21 17:05:48 +01:00
wid-edit.el Add SVG icons for customize buffers 2021-04-03 21:53:06 +02:00
widget.el
windmove.el
window.el * lisp/repeat.el (repeat-keep-prefix): New defcustom. 2021-04-06 00:02:43 +03:00
winner.el Use lexical-binding in winner.el 2021-04-09 16:40:03 +02:00
woman.el Use emacs-version instead of obsolete version variables 2021-04-01 01:27:38 +02:00
x-dnd.el
xdg.el
xml.el
xt-mouse.el
xwidget.el

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.