emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/emacs-lisp elint.el


From: Glenn Morris
Subject: [Emacs-diffs] emacs/lisp/emacs-lisp elint.el
Date: Tue, 24 Feb 2009 03:32:03 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Glenn Morris <gm>       09/02/24 03:32:03

Modified files:
        lisp/emacs-lisp: elint.el 

Log message:
        (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.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/emacs-lisp/elint.el?cvsroot=emacs&r1=1.23&r2=1.24

Patches:
Index: elint.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/emacs-lisp/elint.el,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- elint.el    5 Jan 2009 03:20:59 -0000       1.23
+++ elint.el    24 Feb 2009 03:32:02 -0000      1.24
@@ -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 <address@hidden>
 ;; 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)
+  (mapcar (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))))
+             (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)
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]