Mercurial > emacs
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)