summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorPhilipp Stephani <phst@google.com>2021-03-18 12:40:08 +0100
committerPhilipp Stephani <phst@google.com>2021-04-10 18:19:49 +0200
commit53dfd85a7f971875e716a55f010ee508bce89eed (patch)
tree3eb0b220ff838287f4d6cd3cd45d19794aceecf7 /etc
parentb72571ca49dd16be174f02ed14b460c136c9aaf2 (diff)
downloademacs-53dfd85a7f971875e716a55f010ee508bce89eed.tar.gz
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.
Diffstat (limited to 'etc')
-rw-r--r--etc/NEWS3
1 files changed, 3 insertions, 0 deletions
diff --git a/etc/NEWS b/etc/NEWS
index a0f05d8cf15..9ae37404823 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -2524,6 +2524,9 @@ back in Emacs 23.1. The affected functions are: 'make-obsolete',
** The 'values' variable is now obsolete.
+** The '&define' keyword in an Edebug specification now disables
+backtracking.
+
* Lisp Changes in Emacs 28.1