[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 5d713c8 1/3: Use syntax-ppss-toplevel-pos for defva
From: |
Noam Postavsky |
Subject: |
[Emacs-diffs] master 5d713c8 1/3: Use syntax-ppss-toplevel-pos for defvar search (Bug#34233) |
Date: |
Sat, 13 Jul 2019 21:42:03 -0400 (EDT) |
branch: master
commit 5d713c89e923fbc3192719792090cc40327b13a2
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>
Use syntax-ppss-toplevel-pos for defvar search (Bug#34233)
* lisp/progmodes/elisp-mode.el (eval-sexp-add-defvars): Use
syntax-ppss-toplevel-pos instead of a raw check of syntax components.
---
lisp/progmodes/elisp-mode.el | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index ae09bfc..16851c0 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -1177,14 +1177,11 @@ POS specifies the starting position where EXP was found
and defaults to point."
"(def\\(?:var\\|const\\|custom\\)[ \t\n]+\\([^; '()\n\t]+\\)"
pos t)
(let ((var (intern (match-string 1))))
- (and (not (special-variable-p var))
- (save-excursion
- (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))))
+ (unless (or (special-variable-p var)
+ (syntax-ppss-toplevel-pos
+ (save-excursion
+ (syntax-ppss (match-beginning 0)))))
+ (push var vars))))
`(progn ,@(mapcar (lambda (v) `(defvar ,v)) vars) ,exp)))))
(defun eval-last-sexp (eval-last-sexp-arg-internal)