Emacs に標準で搭載されている関数で、 switch-to-buffer でバッファを切り替えるようになっているものの動作をポップアップするように変更したいです。(具体的には eww の動作をポップアップするようにしたい)

そのために、以下のプログラムを試みました。

(defadvice eww (around ad-eww activate)
  (let ((switch-to-buffer 'display-buffer))
   ad-do-it))

これで eww を呼び出したときに、全ての switch-to-bufferdisplay-buffer に置き換わると思ったのですが、しかしこれでは挙動が変更されません。

何かアドバイスの使い方に誤解があるのでしょうか。


コードを質問の回答を参考に修正してみました。

(defadvice switch-to-buffer (around eww-popwin activate)
  (let ((name
         (typecase buffer-or-name
           (string buffer-or-name)
           (buffer (buffer-name buffer-or-name)))))
    (if (string-equal name "*eww*")
        (display-buffer buffer-or-name)
      ad-do-it)))