diff options
| author | Alan Mackenzie | 2020-04-24 15:51:43 +0000 |
|---|---|---|
| committer | Alan Mackenzie | 2020-04-24 15:51:43 +0000 |
| commit | 85fb94273375fe793ced4404ade6392e38b4c381 (patch) | |
| tree | dd0ce27d52366651dae8725891b56bd32e8c53ce | |
| parent | 367b55980f9c0c927dce2ba93ab6f626cec6b1fc (diff) | |
| download | emacs-85fb94273375fe793ced4404ade6392e38b4c381.tar.gz emacs-85fb94273375fe793ced4404ade6392e38b4c381.zip | |
Fix bug #40766, an error in edebug spec handling
Also remove some debris.
* lisp/emacs-lisp/edebug.el (edebug-spec): Move the entry for edebug-spec-list
to before that for vector in the &or form. This assures that in a dotted list
of vectors, that list gets handled correctly by edebug-spec-list rather than
wrongly by (vector ...).
(def-edebug-spec &key): Remove, since it is ill formed and superfluous.
| -rw-r--r-- | lisp/emacs-lisp/edebug.el | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index bb7817f242c..a376067443a 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -1833,9 +1833,6 @@ contains a circular object." | |||
| 1833 | ;; This means nothing matched, so it is OK. | 1833 | ;; This means nothing matched, so it is OK. |
| 1834 | nil) ;; So, return nothing | 1834 | nil) ;; So, return nothing |
| 1835 | 1835 | ||
| 1836 | |||
| 1837 | (def-edebug-spec &key edebug-match-&key) | ||
| 1838 | |||
| 1839 | (defun edebug-match-&key (cursor specs) | 1836 | (defun edebug-match-&key (cursor specs) |
| 1840 | ;; Following specs must look like (<name> <spec>) ... | 1837 | ;; Following specs must look like (<name> <spec>) ... |
| 1841 | ;; where <name> is the name of a keyword, and spec is its spec. | 1838 | ;; where <name> is the name of a keyword, and spec is its spec. |
| @@ -2115,10 +2112,10 @@ into `edebug--cl-macrolet-defs' which is checked in `edebug-list-form-args'." | |||
| 2115 | 2112 | ||
| 2116 | (def-edebug-spec edebug-spec | 2113 | (def-edebug-spec edebug-spec |
| 2117 | (&or | 2114 | (&or |
| 2115 | edebug-spec-list | ||
| 2118 | (vector &rest edebug-spec) ; matches a vector | 2116 | (vector &rest edebug-spec) ; matches a vector |
| 2119 | ("vector" &rest edebug-spec) ; matches a vector spec | 2117 | ("vector" &rest edebug-spec) ; matches a vector spec |
| 2120 | ("quote" symbolp) | 2118 | ("quote" symbolp) |
| 2121 | edebug-spec-list | ||
| 2122 | stringp | 2119 | stringp |
| 2123 | [edebug-lambda-list-keywordp &rest edebug-spec] | 2120 | [edebug-lambda-list-keywordp &rest edebug-spec] |
| 2124 | [keywordp gate edebug-spec] | 2121 | [keywordp gate edebug-spec] |