Subject: Re: bug#17005: 24.3.50; semantic is not finding cl-defun's and friends

From: Thierry Volpiatto <[email-masked]>
Date: Thu, 15 Aug 2019 08:30:50 +0200

Lars Ingebrigtsen <[email-masked]> writes:

> I'm not really a Semantic user, so I can't test this, but I assume by
> "some trivial changes" you meant something like this, which I've now
> applied to Emacs 27.  If that's the wrong thing to do, please revert.

AFAIK cl-defun* doesn't exists, thus you need a few more changes, I am
not a semantic user as well, so maybe some more changes are needed.

diff --git a/lisp/cedet/semantic/bovine/el.el b/lisp/cedet/semantic/bovine/el.el
index d46b73ff308..5015db3fad7 100644
--- a/lisp/cedet/semantic/bovine/el.el
+++ b/lisp/cedet/semantic/bovine/el.el
@@ -245,9 +245,12 @@ Return a bovination list to use."
 			 (eq (car form) 'define-overloadable-function))
        ))
   defun
+  cl-defun
   defun*
   defsubst
+  cl-defsubst
   defmacro
+  cl-defmacro
   define-overload ;; @todo - remove after cleaning up semantic.
   define-overloadable-function
   )
@@ -392,6 +395,7 @@ Return a bovination list to use."
          (cons nil nil)
          )))
   defstruct
+  cl-defstruct
   )
 
 (semantic-elisp-setup-form-parser
@@ -610,7 +614,7 @@ Returns non-nil it is not possible to go up a context."
   (let ((last-up (semantic-up-context-default)))
   (while
       (and (not (looking-at
-		 "(\\(let\\*?\\|def\\(un\\|method\\|generic\\|\
+		 "(\\(let\\*?\\|cl-defun\\|def\\(un\\|method\\|generic\\|\
 define-mode-overload\\)\
 \\|with-slots\\)"))
 	   (not last-up))

-- 
Thierry

Get my Gnupg key:
gpg --keyserver pgp.mit.edu --recv-keys 59F29997