]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/check-declare.el
Use 'grep-find-program' in check-declare.el
[gnu-emacs] / lisp / emacs-lisp / check-declare.el
index c2639729fa9b09e89ef877d82db4bc2c8f5ba505..b8a00b3fb4e3ac92b5cfc166932dcee53acd43e7 100644 (file)
@@ -1,6 +1,6 @@
 ;;; check-declare.el --- Check declare-function statements
 
-;; Copyright (C) 2007-2015 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
 ;; Author: Glenn Morris <rgm@gnu.org>
 ;; Keywords: lisp, tools, maint
@@ -98,7 +98,7 @@ don't know how to recognize (e.g. some macros)."
                  (stringp (setq fnfile (nth 2 form)))
                  (setq fnfile (check-declare-locate fnfile
                                                     (expand-file-name file)))
-                 ;; Use `t' to distinguish unspecified arglist from empty one.
+                 ;; Use t to distinguish unspecified arglist from empty one.
                  (or (eq t (setq arglist (if (> len 3)
                                              (nth 3 form)
                                            t)))
@@ -130,7 +130,8 @@ With optional argument FULL, sums the number of elements in each element."
   :group 'tools)
 
 (defcustom check-declare-ext-errors nil
-  "When non-nil, warn abount functions not found in :ext."
+  "When non-nil, warn about functions not found in :ext."
+  :version "25.1"
   :type 'boolean)
 
 (defun check-declare-verify (fnfile fnlist)
@@ -157,11 +158,12 @@ is a string giving details of the error."
           (setq re (format (if cflag
                                "^[ \t]*\\(DEFUN\\)[ \t]*([ \t]*\"%s\""
                              "^[ \t]*(\\(fset[ \t]+'\\|\
+cl-def\\(?:generic\\|method\\)\\|\
 def\\(?:un\\|subst\\|foo\\|method\\|class\\|\
 ine-\\(?:derived\\|generic\\|\\(?:global\\(?:ized\\)?-\\)?minor\\)-mode\\|\
 \\(?:ine-obsolete-function-\\)?alias[ \t]+'\\|\
 ine-overloadable-function\\)\\)\
-\[ \t]*%s\\([ \t;]+\\|$\\)")
+[ \t]*%s\\([ \t;]+\\|$\\)")
                            (regexp-opt (mapcar 'cadr fnlist) t)))
           (while (re-search-forward re nil t)
             (skip-chars-forward " \t\n")
@@ -200,8 +202,8 @@ ine-overloadable-function\\)\\)\
                               type)
                              'obsolete)
                             ;; Can't easily check arguments in these cases.
-                            ((string-match "\\`\\(def\\(alias\\|\
-method\\|class\\)\\|fset\\)\\>" type)
+                            ((string-match "\\`\\(def\\(alias\\|class\\)\\|\
+fset\\|\\(?:cl-\\)?defmethod\\)\\>" type)
                              t)
                             ((looking-at "\\((\\|nil\\)")
                              (byte-compile-arglist-signature
@@ -278,12 +280,12 @@ TYPE is a string giving the nature of the error.  Warning is displayed in
            entry))
         (warning-fill-prefix "    "))
     (display-warning 'check-declare
-                     (format "%s said `%s' was defined in %s: %s"
-                             (file-name-nondirectory file) fn
-                             (file-name-nondirectory fnfile)
-                             type)
+                     (format-message "said `%s' was defined in %s: %s"
+                                     fn (file-name-nondirectory fnfile) type)
                      nil check-declare-warning-buffer)))
 
+(declare-function compilation-forget-errors "compile" ())
+
 (defun check-declare-files (&rest files)
   "Check veracity of all `declare-function' statements in FILES.
 Return a list of any errors found."
@@ -337,7 +339,7 @@ Returns non-nil if any false statements are found."
         errlist files)
     (message "%s" m)
     (message "%s" m2)
-    (setq files (process-lines find-program root
+    (setq files (process-lines grep-find-program root
                               "-name" "*.el"
                               "-exec" grep-program
                               "-l" "^[ \t]*(declare-function" "{}" ";"))