Fix C-x C-e with defvars in comments preceding

* lisp/progmodes/elisp-mode.el (eval-sexp-add-defvars): When
collecting defvars in the current buffer, ignore the ones that are
in comments or strings (bug#34233).
This commit is contained in:
Lars Ingebrigtsen 2019-07-11 15:42:13 +02:00
parent 60fc771ac6
commit a87bdb8f91

View file

@ -1179,7 +1179,11 @@ POS specifies the starting position where EXP was found and defaults to point."
(let ((var (intern (match-string 1))))
(and (not (special-variable-p var))
(save-excursion
(zerop (car (syntax-ppss (match-beginning 0)))))
(let ((syntax (syntax-ppss (match-beginning 0))))
;; Top-level.
(and (zerop (car syntax))
;; Not in a comment or string.
(null (nth 8 syntax)))))
(push var vars))))
`(progn ,@(mapcar (lambda (v) `(defvar ,v)) vars) ,exp)))))