diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2022-06-19 14:17:05 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-06-19 14:17:05 +0200 |
commit | 196eebda168aaf7fec493cf4c38207969904abf3 (patch) | |
tree | c794e97490e0dd4cb74c50f05653a779493d3df9 /lisp/emacs-lisp | |
parent | 93b018c664e1f95b41d0239c651a79a237edfc38 (diff) | |
download | emacs-196eebda168aaf7fec493cf4c38207969904abf3.tar.gz emacs-196eebda168aaf7fec493cf4c38207969904abf3.tar.bz2 emacs-196eebda168aaf7fec493cf4c38207969904abf3.zip |
Make checkdoc-defun-info parsing slightly less wrong
* lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info): Disregard
`interactive' in nested parts of the defun (bug#56052).
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/checkdoc.el | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/checkdoc.el b/lisp/emacs-lisp/checkdoc.el index 7ae01d03b04..2cb5fa120e0 100644 --- a/lisp/emacs-lisp/checkdoc.el +++ b/lisp/emacs-lisp/checkdoc.el @@ -2007,6 +2007,7 @@ from the comment." (let ((defun (looking-at "(\\(?:cl-\\)?def\\(un\\|macro\\|subst\\|advice\\|generic\\|method\\)")) (is-advice (looking-at "(defadvice")) + (defun-depth (ppss-depth (syntax-ppss))) (lst nil) (ret nil) (oo (make-vector 3 0))) ;substitute obarray for `read' @@ -2022,11 +2023,17 @@ from the comment." (setq ret (cons nil ret)) ;; Interactive (save-excursion - (setq ret (cons - (re-search-forward "^\\s-*(interactive" - (save-excursion (end-of-defun) (point)) - t) - ret))) + (push (and (re-search-forward "^\\s-*(interactive" + (save-excursion + (end-of-defun) + (point)) + t) + ;; Disregard `interactive' from other parts of + ;; the function. + (= (ppss-depth (syntax-ppss)) + (+ defun-depth 2)) + (point)) + ret)) (skip-chars-forward " \t\n") (let ((bss (buffer-substring (point) (save-excursion (forward-sexp 1) (point)))) |