[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
unused var? in w3m-process-do-with-temp-buffer
- From: Katsumi Yamaoka <yamaoka@xxxxxxx>
- Date: Fri, 30 Nov 2007 18:01:27 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 09803
w3m-process-do-with-temp-buffer マクロにある let でバインドされ
た 2コ目の handler という変数は使われていないんじゃないでしょう
か?
--8<---------------cut here---------------start------------->8---
--- w3m-proc.el~ 2007-11-30 05:02:05 +0000
+++ w3m-proc.el 2007-11-30 08:59:30 +0000
@@ -491,8 +491,7 @@
(w3m-process-start-process ,var))
(if (w3m-process-p
(setq ,var (save-current-buffer
- (let ((handler (cons ',post-handler handler)))
- (,post-body ,var)))))
+ (,post-body ,var))))
(if handler
,var
(w3m-process-start-process ,var))
--8<---------------cut here---------------end--------------->8---
このマクロを完全に理解するにはほど遠い状態ですが、いろいろ手を尽
くして調べてみると、この部分は w3m-async-exec が nil のときに使
われるらしいことがわかり、また let のボディで handler の値を使う
コードが生成されないように見えます。
実はずっと前から気になっていたんですが、XEmacs で emacs-w3m を
(make very-slow を使って) byte compile すると
** variable handler bound but not referenced
という警告がたくさん出るのです。
これは現在 XEmacs だけにある機能で、コードの変更を繰り返すうちに、
要らなくなった let で束縛する変数の消し忘れを教えてくれます。で、
Emacs でも同様の機能を導入する動きがある[1] ので、ちょっと調べて
みたのでした。
[1] http://news.gmane.org/group/gmane.emacs.devel/thread=84301
--
山岡