edictの挙動にうんざりした

ので、ちょっと改変。妙な挙動でバッファを出すのを止めて、ポップアップで表示するように。

;;;edict.l(Tetsuya Kamei)より。

;;; (in-package "editor")
;;; で実行すること。
;;; 同名の関数を上書きします。
(defun edict-lookup-dictionary (from to dic dic2)
  (let* ((s (buffer-substring from to))
         (r (lookup-dictionary *edict-dictionary-path* "xyzzydic" dic s)))
    (unless r
      (plain-error "登録されていません: ~A" s))
    (popup-string
     (with-output-to-string (out)
       (long-operation
        (format out "~A:~%~%" s)
        (if dic2
            (dolist (x (sort r #'string<))
              (format out "~A~%" x)
              (format out "  ~{~A~^,~}~%~%"
                      (lookup-dictionary *edict-dictionary-path* "xyzzydic" dic2 x)))
          (format out "  ~{~A~^,~}~%" r))))
     (point)))
  t)

(defun edict-analogize-conjugation (from to)
  (long-operation
    (let ((string (buffer-substring from to))
      (rl nil))
      (when (setq r (lookup-dictionary *edict-dictionary-path*
                       "xyzzydic" "xyzzye2j" string))
    (push (cons string r) rl))
      (setq rl (ed::edict-analogize-conjugation-1 string rl))
      (unless rl
    (plain-error "登録されていません: ~A" string))
      (popup-string
       (with-output-to-string (out)
         (dolist (x (nreverse rl))
           (format out "~A:~%~%  ~{~A~^,~}~%~%" (car x) (cdr x))))
       (point)))
    t))