howmの新規作成をw3m-emacsで閲覧中のURLに対応させる その2

前回のhowmを「w3m-emacsで閲覧中のURL」に対応させるemacs lispですが、w3mが起動していないときにhowm-createを呼び出したときに以下のが発生するのを修正しました。

Symbol's value as variable is void: w3m-buffer-url 

また、今回のelispコードを使った方がhowm の標準的な挙動にそう形になるなので、こっちがおすすめです。
こんな感じになります。

= (カーソルはここに来る)
[2006-07-03 2:32] >>> (直前に閲覧していたURL)

以下を.emacs へ追加

(defsubst w3m-buffer-url (buffer)
  "Return the title of the buffer BUFFER."
  (with-current-buffer buffer
	(if (boundp 'w3m-current-url) w3m-current-url nil)))

(add-hook 'howm-create-hook
		  (lambda ()
			(let ((url (w3m-buffer-url b)))
			  (when url
				(progn
				  (goto-line 2)
				  (end-of-line)
				  (insert ">>> " url) 
				  (goto-line 1)
				  (end-of-line)
				  )))))

しかし、力業ですね。。一応動きますがemacs lisp らしくないコードだと思います。
もっとスマートな方法はないものか。。
howm-mode.elは一応読んだのですが、うまくテンプレートに組み込む方法が分かりませんでした。