;ELC   
;;; Compiled by amu@quiche-lorraine.mit.edu on Thu Jan  6 19:18:00 2000
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/gnus-5.8.3/lisp/mm-decode.el
;;; in Emacs version 20.4.1
;;; with bytecomp version 2.56
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`mm-decode.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\302\303!\210\302\304!\210\302\305!\210\306\307\310\311\312	\313	\314&	\207" [:link :group require mail-parse mailcap mm-bodies custom-declare-group mime-display nil "Display of MIME in mail and news articles." (custom-manual "(emacs-mime)Customization") mail news] 10)
(defalias 'mm-handle-buffer '(macro . #[(handle) "\301\302E\207" [handle nth 0] 3]))
(defalias 'mm-handle-type '(macro . #[(handle) "\301\302E\207" [handle nth 1] 3]))
(defalias 'mm-handle-media-type #[(handle) "@;\203	 @\207A@@\207" [handle] 1])
(put 'mm-handle-media-type 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-media-supertype #[(handle) "\301\211@;\203 @\202 A@@)\302\"@\207" [handle split-string "/"] 4])
(put 'mm-handle-media-supertype 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-media-subtype #[(handle) "\301\211@;\203 @\202 A@@)\302\"A@\207" [handle split-string "/"] 4])
(put 'mm-handle-media-subtype 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'mm-handle-encoding '(macro . #[(handle) "\301\302E\207" [handle nth 2] 3]))
(defalias 'mm-handle-undisplayer '(macro . #[(handle) "\301\302E\207" [handle nth 3] 3]))
(defalias 'mm-handle-set-undisplayer '(macro . #[(handle function) "\302\303\304E	E\207" [handle function setcar nthcdr 3] 4]))
(defalias 'mm-handle-disposition '(macro . #[(handle) "\301\302E\207" [handle nth 4] 3]))
(defalias 'mm-handle-description '(macro . #[(handle) "\301\302E\207" [handle nth 5] 3]))
(defalias 'mm-handle-cache '(macro . #[(handle) "\301\302E\207" [handle nth 6] 3]))
(defalias 'mm-handle-set-cache '(macro . #[(handle contents) "\302\303\304E	E\207" [handle contents setcar nthcdr 6] 4]))
(defalias 'mm-handle-id '(macro . #[(handle) "\301\302E\207" [handle nth 7] 3]))
(defalias 'mm-make-handle '(macro . #[(&optional buffer type encoding undisplayer disposition description cache id) "\306	\n\f\257	\207" [buffer type encoding undisplayer disposition description list cache id] 9]))
#@74 Alist of media types/tests saying whether types can be displayed inline.
(custom-declare-variable 'mm-inline-media-tests ''(("image/jpeg" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'jpeg handle))) ("image/png" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'png handle))) ("image/gif" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'gif handle))) ("image/tiff" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'tiff handle))) ("image/xbm" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xbm handle))) ("image/x-xbitmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xbm handle))) ("image/xpm" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xpm handle))) ("image/x-pixmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'xpm handle))) ("image/bmp" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'bmp 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 (lambda (handle) (locate-library "diff-mode"))) ("text/html" mm-inline-text (lambda (handle) (locate-library "w3"))) ("text/x-vcard" mm-inline-text (lambda (handle) (or (featurep 'vcard) (locate-library "vcard")))) ("message/delivery-status" mm-inline-text identity) ("message/rfc822" mm-inline-message identity) ("text/.*" mm-inline-text identity) ("audio/wav" mm-inline-audio (lambda (handle) (and (or (featurep 'nas-sound) (featurep 'native-sound)) (device-sound-enabled-p)))) ("audio/au" mm-inline-audio (lambda (handle) (and (or (featurep 'nas-sound) (featurep 'native-sound)) (device-sound-enabled-p)))) ("application/pgp-signature" ignore identity) ("multipart/alternative" ignore identity) ("multipart/mixed" ignore identity) ("multipart/related" ignore identity)) '(#$ . 2651) :type '(repeat (list (string :tag "MIME type") (function :tag "Display function") (function :tag "Display test"))) :group 'mime-display)
#@54 List of media types that are to be displayed inline.
(custom-declare-variable 'mm-inlined-types ''("image/.*" "text/.*" "message/delivery-status" "message/rfc822" "application/pgp-signature") '(#$ . 4665) :type '(repeat string) :group 'mime-display)
#@53 A list of MIME types to be displayed automatically.
(custom-declare-variable 'mm-automatic-display ''("text/plain" "text/enriched" "text/richtext" "text/html" "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "application/pgp-signature") '(#$ . 4921) :type '(repeat string) :group 'mime-display)
#@69 Types to have "attachment" ignored if they can be displayed inline.
(custom-declare-variable 'mm-attachment-override-types ''("text/x-vcard") '(#$ . 5272) :type '(repeat string) :group 'mime-display)
#@74 Types to be treated as attachments even if they can be displayed inline.
(custom-declare-variable 'mm-inline-override-types 'nil '(#$ . 5478) :type '(repeat string) :group 'mime-display)
#@76 List of MIME type regexps that will be displayed externally automatically.
(custom-declare-variable 'mm-automatic-external-display 'nil '(#$ . 5671) :type '(repeat string) :group 'mime-display)
#@463 List of MIME types that are discouraged when viewing multipart/alternative.
Viewing agents are supposed to view the last possible part of a message,
as that is supposed to be the richest.  However, users may prefer other
types instead, and this list says what types are most unwanted.  If,
for instance, text/html parts are very unwanted, and text/richtech are
somewhat unwanted, then the value of this variable should be set
to:

 ("text/html" "text/richtext")
(custom-declare-variable 'mm-discouraged-alternatives 'nil '(#$ . 5872) :type '(repeat string) :group 'mime-display)
#@42 Where mm will store its temporary files.
(defvar mm-tmp-directory (byte-code "\301\302!\203	 \302 \207\303\300!\203 \207\304\207" [temporary-file-directory fboundp temp-directory boundp "/tmp/"] 2) (#$ . 6457))
#@48 If non-nil, then all images fit in the buffer.
(custom-declare-variable 'mm-inline-large-images 'nil '(#$ . 6676) :type 'boolean :group 'mime-display)
(byte-code "\304\300!\204 \305\300	B\304\302!\204 \306\302	B\304\303!\204  \305\303	B\305\207" [mm-dissection-list current-load-list mm-last-shell-command mm-content-id-alist boundp nil ""] 2)
#@63 Dissect the current buffer and return a list of MIME handles.
(defalias 'mm-dissect-buffer #[(&optional no-strict-mime) "\212\306\211\211\211\211\211\211\211\211%&'\214\307 \210(\204% \310\311!\203@ \310\312!'\313\314\315\217&\310\316!\310\317!\310\320!\310\321!)&\203O \322\323&@\"\204l \324\325\f\205] \326\327\330\f!!\227!(\205g \331\332\333\217\n%\202\311 \334&@\323\"\211%A@%\211A%@\211%\335\232\203\222 &@\336&!B\202\257 \324&\f\205\241 \326\327\330\f!!\227!(\205\253 \337\340\341\217\n	&	\203\310 \322\342	\"\203\300 \343\344	\"	B)B).\n\207" [result id description cd cte subtype nil mail-narrow-to-head mail-fetch-field "mime-version" "content-type" #1=#:G82100 (mail-header-parse-content-type ct) ((error)) "content-transfer-encoding" "content-disposition" "content-description" "content-id" string-match "/" mm-dissect-singlepart ("text/plain") intern mail-header-remove-whitespace mail-header-remove-comments #2=#:G82101 (mail-header-parse-content-disposition cd) ((error)) split-string "multipart" mm-dissect-multipart #3=#:G82102 (mail-header-parse-content-disposition cd) ((error)) " *<\\(.*\\)> *" match-string 1 type ctl ct no-strict-mime mm-content-id-alist] 10 (#$ . 7034)])
(defalias 'mm-dissect-singlepart #[(ctl cte &optional force cdl description id) "\204\f 	@\306\232?\205# \307 	\n\310\f\310\257\211	@\nB\n	)\207" [force ctl cte cdl description id "text/plain" mm-copy-to-buffer nil res mm-dissection-list] 9])
#@26 Remove all MIME handles.
(defalias 'mm-remove-all-parts #[nil "\301\302\"\210\303\211\207" [mm-dissection-list mapcar mm-remove-part nil] 3 (#$ . 8522) nil])
(defalias 'mm-dissect-multipart #[(ctl) "eb\210\306\307\301\"P\310	!\311P\312\312\212db\210\313\n\312\314#\203% \315\224\202& d)\316	\314#\203N \315\224b\210\203F \212\214`}\210\317\314!C\f\244*\320y\210`\202( \203` \212\214}\210\317\314!C\f\244*\f\237-\207" [ctl boundary close-delimiter start parts end "\n--" mail-content-type-get regexp-quote "--[ 	]*$" nil re-search-backward t 0 search-forward mm-dissect-buffer 2] 4])
#@60 Copy the contents of the current buffer to a fresh buffer.
(defalias 'mm-copy-to-buffer #[nil "\212p\302eb\210\303\304\302\305#\210`\306\307!q\210\310	\"\210p+\207" [beg obuf nil search-forward-regexp "^\n" t generate-new-buffer " *mm*" insert-buffer-substring] 4 (#$ . 9128)])
#@142 Display the MIME part represented by HANDLE.
Returns nil if the part is removed; inline if displayed inline;
external if displayed external.
(defalias 'mm-display-part #[(handle &optional no-default) "\212\304 \210\305!\203 \306!\202e \211@;\203 @\202! A@@)\307	!\310!\2038 \311y\210\312!\210\313\202d \n\204A ?\205d \n\204\\ \314	!@\315\232\203\\ \311y\210\316\317!\"\210\313\202d \320\n\206c \321\"*)\207" [handle type method no-default mailcap-parse-mailcaps mm-handle-displayed-p mm-remove-part mailcap-mime-info mm-inlined-p 1 mm-display-inline inline split-string "text" mm-insert-inline mm-get-part mm-display-external mailcap-save-binary-file] 5 (#$ . 9417)])
#@30 Display HANDLE using METHOD.
(defalias 'mm-display-external #[(handle method) "p\306\307	\"\204 \310\311!\204\244\312\313\314!!\315\216r\nq\210\316!\203\214 p\317=\2033 \320\321!q\210\322\202M \323!\210\324\f\325\"\211@\203F \326@!\210)\327\320\321!!\210\330 \210\331A!\210\332\f!\210\333\334\"\210p\335\336\211@;\203n @\202r A@@)\325\"\236B\337\216\203\205  \202\210 \340!,\202\240\323!\210\341\342\343C\"!D\344\3458\346\"&\336\211@;\203\257 @\202\263 A@@)\325\"E\347\350E\"\206\305 \347\351E\"F\347\352E\"G\322H\322I\353D!\210\354D\355\"\210&\203\361 \342\356&!D\"H\202\372 \341\342\357D\"!HAJ\360edH\322\361%\210)\333\334\"\210F\2036\362\216\363\364\322\365\366KL\367HA@#&\210)\333\370\371H\"\"\210\372\202\236G\203yrq\210\373y\210\374\375\216\376K\322\320\321!\211I\322L\367HA@#&\210\377I!\205o\212Iq\210\201Q  ))\"\210)\201R \202\236\201S \216\363\364\320\321!\211IKL\367HA@#%\210)\333\370\371H\"\"\210\372.+\202`\201T \311!\322MN\201U \216\201V \311\322\"\210\312\313\314!!M\201W \216rMq\210A\211\211JOP\316!\203Fp\317=\203\353\320\321!q\210\322\202\323!\210\324\f\325\"\211@\203\376\326@!\210)\327\320\321!!\210\330 \210\331A!\210\332\f!\210\333\334\"\210p\335\336\211@;\203&@\202*A@@)\325\"\236B\201X \216\203? \202B\340!,\202^\323!\210\341\342\343C\"!D\344\3458\346\"&\336\211@;\203i@\202mA@@)\325\"E\347\350E\"\206\347\351E\"F\347\352E\"G\322H\322I\353D!\210\354D\355\"\210&\203\253\342\356&!D\"H\202\264\341\342\357D\"!HAJ\360edH\322\361%\210)\333\334\"\210F\203\362\201Y \216\363\364\322\365\366KL\367HA@#&\210)\333\370\371H\"\"\210\372\202\\G\2037rq\210\373y\210\374\201Z \216\376K\322\320\321!\211I\322L\367HA@#&\210\377I!\205-\212Iq\210\201Q  ))\"\210)\201R \202\\\201[ \216\363\364\320\321!\211IKL\367HA@#%\210)\333\370\371H\"\"\210\372..)\207" [outbuf emacs-version #1=#:temp-buffer method cur handle string-match "XEmacs\\|Lucid" boundp enable-multibyte-characters get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) functionp mailcap-save-binary-file generate-new-buffer "*mm*" nil mm-insert-part get-buffer-window t select-window switch-to-buffer buffer-disable-undo mm-set-buffer-file-coding-system insert-buffer-substring message "Viewing with %s" non-viewer mailcap-mime-info ((byte-code "\204 	\203 \304\n\233\240\210\304\207" [non-viewer method handle mm 3] 2)) mm-save-part make-temp-name expand-file-name "emm." mail-content-type-get 4 filename assoc "needsterm" "needsterminal" "copiousoutput" make-directory set-file-modes 448 file-name-nondirectory "mm." write-region nomesg ((byte-code "\303\233	\nB\240\207" [handle file buffer 3] 3)) start-process "*display*" "xterm" "-e" mm-mailcap-command "Displaying %s..." format external 1 mm-insert-inline ((byte-code "\300\301\302\217\210\303\304\305\217\210\306\307\310\217\207" [#2=#:G82103 (delete-file file) ((error)) #3=#:G82104 (byte-code "\301\302!!\207" [file delete-directory file-name-directory] 3) ((error)) #4=#:G82105 (kill-buffer buffer) ((error))] 3)) call-process buffer-live-p win mm-binary-coding-system mm mm-tmp-directory dir mime-info needsterm copiousoutput file buffer coding-system-for-write shell-file-name shell-command-switch #5=#:temp-buffer #6=#:multibyte coding-system-for-read buffer-file-coding-system buffer-string inline ((byte-code "\303\233	\nB\240\207" [handle file buffer 3] 3)) default-value ((byte-code "\301\302\"\207" [#6# set-default enable-multibyte-characters] 3)) set-default ((byte-code "\301!\203\n \302!\210\301\207" [#5# buffer-name kill-buffer] 2)) ((byte-code "\204 	\203 \304\n\233\240\210\304\207" [non-viewer method handle mm 3] 2)) ((byte-code "\303\233	\nB\240\207" [handle file buffer 3] 3)) ((byte-code "\300\301\302\217\210\303\304\305\217\210\306\307\310\217\207" [#7=#:G82106 (delete-file file) ((error)) #8=#:G82107 (byte-code "\301\302!!\207" [file delete-directory file-name-directory] 3) ((error)) #9=#:G82108 (kill-buffer buffer) ((error))] 3)) ((byte-code "\303\233	\nB\240\207" [handle file buffer 3] 3))] 13 (#$ . 10107)])
(defalias 'mm-mailcap-command #[(method file type-list) "A\306\307\211\211\310\311\f#\203^ \f\306\224OB\306\225\312\306\"\312\313\"	\314\230\203< \315!B\202 	\316\230\203L \315@!B\202 \315\317\n!\236A\206W \320!B\202 \fGOB\321\322\237\320#-\207" [type-list total sub out beg ctl 0 nil string-match "%{\\([^}]+\\)}\\|%s\\|%t" match-string 1 "%s" mm-quote-arg "%t" intern "" mapconcat identity method file] 5])
#@56 Remove the displayed MIME parts represented by HANDLE.
(defalias 'mm-remove-parts #[(handles) "<\203 \302@!\203 \303!\207\304\211A@\211\205; 	;\204 	<\2034 	@;\2034 \305	A!\210\202 \303	!\210\202 )\207" [handles handle bufferp mm-remove-part nil mm-remove-parts] 2 (#$ . 14823)])
#@56 Remove the displayed MIME parts represented by HANDLE.
(defalias 'mm-destroy-parts #[(handles) "<\203 \302@!\203 \303!\207\304\211A@\211\205; 	;\204 	<\2034 	@;\2034 \305	A!\210\202 \303	!\210\202 )\207" [handles handle bufferp mm-destroy-part nil mm-destroy-parts] 2 (#$ . 15121)])
#@55 Remove the displayed MIME part represented by HANDLE.
(defalias 'mm-remove-part #[(handle) "<\205 \3028\303\304\305\217\210\302\233\306\240)\207" [handle object 3 #1=#:G82109 (byte-code "\301!\203 \302!\210\202L \303!\204 <\203% @\304=\203%  \210\202L :\203< \305\306\307\217\210\310\311\312\217\210\313\314\315\217\210\202L \316!\203L \317!\203L \320!\210\301\207" [object mm-annotationp delete-annotation functionp lambda #2=#:G82110 (byte-code "\301@!\207" [object delete-file] 2) ((error)) #3=#:G82111 (byte-code "\301\302@!!\207" [object delete-directory file-name-directory] 3) ((error)) #4=#:G82112 (byte-code "\301A!\207" [object kill-buffer] 2) ((error)) bufferp buffer-live-p kill-buffer] 3) ((error)) nil] 3 (#$ . 15422)])
(defalias 'mm-display-inline #[(handle) "\211@;\203 @\202 A@@)\304\n	\"A@\211!\210eb*\207" [handle type mm-inline-media-tests function mm-assoc-string-match] 4])
(defalias 'mm-assoc-string-match #[(alist type) "\300\301\215\207" [--cl-block-nil-- (byte-code "\304\211\203 \n@\305	@\"\203 \306\307	\"\210\nA\211\204 *\304\207" [alist elem #1=#:--dolist-temp--82113 type nil string-match throw --cl-block-nil--] 4)] 2])
#@45 Say whether HANDLE can be displayed inline.
(defalias 'mm-inlinable-p #[(handle) "	\211@;\203 	@\202 	A@@)\305\f\2038 \306\f@@\"\2030 \f@AA@\305\n	!\f\211A\210\202 \n+\207" [mm-inline-media-tests handle test type alist nil string-match] 4 (#$ . 16618)])
#@66 Say whether the user wants HANDLE to be displayed automatically.
(defalias 'mm-automatic-display-p #[(handle) "	\211@;\203 	@\202 	A@@)\306\211\211A@\211\203> \307	!\204 \310\f\"\203 \311	!\203 \312\306\211\202 \n,\207" [mm-automatic-display handle result method type methods nil mm-inline-override-p string-match mm-inlinable-p t] 5 (#$ . 16891)])
#@66 Say whether the user wants HANDLE to be displayed automatically.
(defalias 'mm-inlined-p #[(handle) "	\211@;\203 	@\202 	A@@)\306\211\211A@\211\203> \307	!\204 \310\f\"\203 \311	!\203 \312\306\211\202 \n,\207" [mm-inlined-types handle result method type methods nil mm-inline-override-p string-match mm-inlinable-p t] 5 (#$ . 17264)])
#@64 Say whether HANDLE should have attachment behavior overridden.
(defalias 'mm-attachment-override-p #[(handle) "	\211@;\203 	@\202 	A@@)\305\306\307\215+\207" [mm-attachment-override-types handle ty type types nil found (byte-code "\211A@\211\205 \304	\n\"\203  \305!\203  \306\307\310\"\210\202  \207" [types ty type handle string-match mm-inlinable-p throw found t] 3)] 4 (#$ . 17623)])
#@60 Say whether HANDLE should have inline behavior overridden.
(defalias 'mm-inline-override-p #[(handle) "	\211@;\203 	@\202 	A@@)\305\306\307\215+\207" [mm-inline-override-types handle ty type types nil found (byte-code "\211A@\211\205 \303	\n\"\203  \304\305\306\"\210\202  \207" [types ty type string-match throw found t] 3)] 4 (#$ . 18029)])
#@42 Return the user-defined method for TYPE.
(defalias 'mm-automatic-external-display-p #[(type) "\305\211\211A@\211\203 \306\n\f\"\203 \307\305\211\202 	+\207" [mm-automatic-external-display result method methods type nil string-match t] 4 (#$ . 18389)])
#@50 Destroy the data structures connected to HANDLE.
(defalias 'mm-destroy-part #[(handle) "<\205 \301!\210\302@!\205 \303@!\207" [handle mm-remove-part buffer-live-p kill-buffer] 2 (#$ . 18659)])
#@41 Say whether HANDLE is displayed or not.
(defalias 'mm-handle-displayed-p #[(handle) "\3018\207" [handle 3] 2 (#$ . 18864)])
#@44 Return the contents of HANDLE as a string.
(defalias 'mm-get-part #[(handle) "\306\307\"\204 \310\311!\204! \312\313\314!!\315\216r	q\210\316\n!\210\317 +\207\320\311!\321\322\216\323\311\321\"\210\312\313\314!!\324\216rq\210\211\211\316\n!\210\317 .\207" [emacs-version #1=#:temp-buffer handle #2=#:temp-buffer #3=#:multibyte mm-binary-coding-system string-match "XEmacs\\|Lucid" boundp enable-multibyte-characters get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-insert-part buffer-string default-value nil ((byte-code "\301\302\"\207" [#3# set-default enable-multibyte-characters] 3)) set-default ((byte-code "\301!\203\n \302!\210\301\207" [#2# buffer-name kill-buffer] 2)) coding-system-for-write coding-system-for-read buffer-file-coding-system] 3 (#$ . 18995)])
#@54 Insert the contents of HANDLE in the current buffer.
(defalias 'mm-insert-part #[(handle) "p\212	\306	\211@;\203 	@\202 	A@@)\307\"@)\310\235\203V \311\312\313!!\314\216r\nq\210\315	@!\210\316\317	8	\211@;\203C 	@\202G 	A@@)\"\210pq\210\315!,\202\346 \320\321\f\"\204c \322\323!\204\230 \311\312\313!!\324\216rq\210\315	@!\210\316\317	8	\211@;\203\205 	@\202\211 	A@@)\"\210pq\210\315!,\202\346 \325\323!\326\327\216\330\323\326\"\210\311\312\313!!\331\216rq\210\211\211\315	@!\210\316\317	8	\211@;\203\325 	@\202\331 	A@@)\"\210pq\210\315!.	*\207" [cur handle #1=#:temp-buffer temp emacs-version #2=#:temp-buffer split-string "/" ("text" "message") get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-buffer-substring mm-decode-content-transfer-encoding 2 string-match "XEmacs\\|Lucid" boundp enable-multibyte-characters ((byte-code "\301!\203\n \302!\210\301\207" [#2# buffer-name kill-buffer] 2)) default-value nil ((byte-code "\301\302\"\207" [#3=#:multibyte set-default enable-multibyte-characters] 3)) set-default ((byte-code "\301!\203\n \302!\210\301\207" [#4=#:temp-buffer buffer-name kill-buffer] 2)) #4# #3# mm-binary-coding-system coding-system-for-write coding-system-for-read buffer-file-coding-system] 5 (#$ . 19875)])
(byte-code "\302\300!\204 \303\300	B\303\207" [mm-default-directory current-load-list boundp nil] 2)
#@25 Write HANDLE to a file.
(defalias 'mm-save-part #[(handle) "\306A@\301\"\306\3078\302\"\310\n\203 \311\n!\312\313\314\n\206$ 	\206$ \315\f\206) \"\"\316!\317!\203? \320\321\322\"!\205C \323\"+\207" [handle name filename file mm-default-directory default-directory mail-content-type-get 4 nil file-name-nondirectory read-file-name "Save MIME part to: " expand-file-name "" file-name-directory file-exists-p yes-or-no-p format "File %s already exists; overwrite? " mm-save-part-to-file] 5 (#$ . 21348)])
(defalias 'mm-save-part-to-file #[(handle file) "\306\307\"\204 \310\311!\204. \312\313\314!!\315\216r	q\210\316\n!\210\317\320\321B\320ed#.\207\322\311!\323\324\216\325\311\323\"\210\312\313\314!!\326\216rq\210\211\211\316\n!\210\317\320\321B\320ed#.\207" [emacs-version #1=#:temp-buffer handle inhibit-file-name-handlers inhibit-file-name-operation coding-system-for-write string-match "XEmacs\\|Lucid" boundp enable-multibyte-characters get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-insert-part binary write-region jka-compr-handler default-value nil ((byte-code "\301\302\"\207" [#2=#:multibyte set-default enable-multibyte-characters] 3)) set-default ((byte-code "\301!\203\n \302!\210\301\207" [#3=#:temp-buffer buffer-name kill-buffer] 2)) file #3# #2# mm-binary-coding-system coding-system-for-read buffer-file-coding-system] 4])
#@27 Pipe HANDLE to a process.
(defalias 'mm-pipe-part #[(handle) "\306A@\301\"\307\310\n\"\311\312\f\"\204 \313\314!\2043 \315\316\317!!\320\216rq\210\321!\210\322ed\323$+\202f \324\314!\323\325\216\326\314\323\"\210\315\316\317!!\327\216rq\210\211\211\321!\210\322ed\323$.*\207" [handle name mm-last-shell-command command emacs-version #1=#:temp-buffer mail-content-type-get read-string "Shell command on MIME part: " string-match "XEmacs\\|Lucid" boundp enable-multibyte-characters get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-insert-part shell-command-on-region nil default-value ((byte-code "\301\302\"\207" [#2=#:multibyte set-default enable-multibyte-characters] 3)) set-default ((byte-code "\301!\203\n \302!\210\301\207" [#3=#:temp-buffer buffer-name kill-buffer] 2)) #3# #2# mm-binary-coding-system coding-system-for-write coding-system-for-read buffer-file-coding-system] 5 (#$ . 22834)])
#@30 Display HANDLE using METHOD.
(defalias 'mm-interactively-view-part #[(handle) "\211@;\203 @\202 A@@)\304\305\306	\307\"\"\310\311\n\"\211\312\230\203* \313\314!\210\315\316!\"+\207" [handle type methods method mapcar #[(i) "\301\302\"AC\207" [i assoc viewer] 3] mailcap-mime-info all completing-read "Viewer: " "" error "No method given" mm-display-external copy-sequence] 6 (#$ . 23856)])
#@37 Say which of HANDLES are preferred.
(defalias 'mm-preferred-alternative #[(handles &optional preferred) "\203	 C\202\f \306	!\307\211\211\211\211\f\f\211A\f@\211\203s 	\203 @\211\211@;\203< \n@\202@ \nA@@)\232\203k \310\n!\203k \n@;\204d \311\n8\203d \311\n8@\312\232\203k \n\307\307\f\211A\210\202( \f.\207" [preferred handles handle type result h mm-preferred-alternative-precedence nil mm-automatic-display-p 4 "inline" p prec] 7 (#$ . 24264)])
#@73 Return the precedence based on HANDLES and mm-discouraged-alternatives.
(defalias 'mm-preferred-alternative-precedence #[(handles) "\306\307\"\237\310\n!\311\211\203B \f@\312	!\311\211\203: @\313\"\2031 \314	\"C\244A\211\204 *\fA\211\204 *	)\207" [handles seq mm-discouraged-alternatives disc #1=#:--dolist-temp--82114 elem mapcar #[(h) "\211@;\203 	@\202 	A@@)\207" [h handle] 2] reverse nil copy-sequence string-match delete #2=#:--dolist-temp--82115] 5 (#$ . 24747)])
#@41 Return the handle(s) referred to by ID.
(defalias 'mm-get-content-id #[(id) "\302	\"A\207" [id mm-content-id-alist assoc] 3 (#$ . 25251)])
#@43 Return an image instance based on HANDLE.
(defalias 'mm-get-image #[(handle) "\306\211@;\203 @\202 A@@)\307\"A@)\310\211\311\232\203' \312\2022 \n\313\232\2031 \314\2022 \n\3158\206\234 \316\317\"\204F \320\321!\204f \322\323\324!!\325\216r\fq\210\326!\210\327\330\331\217\211\315\233	\240\210+\202\234 \332\321!\310!\333\216\334\321\310\"\210\322\323\324!!\335\216rq\210\"\211\211#$%\326!\210\336\337\340\217\211\315\233	\240\210.*\207" [handle spec type emacs-version #1=#:temp-buffer #2=#:temp-buffer split-string "/" nil "x-pixmap" "xpm" "x-xbitmap" "xbm" 6 string-match "XEmacs\\|Lucid" boundp enable-multibyte-characters get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) mm-insert-part #3=#:G82116 (byte-code "\304\232\203 \305\306\307	\"!\310\216\311ed\n#\210\312\313\nBC!*\207\312\314\315!\316 #!\207" [type mm-tmp-directory file :data "xbm" make-temp-name expand-file-name "emm.xbm" ((byte-code "\300\301\302\217\207" [#4=#:G82118 (delete-file file) ((error))] 3)) write-region make-glyph x vector intern buffer-string] 5) ((error)) default-value ((byte-code "\301\302\"\207" [#5=#:multibyte set-default enable-multibyte-characters] 3)) set-default ((byte-code "\301!\203\n \302!\210\301\207" [#2# buffer-name kill-buffer] 2)) #6=#:G82117 (byte-code "\304\232\203 \305\306\307	\"!\310\216\311ed\n#\210\312\313\nBC!*\207\312\314\315!\316 #!\207" [type mm-tmp-directory file :data "xbm" make-temp-name expand-file-name "emm.xbm" ((byte-code "\300\301\302\217\207" [#7=#:G82119 (delete-file file) ((error))] 3)) write-region make-glyph x vector intern buffer-string] 5) ((error)) #5# mm-binary-coding-system coding-system-for-write coding-system-for-read buffer-file-coding-system] 5 (#$ . 25397)])
#@62 Say whether the image in HANDLE will fit the current window.
(defalias 'mm-image-fit-p #[(handle) "\303!\n\206 \304	!\305 W\205 \306	!\307 W)\207" [handle image mm-inline-large-images mm-get-image glyph-width window-pixel-width glyph-height window-pixel-height] 2 (#$ . 27233)])
#@56 Say whether FORMAT can be displayed natively by Emacs.
(defalias 'mm-valid-image-format-p #[(format) "\301\302!\205	 \302!\207" [format fboundp valid-image-instantiator-format-p] 2 (#$ . 27522)])
#@74 Say whether FORMAT can be displayed natively and HANDLE fits the window.
(defalias 'mm-valid-and-fit-image-p #[(format handle) "\205 \303	!\205 \304\n!\207" [window-system format handle mm-valid-image-format-p mm-image-fit-p] 2 (#$ . 27725)])
(provide 'mm-decode)
