From cf4a1c641df5843a225f796a1b77d0cb5528ec59 Mon Sep 17 00:00:00 2001 From: ueno Date: Wed, 8 May 2002 15:01:35 +0000 Subject: [PATCH] (lsdb-x-face-image-type): New user option. (lsdb-insert-x-face-asynchronously): Respect lsdb-x-face-image-type. (lsdb-mode-quit-window): Don't pass an argument to bury-buffer when we are already on the selected-window. (lsdb-mew-insinuate): Advise mew-summary-visit-folder and mew-summary-switch-to-folder to hide *LSDB* buffer. (lsdb-mew-update-record): Rewrite. Autoload mew-xinfo-get-decode-err and mew-xinfo-get-action when compiling. From Hideyuki SHIRAI --- lsdb.el | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/lsdb.el b/lsdb.el index 0ee3a6c..845a664 100644 --- a/lsdb.el +++ b/lsdb.el @@ -167,6 +167,12 @@ The updated record is passed to each function as the argument." :group 'lsdb :type 'integer) +(defcustom lsdb-x-face-image-type nil + "A image type of displayed x-face. +If non-nil, supersedes the return value of `lsdb-x-face-available-image-type'." + :group 'lsdb + :type 'symbol) + (defcustom lsdb-x-face-command-alist '((pbm "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | pnmscale 0.5") (xpm "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | pnmscale 0.5 | ppmtoxpm")) @@ -1098,7 +1104,7 @@ It partially emulates the GNU Emacs' of `quit-window'." (delete-window window)) (if kill (kill-buffer buffer) - (bury-buffer buffer)))) + (bury-buffer (unless (eq buffer (current-buffer)) buffer))))) (defun lsdb-hide-buffer () "Hide the LSDB window." @@ -1366,7 +1372,9 @@ always hide." (autoload 'mew-current-get-fld "mew") (autoload 'mew-current-get-msg "mew") (autoload 'mew-frame-id "mew") - (autoload 'mew-cache-hit "mew")) + (autoload 'mew-cache-hit "mew") + (autoload 'mew-xinfo-get-decode-err "mew") + (autoload 'mew-xinfo-get-action "mew")) ;;;###autoload (defun lsdb-mew-insinuate () @@ -1378,22 +1386,33 @@ always hide." (lsdb-hide-buffer)))) (add-hook 'mew-suspend-hook 'lsdb-hide-buffer) (add-hook 'mew-quit-hook 'lsdb-mode-save) - (add-hook 'kill-emacs-hook 'lsdb-mode-save)) + (add-hook 'kill-emacs-hook 'lsdb-mode-save) + (cond + ;; Mew 3 + ((fboundp 'mew-summary-visit-folder) + (defadvice mew-summary-visit-folder (before lsdb-hide-buffer activate) + (lsdb-hide-buffer))) + ;; Mew 2 + ((fboundp 'mew-summary-switch-to-folder) + (defadvice mew-summary-switch-to-folder (before lsdb-hide-buffer activate) + (lsdb-hide-buffer))))) (defun lsdb-mew-update-record () (let* ((fld (mew-current-get-fld (mew-frame-id))) (msg (mew-current-get-msg (mew-frame-id))) - (cache (mew-cache-hit fld msg 'must-hit)) + (cache (mew-cache-hit fld msg)) records) - (save-excursion - (set-buffer cache) - (make-local-variable 'lsdb-decode-field-body-function) - (setq lsdb-decode-field-body-function - (lambda (body name) - (set-text-properties 0 (length body) nil body) - body)) - (when (setq records (lsdb-update-records)) - (lsdb-display-record (car records)))))) + (when cache + (save-excursion + (set-buffer cache) + (unless (or (mew-xinfo-get-decode-err) (mew-xinfo-get-action)) + (make-local-variable 'lsdb-decode-field-body-function) + (setq lsdb-decode-field-body-function + (lambda (body name) + (set-text-properties 0 (length body) nil body) + body)) + (when (setq records (lsdb-update-records)) + (lsdb-display-record (car records)))))))) ;;;_. Interface to MU-CITE (eval-when-compile @@ -1544,7 +1563,8 @@ the user wants it." 'lsdb-record record))))) (defun lsdb-insert-x-face-asynchronously (x-face) - (let* ((type (lsdb-x-face-available-image-type)) + (let* ((type (or lsdb-x-face-image-type + (lsdb-x-face-available-image-type))) (shell-file-name lsdb-shell-file-name) (shell-command-switch lsdb-shell-command-switch) (process-connection-type nil) -- 1.7.10.4