やるきなし

2020/01/06 15:26 / wl-beta 2.15.9+0.20190919-1 with bbdb3 3.2-7

Emacs の MUA である Wanderlust で,bbdb を使ってメールアドレス等を収集しているのであるが,bbdb3 が 3.2-6 から 3.2-7 にあがったタイミングで以下のエラーで表示メール関連の bbdb entry が表示されなくなった.M-x bbdb 自体は機能している.

save-current-buffer: Wrong type argument: stringp, nil

そもそも bbdb3 自体が Wanderlust で設定困難で,https://github.com/wanderlust/wanderlust/issues/64#issuecomment-388231182 にあるとおり,以下のような bbdb/wl-header (see /usr/share/emacs/site-lisp/bbdb3/bbdb-wl.el)を自前で用意していたのだが,これが原因らしい.

--- orig.el     2020-01-06 15:24:44.308354408 +0900
+++ new.el      2020-01-06 15:25:24.643900212 +0900
@@ -1,7 +1,7 @@
 (defun bbdb/wl-header (header)
-  (with-current-buffer wl-summary-buffer-name
+  (with-current-buffer wl-message-buffer-cur-summary-buffer
     (elmo-message-entity-field
      (elmo-message-entity wl-summary-buffer-elmo-folder
                           (wl-summary-message-number))
      (intern (downcase header))
      'string)))

3.2-7 では

のとおり bbdb-mua-auto-updatewl-message-redisplay-hookではなく wl-summary-redisplay-hookadd-hookされるようになったので,上記自前 bbdb/wl-header は不要になった様子.