%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/gnus/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/gnus/mm-decode.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\303\304\305\"\210\303\306\307\"\210\303\310\311\"\210\303\312\311\"\210\303\313\314\"\210\303\315\316\"\210\303\317\316\"\210\303\320\316\"\210\321\322\323\"\210\321\322\324\"\210\325\326\327\330\331\332\333\334\335\336\335\337\335\340&
\210\325\341\327\342\331\343\335\336\335\337\335\340&\210\344\345\346\347\335\326%\207" [require mail-parse mm-bodies autoload gnus-map-function "gnus-util" mm-inline-partial "mm-partial" mm-inline-external-body "mm-extern" mm-extern-cache-contents mm-insert-inline "mm-view" mm-archive-decoders "mm-archive" mm-archive-dissect-and-inline mm-dissect-archive add-hook gnus-exit-gnus-hook mm-destroy-postponed-undisplay-list mm-temp-files-delete custom-declare-group mime-display nil "Display of MIME in mail and news articles." :link (custom-manual "(emacs-mime)Display Customization") :version "21.1" :group mail news multimedia mime-security "MIME security in mail and news articles." (custom-manual "(emacs-mime)Display Customization") custom-declare-face mm-command-output ((((class color) (background dark)) (:foreground "ForestGreen")) (((class color) (background light)) (:foreground "red3")) (t (:italic t))) "Face used for displaying output from commands."] 14)
#@15 

