1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

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).
This commit is contained in:
Lars Ingebrigtsen 2022-06-19 14:17:05 +02:00
parent 93b018c664
commit 196eebda16

View File

@ -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))))