mm-decode.el (mm-inline-media-tests): Add text/x-sh.
authorJulien Danjou <julien@danjou.info>
Thu, 20 Jan 2011 23:43:27 +0000 (23:43 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Thu, 20 Jan 2011 23:43:27 +0000 (23:43 +0000)
gnus-art.el (gnus-mime-inline-part): Use mm-display-inline rather than mm-insert-inline to insert inline part: this respect mm-inline-media-tests displayers.
mm-view.el (mm-display-shell-script-inline): New function.
mm-decode.el (mm-inline-media-tests): Add x-shellscript and x-sh.
mm-uu.el (mm-uu-type-alist): Add org block.
 (mm-uu-org-src-code-block-extract): New function.
mm-view.el (mm-display-org-inline): New function.
mm-decode.el (mm-automatic-display): Add text/org.
mailcap.el (mailcap-mime-extensions): Add .org.

lisp/gnus/ChangeLog
lisp/gnus/gnus-art.el
lisp/gnus/mailcap.el
lisp/gnus/mm-decode.el
lisp/gnus/mm-uu.el
lisp/gnus/mm-view.el

index e2306c3..c9feb09 100644 (file)
@@ -4,6 +4,27 @@
        the temp buffer.
        * message.el (message-mailer-swallows-blank-line): Use with-temp-buffer.
 
+2011-01-20  Julien Danjou  <julien@danjou.info>
+
+       * mm-decode.el (mm-inline-media-tests): Add text/x-sh.
+
+       * gnus-art.el (gnus-mime-inline-part): Use mm-display-inline rather
+       than mm-insert-inline to insert inline part: this respect
+       mm-inline-media-tests displayers.
+
+       * mm-view.el (mm-display-shell-script-inline): New function.
+
+       * mm-decode.el (mm-inline-media-tests): Add x-shellscript and x-sh.
+
+       * mm-uu.el (mm-uu-type-alist): Add org block.
+       (mm-uu-org-src-code-block-extract): New function.
+
+       * mm-view.el (mm-display-org-inline): New function.
+
+       * mm-decode.el (mm-automatic-display): Add text/org.
+
+       * mailcap.el (mailcap-mime-extensions): Add .org.
+
 2011-01-19  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-art.el (gnus-article-highlight): Remove argument passed to
index 8e8fa9b..280914d 100644 (file)
@@ -5249,15 +5249,7 @@ Compressed files like .gz and .bz2 are decompressed."
          (if (mm-handle-undisplayer handle)
              (mm-remove-part handle))))
        (forward-line 2)
-       (mm-insert-inline
-        handle
-        (if (or coding-system
-                (and charset
-                     (setq coding-system
-                           (mm-charset-to-coding-system charset))
-                     (not (eq coding-system 'ascii))))
-            (mm-decode-coding-string contents coding-system)
-          (mm-string-to-multibyte contents)))
+        (mm-display-inline handle)
        (goto-char b)))))
 
 (defun gnus-mime-set-charset-parameters (handle charset)
index b6cef39..e50e61b 100644 (file)
@@ -910,7 +910,8 @@ If NO-DECODE is non-nil, don't decode STRING."
     (".zip"   . "application/zip")
     (".ai"    . "application/postscript")
     (".jpe"   . "image/jpeg")
-    (".jpeg"  . "image/jpeg"))
+    (".jpeg"  . "image/jpeg")
+    (".org"   . "text/org"))
   "An alist of file extensions and corresponding MIME content-types.
 This exists for you to customize the information in Lisp.  It is
 merged with values from mailcap files by `mailcap-parse-mimetypes'.")
index 6275534..40cfa9b 100644 (file)
@@ -237,7 +237,11 @@ before the external MIME handler is invoked."
      (lambda (handle) (fboundp 'diff-mode)))
     ("application/emacs-lisp" mm-display-elisp-inline identity)
     ("application/x-emacs-lisp" mm-display-elisp-inline identity)
+    ("application/x-shellscript" mm-display-shell-script-inline identity)
+    ("application/x-sh" mm-display-shell-script-inline identity)
+    ("text/x-sh" mm-display-shell-script-inline identity)
     ("text/dns" mm-display-dns-inline identity)
+    ("text/org" mm-display-org-inline identity)
     ("text/html"
      mm-inline-text-html
      (lambda (handle)
@@ -313,7 +317,8 @@ when selecting a different article."
     "application/pkcs7-signature" "application/x-pkcs7-mime"
     "application/pkcs7-mime"
     ;; Mutt still uses this even though it has already been withdrawn.
-    "application/pgp\\'")
+    "application/pgp\\'"
+     "text/org")
   "A list of MIME types to be displayed automatically."
   :type '(repeat regexp)
   :group 'mime-display)
index 432b23c..6966122 100644 (file)
@@ -186,7 +186,15 @@ This can be either \"inline\" or \"attachment\".")
      "^\\\\end{document}"
      mm-uu-latex-extract
      nil
-     mm-uu-latex-test))
+     mm-uu-latex-test)
+    (org-src-code-block
+     "^[ \t]*#\\+begin_"
+     "^[ \t]*#\\+end_"
+     mm-uu-org-src-code-block-extract)
+    (org-meta-line
+     "^[ \t]*#\\+[[:alpha:]]+: "
+     "$"
+     mm-uu-org-src-code-block-extract))
   "A list of specifications for non-MIME attachments.
 Each element consist of the following entries: label,
 start-regexp, end-regexp, extract-function, test-function.
@@ -383,6 +391,10 @@ apply the face `mm-uu-extract'."
                  (list mm-dissect-disposition
                        (cons 'filename file-name))))
 
+(defun mm-uu-org-src-code-block-extract ()
+  (mm-make-handle (mm-uu-copy-to-buffer start-point end-point)
+                  '("text/org")))
+
 (defvar gnus-newsgroup-name)
 
 (defun mm-uu-emacs-sources-test ()
index 61d5b32..fa8c94c 100644 (file)
 (defun mm-display-dns-inline (handle)
   (mm-display-inline-fontify handle 'dns-mode))
 
+(defun mm-display-org-inline (handle)
+  "Show an Org mode text from HANDLE inline."
+  (mm-display-inline-fontify handle 'org-mode))
+
+(defun mm-display-shell-script-inline (handle)
+  "Show an shell script from HANDLE inline."
+  (mm-display-inline-fontify handle 'shell-script-mode))
+
 ;;      id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
 ;;          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
 (defvar mm-pkcs7-signed-magic