(fn HANDLE)
(defalias 'mm-handle-buffer '(macro . #[257 "\300\301E\207" [nth 0] 4 (#$ . 1655)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-type '(macro . #[257 "\300\301E\207" [nth 1] 4 (#$ . 1761)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-media-type #[257 "\211@;\203	\211@\207\211A@@\207" [] 2 (#$ . 1865)])
(put 'mm-handle-media-type 'byte-optimizer 'byte-compile-inline-expand)
#@15 

(fn HANDLE)
(defalias 'mm-handle-media-supertype #[257 "\300\211@;\203\211@\262\202\211A@@\262\301\"@\207" [split-string "/"] 4 (#$ . 2049)])
(put 'mm-handle-media-supertype 'byte-optimizer 'byte-compile-inline-expand)
#@15 

(fn HANDLE)
(defalias 'mm-handle-media-subtype #[257 "\300\211@;\203\211@\262\202\211A@@\262\301\"A@\207" [split-string "/"] 4 (#$ . 2283)])
(put 'mm-handle-media-subtype 'byte-optimizer 'byte-compile-inline-expand)
#@15 

(fn HANDLE)
(defalias 'mm-handle-encoding '(macro . #[257 "\300\301E\207" [nth 2] 4 (#$ . 2514)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-undisplayer '(macro . #[257 "\300\301E\207" [nth 3] 4 (#$ . 2622)]))
#@24 

(fn HANDLE FUNCTION)
(defalias 'mm-handle-set-undisplayer '(macro . #[514 "\300\301\302EE\207" [setcar nthcdr 3] 6 (#$ . 2733)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-disposition '(macro . #[257 "\300\301E\207" [nth 4] 4 (#$ . 2873)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-description '(macro . #[257 "\300\301E\207" [nth 5] 4 (#$ . 2984)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-cache '(macro . #[257 "\300\301E\207" [nth 6] 4 (#$ . 3095)]))
#@24 

(fn HANDLE CONTENTS)
(defalias 'mm-handle-set-cache '(macro . #[514 "\300\301\302EE\207" [setcar nthcdr 6] 6 (#$ . 3200)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-id '(macro . #[257 "\300\301E\207" [nth 7] 4 (#$ . 3334)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-multipart-original-buffer '(macro . #[257 "\300\301\302\303DF\207" [get-text-property 0 'buffer car] 6 (#$ . 3436)]))
#@15 

(fn HANDLE)
(defalias 'mm-handle-multipart-from '(macro . #[257 "\300\301\302\303DF\207" [get-text-property 0 'from car] 6 (#$ . 3596)]))
#@25 

(fn HANDLE PARAMETER)
(defalias 'mm-handle-multipart-ctl-parameter '(macro . #[514 "\300\301\302DF\207" [get-text-property 0 car] 7 (#$ . 3743)]))
#@84 

(fn &optional BUFFER TYPE ENCODING UNDISPLAYER DISPOSITION DESCRIPTION CACHE ID)
(defalias 'mm-make-handle '(macro . #[2048 "\300\257	\207" [list] 17 (#$ . 3900)]))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\306\317\310\320\312\313&	\210\300\321\302\303\322DD\323\306\317\310\324\312\313&	\210\300\325\302\303\326DD\327\306\330\310\331\312\313&	\210\300\332\302\303\333DD\334\306\330\310\320\312\313&	\210\300\335\302\303\336DD\337\306\330\310\340\312\313&	\210\300\341\302\303\342DD\343\310\344\312\313&\210\300\345\302\303\346DD\347\310\350\312\313&\210\300\351\302\303\352DD\353\306\307\310\354\312\313&	\210\300\355\302\303\356DD\357\310\360\312\313&\210\300\361\302\303\362DD\363\310\364\312\313&\210\300\365\302\303\366DD\367\310\370\312\313&\210\300\371\302\303\372DD\373\310\374\312\313&\210\300\375\302\303\376DD\377\310\201@\312\313&\210\300\201A\302\303\201BDD\201C\310\201D\312\313&\210\300\201E\302\303\201FDD\201G\306\307\310\201H\312\313&	\210\300\201I\302\303\201JDD\201K\310\201L\306\201M\312\313&	\210\300\201N\302\303\201ODD\201P\310\201Q\312\313&\207" [custom-declare-variable mm-text-html-renderer funcall function #[0 "\300\301!\203\302\207\303\304!\203\305\207\303\306!\203\307\207\303\310!\203 \311\207\312\313!\205'\314\207" [fboundp libxml-parse-html-region shr executable-find "w3m" gnus-w3m "links" links "lynx" lynx locate-library "html2text" html2text] 2] "Render of HTML contents.\nIt is one of defined renderer types, or a rendering function.\nThe defined renderer types are:\n`shr': use the built-in Gnus HTML renderer;\n`gnus-w3m': use Gnus renderer based on w3m;\n`w3m': use emacs-w3m;\n`w3m-standalone': use plain w3m;\n`links': use links;\n`lynx': use lynx;\n`html2text': use html2text." :version "27.1" :type (choice (const shr) (const gnus-w3m) (const w3m :tag "emacs-w3m") (const w3m-standalone :tag "standalone w3m") (const links) (const lynx) (const html2text) (function)) :group mime-display mm-html-inhibit-images #[0 "\300\207" [nil] 1] "Non-nil means inhibit displaying of images inline in the article body." "25.1" boolean mm-html-blocked-images #[0 "\300\207" [#1=""] 1 #1#] "Regexp matching image URLs to be blocked, or nil meaning not to block.\nNote that cid images that are embedded in a message won't be blocked." (choice (const :tag "Allow all" nil) (regexp :tag "Regular expression")) mm-w3m-safe-url-regexp #[0 "\300\207" [#2="\\`cid:"] 1 #2#] "Regexp matching URLs which are considered to be safe.\nSome HTML mails might contain a nasty trick used by spammers, using\nthe <img> tag which is far more evil than the [Click Here!] button.\nIt is most likely intended to check whether the ominous spam mail has\nreached your eyes or not, in which case the spammer knows for sure\nthat your email address is valid.  It is done by embedding an\nidentifier string into a URL that you might automatically retrieve\nwhen displaying the image.  The default value is \"\\\\`cid:\" which only\nmatches parts embedded to the Multipart/Related type MIME contents and\nGnus will never connect to the spammer's site arbitrarily.  You may\nset this variable to nil if you consider all urls to be safe." "22.1" (choice (regexp :tag "Regexp") (const :tag "All URLs are safe" nil)) mm-inline-text-html-with-w3m-keymap #[0 "\300\207" [t] 1] "If non-nil, use emacs-w3m command keys in the article buffer." mm-enable-external #[0 "\300\207" [t] 1] "Indicate whether external MIME handlers should be used.\n\nIf t, all defined external MIME handlers are used.  If nil, files are saved by\n`mailcap-save-binary-file'.  If it is the symbol `ask', you are prompted\nbefore the external MIME handler is invoked." (choice (const :tag "Always" t) (const :tag "Never" nil) (const :tag "Ask" ask)) mm-inline-media-tests #[0 "\300\301\302E\303\301\304E\305\301\306E\307\301\310E\311\301\312E\313\301\314E\315\301\316E\317\301\320E\321\301\322E\323\301\324E\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345E\346\347\350E\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\301\372E\373BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB\207" ["image/p?jpeg" mm-inline-image #[257 "\300\301\"\207" [mm-valid-and-fit-image-p jpeg] 4 "\n\n(fn HANDLE)"] "image/png" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p png] 4 "\n\n(fn HANDLE)"] "image/gif" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p gif] 4 "\n\n(fn HANDLE)"] "image/tiff" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p tiff] 4 "\n\n(fn HANDLE)"] "image/xbm" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p xbm] 4 "\n\n(fn HANDLE)"] "image/x-xbitmap" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p xbm] 4 "\n\n(fn HANDLE)"] "image/xpm" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p xpm] 4 "\n\n(fn HANDLE)"] "image/x-xpixmap" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p xpm] 4 "\n\n(fn HANDLE)"] "image/bmp" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p bmp] 4 "\n\n(fn HANDLE)"] "image/x-portable-bitmap" #[257 "\300\301\"\207" [mm-valid-and-fit-image-p pbm] 4 "\n\n(fn HANDLE)"] ("text/plain" mm-inline-text identity) ("text/enriched" mm-inline-text identity) ("text/richtext" mm-inline-text identity) ("text/x-patch" mm-display-patch-inline identity) ("text/x-diff" mm-display-patch-inline identity) ("application/x-patch" mm-display-patch-inline identity) ("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) ("application/javascript" mm-display-javascript-inline identity) ("text/dns" mm-display-dns-inline identity) ("text/x-org" mm-display-org-inline identity) "text/html" mm-inline-text-html #[257 "\207" [mm-text-html-renderer] 2 "\n\n(fn HANDLE)"] "text/x-vcard" mm-inline-text-vcard #[257 "\300\301!\206	\302\303!\207" [featurep vcard locate-library "vcard"] 3 "\n\n(fn HANDLE)"] ("text/calendar" gnus-icalendar-mm-inline identity) ("message/delivery-status" mm-inline-text identity) ("message/rfc822" mm-inline-message identity) ("message/partial" mm-inline-partial identity) ("message/external-body" mm-inline-external-body identity) ("text/.*" mm-inline-text identity) ("application/x-.?tar\\(-.*\\)?" mm-archive-dissect-and-inline identity) ("application/zip" mm-archive-dissect-and-inline identity) ("application/pgp-signature" ignore identity) ("application/x-pkcs7-signature" ignore identity) ("application/pkcs7-signature" ignore identity) ("application/x-pkcs7-mime" ignore identity) ("application/pkcs7-mime" ignore identity) ("multipart/alternative" ignore identity) ("multipart/mixed" ignore identity) ("multipart/related" ignore identity) "image/.*" #[257 "\300\301!\205B\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313 \210\314!\210\3151.\316\317 \301\320#0\2020\210\321\211\205=A\322C\240\210\323!\262*\262\207" [mm-valid-image-format-p imagemagick generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte mm-insert-part (error) create-image buffer-string data-p nil "image/imagemagick" mm-image-fit-p] 8 "\n\n(fn HANDLE)"] (("audio/.*" ignore ignore) ("image/.*" ignore ignore) (".*" mm-inline-text mm-readable-p))] 45] "Alist of media types/tests saying whether types can be displayed inline." (repeat (list (regexp :tag "MIME type") (function :tag "Display function") (function :tag "Display test"))) mm-inlined-types #[0 "\300\207" [("image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/x-patch" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/x-gtar-compressed" "application/x-tar" "application/zip" "application/pgp")] 1] "List of media types that are to be displayed inline.\nSee also `mm-inline-media-tests', which says how to display a media\ntype inline." (repeat regexp) mm-keep-viewer-alive-types #[0 "\300\207" [("application/postscript" "application/msword" "application/vnd.ms-excel" "application/pdf" "application/x-dvi" "application/vnd.*")] 1] "Media types for viewers not to be killed when selecting a different article.\nInstead the viewers will be killed on Gnus exit instead.  This is\na list of regexps." (repeat regexp) mm-automatic-display #[0 "\300\207" [("text/plain" "text/enriched" "text/richtext" "text/html" "text/x-verbatim" "text/calendar" "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "text/dns" "application/pgp-signature" "application/emacs-lisp" "application/x-emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp\\'" "text/x-org")] 1] "A list of MIME types to be displayed automatically." (repeat regexp) mm-attachment-override-types #[0 "\300\207" [("text/x-vcard" "application/pkcs7-mime" "application/x-pkcs7-mime" "application/pkcs7-signature" "application/x-pkcs7-signature")] 1] "Types to have \"attachment\" ignored if they can be displayed inline." (repeat regexp) mm-inline-override-types #[0 "\300\207" [nil] 1] "Types to be treated as attachments even if they can be displayed inline." (repeat regexp) mm-automatic-external-display #[0 "\300\207" [nil] 1] "List of MIME type regexps that will be displayed externally automatically." (repeat regexp) mm-discouraged-alternatives #[0 "\300\207" [nil] 1] "List of MIME types that are discouraged when viewing multipart/alternative.\nViewing agents are supposed to view the last possible part of a message,\nas that is supposed to be the richest.  However, users may prefer other\ntypes instead, and this list says what types are most unwanted.  If,\nfor instance, text/html parts are very unwanted, and text/richtext are\nsomewhat unwanted, then the value of this variable should be set\nto:\n\n (\"text/html\" \"text/richtext\")\n\nAdding \"image/.*\" might also be useful.  Spammers use it as the\npreferred part of multipart/alternative messages.  See also\n`gnus-buttonized-mime-types', to which adding \"multipart/alternative\"\nenables you to choose manually one of two types those mails include." (repeat regexp) mm-tmp-directory #[0 "\207" [temporary-file-directory] 1] "Where mm will store its temporary files." directory mm-inline-large-images #[0 "\300\207" [resize] 1] "If nil, images larger than the window aren't displayed in the buffer.\nIf `resize', try to resize the images so they fit in the buffer.\nIf t, show the images as they are without resizing." (radio (const :tag "Inline large images as they are." t) (const :tag "Resize large images." resize) (const :tag "Do not inline large images." nil)) mm-file-name-rewrite-functions #[0 "\300\207" [(mm-file-name-delete-control mm-file-name-delete-gotchas)] 1] "List of functions used for rewriting file names of MIME parts.\nEach function takes a file name as input and returns a file name.\n\nReady-made functions include `mm-file-name-delete-control',\n`mm-file-name-delete-gotchas' (you should not remove these two\nfunctions), `mm-file-name-delete-whitespace',\n`mm-file-name-trim-whitespace', `mm-file-name-collapse-whitespace',\n`mm-file-name-replace-whitespace', `capitalize', `downcase',\n`upcase', and `upcase-initials'." (list (set :inline t (const mm-file-name-delete-control) (const mm-file-name-delete-gotchas) (const mm-file-name-delete-whitespace) (const mm-file-name-trim-whitespace) (const mm-file-name-collapse-whitespace) (const mm-file-name-replace-whitespace) (const capitalize) (const downcase) (const upcase) (const upcase-initials) (repeat :inline t :tag "Function" function))) "23.1" mm-path-name-rewrite-functions #[0 "\300\207" [nil] 1] "List of functions for rewriting the full file names of MIME parts.\nThis is used when viewing parts externally, and is meant for\ntransforming the absolute name so that non-compliant programs can find\nthe file where it's saved.\n\nEach function takes a file name as input and returns a file name." (repeat function)] 10)
#@68 String used for replacing whitespace characters; default is `"_"'.
(defvar mm-file-name-replace-whitespace nil (#$ . 16259))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\315\316\306\317\310\311&	\210\300\320\302\303\321DD\322\315\316\306\323\310\311&	\207" [custom-declare-variable mm-default-directory funcall function #[0 "\300\207" [nil] 1] "The default directory where mm will save files.\nIf not set, `default-directory' will be used." :type (choice directory (const :tag "Default" nil)) :group mime-display mm-attachment-file-modes #[0 "\300\207" [384] 1] "Set the mode bits of saved attachments to this integer." :version "22.1" integer mm-external-terminal-program #[0 "\300\207" [#1="xterm"] 1 #1#] "The program to start an external terminal." string] 10)
(defvar mm-last-shell-command "")
(defvar mm-content-id-alist nil)
(defvar mm-postponed-undisplay-list nil)
(defvar mm-inhibit-auto-detect-attachment nil)
#@50 List of temporary files scheduled to be deleted.
(defvar mm-temp-files-to-be-deleted nil (#$ . 17227))
#@129 Name of a file that caches a list of temporary files to be deleted.
The file will be saved in the directory `mm-tmp-directory'.
(defvar mm-temp-files-cache-file (byte-code "\300\301 P\207" [".mm-temp-files-" user-login-name] 2) (#$ . 17337))
(defvar mm-dissect-default-type "text/plain")
(byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\305\"\210\300\306\305\"\207" [autoload mml2015-verify "mml2015" mml2015-verify-test mml-smime-verify "mml-smime" mml-smime-verify-test] 3)
(defvar mm-verify-function-alist '(("application/pgp-signature" mml2015-verify "PGP" mml2015-verify-test) ("application/x-gnus-pgp-signature" mm-uu-pgp-signed-extract-1 "PGP" mm-uu-pgp-signed-test) ("application/pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test) ("application/x-pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test)))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\314\315\316\"\210\314\317\316\"\207" [custom-declare-variable mm-verify-option funcall function #[0 "\300\207" [never] 1] "Option of verifying signed parts.\n`never', not verify; `always', always verify;\n`known', only verify known protocols.  Otherwise, ask user.\n\nWhen set to `always' or `known', you should add\n\"multipart/signed\" to `gnus-buttonized-mime-types' to see\nresult of the verification." :version "22.1" :type (choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group mime-security autoload mml2015-decrypt "mml2015" mml2015-decrypt-test] 10)
(defvar mm-decrypt-function-alist '(("application/pgp-encrypted" mml2015-decrypt "PGP" mml2015-decrypt-test) ("application/x-gnus-pgp-encrypted" mm-uu-pgp-encrypted-extract-1 "PGP" mm-uu-pgp-encrypted-test)))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable mm-decrypt-option funcall function #[0 "\300\207" [nil] 1] "Option of decrypting encrypted parts.\n`never', not decrypt; `always', always decrypt;\n`known', only decrypt known protocols.  Otherwise, ask user." :version "22.1" :type (choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group mime-security] 10)
#@42 Keymap for input viewer with completion.
(defvar mm-viewer-completion-map (byte-code "\301\302!\303\"\210\304\305\306#\210\211\207" [minibuffer-local-completion-map make-sparse-keymap mm-viewer-completion-map set-keymap-parent define-key " " self-insert-command] 5) (#$ . 19529))
#@212 Convert association list ALIST into the equivalent property-list form.
The plist is returned.  This converts from

((a . 1) (b . 2) (c . 3))

into

(a 1 b 2 c 3)

The original alist is not modified.

(fn ALIST)
(defalias 'mm-alist-to-plist #[257 "\300\203@\211A@BB\266\202A\262\202\211\237\207" [nil] 6 (#$ . 19819)])
#@72 Say whether external viewer for HANDLE should stay alive.

(fn HANDLE)
(defalias 'mm-keep-viewer-alive-p #[257 "\211@;\203\211@\262\202\211A@@\262\301\30226\211A\262\242\211\262\2055\303\"\203\304\302\305\"\210\2020\207" [mm-keep-viewer-alive-types nil found string-match throw t] 7 (#$ . 20153)])
#@143 Set the undisplayer for HANDLE to FUNCTION.
Postpone undisplaying of viewers for types in
`mm-keep-viewer-alive-types'.

(fn HANDLE FUNCTION)
(defalias 'mm-handle-set-external-undisplayer #[514 "\301!\203\302!\303\233\240\210\303\233\304\240\210\211B\211\207\303\233\240\207" [mm-postponed-undisplay-list mm-keep-viewer-alive-p copy-sequence 3 nil] 5 (#$ . 20477)])
(defalias 'mm-destroy-postponed-undisplay-list #[0 "\205\301\302!\210\303!\207" [mm-postponed-undisplay-list message "Destroying external MIME viewers" mm-destroy-parts] 2])
#@224 Delete temporary files and those parent directories.
Note that the deletion may fail if a program is catching hold of a file
under Windows or Cygwin.  In that case, it schedules the deletion of
files left at the next time.
(defalias 'mm-temp-files-delete #[0 "\306\f\"\307!\2051\310\311!r\211q\210\312\313\314\315\316!\317\"\320$\216\321 \210\322!\210\323\324 \325\326#*\262\327\330
\"\211\203\233\211@\307!\203\224\331!\203^\3321S\333!0\202W\210\202X\210\307!\202\214\3341i\335!0\202m\210\202n\210\307!\204\217\336!\262\3371\204\333!0\202\210\210\202\211\210\307!\203\224\211B\262A\266\202\2026\210\211\203\267\340\341\342\237\325#\325P\327\327\343%\210\344\345\"\210\202\315\307!\203\315\3461\310\335!0\202\314\210\202\315\210\327\211*\207" [mm-universal-coding-system coding-system-for-read coding-system-for-write mm-temp-files-cache-file mm-tmp-directory mm-temp-files-to-be-deleted expand-file-name file-exists-p generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-enable-multibyte insert-file-contents split-string buffer-string "\n" t nil append file-directory-p (error) delete-directory (error) delete-file file-name-directory (error) write-region mapconcat identity silent set-file-modes 384 (error)] 9 (#$ . 21039)])
(autoload 'message-fetch-field "message")
#@204 Dissect the current buffer and return a list of MIME handles.
If NO-STRICT-MIME, don't require the message to have a
MIME-Version header before proceeding.

(fn &optional NO-STRICT-MIME LOOSE-MIME FROM)
(defalias 'mm-dissect-buffer #[768 "\212\303\211\211\211\211\211\211\211\211\214\304 \210\204\n\204\305\306!\203x\305\307!\262	\205,\310	!\262\305\311!\262\305\312!\206L\205L\313	@\"A@\314=\205L\315\262\316\317!\262\305\320!\262	\204b\305\321!\262\n	\203o\322\n!A@\262\n\203x\323!\262)\203\207\324\325	@\"\204\247\326	C\205\226\327\330!\227!\205\241\331!%\202J\332@\325\"\262A@\262@\262\333\232\203\n\334\232\203\313\335\202\314\336\337	A\236A\340\341@G\342
A!
@$\210\340\341@G\343\344 \345\337\257
@$\210	@\346\")B\266\202\2020\347\326	\205\327\330	!\227!\205%\331	!&	\f#\262\203I\324\350\"\203C\351\352\"\262B\nB\211\266\211)\207" [mm-inline-media-tests mm-dissect-default-type mm-content-id-alist nil mail-narrow-to-head mail-fetch-field "mime-version" "content-type" mail-header-parse-content-type "content-transfer-encoding" "content-disposition" mm-assoc-string-match mm-inline-text "inline" message-fetch-field "content-description" "content-id" "from" mail-extract-address-components mail-decode-encoded-word-string string-match "/" mm-dissect-singlepart intern mail-header-strip-cte mail-header-parse-content-disposition split-string "multipart" "digest" "message/rfc822" "text/plain" start add-text-properties 0 mm-alist-to-plist buffer mm-copy-to-buffer from mm-dissect-multipart mm-possibly-verify-or-decrypt " *<\\(.*\\)> *" match-string 1] 23 (#$ . 22440)])
#@51 

(fn CTL CTE &optional FORCE CDL DESCRIPTION ID)
(defalias 'mm-dissect-singlepart #[1538 "\204@\301\232\203\302\303\"\202\304\205w\305A\236A\204C@\306\232\203C\211\203C\307\310\"\203C\311\312\313\"!\211\203B\240\210\210\210\314 \315\315\257\302@\316 \"\211\203t\211A@\203t\317AA@!\203t\320!\202u\266\202\207" [mm-inhibit-auto-detect-attachment "text/plain" assoc format t filename "application/octet-stream" string-match "\\.\\([^.]+\\)$" mailcap-extension-to-mime match-string 1 mm-copy-to-buffer nil mm-archive-decoders executable-find mm-dissect-archive] 14 (#$ . 24139)])
#@17 

(fn CTL FROM)
(defalias 'mm-dissect-multipart #[514 "eb\210\301\302\303\"P\304!\305P\306\211\212db\210\307\306\310#\203!\311\224\202\"d)@\312\232\304!\313P\262`W\203j\314\310#\203j\311\224b\210\203X\212\214`}\210\315\310\306#C\244\262*\316\210\317!\204d\320y\210`\262\2020\203\206W\203\206\212\214}\210\315\310\306#C\244\262*\321\237#)\207" [mm-inhibit-auto-detect-attachment "\n--" mail-content-type-get boundary regexp-quote "--[ 	]*$" nil re-search-backward t 0 "multipart/encrypted" "[ 	]*$" re-search-forward mm-dissect-buffer 2 looking-at 1 mm-possibly-verify-or-decrypt] 11 (#$ . 24767)])
#@60 Copy the contents of the current buffer to a fresh buffer.
(defalias 'mm-copy-to-buffer #[0 "p\301eb\210\302\303\301\304#\210`\262r\305\306!q\210\307!\210\310\"\210p)\207" [enable-multibyte-characters nil search-forward-regexp "^\n" move generate-new-buffer " *mm*" set-buffer-multibyte insert-buffer-substring] 7 (#$ . 25414)])
#@15 

(fn HANDLE)
(defalias 'mm-display-parts #[257 "\211@;\203\f\300\301A\"\207\302@!\203 \214``}\210\303!\210db)\207\300\301\"\207" [mapcar mm-display-parts bufferp mm-display-part] 4 (#$ . 25754)])
(byte-code "\300\301\302\"\210\300\303\302\"\207" [autoload mailcap-parse-mailcaps "mailcap" mailcap-mime-info] 3)
#@73 Return non-nil if point is in the article header.

(fn &optional POINT)
(defalias 'mm-head-p #[256 "\211\206`\212\211b\210\300\301\302\303#?\205\304\301\302\303#)\207" [re-search-backward "^$" nil t re-search-forward] 6 (#$ . 26078)])
#@182 Display the MIME part represented by HANDLE.
Returns nil if the part is removed; inline if displayed inline;
external if displayed external.

(fn HANDLE &optional NO-DEFAULT FORCE)
(defalias 'mm-display-part #[769 "\212\301 \210\211\204\302!\203\303!\202(\211@;\203\"\211@\262\202(\211A@@\262\304\232\203=\3058\2047\306!\210\3058\202>\211\211@;\203L\211@\262\202R\211A@@\262\307!\310\3118\312\"\206j\310A@\313\"\206j\314\315A@@\316 \"\211\203\212\317AA@!\203\212\320	!\210\321\202&\322!\203\267\323!\203\267\203\256\324 \203\253\325\326\327\330#\210\202\256\331y\210\332	!\210\321\202&\204\301?\205&\204\337\333\334\"@\335\232\203\337\331y\210\336	\337!\"\210\321\202&\205\330=\206\340=\205\341\342\343;\203\344\345		\"\346Q\202\347\350	\"\351\260!\262\203!\352	\206\353\"\202&\352	\353\"\266\206)\207" [mm-enable-external mailcap-parse-mailcaps mm-handle-displayed-p mm-remove-part "message/external-body" 6 mm-extern-cache-contents mailcap-mime-info mail-content-type-get 4 filename name "<file>" assoc mm-archive-decoders executable-find mm-archive-dissect-and-inline inline mm-inlinable-p mm-inlined-p mm-head-p re-search-forward "^$" nil t 1 mm-display-inline split-string "/" "text" mm-insert-inline mm-get-part ask y-or-n-p "Display part (" ") " "using external program \"" format "\"" format-message "by calling `%s' on the contents)" "? " mm-display-external mailcap-save-binary-file] 17 (#$ . 26324)])
#@50 Display HANDLE using METHOD.

(fn HANDLE METHOD)
(defalias 'mm-display-external #[514 "\211Cp\306\307!r\211q\210\310\311\312\313\314!\315\"\316$\216\317 \210\320\242!\203\332p\242\321=\2034\306\322!q\210\323\240\210\202Q\324!\210\325!\210\326\327\"\211\203J\330!\210\210\331\306\322!!\210\332 \210\333!\210\334!\210eb\210\242\203j\335\336\242\"\210p\337!\340\341	\211@;\203\200\211@\262\202\206\211A@@\262\327\"\236\310\311\342\313\314
\f	$\343\"\316$\216\242\203\316\344\301!\203\307\345	!\203\307\203\277rq\210\346\347\350\"\327\"\210)\331	!\210\331!\210\242 \202\322\351	!)\266\203\262\202;\324!\210\325!\210\352\353\354\n\"\355\"\356\3578\360\"\206\372\356A@\361\"\341\211@;\203\n\211@\262\202\211A@@\262\327\"\362\363\"\206\362\364\"\362\365\"\323C\323C\366\367\"\210\203@\353\370\371\n!\"	\"\240\210\202\204\362\372\"A\211\203Z\373\374\"\203Z\375\376\"\262\202u\377
\211@;\203j\211@\262\202p\211A@@\262\f\"@\262\352\353\201F\"\323#\240\266\201Ged\242\323\201H%\210)\366\242\201I\"\210\335\336\242\"\210\203l\201J\n\242\242A@#\310\311\201K\313\314#\201L\"\357$\216@\203\201M\201N\201O\323A\201PBC&\310\201Q\201R\313\314	!\201S\"\201T\201U%\"\210\202]\201V\201W!\210\201V\201X!\210\201Y\201ZB\323C%\240q\210\201[ \210\201\\ \210\201M\201]\242!D\310\201Q\201^\313\314\n\"\201_\"\201`\201U%\262\"\210\201a\201b!\210)\335\201c\"\266\201d\2029\203\314rq\210\376y\210\201e\f\310\311\201f\313\314\"\201g\"\201h$\216\201iB\323\306\322!\240\323C\201J\242\242A@#&\210\345\242!\205\302r\242q\210\201j ))\"\210)\201k\2029\201J\n\242\242A@#\310\311\201K\313\314#\201l\"\357$\216\323E\201N\201O\306\322!\240BC%\210\201M\201]\242!\310\201Q\201m\313\314%\201n\"\201T\201U%\"\210*\335\201c\"\266\201d\266\207*\262\262\207" [mm-binary-coding-system gnus-summary-buffer mm-tmp-directory mm-file-name-rewrite-functions mailcap-mime-extensions coding-system-for-write generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte functionp mailcap-save-binary-file " *mm*" nil mm-insert-part mm-add-meta-html-tag get-buffer-window t select-window switch-to-buffer buffer-disable-undo set-buffer-file-coding-system insert-buffer-substring message "Viewing with %s" mm-handle-filename non-viewer mailcap-mime-info "\303?\205\301\242\205\304\300\233\302\240\207" [3] boundp buffer-live-p rename-buffer format "*mm* %s" mm-save-part make-temp-file expand-file-name "emm." dir mail-content-type-get 4 filename name assoc "needsterm" "needsterminal" "copiousoutput" set-file-modes 448 gnus-map-function file-name-nondirectory "nametemplate" string-match "\\`%s\\(\\..+\\)\\'" match-string 1 rassoc window-system mm-external-terminal-program shell-file-name shell-command-switch gnus-current-window-configuration process-connection-type "mm." write-region nomesg 256 mm-mailcap-command "\304\300\301\242\302\242B\"\210\301\242\235\203\207\305\301\242C\"\211\207" [mm-temp-files-to-be-deleted mm-handle-set-external-undisplayer append] set-process-sentinel start-process "*display*" "-e" 514 "\301!\302=\205\303\304\305\306\307\310\311\312\300!\313\"\314$#\207" [process-status exit run-at-time 60.0 nil make-byte-code 0 "\3011\f\302\300\242!0\202\210\202\210\3031\304\305\300\242!!0\207\210\306\207" vconcat vector [(error) delete-file (error) delete-directory file-name-directory nil] 3] 11 "\n\n(fn PROCESS STATE)" require term gnus-win make-term "display" term-mode term-char-mode get-buffer-process "\302!\303=\205/\3041\305\300\242!0\202\210\202\210\3061'\307\310\300\242!!0\202+\210\202,\210\311\301!\207" [process-status exit (error) delete-file (error) delete-directory file-name-directory gnus-configure-windows] 5 gnus-configure-windows display-term "Displaying %s..." external mm-insert-inline "\3021\f\303\300\242!0\202\210\202\210\3041\305\306\300\242!!0\202#\210\202$\210\3071.\310\301\242!0\207\210\311\207" [(error) delete-file (error) delete-directory file-name-directory (error) kill-buffer nil] 3 call-process buffer-string inline [mm-temp-files-to-be-deleted mm-handle-set-external-undisplayer append] "\306!\307=\203Q\310\311\312\313\314\315\316\317\302!\320\"\321$#\210\322\301!\203Er\301q\210\312`\323y\210`\324\300r\303\242q\210\325 )\"\210\326`\327\330$\266\211b\210)\266)\322\303\242!\203Q\331\303\242!\210\332\333\304\"\207" [buffer-read-only process-status exit run-at-time 60.0 nil make-byte-code 0 "\3011\f\302\300\242!0\202\210\202\210\3031\304\305\300\242!!0\207\210\306\207" vconcat vector [(error) delete-file (error) delete-directory file-name-directory nil] 3 buffer-live-p 2 mm-insert-inline buffer-string put-text-property face mm-command-output kill-buffer message "Displaying %s...done"]] 25 (#$ . 27836)])
#@30 

(fn METHOD FILE TYPE-LIST)
(defalias 'mm-mailcap-command #[771 "\211A\301\302\303\211\211\304\305\n#\203\206\306	\301\224#B\262\301\225\262\307\301\n\"\262\307\310\n\"\262\211\311\230\203=\312B\262\202\211\313\230\204O\211\314\230\204O\211\315\230\203`\303\262\316\317\n\"!B\262\202\211\320\230\203r\316@!B\262\202\316\321!\236A\206~\322!B\262\202\306	G#B\262\203\247\323B\262\316\317\n\"!B\262\324\325\237\322#\207" [mm-path-name-rewrite-functions 0 t nil string-match "%{\\([^}]+\\)}\\|'%s'\\|\"%s\"\\|%s\\|%t\\|%%" substring match-string 1 "%%" "%" "%s" "'%s'" "\"%s\"" shell-quote-argument gnus-map-function "%t" intern "" "<" mapconcat identity] 13 (#$ . 32850)])
#@71 Remove the displayed MIME parts represented by HANDLES.

(fn HANDLES)
(defalias 'mm-remove-parts #[257 "\211<\203\300@!\203\301!\207\302\211A\262\242\211\262\205Q\211;\2037\303\304\305\306#!\203\307\304\305\306#!\210\202\211<\203J\211@;\203J\310A!\210\202\301!\210\202\207" [bufferp mm-remove-part nil buffer-live-p get-text-property 0 buffer kill-buffer mm-remove-parts] 7 (#$ . 33587)])
#@72 Destroy the displayed MIME parts represented by HANDLES.

(fn HANDLES)
(defalias 'mm-destroy-parts #[257 "\211<\203\300@!\203\301!\207\302\211A\262\242\211\262\205P\211;\2037\303\304\305\306#!\203\307\304\305\306#!\210\202\211<\203I\211@;\203I\310!\210\202\301!\210\202\207" [bufferp mm-destroy-part nil buffer-live-p get-text-property 0 buffer kill-buffer mm-destroy-parts] 7 (#$ . 34007)])
#@68 Remove the displayed MIME part represented by HANDLE.

(fn HANDLE)
(defalias 'mm-remove-part #[257 "\211<\205\257\3008\3011\243\302!\204\211<\203#\211@\303=\203#\211 \202\237\211:\203\226\3041S\3051N\306A!\205I\307\306A!!\210\310\311!\210\312\313!\210\202000\202W0\210\202X\210\202X\210\3141i\211A\205e\315A!0\202m\210\202n\210\310\316!\210\3171~\320@!0\202\202\210\202\203\210\3211\221\322\323@!!0\202\237\210\324\202\237\325!\205\237\315!0\202\247\210\202\250\210\300\233\324\240\262\207" [3 (error) functionp lambda (error) (quit) get-buffer-process interrupt-process message "Waiting for external displayer to die..." sit-for 1 (error) kill-buffer "Waiting for external displayer to die...done" (error) delete-file (error) delete-directory file-name-directory nil buffer-live-p] 5 (#$ . 34430)])
#@15 

(fn HANDLE)
(defalias 'mm-display-inline #[257 "\211\211@;\203\211@\262\202\211A@@\262\301\"A@\211!\210eb\207" [mm-inline-media-tests mm-assoc-string-match] 5 (#$ . 35275)])
#@19 

(fn ALIST TYPE)
(defalias 'mm-assoc-string-match #[514 "\3002\"\211\205\211@\301@\"\203\302\300\"\210A\266\202\202\2620\207" [--cl-block-nil-- string-match throw] 7 (#$ . 35466)])
#@79 Say whether the user wants HANDLE to be displayed automatically.

(fn HANDLE)
(defalias 'mm-automatic-display-p #[257 "\211@;\203\211@\262\202\211A@@\262\301\211\211A\262\242\211\262\2039\302!\204\303\"\203\304\262\301\262\202\207" [mm-automatic-display nil mm-inline-override-p string-match t] 8 (#$ . 35667)])
#@150 Say whether HANDLE can be displayed inline.
TYPE is the mime-type of the object; it defaults to the one given
in HANDLE.

(fn HANDLE &optional TYPE)
(defalias 'mm-inlinable-p #[513 "\211\204\211@;\203\211@\262\202\211A@@\262\262\301\203A\302@@\"\2038@AA@\262\301\262\211!\262\211A\262\210\202\207" [mm-inline-media-tests nil string-match] 7 (#$ . 36009)])
#@72 Say whether the user wants HANDLE to be displayed inline.

(fn HANDLE)
(defalias 'mm-inlined-p #[257 "\211@;\203\211@\262\202\211A@@\262\301\211\211A\262\242\211\262\2039\302!\204\303\"\203\304\262\301\262\202\207" [mm-inlined-types nil mm-inline-override-p string-match t] 8 (#$ . 36396)])
#@77 Say whether HANDLE should have attachment behavior overridden.

(fn HANDLE)
(defalias 'mm-attachment-override-p #[257 "\211@;\203\211@\262\202\211A@@\262\301\3022<\211A\262\242\211\262\205;\303\"\203\304!\203\305\302\306\"\210\2020\207" [mm-attachment-override-types nil found string-match mm-inlinable-p throw t] 7 (#$ . 36716)])
#@73 Say whether HANDLE should have inline behavior overridden.

(fn HANDLE)
(defalias 'mm-inline-override-p #[257 "\211@;\203\211@\262\202\211A@@\262\301\30226\211A\262\242\211\262\2055\303\"\203\304\302\305\"\210\2020\207" [mm-inline-override-types nil found string-match throw t] 7 (#$ . 37075)])
#@53 Return the user-defined method for TYPE.

(fn TYPE)
(defalias 'mm-automatic-external-display-p #[257 "\301\211\211A\262\242\211\262\203\302\"\203\303\262\301\262\202\207" [mm-automatic-external-display nil string-match t] 7 (#$ . 37395)])
#@63 Destroy the data structures connected to HANDLE.

(fn HANDLE)
(defalias 'mm-destroy-part #[257 "\211<\205\300!\210\301@!\205\302@!\207" [mm-remove-part buffer-live-p kill-buffer] 3 (#$ . 37654)])
#@54 Say whether HANDLE is displayed or not.

(fn HANDLE)
(defalias 'mm-handle-displayed-p #[257 "\3008\207" [3] 3 (#$ . 37863)])
#@90 Run FORMS in the temp buffer containing the contents of HANDLE.

(fn HANDLE &rest FORMS)
(defalias 'mm-with-part '(macro . #[385 "\300\301DC\302\303\304\305\306\307BBBBEE\207" [let* handle when (and (mm-handle-buffer handle) (buffer-name (mm-handle-buffer handle))) with-temp-buffer (mm-disable-multibyte) (insert-buffer-substring (mm-handle-buffer handle)) (mm-decode-content-transfer-encoding (mm-handle-encoding handle) (mm-handle-media-type handle))] 11 (#$ . 37995)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put mm-with-part lisp-indent-function 1 edebug-form-spec (body)] 4)
#@161 Return the contents of HANDLE as a string.
If NO-CACHE is non-nil, cached contents of a message/external-body part
are ignored.

(fn HANDLE &optional NO-CACHE)
(defalias 'mm-get-part #[513 "\211\2042\211@;\203\211@\262\202\211A@@\262\300\232\2032\3018\204'\302!\210r\3018@q\210\303 )\207\211@\205y\304@!\205y\305\306!r\211q\210\307\310\311\312\313!\314\"\315$\216\316 \210\317@!\210\320\3158\211@;\203l\211@\262\202r\211A@@\262\"\210\303 *\262\207" ["message/external-body" 6 mm-extern-cache-contents buffer-string buffer-name generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte insert-buffer-substring mm-decode-content-transfer-encoding] 10 (#$ . 38604)])
#@171 Insert the contents of HANDLE in the current buffer.
If NO-CACHE is non-nil, cached contents of a message/external-body part
are ignored.

(fn HANDLE &optional NO-CACHE)
(defalias 'mm-insert-part #[513 "\300A@\301\"\302=\203r@q\210\303 )\202\304\"\214~\210`\305e`S]\306\"\307=\203<\305\310\306#\307=\203<\311\261\210\202?c\210b)\207" [mail-content-type-get charset gnus-decoded buffer-string mm-get-part get-char-property face mm-uu-extract 0 "\n"] 8 (#$ . 39385)])
#@66 Remove all whitespace characters from FILE-NAME.

(fn FILE-NAME)
(defalias 'mm-file-name-delete-whitespace #[257 "\300\301\"\203\302\303\304\211$\262\202\207" [string-match "\\s-+" replace-match "" t] 6 (#$ . 39872)])
#@83 Remove leading and trailing whitespace characters from FILE-NAME.

(fn FILE-NAME)
(defalias 'mm-file-name-trim-whitespace #[257 "\300\301\"\203\302\303\225\"\262\300\304\"\203\302\303\211\224#\262\207" [string-match "\\`\\s-+" substring 0 "\\s-+\\'"] 5 (#$ . 40103)])
#@71 Collapse multiple whitespace characters in FILE-NAME.

(fn FILE-NAME)
(defalias 'mm-file-name-collapse-whitespace #[257 "\300\301\"\203\302\303\304\211$\262\202\207" [string-match "\\s-\\s-+" replace-match " " t] 6 (#$ . 40387)])
#@179 Replace whitespace characters in FILE-NAME with underscores.
Set the option `mm-file-name-replace-whitespace' to any other
string if you do not like underscores.

(fn FILE-NAME)
(defalias 'mm-file-name-replace-whitespace #[257 "\206\301\302\303\"\203\304\305\211$\262\202\210\207" [mm-file-name-replace-whitespace "_" string-match "\\s-" replace-match t] 7 (#$ . 40631)])
#@57 Delete control characters from FILENAME.

(fn FILENAME)
(defalias 'mm-file-name-delete-control #[257 "\300\301\302#\207" [replace-regexp-in-string "[-]" ""] 5 (#$ . 41020)])
#@52 Delete shell gotchas from FILENAME.

(fn FILENAME)
(defalias 'mm-file-name-delete-gotchas #[257 "\300\301\302#\262\300\303\302#\207" [replace-regexp-in-string "[<>|]" "" "^[.-]+"] 5 (#$ . 41204)])
#@122 Write HANDLE to a file.
PROMPT overrides the default one used to ask user for a file name.

(fn HANDLE &optional PROMPT)
(defalias 'mm-save-part #[513 "\303\3048\305\"\206\303A@\306\"\307\211\203\310\311!\"\262\312\2062\313\314\2030\313\315\"\2021\316\"\206;	\206;\n\317\206B\316\206K	\206K\n\"#\262\203Y\316\232\203`\320\321!\210\202q\322!\203{\204{\262\320\323!\210\324\325!\210\326 \210\202\322!\203\212\317\"\262\202\224\317	\206\221\n\"\262\327!\330!\203\247\331\313\332\"!\205\255\333\"\210\207" [mm-file-name-rewrite-functions mm-default-directory default-directory mail-content-type-get 4 filename name nil gnus-map-function file-name-nondirectory read-file-name format "Save MIME part to%s: " " (default %s)" "" expand-file-name message "Please enter a file name" file-directory-p "Please enter a non-directory file name" sit-for 2 discard-input file-name-directory file-exists-p yes-or-no-p "File %s already exists; overwrite? " mm-save-part-to-file] 11 (#$ . 41411)])
#@301 Add meta html tag to specify CHARSET of HANDLE in the current buffer.
CHARSET defaults to the one HANDLE specifies.  Existing meta tag that
specifies charset will not be modified unless FORCE-CHARSET is non-nil.
Return t if meta tag is added or replaced.

(fn HANDLE &optional CHARSET FORCE-CHARSET)
(defalias 'mm-add-meta-html-tag #[769 "\211@;\203\211@\262\202\211A@@\262\301\232\205m\204)\302A@\303\"\211\262\205m\304\305\"\262\306eb\210\307\310\311\306#\203O\211?\205C\312\224?\205l\313!\210\306\202l\307\314\311\306#\203_\315\261\210\202k\307\316\311\306#\210\317\320\261\210\306)\207" [case-fold-search "text/html" mail-content-type-get charset format "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">" t re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']?text/html\\(?:;\\s-*charset=\\([^	\n
 \"'>]+\\)\\)?[^>]*>" nil 1 replace-match "<head>\\s-*" "\n" "<html\\(?:\\s-+[^>]+\\|\\s-*\\)>\\s-*" "<head>\n" "\n</head>\n"] 7 (#$ . 42455)])
#@20 

(fn HANDLE FILE)
(defalias 'mm-save-part-to-file #[514 "\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312 \210\313!\210\314!\210\315 \316!\210\303\304\317\306\307!\320\"\311$\216\321ed\322\211\211\323\324&)\262*\207" [mm-attachment-file-modes generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte mm-insert-part mm-add-meta-html-tag default-file-modes set-default-file-modes "\301\300!\207" [set-default-file-modes] mm-write-region nil binary t] 13 (#$ . 43483)])
#@78 Pipe HANDLE to a process.
Use CMD as the process.

(fn HANDLE &optional CMD)
(defalias 'mm-pipe-part #[513 "\211\206\302\303\"\304\305!r\211q\210\306\307\310\311\312!\313\"\314$\216\315 \210\316!\210\317!\210\320\321ed\322$+\262\207" [mm-last-shell-command coding-system-for-write read-shell-command "Shell command on MIME part: " generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte mm-insert-part mm-add-meta-html-tag binary shell-command-on-region nil] 10 (#$ . 44061)])
(autoload 'gnus-completing-read "gnus-util")
#@43 Display HANDLE using METHOD.

(fn HANDLE)
(defalias 'mm-interactively-view-part #[257 "\211\211@;\203\211@\262\202\211A@@\262\302\303\304\305\"\"\306\307\")\211\310\230\203,\311\312!\210\313\314\"\2038\211\315P\262\316\"\207" [mm-viewer-completion-map minibuffer-local-completion-map mapcar #[257 "\300\301\"A\207" [assoc viewer] 4 "\n\n(fn I)"] mailcap-mime-info all completing-read "Viewer: " "" error "No method given" string-match "^[^% 	]+$" " %s" mm-display-external] 7 (#$ . 44684)])
#@71 Say which of HANDLES are preferred.

(fn HANDLES &optional PREFERRED)
(defalias 'mm-preferred-alternative #[513 "\211\203	\211C\202\f\300!\301\211\211\211\211\211A\262\242\211\262\203r\262\203@\262\211\211@;\2037\211@\262\202=\211A@@\262\262\232\203i\302!\203i\211@;\204`\3038\203`\3038@\304\232\203i\211\262\301\262\301\262\211A\262\210\202!\207" [mm-preferred-alternative-precedence nil mm-automatic-display-p 4 "inline"] 10 (#$ . 45198)])
#@89 Return the precedence based on HANDLES and `mm-discouraged-alternatives'.

(fn HANDLES)
(defalias 'mm-preferred-alternative-precedence #[257 "\301!\262\301!\211\203J\211@\302!\211\203B\211@\303\211@;\203'\211@\262\202-\211A@@\262\"\203;\304\"C\244\262A\266\202\202\210A\266\202\202\210\302!\211\203|\211@\305@!\203ur\211@q\210eb\210\306\307\310\311#)\204u\304\"C\244\262A\266\202\202N\210\312\313\"\207" [mm-discouraged-alternatives reverse copy-sequence string-match delete bufferp re-search-forward "[^ 	\n]" nil t mapcar mm-handle-media-type] 9 (#$ . 45683)])
#@50 Return the handle(s) referred to by ID.

(fn ID)
(defalias 'mm-get-content-id #[257 "\301\"A\207" [mm-content-id-alist assoc] 4 (#$ . 46288)])
#@169 Alist of (REGEXP . IMAGE-TYPE) pairs used to auto-detect image types.
When the first bytes of an image file match REGEXP, it is assumed to
be of image type IMAGE-TYPE.
(defconst mm-image-type-regexps '(("/\\*.*XPM.\\*/" . xpm) ("P[1-6]" . pbm) ("GIF8" . gif) ("\377\330" . jpeg) ("\211PNG
\n" . png) ("#define" . xbm) ("\\(MM\\*\\)\\|\\(II\\*\\)" . tiff) ("%!PS" . postscript)) (#$ . 46440))
#@140 Determine the image type from data in the current buffer.
Value is a symbol specifying the image type or nil if type cannot
be determined.
(defalias 'mm-image-type-from-buffer #[0 "\301eb\210\203%\211\204%@@@A\302!\203\211\262A\262\266\202\207" [mm-image-type-regexps nil looking-at] 6 (#$ . 46841)])
#@56 Return an image instance based on HANDLE.

(fn HANDLE)
(defalias 'mm-get-image #[257 "\211\300\211@;\203\211@\262\202\211A@@\262\301\"A@\262\302\303\267\2023\304\2024\305\2024\306\2024\307\2024\262\3108\206y\311\312!r\211q\210\313\314\315\316\317!\320\"\321$\216\322 \210\323!\210\3241k\325\326 \327 \206e\330!\331#0\202m\210\302\211\262\310\233\240\210*\262\207" [split-string "/" nil #s(hash-table size 4 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("x-pixmap" 35 "x-xbitmap" 39 "x-portable-bitmap" 43 "svg+xml" 47)) "xpm" "xbm" "pbm" "svg" 6 generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte mm-insert-part (error) create-image buffer-string mm-image-type-from-buffer intern data-p] 10 (#$ . 47163)])
#@75 Say whether the image in HANDLE will fit the current window.

(fn HANDLE)
(defalias 'mm-image-fit-p #[257 "\301!\211?\206!\302!\211@A\206\211\303 SX\205\304 X\266\203\207" [mm-inline-large-images mm-get-image image-size window-height window-width] 7 (#$ . 48016)])
#@69 Say whether FORMAT can be displayed natively by Emacs.

(fn FORMAT)
(defalias 'mm-valid-image-format-p #[257 "\300 \205\301!\207" [display-graphic-p image-type-available-p] 3 (#$ . 48297)])
#@94 Say whether FORMAT can be displayed natively and HANDLE fits the window.

(fn FORMAT HANDLE)
(defalias 'mm-valid-and-fit-image-p #[514 "\300!\205	\301!\207" [mm-valid-image-format-p mm-image-fit-p] 4 (#$ . 48496)])
#@159 Search in HANDLES for part with TYPE.
If NOTP, returns first non-matching part.
If RECURSIVE, search recursively.

(fn HANDLES TYPE &optional NOTP RECURSIVE)
(defalias 'mm-find-part-by-type #[1026 "\300\203k\203$@@;\203$\301@A$\211\262\203d\300\262\202d\203C@\211@;\2037\211@\262\202=\211A@@\262\232?\202Z@\211@;\203R\211@\262\202X\211A@@\262\232\203d@\262\300\262A\262\202\211\207" [nil mm-find-part-by-type] 10 (#$ . 48721)])
#@32 

(fn CTL TYPE &optional NOTP)
(defalias 'mm-find-raw-part-by-type #[770 "eb\210\300\301\302\303@#P\304\305!\306Q\307\212db\210\310\307\311#\203$\302\224\202%d)\307\304\305!\312Q\262\211\204{\313\311#\203{\302\224b\210\203r\212\214`S}\210\314\315!\211\205U\316!\203c\211@	\232?\202h\211@	\232\266\202\203q\317 \262*\320y\210`\262\2020\211\204\260\203\260\212\214}\210\314\315!\211\205\223\316!\203\241\211@	\232?\202\246\211@	\232\266\202\203\257\317 \262*\207" ["--" get-text-property 0 boundary "^" regexp-quote "--[ 	]*$" nil re-search-backward t "[ 	]*$" re-search-forward mail-fetch-field "content-type" mail-header-parse-content-type buffer-string 1] 12 (#$ . 49192)])
#@31 

(fn HANDLE PARAMETER VALUE)
(defalias 'mm-set-handle-multipart-parameter #[771 "\205\300\301@G@%\207" [put-text-property 0] 9 (#$ . 49916)])
(put 'mm-set-handle-multipart-parameter 'byte-optimizer 'byte-compile-inline-expand)
(defvar mm-security-handle nil)
#@19 

(fn &rest KEYS)
(defalias 'mm-sec-status #[128 "\211\301\211\211:\2034\262\211A\262\242\262\211@\262\205*\302\303@G@%\266AA\262\202\301\207" [mm-security-handle nil put-text-property 0] 14 (#$ . 50190)])
#@19 

(fn &rest KEYS)
(defalias 'mm-sec-error #[128 "\300\301\302\303\"\"\207" [apply mm-sec-status append (sec-error t)] 6 (#$ . 50425)])
(autoload 'mm-view-pkcs7 "mm-view")
#@33 

(fn PARTS CTL &optional FROM)
(defalias 'mm-possibly-verify-or-decrypt #[770 "@\305@\306\"A@\307\211\211\310\232\204\311\232\203i\312\313!r\211q\210\314\315\316\317\320!\321\"\322$\216	\323\267\202=\202d\202E\202E\324\325\326!!\203d\327\n	\"\203d\214\330 \210\331\332!\204^db\210\333c\210)\334\335!\262\n*\210\202%\336\267\202\316\337\315\340\n@#\211\262\203\202\341\232\203\271\n\211\203\270\342@8\211\262\203\232\n\n\"\203\261\343\n@@\307\335$\203\261\211@@\262\307\262\202\203\211A\262\202\203\210\344\n\"A@\262\345\267\202\346\202%\202\375\203%\342\344\n\"8\211\262\203\375\211		\"\202\372\324\325\346\322\344\n\"8\206\370\325\347\"\"!\203%\212\203
		\"\262	\202\350\351\325\352\"\"\210)\202%\337\315\340\n@#\211\262\204m\211\203l\344@\211@;\203=\211@\262\202C\211A@@\262\f\"\203e\211@\211@;\203W\211@\262\202]\211A@@\262\262\307\262\202)\211A\262\202)\210\344\f\"A@\262	\353\267\202\232\202%\202\261\203%\342\344\f\"8\211\262\203\261\211		\"\202\256\324\325\354\322\344\f\"8\206\254\325\347\"\"!\203%\212\203\301		\"\262	\202\312\350\351\325\355\"\"\210)\202%\310\232\204\332\311\232\203%\312\313!r\211q\210\314\315\316\317\320!\356\"\322$\216	\357\267\202\374\202#\202\202\324\325\326!!\203#\327\n	\"\203#\214\330 \210\331\332!\204db\210\333c\210)\334\335!\262\n*\210\337\315\360@#\211\2035\361\232\204:	\202er\312\362!q\210\363\337\315\351@#\206K\364\365\337\315\351@#\206V\364\261\210p)\366\307\211\211\211\211\211\257C\262)\207" [mm-security-handle mm-decrypt-option mm-verify-function-alist mm-verify-option mm-decrypt-function-alist split-string "/" nil "application/x-pkcs7-mime" "application/pkcs7-mime" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (never 52 always 55 known 58)) y-or-n-p format "Decrypt (S/MIME) part? " mm-view-pkcs7 mail-narrow-to-head mail-fetch-field "content-type" "Content-type: text/plain\n\n" mm-dissect-buffer t #s(hash-table size 2 test equal rehash-size 1.5 rehash-threshold 0.8125 purecopy t data ("signed" 111 "encrypted" 282)) get-text-property protocol "multipart/mixed" 3 mm-find-part-by-type assoc #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (never 199 always 202 known 205)) "Verify signed (%s) part? " "protocol=%s" mm-sec-error gnus-details "Unknown sign protocol (%s)" #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (never 379 always 382 known 385)) "Decrypt (%s) part? " "Unknown encrypt protocol (%s)" [buffer-name kill-buffer] #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (never 499 always 502 known 505)) sec-error "encrypted" " *mm*" "Error!  Result from decryption:\n\n" "" "\n\n" ("text/plain")] 18 (#$ . 50603)])
#@16 

(fn HANDLES)
(defalias 'mm-multiple-handles #[257 "\211<\205\211G\300V\205\211@<\206\211@;\207" [1] 3 (#$ . 53617)])
#@16 

(fn HANDLES)
(defalias 'mm-complicated-handles #[257 "\211@<\205\n\211G\300V\207" [1] 3 (#$ . 53748)])
#@26 

(fn HANDLES1 HANDLES2)
(defalias 'mm-merge-handles #[514 "\300@<\203\202
C@<\203\202C\"\207" [append] 5 (#$ . 53860)])
#@61 Say whether the content of HANDLE is readable.

(fn HANDLE)
(defalias 'mm-readable-p #[257 "r\211@q\210\300 )\301W\2055\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313 \210\314!\210\315 \316=\2052\317\320!?*\262\207" [buffer-size 10000 generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte mm-insert-part mm-body-7-or-8 7bit mm-long-lines-p 76] 8 (#$ . 54000)])
#@15 

(fn HANDLE)
(defalias 'mm-shr #[257 "\306\307!\210?\205\n	\310\n\311\211\211\21156\206(\312\313!\211\262\n\211@\203\314@!\203\315\316!r\211q\210\317\320\321\322\323!\324\"\325$\216\326 \210\327@!\210\330\3258\211@;\203a\211@\262\202g\211A@@\262\"\210\3137\331A@\332\"\211\262\204\224eb\210\333\334\311\313#\203\220\335\336\337!\311\313#\211\262\204\2248\262\204\244\335\311\313#\211\262\203\271\340=\204\271\341\342 \"\343 \210\344\313!\210c\210eb\210\333\345\311\313#\203\352\337\224\203\322\346\336\337!\347\"\202\327\346\336\325!!9\236A\211\262\203\274\350\351!!\210\202\274eb\210\352\353\311\313#\203\376\350\354\313\211#\210\202\355\355ed\"\262*\210\210\214``}\210\356!\210o\204\357c\210\360	\233\361 \362 \317\320\363\322\323\"\364\"\325$\266\202\240-\207" [shr-use-fonts fill-column mm-html-inhibit-images mm-html-blocked-images shr-blocked-images shr-inhibit-images require shr #[257 "\300!\211\205P\211\211@\205N\301@!\205N\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313 \210\314@!\210\315\3128\211@;\203A\211@\262\202G\211A@@\262\"\210\316 *\262\262\207" [mm-get-content-id buffer-name generate-new-buffer #1=" *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte insert-buffer-substring mm-decode-content-transfer-encoding buffer-string] 10 "\n\n(fn ID)"] nil mm-dissect-buffer t buffer-name generate-new-buffer #1# make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 mm-disable-multibyte insert-buffer-substring mm-decode-content-transfer-encoding mail-content-type-get charset re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']?text/html;\\s-*charset=\\([^	\n
 \"'>]+\\)[^>]*>" mm-charset-to-coding-system match-string 1 ascii decode-coding-string buffer-string erase-buffer set-buffer-multibyte "&#\\(?:x\\([89][0-9a-f]\\)\\|\\(1[2-5][0-9]\\)\\);" string-to-number 16 replace-match char-to-string search-forward "­" "" libxml-parse-html-region shr-insert-document "\n" 3 point-min-marker point-max-marker "\303\300\301|)\207" [inhibit-read-only t] shr-content-function shr-width case-fold-search mail-parse-charset mm-extra-numeric-entities] 19 (#$ . 54472)])
#@48 Return filename of HANDLE if any.

(fn HANDLE)
(defalias 'mm-handle-filename #[257 "\300A@\301\"\206\300\3028\303\"\207" [mail-content-type-get name 4 filename] 4 (#$ . 56788)])
(provide 'mm-decode)

Zerion Mini Shell 1.0