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

function-max-args



すみません、つまらないことで恐縮ですが、新しい Mew が無い環境で
は mew-shimbun.el をコンパイルするときに mew-summary-ls に引数を
二個与えている部分で警告が出ます。この部分を

(dont-compile (mew-summary-ls newfld newfld))

にしてしまっても良いでしょうか?

;; (eval '(mew-summary-ls newfld newfld)) と同じ意味です。

おまけとして XEmacs にだけ存在する function-max-args という便利
な関数の FSF Emacs 版を作ってみました。

(w3m-function-max-args 'mew-summary-ls)
 => 1

白井さんの環境ではこれは 2 を返すのですよね。

(if (featurep 'xemacs)
    (defalias 'w3m-function-max-args 'function-max-args)
  (eval-and-compile
    (require 'advice))
  (defun w3m-function-max-args (function)
    "Return the maximum number of arguments a function may be called with.
The function may be any form that can be passed to `funcall',
any special form, or any macro.
If the function takes an arbitrary number of arguments or is
a built-in special form, nil is returned."
    (let ((arglist (ad-arglist (if (symbolp function)
				   (symbol-function function)
				 function))))
      (if (memq '&rest arglist)
	  nil
	(length (delq '&optional arglist))))))
-- 
Katsumi Yamaoka <yamaoka@jpl.org>