Importing pgnus-0.64
[elisp/gnus.git-] / lisp / gnus-art.el
index d0a1fc8..4e60965 100644 (file)
@@ -921,7 +921,9 @@ always hide."
          (forward-line 1))))))
 
 (defun article-treat-dumbquotes ()
-  "Translate M******** sm*rtq**t*s into proper text."
+  "Translate M******** sm*rtq**t*s into proper text.
+Note that this function guesses whether a character is a sm*rtq**t* or
+not, so it should only be used interactively."
   (interactive)
   (article-translate-strings gnus-article-dumbquotes-map))
 
@@ -1123,7 +1125,9 @@ If PROMPT (the prefix), prompt for a coding system to use."
 
 (defun article-decode-encoded-words ()
   "Remove encoded-word encoding from headers."
-  (let ((inhibit-point-motion-hooks t) buffer-read-only)
+  (let ((inhibit-point-motion-hooks t)
+       (rfc2047-default-charset gnus-newsgroup-default-charset)
+       buffer-read-only)
     (save-restriction
       (message-narrow-to-head)
       (funcall gnus-decode-header-function (point-min) (point-max)))))
@@ -2283,6 +2287,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
     (gnus-run-hooks 'gnus-tmp-internal-hook)
     (gnus-run-hooks 'gnus-article-prepare-hook)
     (when gnus-display-mime-function
+      (mm-setup-w3)
       (let ((url-standalone-mode (not gnus-plugged)))
        (funcall gnus-display-mime-function)))
     ;; Perform the article display hooks.
@@ -2381,6 +2386,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   "Interactively choose a view method for the MIME part under point."
   (interactive)
   (gnus-article-check-buffer)
+  (mm-setup-w3)
   (let ((data (get-text-property (point) 'gnus-data))
        (url-standalone-mode (not gnus-plugged)))
     (mm-interactively-view-part data)))
@@ -2412,6 +2418,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   "Insert the MIME part under point into the current buffer."
   (interactive "P") ; For compatibility reasons we are not using "z".
   (gnus-article-check-buffer)
+  (mm-setup-w3)
   (let* ((data (get-text-property (point) 'gnus-data))
         contents
         (url-standalone-mode (not gnus-plugged))
@@ -2432,6 +2439,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   "View the MIME part under point with an external viewer."
   (interactive)
   (gnus-article-check-buffer)
+  (mm-setup-w3)
   (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
         (url-standalone-mode (not gnus-plugged))
         (mm-user-display-methods nil)
@@ -2446,6 +2454,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   "View the MIME part under point with an internal viewer."
   (interactive)
   (gnus-article-check-buffer)
+  (mm-setup-w3)
   (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
         (url-standalone-mode (not gnus-plugged))
         (mm-user-display-methods '((".*" . inline)))
@@ -2549,6 +2558,8 @@ If ALL-HEADERS is non-nil, no headers are hidden."
        (gnus-tmp-length (with-current-buffer (mm-handle-buffer handle)
                           (buffer-size)))
        gnus-tmp-type-long b e)
+    (when (string-match ".*/" gnus-tmp-name)
+      (setq gnus-tmp-name (replace-match "" t t gnus-tmp-name)))
     (setq gnus-tmp-type-long (concat gnus-tmp-type
                                     (and (not (equal gnus-tmp-name ""))
                                          (concat "; " gnus-tmp-name))))
@@ -2584,6 +2595,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
 
 (defun gnus-widget-press-button (elems el)
   (goto-char (widget-get elems :from))
+  (mm-setup-w3)
   (let ((url-standalone-mode (not gnus-plugged)))
     (gnus-article-press-button)))