2000-11-06 13:01:27 ShengHuo ZHU <zsh@cs.rochester.edu>
authorShengHuo ZHU <zsh@cs.rochester.edu>
Mon, 6 Nov 2000 17:04:28 +0000 (17:04 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Mon, 6 Nov 2000 17:04:28 +0000 (17:04 +0000)
* gnus-art.el (gnus-mime-view-part-as-charset): New function.
(gnus-article-view-part-as-charset): New function.

lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-sum.el

index 7a624ca..a443d8a 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-06 13:01:27  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (gnus-mime-view-part-as-charset): New function.
+       (gnus-article-view-part-as-charset): New function.
+
 2000-11-05 22:34:07  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * mm-decode.el (mm-verify-option): Default value.
index 4ae78ad..af5f710 100644 (file)
@@ -664,6 +664,7 @@ used."
     ("view the part" . gnus-mime-view-part)
     ("pipe to command" . gnus-mime-pipe-part)
     ("toggle display" . gnus-article-press-button)
+    ("toggle display" . gnus-article-view-part-as-charset)
     ("view as type" . gnus-mime-view-part-as-type)
     ("internalize type" . gnus-mime-internalize-part)
     ("externalize type" . gnus-mime-externalize-part))
@@ -2923,6 +2924,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
   '((gnus-article-press-button "\r" "Toggle Display")
     (gnus-mime-view-part "v" "View Interactively...")
     (gnus-mime-view-part-as-type "t" "View As Type...")
+    (gnus-mime-view-part-as-charset "C" "View As charset...")
     (gnus-mime-save-part "o" "Save...")
     (gnus-mime-save-part-and-strip "\C-o" "Save and Strip")
     (gnus-mime-copy-part "c" "View As Text, In Other Buffer")
@@ -3127,7 +3129,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
         contents charset
         (b (point))
         buffer-read-only)
-    (if (mm-handle-undisplayer handle)
+    (if (and (not arg) (mm-handle-undisplayer handle))
        (mm-remove-part handle)
       (setq contents (mm-get-part handle))
       (cond
@@ -3136,6 +3138,8 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                           (mm-handle-type handle) 'charset)
                          gnus-newsgroup-charset)))
        ((numberp arg)
+       (if (mm-handle-undisplayer handle)
+           (mm-remove-part handle))
        (setq charset
              (or (cdr (assq arg 
                             gnus-summary-show-article-charset-alist))
@@ -3150,6 +3154,23 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                          contents))
       (goto-char b))))
 
+(defun gnus-mime-view-part-as-charset (&optional handle arg)
+  "Insert the MIME part under point into the current buffer."
+  (interactive (list nil current-prefix-arg))
+  (gnus-article-check-buffer)
+  (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
+        contents charset
+        (b (point))
+        buffer-read-only)
+    (if (mm-handle-undisplayer handle)
+       (mm-remove-part handle))
+    (let ((gnus-newsgroup-charset
+          (or (cdr (assq arg 
+                         gnus-summary-show-article-charset-alist))
+              (read-coding-system "Charset: ")))
+         (gnus-newsgroup-ignored-charsets 'gnus-all))
+      (gnus-article-press-button))))
+
 (defun gnus-mime-externalize-part (&optional handle)
   "View the MIME part under point with an external viewer."
   (interactive)
@@ -3220,6 +3241,11 @@ In no internal viewer is available, use an external viewer."
   (interactive "p")
   (gnus-article-part-wrapper n 'gnus-mime-copy-part))
 
+(defun gnus-article-view-part-as-charset (n)
+  "Copy MIME part N, which is the numerical prefix."
+  (interactive "p")
+  (gnus-article-part-wrapper n 'gnus-mime-view-part-as-charset))
+
 (defun gnus-article-externalize-part (n)
   "View MIME part N externally, which is the numerical prefix."
   (interactive "p")
index 02bb809..39b1863 100644 (file)
@@ -1652,6 +1652,7 @@ increase the score of each group you read."
     "v" gnus-article-view-part
     "o" gnus-article-save-part
     "c" gnus-article-copy-part
+    "C" gnus-article-view-part-as-charset
     "e" gnus-article-externalize-part
     "i" gnus-article-inline-part
     "|" gnus-article-pipe-part))