diff options
| author | Philipp Stephani | 2021-03-18 12:40:08 +0100 |
|---|---|---|
| committer | Philipp Stephani | 2021-04-10 18:19:49 +0200 |
| commit | 53dfd85a7f971875e716a55f010ee508bce89eed (patch) | |
| tree | 3eb0b220ff838287f4d6cd3cd45d19794aceecf7 /etc | |
| parent | b72571ca49dd16be174f02ed14b460c136c9aaf2 (diff) | |
| download | emacs-53dfd85a7f971875e716a55f010ee508bce89eed.tar.gz emacs-53dfd85a7f971875e716a55f010ee508bce89eed.zip | |
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/NEWS | 3 |
1 files changed, 3 insertions, 0 deletions
| @@ -2524,6 +2524,9 @@ back in Emacs 23.1. The affected functions are: 'make-obsolete', | |||
| 2524 | 2524 | ||
| 2525 | ** The 'values' variable is now obsolete. | 2525 | ** The 'values' variable is now obsolete. |
| 2526 | 2526 | ||
| 2527 | ** The '&define' keyword in an Edebug specification now disables | ||
| 2528 | backtracking. | ||
| 2529 | |||
| 2527 | 2530 | ||
| 2528 | * Lisp Changes in Emacs 28.1 | 2531 | * Lisp Changes in Emacs 28.1 |
| 2529 | 2532 | ||