Synch to Gnus 200311130835.
[elisp/gnus.git-] / lisp / mm-decode.el
index 7212155..d87ec5b 100644 (file)
@@ -127,21 +127,24 @@ nil    : using external viewer."
 It is suggested to customize `mm-text-html-renderer' instead.")
 
 (defcustom mm-inline-text-html-with-images nil
-  "If non-nil, Gnus will allow retrieving images in the HTML contents
-with <img> tags.  It has no effect on Emacs/w3.  See also
-the documentation for the option `mm-w3m-safe-url-regexp'."
+  "If non-nil, Gnus will allow retrieving images in HTML contents with
+the <img> tags.  It has no effect on Emacs/w3.  See also the
+documentation for the `mm-w3m-safe-url-regexp' variable."
   :type 'boolean
   :group 'mime-display)
 
 (defcustom mm-w3m-safe-url-regexp "\\`cid:"
-  "Regexp that matches safe url names.
-Some HTML mails might have a trick of spammers using <img> tags.
-It is likely to be intended to verify whether you have read the
-mail.  You can prevent your personal informations from leaking by
-setting this to the regexp which matches the safe url names.  The
-value of the variable `w3m-safe-url-regexp' will be bound with
-this value.  You may set this value to nil if you consider all
-urls to be safe."
+  "Regexp matching URLs which are considered to be safe.
+Some HTML mails might contain a nasty trick used by spammers, using
+the <img> tag which is far more evil than the [Click Here!] button.
+It is most likely intended to check whether the ominous spam mail has
+reached your eyes or not, in which case the spammer knows for sure
+that your email address is valid.  It is done by embedding an
+identifier string into a URL that you might automatically retrieve
+when displaying the image.  The default value is \"\\\\`cid:\" which only
+matches parts embedded to the Multipart/Related type MIME contents and
+Gnus will never connect to the spammer's site arbitrarily.  You may
+set this variable to nil if you consider all urls to be safe."
   :type '(choice (regexp :tag "Regexp")
                 (const :tag "All URLs are safe" nil))
   :group 'mime-display)
@@ -152,7 +155,7 @@ urls to be safe."
   :group 'mime-display)
 
 (defcustom mm-inline-media-tests
-  '(("image/jpeg"
+  '(("image/p?jpeg"
      mm-inline-image
      (lambda (handle)
        (mm-valid-and-fit-image-p 'jpeg handle)))
@@ -238,7 +241,7 @@ urls to be safe."
     ;; Default to displaying as text
     (".*" mm-inline-text mm-readable-p))
   "Alist of media types/tests saying whether types can be displayed inline."
-  :type '(repeat (list (string :tag "MIME type")
+  :type '(repeat (list (regexp :tag "MIME type")
                       (function :tag "Display function")
                       (function :tag "Display test")))
   :group 'mime-display)
@@ -355,7 +358,7 @@ If not set, `default-directory' will be used."
   :type '(choice directory (const :tag "Default" nil))
   :group 'mime-display)
 
-(defcustom mm-attachment-file-modes ?\600
+(defcustom mm-attachment-file-modes 384
   "Set the mode bits of saved attachments to this integer."
   :type 'integer
   :group 'mime-display)
@@ -525,7 +528,8 @@ Postpone undisplaying of viewers for types in
          ((equal type "multipart")
           (let ((mm-dissect-default-type (if (equal subtype "digest")
                                              "message/rfc822"
-                                           "text/plain")))
+                                           "text/plain"))
+                (start (cdr (assq 'start (cdr ctl)))))
             (add-text-properties 0 (length (car ctl))
                                  (mm-alist-to-plist (cdr ctl)) (car ctl))
 
@@ -535,10 +539,9 @@ Postpone undisplaying of viewers for types in
             ;; the mm-handle API so we simply store the multipart buffert
             ;; name as a text property of the "multipart/whatever" string.
             (add-text-properties 0 (length (car ctl))
-                                 (list 'buffer (mm-copy-to-buffer))
-                                 (car ctl))
-            (add-text-properties 0 (length (car ctl))
-                                 (list 'from from)
+                                 (list 'buffer (mm-copy-to-buffer)
+                                       'from from
+                                       'start start)
                                  (car ctl))
             (cons (car ctl) (mm-dissect-multipart ctl))))
          (t
@@ -1038,7 +1041,7 @@ string if you do not like underscores."
 (defun mm-file-name-delete-gotchas (filename)
   "Delete shell gotchas from FILENAME."
   (setq filename (gnus-replace-in-string filename "[<>|]" ""))
-  (gnus-replace-in-string filename "^[.-]*" ""))
+  (gnus-replace-in-string filename "^[.-]+" ""))
 
 (defun mm-save-part (handle)
   "Write HANDLE to a file."