[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
does `shimbun-header-*' return nil or ""?
- From: Katsumi Yamaoka <yamaoka@xxxxxxx>
- Date: 06 Jun 2001 13:51:32 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 01082
ところで、たぶん nnshimbun に限った話ですが、随所にあるこのよう
な式において、
(or (shimbun-header-from header) "(nobody)")
関数 `shimbun-header-*' が有意な値を返さない場合の戻り値は nil
に統一されていないような気がします。
少なくとも `shimbun-header-date' は "" を返すみたい。
とりあえず `or' の代わりにこんなもので逃げます。
(defvar nnshimbun-tmp-string nil
"Internal variable used to just a rest for a temporary string.")
(defmacro nnshimbun-string-or (&rest strings)
"Return the first element of STRINGS that is a non-blank string. It
should run fast, especially if two strings are given."
(cond ((<= (length strings) 1)
(car strings))
((eq (length strings) 2)
`(if (zerop (length (setq nnshimbun-tmp-string ,(car strings))))
,(cadr strings)
nnshimbun-tmp-string))
(t
`(let ((strings (list ,@strings)))
(while strings
(setq strings (if (zerop (length (setq nnshimbun-tmp-string
(car strings))))
(cdr strings))))
nnshimbun-tmp-string))))
--
Katsumi Yamaoka <yamaoka@jpl.org>
;; なぜか今日は ML の配送が遅いみたいですね。