From: Stefan Monnier Date: Tue, 17 Jul 2012 12:30:48 +0000 (-0400) Subject: * lisp/emacs-lisp/elint.el (elint-find-args-in-code): X-Git-Tag: emacs-24.2.90~1165 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ef501ef01cd3d3168da15cf5426f1be119fc90c8;p=emacs.git * lisp/emacs-lisp/elint.el (elint-find-args-in-code): Use help-function-arglist, so as to handle lexical byte-code. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1648aa3bea7..320da46f186 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2012-07-17 Stefan Monnier + * emacs-lisp/elint.el (elint-find-args-in-code): + Use help-function-arglist, so as to handle lexical byte-code. + * progmodes/sh-script.el (sh-syntax-propertize-function): Fix last change (bug#11826). diff --git a/lisp/emacs-lisp/elint.el b/lisp/emacs-lisp/elint.el index 55915813877..2ff0ace9f4c 100644 --- a/lisp/emacs-lisp/elint.el +++ b/lisp/emacs-lisp/elint.el @@ -46,6 +46,8 @@ ;;; Code: +(require 'help-fns) + (defgroup elint nil "Linting for Emacs Lisp." :prefix "elint-" @@ -713,14 +715,8 @@ Returns `unknown' if we couldn't find arguments." (defun elint-find-args-in-code (code) "Extract the arguments from CODE. CODE can be a lambda expression, a macro, or byte-compiled code." - (cond - ((byte-code-function-p code) - (aref code 0)) - ((and (listp code) (eq (car code) 'lambda)) - (car (cdr code))) - ((and (listp code) (eq (car code) 'macro)) - (elint-find-args-in-code (cdr code))) - (t 'unknown))) + (let ((args (help-function-arglist code))) + (if (listp args) args 'unknown))) ;;; ;;; Functions to check some special forms