changeset 112390:1b25cd6a6e36

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.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Thu, 20 Jan 2011 23:43:27 +0000
parents 75fb060ecbc3
children 93209af5dc0b
files 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
diffstat 6 files changed, 51 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Thu Jan 20 17:36:12 2011 -0500
+++ b/lisp/gnus/ChangeLog	Thu Jan 20 23:43:27 2011 +0000
@@ -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
--- a/lisp/gnus/gnus-art.el	Thu Jan 20 17:36:12 2011 -0500
+++ b/lisp/gnus/gnus-art.el	Thu Jan 20 23:43:27 2011 +0000
@@ -5249,15 +5249,7 @@
 	  (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)
--- a/lisp/gnus/mailcap.el	Thu Jan 20 17:36:12 2011 -0500
+++ b/lisp/gnus/mailcap.el	Thu Jan 20 23:43:27 2011 +0000
@@ -910,7 +910,8 @@
     (".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'.")
--- a/lisp/gnus/mm-decode.el	Thu Jan 20 17:36:12 2011 -0500
+++ b/lisp/gnus/mm-decode.el	Thu Jan 20 23:43:27 2011 +0000
@@ -237,7 +237,11 @@
      (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 @@
     "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)
--- a/lisp/gnus/mm-uu.el	Thu Jan 20 17:36:12 2011 -0500
+++ b/lisp/gnus/mm-uu.el	Thu Jan 20 23:43:27 2011 +0000
@@ -186,7 +186,15 @@
      "^\\\\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 @@
 		  (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 ()
--- a/lisp/gnus/mm-view.el	Thu Jan 20 17:36:12 2011 -0500
+++ b/lisp/gnus/mm-view.el	Thu Jan 20 23:43:27 2011 +0000
@@ -632,6 +632,14 @@
 (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