changeset 102230:5ae300b1d079

(elint-unknown-builtin-args): Fix encode-time spec. (Bug#2453) (elint-find-builtin-args): Make the match more restrictive. Handle errors. Return a result actually containing the function name.
author Glenn Morris <rgm@gnu.org>
date Tue, 24 Feb 2009 03:32:02 +0000
parents c3b2c25cfe3f
children 3101d1547213
files lisp/emacs-lisp/elint.el
diffstat 1 files changed, 12 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/elint.el	Tue Feb 24 03:31:39 2009 +0000
+++ b/lisp/emacs-lisp/elint.el	Tue Feb 24 03:32:02 2009 +0000
@@ -1,7 +1,7 @@
 ;;; elint.el --- Lint Emacs Lisp
 
-;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005,
-;;   2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+;;   2009  Free Software Foundation, Inc.
 
 ;; Author: Peter Liljenberg <petli@lysator.liu.se>
 ;; Created: May 1997
@@ -107,7 +107,7 @@
     (if cond then &rest else)
     (apply function &rest args)
     (format string &rest args)
-    (encode-time second minute hour day month year zone &rest args)
+    (encode-time second minute hour day month year &optional zone)
     (min &rest args)
     (logand &rest args)
     (logxor &rest args)
@@ -506,6 +506,7 @@
 	      (let ((fcode (indirect-function func)))
 		(if (subrp fcode)
 		    (let ((args (get func 'elint-args)))
+		      ;; FIXME builtins with no args have args = nil.
 		      (if args args 'unknown))
 		  (elint-find-args-in-code fcode)))
 	    'undefined)
@@ -792,15 +793,14 @@
 Each functions is represented by a cons cell:
 \(function-symbol . args)
 If no documentation could be found args will be `unknown'."
-
-    (mapcar (function (lambda (f)
-			(let ((doc (documentation f t)))
-			  (if (and doc (string-match "\n\n\\((.*)\\)" doc))
-			      (read (match-string 1 doc))
-			    (cons f 'unknown))
-			  )))
-	    (if list list
-	      (elint-find-builtins))))
+  (mapcar (lambda (f)
+	    (let ((doc (documentation f t)))
+	      (or (and doc
+		       (string-match "\n\n(fn\\(.*)\\)\\'" doc)
+		       (ignore-errors
+			(read (format "(%s %s" f (match-string 1 doc)))))
+		  (cons f 'unknown))))
+	  (or list (elint-find-builtins))))
 
 (provide 'elint)