X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/c73bd236f75b742ad4642ec94798987ae6e3e1e8..4befa5993f2101fadd1baef3480d353a538a14c9:/lisp/emacs-lisp/elint.el diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el index 0501fbf171..bc38abce25 100644 --- a/lisp/emacs-lisp/elint.el +++ b/lisp/emacs-lisp/elint.el @@ -1,7 +1,7 @@ ;;; elint.el --- Lint Emacs Lisp -;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +;; 2009 Free Software Foundation, Inc. ;; Author: Peter Liljenberg ;; Created: May 1997 @@ -9,10 +9,10 @@ ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -20,9 +20,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -109,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) @@ -508,6 +506,7 @@ Returns `unknown' if we couldn't find arguments." (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) @@ -794,17 +793,16 @@ functions, otherwise use LIST. 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) -;;; arch-tag: b2f061e2-af84-4ddc-8e39-f5e969ac228f +;; arch-tag: b2f061e2-af84-4ddc-8e39-f5e969ac228f ;;; elint.el ends here