サマリで migemo検索したい

サマリモード(メッセージの一覧)で "?"ってやるといろんな条件でマークできてすごく便利なのだが migemoがサポートされてないみたい? migemoの正体はregexpを造ること、なので defadviceで引数をいじくり回すやつをカマせばいい。advice…いわゆるAOPです(極論過ぎる?) 新し目のelispさわってる人はdefadviceにも精通してるでしょうから、AOPの習得とかはやそうですね。

;; elmo-folder-search (Summaryのpickとか)で migemo検索できるようにする
(defvar elmo-folder-search-nest nil)  ;; lunaのせいで再入するのでガードをかける
(defadvice elmo-folder-search
  (around elmo-folder-search-migemize (folder condition &optional numbers) activate)
  "enable migemo-expand for elmo-folder-search"
  (unless elmo-folder-search-nest
    (setq elmo-folder-search-nest t)
    (aset condition 2 (migemo-get-pattern (aref condition 2)))
    )
  ad-do-it
  (setq elmo-folder-search-nest nil)
  )

elmoが lunaというOOライブラリ?を使ってるせいで elmo-folder-searchは2回呼ばれる。interfaceな点で捕まえたものと、インプリメントにディスパッチされたとき。それぞれでadviceがカマされてしまうので、再入チェックしてる。なんかいい方法ないの...かな?
elisp明るくないのでとりあえずこれで回避。