]> git.eshelyaron.com Git - emacs.git/commitdiff
(rmail-mime-show-images, rmail-mime-bulk-handler):
authorGlenn Morris <rgm@gnu.org>
Sat, 26 Sep 2009 19:20:48 +0000 (19:20 +0000)
committerGlenn Morris <rgm@gnu.org>
Sat, 26 Sep 2009 19:20:48 +0000 (19:20 +0000)
Add option to only show images below a certain size.
(rmail-mime-multipart-handler): Remove unnecessary save-match-data and
save-excursion calls.

lisp/ChangeLog
lisp/mail/rmailmm.el

index 808d420218df098cc116d0c5340577dff8f434ce..9140b96cf8e0eb129002ef55a50069a1561aa1bf 100644 (file)
@@ -1,3 +1,10 @@
+2009-09-26  Glenn Morris  <rgm@gnu.org>
+
+       * mail/rmailmm.el (rmail-mime-show-images, rmail-mime-bulk-handler):
+       Add option to only show images below a certain size.
+       (rmail-mime-multipart-handler): Remove unnecessary save-match-data and
+       save-excursion calls.
+
 2009-09-26  Eli Zaretskii  <eliz@gnu.org>
 
        * makefile.w32-in (WINS_ALMOST): Add cedet (with its
index 077a8bfe1ffe8415a600f8673aef50eed7cf2b96..29aa869523e79dbcbbd1fdeb2323d1f6ecd26ce7 100644 (file)
@@ -31,6 +31,7 @@
 ;; Todo:
 
 ;; Handle multipart/alternative.
+;; Offer the option to call external/internal viewers (doc-view, xpdf, etc).
 
 ;;; Code:
 
@@ -48,8 +49,6 @@
   '(("multipart/.*" rmail-mime-multipart-handler)
     ("text/.*" rmail-mime-text-handler)
     ("text/\\(x-\\)?patch" rmail-mime-bulk-handler)
-    ;; FIXME this handler not defined anywhere?
-;;;   ("application/pgp-signature" rmail-mime-application/pgp-signature-handler)
     ("\\(image\\|audio\\|video\\|application\\)/.*" rmail-mime-bulk-handler))
   "Functions to handle various content types.
 This is an alist with elements of the form (REGEXP FUNCTION ...).
@@ -78,10 +77,13 @@ The first directory that exists is used."
 (defcustom rmail-mime-show-images 'button
   "What to do with image attachments that Emacs is capable of displaying.
 If nil, do nothing special.  If `button', add an extra button
-that when pushed displays the image in the buffer.  Anything else
-means to automatically display the image in the buffer."
+that when pushed displays the image in the buffer.  If a number,
+automatically show images if they are smaller than that size (in
+bytes), otherwise add a display button.  Anything else means to
+automatically display the image in the buffer."
   :type '(choice (const :tag "Add button to view image" button)
                 (const :tag "No special treatment" nil)
+                (number :tag "Show if smaller than certain size")
                 (other :tag "Always show" show))
   :version "23.2"
   :group 'rmail-mime)
@@ -179,6 +181,7 @@ depends upon the value of `rmail-mime-show-images'."
         (data (buffer-string))
         (udata (string-as-unibyte data))
         (size (length udata))
+        (osize size)
         (units '(B kB MB GB))
         type)
     (while (and (> size 1024.0)        ; cribbed from gnus-agent-expire-done-message
@@ -201,7 +204,9 @@ depends upon the value of `rmail-mime-show-images'."
               (memq type image-types)
               (image-type-available-p type))
       (insert " ")
-      (cond ((eq rmail-mime-show-images 'button)
+      (cond ((or (eq rmail-mime-show-images 'button)
+                (and (numberp rmail-mime-show-images)
+                     (>= osize rmail-mime-show-images)))
             (insert-button "Display"
                            :type 'rmail-mime-image
                            'help-echo "mouse-2, RET: Show image"
@@ -277,13 +282,11 @@ format."
              content-transfer-encoding)))
       (delete-region end next)
       ;; Handle the part.
-      (save-match-data
-       (save-excursion
-         (save-restriction
-           (narrow-to-region beg end)
-           (rmail-mime-show))))
-      (setq beg next)
-      (goto-char beg))))
+      (save-restriction
+       (narrow-to-region beg end)
+       (rmail-mime-show))
+      (goto-char (setq beg next)))))
+
 
 (defun test-rmail-mime-multipart-handler ()
   "Test of a mail used as an example in RFC 2046."