X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-image.el;h=a405a4a14ea676a455f75e45d14beff643c4dedd;hb=3d8f61a42e7afa440511d0db730ae45d32b2b101;hp=d24963aefba8dfc52b454d2d31efb3c98b63cedc;hpb=0c115c3068d06f197bf3cb99aad53c3a948a15a0;p=elisp%2Fsemi.git diff --git a/mime-image.el b/mime-image.el index d24963a..a405a4a 100644 --- a/mime-image.el +++ b/mime-image.el @@ -11,7 +11,7 @@ ;; Keywords: image, picture, X-Face, MIME, multimedia, mail, news -;; This file is part of SEMI (Suite of Emacs MIME Interfaces). +;; This file is part of SEMI (Showy Emacs MIME Interfaces). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as @@ -65,12 +65,12 @@ ;; (autoload 'highlight-headers "highlight-headers") - (defun mime-preview/x-face-function-use-highlight-headers () + (defun mime-preview-x-face-function-use-highlight-headers () (highlight-headers (point-min) (re-search-forward "^$" nil t) t) ) (add-hook 'mime-view-content-header-filter-hook - 'mime-preview/x-face-function-use-highlight-headers) + 'mime-preview-x-face-function-use-highlight-headers) ) ((featurep 'mule) @@ -105,53 +105,45 @@ )) ) -(defvar mime-view-image-converter-alist nil) - (mapcar (function (lambda (rule) - (let ((ctype (car rule)) - (format (cdr rule)) - ) + (let ((type (car rule)) + (subtype (nth 1 rule)) + (format (nth 2 rule))) (if (image-inline-p format) - (progn - (set-alist 'mime-view-content-filter-alist - ctype - (function mime-view-filter-for-image)) - (set-alist 'mime-view-image-converter-alist - ctype format) - (add-to-list - 'mime-view-visible-media-type-list - ctype) - ) - )))) - '(("image/jpeg" . jpeg) - ("image/gif" . gif) - ("image/tiff" . tiff) - ("image/x-tiff" . tiff) - ("image/xbm" . xbm) - ("image/x-xbm" . xbm) - ("image/x-xpixmap" . xpm) - ("image/x-pic" . pic) - ("image/x-mag" . mag) - ("image/png" . png) + (ctree-set-calist-strictly + 'mime-preview-condition + (list (cons 'type type)(cons 'subtype subtype) + '(body . visible) + '(body-presentation-method . with-filter) + (cons 'body-filter #'mime-preview-filter-for-image) + (cons 'image-format format)) + ))))) + '((image jpeg jpeg) + (image gif gif) + (image tiff tiff) + (image x-tiff tiff) + (image xbm xbm) + (image x-xbm xbm) + (image x-xpixmap xpm) + (image x-pic pic) + (image x-mag mag) + (image png png) )) -(defvar mime-view-ps-to-gif-command "pstogif") - ;;; @ content filter for images ;;; ;; (for XEmacs 19.12 or later) -(defun mime-view-filter-for-image (ctype params encoding) +(defun mime-preview-filter-for-image (situation) (let ((beg (point-min)) (end (point-max))) (remove-text-properties beg end '(face nil)) (message "Decoding image...") - (mime-decode-region beg end encoding) - (let* ((minor (cdr (assoc ctype mime-view-image-converter-alist))) - (gl (image-normalize minor (buffer-string))) - e) + (mime-decode-region beg end (cdr (assq 'encoding situation))) + (let ((gl (image-normalize (cdr (assq 'image-format situation)) + (buffer-string)))) (delete-region (point-min)(point-max)) (cond ((image-invalid-glyph-p gl) (setq gl nil) @@ -172,8 +164,9 @@ ) (t (setq gl (make-glyph gl)) - (setq e (make-extent (point) (point))) - (set-extent-end-glyph e gl) + (let ((e (make-extent (point) (point)))) + (set-extent-end-glyph e gl) + ) (message "Decoding image... done") )) ) @@ -185,33 +178,35 @@ ;;; ;; (for XEmacs 19.14 or later) -(defun mime-view-filter-for-application/postscript (ctype params encoding) - (let* ((beg (point-min)) (end (point-max)) - (file-base - (make-temp-name (expand-file-name "tm" mime-temp-directory))) - (ps-file (concat file-base ".ps")) - (gif-file (concat file-base ".gif")) - ) - (remove-text-properties beg end '(face nil)) - (message "Decoding Postscript...") - (mime-decode-region beg end encoding) - (write-region (point-min)(point-max) ps-file) - (message "Decoding Postscript...") - (delete-region (point-min)(point-max)) - (call-process mime-view-ps-to-gif-command nil nil nil ps-file) - (set-extent-end-glyph (make-extent (point) (point)) - (make-glyph (vector 'gif :file gif-file))) - (message "Decoding Postscript... done") - (delete-file ps-file) - (delete-file gif-file) - )) +;; (defvar mime-view-ps-to-gif-command "pstogif") + +;; (defun mime-preview-filter-for-application/postscript (ctype params encoding) +;; (let* ((beg (point-min)) (end (point-max)) +;; (file-base +;; (make-temp-name (expand-file-name "tm" mime-temp-directory))) +;; (ps-file (concat file-base ".ps")) +;; (gif-file (concat file-base ".gif")) +;; ) +;; (remove-text-properties beg end '(face nil)) +;; (message "Decoding Postscript...") +;; (mime-decode-region beg end encoding) +;; (write-region (point-min)(point-max) ps-file) +;; (message "Decoding Postscript...") +;; (delete-region (point-min)(point-max)) +;; (call-process mime-view-ps-to-gif-command nil nil nil ps-file) +;; (set-extent-end-glyph (make-extent (point) (point)) +;; (make-glyph (vector 'gif :file gif-file))) +;; (message "Decoding Postscript... done") +;; (delete-file ps-file) +;; (delete-file gif-file) +;; )) ;; If you would like to display inline Postscript image, please ;; activate following: ;; (set-alist 'mime-view-content-filter-alist ;; "application/postscript" -;; (function mime-view-filter-for-application/postscript)) +;; (function mime-preview-filter-for-application/postscript)) ;; (if (featurep 'gif) ;; (add-to-list