;ELC   
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.



(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\311\312\313\"\210\311\314\315\"\210\311\316\317\"\210\311\320\317\"\210\311\321\317\"\210\311\322\317\"\210\311\323\317\"\210\311\324\325\"\210\311\326\327\"\210\311\330\327\"\210\311\331\327\"\210\311\332\333\"\210\311\334\335\"\210\311\336\337\"\210\311\340\341\"\207" [require mh-e mh-gnus font-lock gnus-util mailcap mm-decode mm-view mml autoload article-emphasize "gnus-art" gnus-eval-format "gnus-spec" mail-content-type-get "mail-parse" mail-decode-encoded-word-region mail-decode-encoded-word-string mail-header-parse-content-type mail-header-strip-cte mail-strip-quoted-names "mail-utils" message-options-get "message" message-options-set message-options-set-recipient mm-decode-body "mm-bodies" mm-uu-dissect "mm-uu" mml-unsecure-message "mml-sec" widget-convert-button "wid-edit"] 3)
#@74 Convenience macro to get the MIME data structures of the current buffer.
(defalias 'mh-buffer-data '(macro . #[0 "\300\207" [(gethash (current-buffer) mh-globals-hash)] 1 (#$ . 997)]))
#@73 compiler-macro for inlining `mh-buffer-data-p'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'mh-buffer-data-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block mh-buffer-data-p (and (memq (type-of cl-x) cl-struct-mh-buffer-data-tags) t)) nil] 9 (#$ . 1188)])
(put 'mh-buffer-data-p 'compiler-macro 'mh-buffer-data-p--cmacro)
#@13 

(fn CL-X)
(defalias 'mh-buffer-data-p #[257 "\301!>\205	 \302\207" [cl-struct-mh-buffer-data-tags type-of t] 3 (#$ . 1546)])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put mh-buffer-data-p side-effect-free error-free put mh-buffer-data cl-deftype-satisfies] 5)
#@72 compiler-macro for inlining `mh-mime-handles'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'mh-mime-handles--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block mh-mime-handles (progn (or (mh-buffer-data-p cl-x) (signal 'wrong-type-argument (list 'mh-buffer-data cl-x))) (aref cl-x 1))) nil] 9 (#$ . 1836)])
(put 'mh-mime-handles 'compiler-macro 'mh-mime-handles--cmacro)
#@67 Access slot "handles" of `mh-buffer-data' struct CL-X.

(fn CL-X)
(defalias 'mh-mime-handles #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-mh-buffer-data-tags type-of signal wrong-type-argument mh-buffer-data 1] 5 (#$ . 2238)])
(byte-code "\300\301\302\303#\300\207" [function-put mh-mime-handles side-effect-free t] 4)
#@78 compiler-macro for inlining `mh-mime-handles-cache'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'mh-mime-handles-cache--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block mh-mime-handles-cache (progn (or (mh-buffer-data-p cl-x) (signal 'wrong-type-argument (list 'mh-buffer-data cl-x))) (aref cl-x 2))) nil] 9 (#$ . 2585)])
(put 'mh-mime-handles-cache 'compiler-macro 'mh-mime-handles-cache--cmacro)
#@73 Access slot "handles-cache" of `mh-buffer-data' struct CL-X.

(fn CL-X)
(defalias 'mh-mime-handles-cache #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-mh-buffer-data-tags type-of signal wrong-type-argument mh-buffer-data 2] 5 (#$ . 3017)])
(byte-code "\300\301\302\303#\300\207" [function-put mh-mime-handles-cache side-effect-free t] 4)
#@76 compiler-macro for inlining `mh-mime-parts-count'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'mh-mime-parts-count--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block mh-mime-parts-count (progn (or (mh-buffer-data-p cl-x) (signal 'wrong-type-argument (list 'mh-buffer-data cl-x))) (aref cl-x 3))) nil] 9 (#$ . 3382)])
(put 'mh-mime-parts-count 'compiler-macro 'mh-mime-parts-count--cmacro)
#@71 Access slot "parts-count" of `mh-buffer-data' struct CL-X.

(fn CL-X)
(defalias 'mh-mime-parts-count #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-mh-buffer-data-tags type-of signal wrong-type-argument mh-buffer-data 3] 5 (#$ . 3804)])
(byte-code "\300\301\302\303#\300\207" [function-put mh-mime-parts-count side-effect-free t] 4)
#@80 compiler-macro for inlining `mh-mime-part-index-hash'.

(fn CL-WHOLE-ARG CL-X)
(defalias 'mh-mime-part-index-hash--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block mh-mime-part-index-hash (progn (or (mh-buffer-data-p cl-x) (signal 'wrong-type-argument (list 'mh-buffer-data cl-x))) (aref cl-x 4))) nil] 9 (#$ . 4163)])
(put 'mh-mime-part-index-hash 'compiler-macro 'mh-mime-part-index-hash--cmacro)
#@75 Access slot "part-index-hash" of `mh-buffer-data' struct CL-X.

(fn CL-X)
(defalias 'mh-mime-part-index-hash #[257 "\301!>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-mh-buffer-data-tags type-of signal wrong-type-argument mh-buffer-data 4] 5 (#$ . 4605)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put mh-mime-part-index-hash side-effect-free t defalias copy-mh-buffer-data copy-sequence] 4)
#@132 compiler-macro for inlining `mh-make-buffer-data'.

(fn CL-WHOLE &cl-quote &key HANDLES HANDLES-CACHE PARTS-COUNT PART-INDEX-HASH)
(defalias 'mh-make-buffer-data--cmacro #[385 "\300\301\"A@\300\302\"\206 \303A@\300\304\"\206 \305A@\300\306\"\206\" \307A@\211\203P \211@\310>\2038 \211AA\262\202% \311>A@\203G \312\262\202% \313\314@\"\210\202% \210\315\316\317\312	\312				&	\207" [plist-member :handles :handles-cache (nil (make-hash-table)) :parts-count (nil 0) :part-index-hash (nil (make-hash-table)) (:handles :handles-cache :parts-count :part-index-hash :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:handles :handles-cache :parts-count :part-index-hash)" cl--defsubst-expand (handles handles-cache parts-count part-index-hash) (cl-block mh-make-buffer-data (record 'mh-buffer-data handles handles-cache parts-count part-index-hash))] 16 (#$ . 5030)])
(put 'mh-make-buffer-data 'compiler-macro 'mh-make-buffer-data--cmacro)
#@112 Constructor for objects of type `mh-buffer-data'.

(fn &key HANDLES HANDLES-CACHE PARTS-COUNT PART-INDEX-HASH)
(defalias 'mh-make-buffer-data #[128 "\300\301\"A@\300\302\"\206 \303\304 DA@\300\305\"\206 \306A@\300\307\"\206( \303\304 DA@\211\203V \211@\310>\203> \211AA\262\202+ \311>A@\203M \303\262\202+ \312\313@\"\210\202+ \210\314\315%\207" [plist-member :handles :handles-cache nil make-hash-table :parts-count (nil 0) :part-index-hash (:handles :handles-cache :parts-count :part-index-hash :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:handles :handles-cache :parts-count :part-index-hash)" record mh-buffer-data] 11 (#$ . 6018)])
(cl-struct-define 'mh-buffer-data nil 'cl-structure-object 'record nil '((cl-tag-slot) (handles nil) (handles-cache (make-hash-table)) (parts-count 0) (part-index-hash (make-hash-table))) 'cl-struct-mh-buffer-data-tags 'mh-buffer-data t)
#@74 Alist of media types/tests saying whether types can be displayed inline.
(defvar mh-mm-inline-media-tests (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322!\203 \322\202 \323\324BB\325BBBBBBBBBBBBBBBBB\207" [("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))) ("image/x-portable-bitmap" mm-inline-image (lambda (handle) (mm-valid-and-fit-image-p 'pbm 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"))) ("application/emacs-lisp" mm-display-elisp-inline identity) ("application/x-emacs-lisp" mm-display-elisp-inline identity) "text/html" fboundp mm-inline-text-html mm-inline-text ((lambda (handle) (or (and (boundp 'mm-inline-text-html-renderer) mm-inline-text-html-renderer) (and (boundp 'mm-text-html-renderer) mm-text-html-renderer)))) (("text/x-vcard" mh-mm-inline-text-vcard (lambda (handle) (or (featurep 'vcard) (locate-library "vcard")))) ("message/delivery-status" mm-inline-text identity) ("message/rfc822" mh-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) ("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) ("audio/.*" ignore ignore) ("image/.*" ignore ignore) (".*" mm-inline-text mh-mm-readable-p))] 19) (#$ . 6947))
#@79 Default to use for `mh-mime-save-parts-default-directory'.
Set from last use.
(defvar mh-mime-save-parts-directory nil (#$ . 9614))
(defvar mh-mime-button-commands '((mh-press-button "" "Toggle Display")))
(defvar mh-mime-button-map (byte-code "\303 \304!\305Y\204 \306	\"\210\307\310\311#\210\n\211\203, \211@\307A@@#\210A\266\202\202 \210\207" [emacs-version mh-show-mode-map mh-mime-button-commands make-sparse-keymap string-to-number 21 set-keymap-parent define-key [mouse-2] mh-push-button] 7))
(defvar mh-mime-button-line-format-alist '((84 long-type 115) (100 description 115) (112 index 115) (101 dots 115)))
(defvar mh-mime-button-line-format "%{%([%p. %d%T]%)%}%e\n")
(defvar mh-mime-security-button-pressed nil)
(defvar mh-mime-security-button-line-format "%{%([[%t:%i]%D]%)%}\n")
(defvar mh-mime-security-button-end-line-format "%{%([[End of %t]%D]%)%}\n")
(defvar mh-mime-security-button-line-format-alist '((116 type 115) (105 info 115) (100 details 115) (68 pressed-details 115)))
(defvar mh-mime-security-button-map (byte-code "\302 \303!\304Y\204 \305	\"\210\306\307\310#\210\306\311\312#\210\207" [emacs-version mh-show-mode-map make-sparse-keymap string-to-number 21 set-keymap-parent define-key "" mh-press-button [mouse-2] mh-push-button] 5))
#@934 View attachment externally.

If Emacs does not know how to view an attachment, you could save
it into a file and then run some program to open it. It is
easier, however, to launch the program directly from MH-E with
this command. While you'll most likely use this to view
spreadsheets and documents, it is also useful to use your browser
to view HTML attachments with higher fidelity than what Emacs can
provide.

This command displays the attachment associated with the button
under the cursor. If the cursor is not located over a button,
then the cursor first moves to the next button, wrapping to the
beginning of the message if necessary. You can provide a numeric
prefix argument PART-INDEX to view the attachment labeled with
that number.

This command tries to provide a reasonable default for the viewer
by calling the Emacs function `mailcap-mime-info'. This function
usually reads the file "/etc/mailcap".

(fn PART-INDEX)
(defalias 'mh-display-with-external-viewer #[257 "\211:\203	 \211@\262\300\301\302#\207" [mh-folder-mime-action #[0 "\302`\303\"\211\211@;\203 \211@\262\202 \211A@@\262\304\305\306\307\"\"\211@@\310\311\"\312\313\211\211\211&\313\314\315\"\203@ \316P\262\317\320\"\321K\317\322\"\216\321M\210\323\216\324	\"*\266\202)\207" [mh-show-folder-buffer buffer-read-only get-text-property mh-data mapcar #[257 "\300\236AC\207" [viewer] 3 "\n\n(fn X)"] mailcap-mime-info all format-prompt "Viewer" completing-read nil string-match "^[^% 	]+$" " %s" make-closure #[514 "\301\300#\207" [V0 mh-handle-set-external-undisplayer] 6 "\n\n(fn HANDLE FUNCTION)"] mm-handle-set-external-undisplayer #[0 "\301\300M\207" [V0 mm-handle-set-external-undisplayer] 2] #[0 "\300\301!\207" [set-buffer-modified-p nil] 2] mm-display-external] 13] nil] 5 (#$ . 10901) "P"])
#@484 Show attachment verbatim.

You can view the raw contents of an attachment with this command.
This command displays (or hides) the contents of the attachment
associated with the button under the cursor verbatim. If the
cursor is not located over a button, then the cursor first moves
to the next button, wrapping to the beginning of the message if
necessary.

You can also provide a numeric prefix argument PART-INDEX to view
the attachment labeled with that number.

(fn PART-INDEX)
(defalias 'mh-folder-inline-mime-part #[257 "\211:\203	 \211@\262\300\301\302#\207" [mh-folder-mime-action mh-mime-inline-part nil] 5 (#$ . 12712) "P"])
#@38 Toggle display of the raw MIME part.
(defalias 'mh-mime-inline-part #[0 "\301\302`\303\"\302`\304\"\305!`\301\211\203M \204M \204M \306!\307\310 \311 \312#\210\313 \262\314y\210\315\"\210\313 \262\307\211b\210\311 \316BD#\266\202` \203` \204Y \203` \317 \210\320\321!\210b\210\322\301!)\207" [buffer-read-only nil get-text-property mh-data mh-mime-inserted mm-handle-displayed-p mm-get-part add-text-properties mh-line-beginning-position mh-line-end-position (mh-mime-inserted t) point-marker 1 mm-insert-inline mh-region mh-press-button message "MIME part already inserted" set-buffer-modified-p] 13 (#$ . 13356) nil])
#@469 Save (output) attachment.

This command saves the attachment associated with the button under the
cursor. If the cursor is not located over a button, then the cursor
first moves to the next button, wrapping to the beginning of the
message if necessary.

You can also provide a numeric prefix argument PART-INDEX to save the
attachment labeled with that number.

This command prompts you for a filename and suggests a specific name
if it is available.

(fn PART-INDEX)
(defalias 'mh-folder-save-mime-part #[257 "\211:\203	 \211@\262\300\301\302#\207" [mh-folder-mime-action mh-mime-save-part nil] 5 (#$ . 14005) "P"])
#@26 Save MIME part at point.
(defalias 'mh-mime-save-part #[0 "\303`\304\"\211\205 \305\206 	!\306!\210\n\211)\207" [mh-mime-save-parts-directory default-directory mm-default-directory get-text-property mh-data file-name-as-directory mh-mm-save-part] 3 (#$ . 14630) nil])
#@581 View attachment.

This command displays (or hides) the attachment associated with
the button under the cursor. If the cursor is not located over a
button, then the cursor first moves to the next button, wrapping
to the beginning of the message if necessary. This command has
the advantage over related commands of working from the MH-Folder
buffer.

You can also provide a numeric prefix argument PART-INDEX to view
the attachment labeled with that number. If Emacs does not know
how to display the attachment, then Emacs offers to save the
attachment in a file.

(fn PART-INDEX)
(defalias 'mh-folder-toggle-mime-part #[257 "\211:\203	 \211@\262\300\301\302#\207" [mh-folder-mime-action mh-press-button t] 5 (#$ . 14911) "P"])
#@417 Save attachments.

You can save all of the attachments at once with this command.
The attachments are saved in the directory specified by the
option `mh-mime-save-parts-default-directory' unless you use a
prefix argument PROMPT in which case you are prompted for the
directory. These directories may be superseded by MH profile
components, since this function calls on "mhstore" ("mhn") to
do the work.

(fn PROMPT)
(defalias 'mh-mime-save-parts #[257 "\306=\203 \307 \202 \310\311!\306=\203 	\202 \n\312\313!\203# \314\202$ \315\2042 \2032 \311=\203? \f\204? \316\317\320\211\311$\202d \204I \311=\203Z \f\203Z \316\321\322\f\"\323\f\311\323%\202d ;\203c \202d \f\211\323\232\203q \f\203q \f\262\324!\204{ \325\326!\207\204\201 \211r\327!q\210\330!\210\211\331 \332\333\334'\"\320\311\320\335\n\f\336\312\313!?\205\247 \337F!&\210\340 V\205\304 \341 \342\343\"\216\344!\210\345\346!)\262\262)\207" [major-mode mh-show-folder-buffer mh-current-folder mh-mime-save-parts-default-directory mh-mime-save-parts-directory mh-log-buffer mh-show-mode mh-show-buffer-message-number mh-get-msg-num t mh-variant-p nmh "mhstore" "mhn" read-directory-name "Store in directory: " nil format-prompt "Store in directory" "" file-directory-p message "No directory specified" get-buffer-create cd mh-truncate-log-buffer apply call-process expand-file-name mh-list-to-string "-auto" "-store" buffer-size current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] switch-to-buffer-other-window sit-for 3 mh-progs] 18 (#$ . 15647) "P"])
#@44 Toggle the value of `mh-decode-mime-flag'.
(defalias 'mh-toggle-mh-decode-mime-flag #[0 "?\301\302\303\"\210\304\305\203 \306\202 \307\"\207" [mh-decode-mime-flag mh-show nil t message "%s" "Processing attachments normally" "Displaying raw message"] 3 (#$ . 17236) nil])
#@59 Toggle option `mh-display-buttons-for-inline-parts-flag'.
(defalias 'mh-toggle-mime-buttons #[0 "?\301\302\303\"\207" [mh-display-buttons-for-inline-parts-flag mh-show nil t] 3 (#$ . 17518) nil])
#@141 Display message, HANDLE.
The function decodes the message and displays it. It avoids
decoding the same message multiple times.

(fn HANDLE)
(defalias 'mh-mm-inline-message #[257 "`	\212\214\211}\210\305!\210\306\307\307p\n\"\310!>\204# \311\312\313D\"\210\211\314H\262\"\206\223 \307p\n\"\310!>\204? \311\312\313D\"\210\211\314H\262\315\316\317!\211\203U \320!\210\202Y \321 \262\307p\n\"\310!>\204l \311\312\313D\"\210\211\322\323\307p\n\"\310!>\204\203 \311\312\313D\"\210\211\322H\262\"I\266\211\262#\262!\210eb\210\324 \210\203\253 \325e\317#\210eb\210\202\256 \326 \210\327 \210\330 \210\f\331=\203\275 \332 \210eb\210\333c\210\334 \210\335 \210\336\233\337 \340 \341\342#\266\202\240*\207" [mh-clean-message-header-flag mh-invisible-header-fields-compiled mh-globals-hash cl-struct-mh-buffer-data-tags mh-highlight-citation-style mm-insert-part mh-mime-display gethash type-of signal wrong-type-argument mh-buffer-data 2 puthash mm-dissect-buffer nil mh-mm-uu-dissect-text-parts mm-uu-dissect 1 mh-mm-merge-handles mh-show-xface mh-clean-msg-header mh-start-of-uncleaned-message mh-decode-message-header mh-show-addr gnus mh-gnus-article-highlight-citation "\n------- Forwarded Message\n\n" mh-display-smileys mh-display-emphasis 3 point-min-marker point-max-marker make-closure #[0 "\303\300\301|)\207" [V0 V1 inhibit-read-only t] 2]] 19 (#$ . 17723)])
#@47 Decode RFC2047 encoded message header fields.
(defalias 'mh-decode-message-header #[0 "\205\f \302\303e\304 \")\207" [mh-decode-mime-flag buffer-read-only nil mail-decode-encoded-word-region mh-mail-header-end] 3 (#$ . 19123)])
#@47 Decode RFC2047 encoded message header fields.
(defalias 'mh-decode-message-subject #[0 "\205 \212\302\303\304\305!\210`\306 \210`\"*\207" [mh-decode-mime-flag buffer-read-only nil mail-decode-encoded-word-region mh-goto-header-field "Subject:" mh-header-field-end] 3 (#$ . 19359)])
#@232 Display (and possibly decode) MIME handles.
Optional argument, PRE-DISSECTED-HANDLES is a list of MIME
handles. If present they are displayed otherwise the buffer is
parsed and then displayed.

(fn &optional PRE-DISSECTED-HANDLES)
(defalias 'mh-mime-display #[256 "\303\304 \305\306\"\307K\305\310\"\216\307M\210eb\210\311\312\303\313#\204$ db\210\312c\210\3141\256 \2032 \262\202\201 \315\303!\211\262\203B \316!\210\202F \317 \262\320p	\"\321!\n>\204Y \322\323\324D\"\210\211\325\326\320p	\"\321!\n>\204q \322\323\324D\"\210\211\325H\262\"I\266\204\201 \327 \210\203\250 @;\203\220 A\203\250 eb\210\311\312\303\313#\204\236 db\210`d|\210\330!\202\252 \331 0\202\275 \332\333\334!\"\210ed|\210c\262)\207" [mh-show-folder-buffer mh-globals-hash cl-struct-mh-buffer-data-tags nil buffer-string make-closure #[514 "\301\300#\207" [V0 mh-handle-set-external-undisplayer] 6 "\n\n(fn HANDLE FUNCTION)"] mm-handle-set-external-undisplayer #[0 "\301\300M\207" [V0 mm-handle-set-external-undisplayer] 2] search-forward "\n\n" t (error) mm-dissect-buffer mh-mm-uu-dissect-text-parts mm-uu-dissect gethash type-of signal wrong-type-argument mh-buffer-data 1 mh-mm-merge-handles mh-decode-message-body mh-mime-display-part mh-signature-highlight message "Could not display body: %s" error-message-string] 16 (#$ . 19651)])
#@99 Decode message based on charset.
If message has been encoded for transfer take that into account.
(defalias 'mh-decode-message-body #[0 "\300\211\211eb\210\301\302\300\303#\210\214e`}\210\3041 \305\306\307\303\"!0\202! \210\300\262\310\311\"\262\306\312!\262)\211;\2039 \313!\262\203D @\314\232\205[ \214\315 Td^d}\210\316\205W \317\227!@#)\207" [nil re-search-forward "\n\n" t (error) mail-header-parse-content-type message-fetch-field "Content-Type" mail-content-type-get charset "Content-Transfer-Encoding" mail-header-strip-cte "text/plain" mh-mail-header-end mm-decode-body intern] 7 (#$ . 20997)])
#@70 Decides the viewer to call based on the type of HANDLE.

(fn HANDLE)
(defalias 'mh-mime-display-part #[257 "\211\204 \301\207\211@;\204 \302!\207\211@\303\232\203 \304A!\207\2032 \211@\305\232\204. \211@\306\232\2032 \307!\207\310A!\207" [mh-pgp-support-flag nil mh-mime-display-single "multipart/alternative" mh-mime-display-alternative "multipart/signed" "multipart/encrypted" mh-mime-display-security mh-mime-display-mixed] 3 (#$ . 21620)])
#@68 Display the list of MIME parts, HANDLES recursively.

(fn HANDLES)
(defalias 'mh-mime-display-mixed #[257 "\300\301\"\207" [mapcar mh-mime-display-part] 4 (#$ . 22078)])
#@145 Choose among the alternatives, HANDLES the part that will be displayed.
If no part is preferred then all the parts are displayed.

(fn HANDLES)
(defalias 'mh-mime-display-alternative #[257 "\300!\301\211:\203! @\262=\204 B\262A\262\202 \211\237\266\203\2037 @;\2037 \302!\210\303!\207\203U \214`m\203E `\202G `T}\210\304!\210\303!\210db)\207\305!\207" [mm-preferred-alternative nil mh-mime-display-part mh-mime-maybe-display-alternatives mh-mime-display-single mh-mime-display-mixed] 7 (#$ . 22256)])
#@173 Show buttons for ALTERNATIVES.
If `mh-mime-display-alternatives-flag' is non-nil then display
buttons for alternative parts that are usually suppressed.

(fn ALTERNATIVES)
(defalias 'mh-mime-maybe-display-alternatives #[257 "\205* \211\205* \301c\210\302c\210\211\211\203' \211@\303c\210\304\305!\306#\210A\266\202\202 \210\301c\207" [mh-display-buttons-for-alternatives-flag "\n----------------------------------------------------\n" "Alternatives:\n" "\n" mh-insert-mime-button mh-mime-part-index nil] 7 (#$ . 22786)])
#@60 Display PGP encrypted/signed message, HANDLE.

(fn HANDLE)
(defalias 'mh-mime-display-security #[257 "\214``}\210\302c\210\303!\210\304A!\210\302c\210\303!\210)\211\305\306 \307 B\2051 \310\311@G@%\266\203)\207" [mh-mime-security-button-end-line-format mh-mime-security-button-line-format "\n" mh-insert-mime-security-button mh-mime-display-mixed mh-region point-min-marker point-max-marker put-text-property 0] 10 (#$ . 23318)])
#@60 Display a leaf node, HANDLE in the MIME tree.

(fn HANDLE)
(defalias 'mh-mime-display-single #[257 "\211\211@;\203 \211@\262\202 \211A@@\262\302!\3038@\304\232\3038@\305\232\2055 \306!\2055 \307!\2055 \310!\211\206x \311!\206x ?\205x \206x \312\211@;\203X \211@\262\202^ \211A@@\262\313\"@\262\314\232?\205x \306!\205x \307!\205x \310!\214`m\203\202 `\202\204 `T}\210\203\220 \315\232\204\335 \211\204\244 \316c\210\317\320!\321#\210\202\335 \211\203\300 	\204\300 \322!\204\270 \322!\210\323!\210\202\335 \211\203\335 	\203\335 \316c\210\317\320!\321#\210\324y\210\325!\210db)\207" [mh-pgp-support-flag mh-display-buttons-for-inline-parts-flag mh-small-image-p 4 "attachment" "inline" mm-automatic-display-p mm-inlinable-p mm-inlined-p mh-inline-vcard-p split-string "/" "image" "application/pgp-signature" "\n" mh-insert-mime-button mh-mime-part-index nil mm-display-part mh-signature-highlight -1 mh-mm-display-part] 10 (#$ . 23765)])
#@62 Toggle display of button for MIME part, HANDLE.

(fn HANDLE)
(defalias 'mh-mm-display-part #[257 "\304 \210\305`\306\"`\307 \310\211\211C\310\212\311\312&\216\313p\314\"\211\2030 \315!\210b\210\316!\203n \305\317\"\211\203P \320\321!\203P \321@A\"\210\322	!\210\211\203_ \211@A|\210\210l?\205`\310y\210`|\202\214`\323y\210`|\210``}\210\324\211@;\203\213 \211@\262\202\221 \211A@@\262\325\"@\262\326\232\203\236 \327c\210\3301\252 \322!0\202\254 \210\310\331=\204\331 \324\211@;\203\302 \211@\262\202\310 \211A@@\262\325\"@\262\326\232\203\331 eb\210\332\323!\210\324\211@;\203\352 \211@\262\202\360 \211A@@\262\325\"@\262\333\232\203\334=\203\335 \210\336 \210\337 \210\340!\210eb\210\341 db\210\341 B\240)\262-\207" [buffer-read-only mail-parse-ignored-charsets mail-parse-charset mh-highlight-citation-style beginning-of-line get-text-property mh-part selected-window nil make-closure #[0 "\305\303!\203\n \306\303!\210\302b\210\307 \210\310\300\301\311\300!#\210\302b\210\304\242\205* \312\313 \314 \315\304\242D#\207" [V0 V1 V2 V3 V4 window-live-p select-window beginning-of-line mh-insert-mime-button mm-handle-displayed-p add-text-properties mh-line-beginning-position mh-line-end-position mh-region] 5] get-buffer-window t select-window mm-handle-displayed-p mh-region fboundp remove-images mm-display-part 1 split-string "/" "image" "\n" (error) inline delete-char "text" gnus mh-gnus-article-highlight-citation mh-display-smileys mh-display-emphasis mh-signature-highlight point-marker] 14 (#$ . 24748)])
#@221 Generate the button number for MIME part, HANDLE.
Notice that a hash table is used to display the same number when
buttons need to be displayed multiple times (for instance when
nested messages are opened).

(fn HANDLE)
(defalias 'mh-mime-part-index #[257 "\302\302p\"\303!	>\204 \304\305\306D\"\210\211\307H\262\"\206X \302p\"\303!	>\2041 \304\305\306D\"\210\211\307H\262\310\302p\"\303!	>\204K \304\305\306D\"\210\211\311\311HTI\262#\262\207" [mh-globals-hash cl-struct-mh-buffer-data-tags gethash type-of signal wrong-type-argument mh-buffer-data 4 puthash 3] 9 (#$ . 26328)])
#@153 Decide whether HANDLE is a "small" image that can be displayed inline.
This is only useful if a Content-Disposition header is not present.

(fn HANDLE)
(defalias 'mh-small-image-p #[257 "\304A@@\"AA@\305\211\205` \306\211@;\203  \211@\262\202& \211A@@\262\307\"@\262\310\232\205` \211!\205` \311!\312\313!\205B \313!\211\205\\ \211A\n\206O \314 SW\205\\ \211@\206[ \315 W\262\262)\207" [mh-mm-inline-media-tests mm-inline-large-images mh-max-inline-image-height mh-max-inline-image-width assoc t split-string "/" "image" mm-get-image fboundp image-size window-height window-width] 6 (#$ . 26933)])
#@73 Decide if HANDLE is a vcard that must be displayed inline.

(fn HANDLE)
(defalias 'mh-inline-vcard-p #[257 "\211A@\300\301!\204 \302\303!\205& \211:\205& \211@\304\232\205& \212\214~\210eb\210\305 *?\207" [featurep vcard fboundp vcard-pretty-print "text/x-vcard" mh-signature-separator-p] 4 (#$ . 27551)])
#@183 Highlight message signature in HANDLE.
The optional argument, HANDLE is a MIME handle if the function is
being used to highlight the signature in a MIME part.

(fn &optional HANDLE)
(defalias 'mh-signature-highlight #[256 "\211\204 \300\202Y \211\301\211@;\203 \211@\262\202 \211A@@\262\302\"@\262\303\232\203I \211\301\211@;\2038 \211@\262\202> \211A@@\262\302\"A@\262\304\232\204M \300\202Y \305 \306=\203X \307\202Y \310\212db\210\311\312\313#\205w \314`d\"\315\316\317#\210\315\320\313#\266\312)\207" ["^-- $" split-string "/" "text" "html" mh-mm-text-html-renderer lynx "^   --$" "^--$" re-search-backward nil t make-overlay overlay-put face mh-show-signature evaporate] 7 (#$ . 27865)])
#@189 Insert MIME button for HANDLE.
INDEX is the part number that will be DISPLAYED. It is also used
by commands like "K v" which operate on individual MIME parts.

(fn HANDLE INDEX DISPLAYED)
(defalias 'mh-insert-mime-button #[771 "\306!\203 \211\204 \307!\210\310A@\311\"\206* \310\3128\313\"\206* \310A@\314\"\206* \315\211@;\2038 \211@\262\202> \211A@@\262\316\211\317\320\"\203N \321\225\316O\262\322\3238\206Y \315!\204f \306!\203j \324\202k \325\315\232?\205w \326PP	\315\232\204\203 \327Pn\204\212 \330c\210`\262\331\f\332\333-!\334\335\336\337\257\"#,\210`\262\340\341\342\343\344\345-\346\347&\210\350\351!\205\300 \351\"\211\205\331 \211@\350\352!\203\322 \352\353\354#\210A\266\202\202\300 \207" [index description dots long-type mh-mime-button-line-format mh-mime-button-line-format-alist mm-handle-displayed-p mm-display-part mail-content-type-get name 4 filename url "" nil string-match ".*/" 0 mail-decode-encoded-word-string 5 "   " "..." "; " " --- " "\n" gnus-eval-format append mh-gnus-local-map-property mh-callback mh-mm-display-part mh-part mh-data widget-convert-button link :mime-handle :action mh-widget-press-button :button-keymap :help-echo "Mouse-2 click or press RET (in show buffer) to toggle display" fboundp overlays-in overlay-put evaporate t mh-mime-button-map] 19 (#$ . 28580)])
#@55 Display buttons for PGP message, HANDLE.

(fn HANDLE)
(defalias 'mh-insert-mime-security-button #[257 "\306\307\310@#\311\312\"8\206 \311\312	\"8\206 \313\314\211\211@\315\232\203) \316\202* \317\320Q\306\307\321@#\2068 \322\306\307\323@#\314\f\203M \324\fP\202N \3253\203X \f\202Y \325\326!\262n\204f \324c\210`\262\32745\330\3316!\3323\333\334\3354\336\257\"#\210`\262\337\340\341\n\342\343\3446\345\346\347&\210\350\351!\205\244 \351\"\211\203\275 \211@\350\352!\203\266 \352\353\354#\210A\266\202\202\244 \210\355\232\205\346 @\315\232\203\317 \356\202\320 \357\211\357\232\203\333 \360\202\334 \325\361\362\n$)\262,\207" [mm-verify-function-alist mm-decrypt-function-alist type info details pressed-details get-text-property 0 protocol 2 assoc "Unknown" nil "multipart/signed" " Signed" " Encrypted" " Part" gnus-info "Undecided" gnus-details "\n" "" mh-mime-security-button-face gnus-eval-format append mh-gnus-local-map-property mh-button-pressed mh-callback mh-mime-security-press-button mh-line-format mh-data widget-convert-button link :mime-handle :action mh-widget-press-button :button-keymap :button-face :help-echo "Mouse-2 click or press RET (in show buffer) to see security details." fboundp overlays-in overlay-put evaporate t "Failed" "verification" "decryption" "(passphrase may be incorrect)" message "%s %s failed %s" mh-mime-security-button-pressed mh-mime-security-button-line-format mh-mime-security-button-line-format-alist mh-mime-security-button-map] 21 (#$ . 29942)])
#@83 Return the button face to use for encrypted/signed mail based on INFO.

(fn INFO)
(defalias 'mh-mime-security-button-face #[257 "\300\301\"\203	 \302\207\300\303\"\203 \304\207\300\305\"\203 \306\207\300\307\"\203$ \306\207\302\207" [string-match "OK" mh-show-pgg-good "Failed" mh-show-pgg-bad "Undecided" mh-show-pgg-unknown "Untrusted"] 4 (#$ . 31494)])
#@338 Go to PART-INDEX and carry out ACTION.

If PART-INDEX is nil then go to the next part in the buffer. The
search for the next buffer wraps around if end of buffer is reached.
If argument INCLUDE-SECURITY-FLAG is non-nil then include security
info buttons when searching for a suitable parts.

(fn PART-INDEX ACTION INCLUDE-SECURITY-FLAG)
(defalias 'mh-folder-mime-action #[771 "\204 \303 \210\304 \305	!\210\n\203 \306p!\210\307\310\"\216\203% \307\311\"\202) \307\312\"`\313\314\"\203F \203? \313\314\"U\203F  \266\202\202s \313\315\"\203\\ \203\\ \204\\  \266\202\202s \316\317\"\210`U\203o \320\321!\266\202\202s  \266\202)\207" [mh-showing-mode mh-show-buffer mh-bury-show-buffer-flag mh-show selected-window switch-to-buffer-other-window bury-buffer make-closure #[0 "\301\300!\207" [V0 select-window] 2] #[257 "\301\302\"\211\250\205\f \211\300U\207" [V0 get-text-property mh-part] 4 "\n\n(fn P)"] #[257 "\300\203	 \301\302\"\207\301\303\"\250\207" [V0 get-text-property mh-data mh-part] 4 "\n\n(fn P)"] get-text-property mh-part mh-data mh-goto-next-button nil message "No matching MIME part found"] 9 (#$ . 31863)])
#@294 Search for next button satisfying criterion.

If BACKWARD-FLAG is non-nil search backward in the buffer for a mime
button.
If CRITERION is a function or a symbol which has a function binding
then that function must return non-nil at the button we stop.

(fn BACKWARD-FLAG &optional CRITERION)
(defalias 'mh-goto-next-button #[513 "\2119\203 \300!\204 \301!\204 \302\262\212\303 \210\212\304`\305\"\203? \203( \306\202) \307y\310U\204 \2039 eb\210\202 db\210\202 `)\304`\305\"\203b \203P o\202Q m\204b \203\\ \307\202] \306y\210\202A \3112\242 \203n \307\202o \306y\310U\204\205 \203 db\210\202\202 eb\210\303 \210`U\204\240 \304`\305\"\203f `!\203f \312\311`\"\210\202f \3130\262)\206\251 `b\207" [fboundp functionp #[257 "\300\207" [t] 2 "\n\n(fn _)"] beginning-of-line get-text-property mh-data 1 -1 0 --cl-block-loop-- throw nil] 6 (#$ . 33016)])
#@70 Callback for widget, WIDGET.
Parameter EL is unused.

(fn WIDGET EL)
(defalias 'mh-widget-press-button #[514 "\300\301\"b\210\302 \207" [widget-get :from mh-press-button] 5 (#$ . 33891)])
#@125 View contents of button.

This command is a toggle so if you use it again on the same
attachment, the attachment is hidden.
(defalias 'mh-press-button #[0 "\304`\305\"\304`\306\"\307	\310\311\"\312K\310\313\"\216\312M\210\203) l\203) \314u\210\315\216\2053 !*\266\202*\207" [mh-mm-inline-media-tests mh-show-folder-buffer buffer-read-only mm-inline-media-tests get-text-property mh-data mh-callback nil make-closure #[514 "\301\300#\207" [V0 mh-handle-set-external-undisplayer] 6 "\n\n(fn HANDLE FUNCTION)"] mm-handle-set-external-undisplayer #[0 "\301\300M\207" [V0 mm-handle-set-external-undisplayer] 2] -1 #[0 "\300\301!\207" [set-buffer-modified-p nil] 2]] 10 (#$ . 34087) nil])
#@197 Click MIME button for EVENT.

If the MIME part is visible then it is removed. Otherwise the
part is displayed. This function is called when the mouse is used
to click the MIME button.

(fn EVENT)
(defalias 'mh-push-button #[257 "\212\304\305!\205 \306!\211@\262\304\307!\205 \307\306!!\310 \311!q\210\312 \313 \314\315\316$\216\317!\210b\210	\n\320`\321\"\320`\322\"\315\323\"\324K\315\325\"\216\324M\210\205V !)\266\202)\266\204*\266\205)\207" [buffer-read-only mh-show-folder-buffer mh-mm-inline-media-tests mm-inline-media-tests fboundp posn-window event-start posn-point selected-window window-buffer point-marker buffer-modified-p nil make-closure #[0 "\303\302!\210\301b\210\301\304\211\223\210\305\300!\207" [V0 V1 V2 set-buffer-modified-p nil select-window] 3] select-window get-text-property mh-data mh-callback #[514 "\301\300#\207" [V0 mh-handle-set-external-undisplayer] 6 "\n\n(fn HANDLE FUNC)"] mm-handle-set-external-undisplayer #[0 "\301\300M\207" [V0 mm-handle-set-external-undisplayer] 2]] 15 (#$ . 34792) "e"])
#@331 Replacement for `mm-handle-set-external-undisplayer'.

This is only called in recent versions of Gnus. The MIME handles
are stored in data structures corresponding to MH-E folder buffer
FOLDER instead of in Gnus (as in the original). The MIME part,
HANDLE is associated with the undisplayer FUNCTION.

(fn FOLDER HANDLE FUNCTION)
(defalias 'mh-handle-set-external-undisplayer #[771 "\302!\2038 \303!\304\233\240\210\304\233\305\240\210rq\210\306p\"\307!	>\204, \310\311\312D\"\210\211\313\313HBI\262)\207\304\233\240\207" [mh-globals-hash cl-struct-mh-buffer-data-tags mh-mm-keep-viewer-alive-p copy-sequence 3 nil gethash type-of signal wrong-type-argument mh-buffer-data 1] 10 (#$ . 35851)])
#@61 Callback from security button for part HANDLE.

(fn HANDLE)
(defalias 'mh-mime-security-press-button #[257 "\302\303\304@#\203 \305!\207\302\303\306@#\307`\262@b\210@A|\210r\302\303\310@#q\210\311\211\312A\"\211A=\204C \313A!\210\241\210*\210)\314!\210\211b\207" [mm-verify-option mm-decrypt-option get-text-property 0 gnus-info mh-mime-security-show-details mh-region nil buffer known mh-mm-possibly-verify-or-decrypt mh-mm-destroy-parts mh-mime-display-security] 8 (#$ . 36565)])
#@67 Toggle display of detailed security info for HANDLE.

(fn HANDLE)
(defalias 'mh-mime-security-show-details #[257 "\302\303\304@#\211\205D \302`\305\"?\302`\306\"\307u\210\302`\306\"=\203' \307u\210\202 \310u\210\214``}\210\311!\210)`\312`d\306$\206? d|\210\307y*\207" [mh-mime-security-button-line-format mh-mime-security-button-pressed get-text-property 0 gnus-details mh-button-pressed mh-line-format -1 nil mh-insert-mime-security-button text-property-not-all] 8 (#$ . 37071)])
#@119 Some mail programs don't put a MIME-Version header.
I have seen this only in spam, so maybe we shouldn't fix
this ;-)
(defalias 'mh-add-missing-mime-version-header #[0 "\212eb\210\300\301\302\303#\210\214e`}\210\304\305!\205! \304\306!?\205! eb\210\307c*\207" [re-search-forward "\n\n" nil t message-fetch-field "content-type" "mime-version" "MIME-Version: 1.0\n"] 4 (#$ . 37566)])
#@18 Display smileys.
(defalias 'mh-display-smileys #[0 "\205 \301 \205 \302\303!\205 \303ed\"\207" [mh-graphical-smileys-flag mh-small-show-buffer-p fboundp smiley-region] 3 (#$ . 37954)])
#@29 Display graphical emphasis.
(defalias 'mh-display-emphasis #[0 "\205 \301 \205 \302\303K\304\305\"\216\303M\210\212eb\210\306 *\266\202\207" [mh-graphical-emphasis-flag mh-small-show-buffer-p #[0 "\300\207" [nil] 1] article-goto-body make-closure #[0 "\301\300M\207" [V0 article-goto-body] 2] article-emphasize] 5 (#$ . 38149)])
#@110 Check if show buffer is small.
This is used to decide if smileys and graphical emphasis should be
displayed.
(defalias 'mh-small-show-buffer-p #[0 "\301\302\300!\203' \203' \247\203 \262\202' <\203' \303\236\206$ \304\236A\262\211\247?\2063 \211\305\245\306 Y\207" [font-lock-maximum-size nil boundp mh-show-mode t 8 buffer-size] 3 (#$ . 38490)])
#@436 Add tag to forward a message.

You are prompted for a content DESCRIPTION, the name of the
FOLDER in which the messages to forward are located, and a RANGE
of messages, which defaults to the current message in that
folder. Check the documentation of `mh-interactive-range' to see
how RANGE is read in interactive use.

The option `mh-compose-insertion' controls what type of tags are inserted.

(fn &optional DESCRIPTION FOLDER RANGE)
(defalias 'mh-compose-forward #[768 "\301\302\303!\304#\305\"\211\2057 \211@\306=\203% \307\310\311\"#\210\2020 \312\310\311\"#\210A\266\202\202 \207" [mh-compose-insertion mapconcat identity mh-list-to-string " " mh-translate-range mml mh-mml-forward-message format "%s" mh-mh-forward-message] 12 (#$ . 38853) (byte-code "\302 \303\304\305#\211\232\203 	\247\203 	\202 \306\307\"@\310\311\203( \312!\206) \313\313\211%E\207" [mh-sent-from-folder mh-sent-from-msg mml-minibuffer-read-description mh-prompt-for-folder "Message from" nil mh-translate-range "cur" mh-read-range "Forward" number-to-string t] 9)])
#@150 Forward a message as attachment.

The function will prompt the user for a DESCRIPTION, a FOLDER and
MESSAGE number.

(fn DESCRIPTION FOLDER MESSAGE)
(defalias 'mh-mml-forward-message #[771 "\211\302\232\203 \247\203 \202 \303!\211\250\2030 \304\305\306	\307\310O$\311\302\230?\205- \312$\207\313\314\"\207" [mh-sent-from-msg mh-user-path "" string-to-number mml-attach-file format "%s%s/%d" 1 nil "message/rfc822" "inline" error "The message number, %s, is not an integer"] 11 (#$ . 39933)])
#@243 Add tag to forward a message.
You are prompted for a content DESCRIPTION, the name of the
FOLDER in which the messages to forward are located, and the
MESSAGES' numbers.

See also \[mh-mh-to-mime].

(fn &optional DESCRIPTION FOLDER MESSAGES)
(defalias 'mh-mh-forward-message #[768 "\301 \210\302c\210\203 \303\230\204 c\210\304c\210\203% \303\230\204% \305\261\210\211\203@ \211\303\230\204@ `\305\261\210\306`\307\310$\266\202L \247\203L \305\311!\261\210\312c\207" [mh-sent-from-msg beginning-of-line "#forw [" "" "]" " " subst-char-in-region 44 32 int-to-string "\n"] 9 (#$ . 40446) (byte-code "\302 \303\304\305#\306\307\310	\"!E\207" [mh-sent-from-folder mh-sent-from-msg mml-minibuffer-read-description mh-prompt-for-folder "Message from" nil read-string format-prompt "Messages"] 6)])
#@446 Add tag to include a file such as an image or sound.

You are prompted for the filename containing the object, the
media type if it cannot be determined automatically, and a
content description. If you're using MH-style directives, you
will also be prompted for additional attributes.

The option `mh-compose-insertion' controls what type of tags are
inserted. Optional argument INLINE means make it an inline
attachment.

(fn &optional INLINE)
(defalias 'mh-compose-insertion #[256 "\301=\203 \211\203 \302\303!\207\302 \207\304\305!\207" [mh-compose-insertion mml mh-mml-attach-file "inline" call-interactively mh-mh-attach-file] 3 (#$ . 41262) "P"])
#@420 Add a tag to insert a MIME message part from a file.

You are prompted for the filename containing the object, the
media type if it cannot be determined automatically, a content
description and the DISPOSITION of the attachment.

This is basically `mml-attach-file' from Gnus, modified such that a prefix
argument yields an "inline" disposition and Content-Type is determined
automatically.

(fn &optional DISPOSITION)
(defalias 'mh-mml-attach-file #[256 "\300\301!\302!\303 \206 \304!\305\306\307\310\311\312\n&	\207" [mml-minibuffer-read-file "Attach file: " mh-minibuffer-read-type mml-minibuffer-read-description mh-mml-minibuffer-read-disposition mml-insert-empty-tag part type filename disposition description] 15 (#$ . 41925)])
#@328 Add a tag to insert a MIME message part from a file.
You are prompted for the FILENAME containing the object, the
media TYPE if it cannot be determined automatically, and a
content DESCRIPTION. In addition, you are also prompted for
additional ATTRIBUTES.

See also \[mh-mh-to-mime].

(fn FILENAME TYPE DESCRIPTION ATTRIBUTES)
(defalias 'mh-mh-attach-file #[1028 "\300$\207" [mh-mh-compose-type] 9 (#$ . 42677) (byte-code "\300\301!\211\302!\303 \304\305\306\307!\310Q\"F\207" [mml-minibuffer-read-file "Attach file: " mh-minibuffer-read-type mml-minibuffer-read-description read-string "Attributes: " "name=\"" file-name-nondirectory "\""] 9)])
#@299 Insert an MH-style directive to insert a file.
The file specified by FILENAME is encoded as TYPE. An optional
DESCRIPTION is used as the Content-Description field, optional
set of ATTRIBUTES and an optional COMMENT can also be included.

(fn FILENAME TYPE &optional DESCRIPTION ATTRIBUTES COMMENT)
(defalias 'mh-mh-compose-type #[1282 "\300 \210\301\261\210\203 \302\261\210\211\203 \303\304\261\210\305c\210\203% c\210\306\307!\261\210\310c\207" [beginning-of-line "#" "; " " (" ")" " [" "] " expand-file-name "\n"] 8 (#$ . 43337)])
#@308 Add tag to include anonymous ftp reference to a file.

You can have your message initiate an "ftp" transfer when the
recipient reads the message. You are prompted for the remote HOST
and FILENAME, the media TYPE, and the content DESCRIPTION.

See also \[mh-mh-to-mime].

(fn HOST FILENAME TYPE DESCRIPTION)
(defalias 'mh-mh-compose-anon-ftp #[1028 "\300\301%\207" [mh-mh-compose-external-type "anon-ftp"] 10 (#$ . 43892) (byte-code "\300\301!\300\302!\303\304!\305 F\207" [read-string "Remote host: " "Remote filename: " mh-minibuffer-read-type "DUMMY-FILENAME" mml-minibuffer-read-description] 4)])
#@360 Add tag to include anonymous ftp reference to a compressed tar file.

In addition to retrieving the file via anonymous "ftp" as per
the command \[mh-mh-compose-anon-ftp], the file will also be
uncompressed and untarred. You are prompted for the remote HOST
and FILENAME and the content DESCRIPTION.

See also \[mh-mh-to-mime].

(fn HOST FILENAME DESCRIPTION)
(defalias 'mh-mh-compose-external-compressed-tar #[771 "\300\301\302\303\304&\207" [mh-mh-compose-external-type "anon-ftp" "application/octet-stream" "type=tar; conversions=x-compress" "mode=image"] 11 (#$ . 44503) (byte-code "\300\301!\300\302!\303 E\207" [read-string "Remote host: " "Remote filename: " mml-minibuffer-read-description] 3)])
#@32 Valid MIME access-type values.
(defvar mh-access-types '(("anon-ftp") ("file") ("ftp") ("gopher") ("http") ("local-file") ("mail-server") ("mailto") ("news") ("nntp") ("prospero") ("telnet") ("tftp") ("url") ("wais")) (#$ . 45216))
#@526 Add tag to refer to a remote file.

This command is a general utility for referencing external files.
In fact, all of the other commands that insert directives to
access external files call this command. You are prompted for the
ACCESS-TYPE, remote HOST and FILENAME, and content TYPE. If you
provide a prefix argument, you are also prompted for a content
DESCRIPTION, ATTRIBUTES, PARAMETERS, and a COMMENT.

See also \[mh-mh-to-mime].

(fn ACCESS-TYPE HOST FILENAME TYPE &optional DESCRIPTION ATTRIBUTES PARAMETERS COMMENT)
(defalias 'mh-mh-compose-external-type #[2052 "\300 \210\301\261\210\203 \302\261\210\211\203 \303\304\261\210\305c\210\203% c\210\306c\210\307\302\261\210\310\261\210\311\312!\261\210\313!\211\203K \314\315\261\210\210\203U \302\261\210\316c\207" [beginning-of-line "#@" "; " " (" ") " " [" "] " "access-type=" "site=" "; name=" file-name-nondirectory file-name-directory "; directory=\"" "\"" "\n"] 12 (#$ . 45455) (byte-code "\302\303\"\304\305!\304\306!\307\310!	\205 \311 	\205 \304\312!	\205! \304\313!	\205( \304\314!\257\207" [mh-access-types current-prefix-arg completing-read "Access type: " read-string "Remote host: " "Remote filename: " mh-minibuffer-read-type "DUMMY-FILENAME" mml-minibuffer-read-description "Attributes: " "Parameters: " "Comment: "] 9)])
#@231 Extra arguments for \[mh-mh-to-mime] to pass to the "mhbuild" command.
The arguments are passed to "mhbuild" if \[mh-mh-to-mime] is
given a prefix argument. Normally default arguments to
"mhbuild" are specified in the MH profile.
(defvar mh-mh-to-mime-args nil (#$ . 46789))
#@885 Compose MIME message from MH-style directives.

Typically, you send a message with attachments just like any other
message. However, you may take a sneak preview of the MIME encoding if
you wish by running this command.

If you wish to pass additional arguments to "mhbuild" ("mhn")
to affect how it builds your message, use the option
`mh-mh-to-mime-args'. For example, you can build a consistency
check into the message by setting `mh-mh-to-mime-args' to
"-check". The recipient of your message can then run "mhbuild
-check" on the message--"mhbuild" ("mhn") will complain if
the message has been corrupted on the way. This command only
consults this option when given a prefix argument EXTRA-ARGS.

The hook `mh-mh-to-mime-hook' is called after the message has been
formatted.

The effects of this command can be undone by running
\[mh-mh-to-mime-undo].

(fn &optional EXTRA-ARGS)
(defalias 'mh-mh-to-mime #[256 "\302 \210\303 \210\304\305\306\307!\203 \310\202 \311\"\210\306\307!\203) \312\313\310\205# 	$\210\2027 \312\314\315	\"\311\2054 	$\210\316\317\211\211#\210\304\320\306\307!\203I \310\202J \311\"\210\321\322!\207" [mh-mh-to-mime-args buffer-file-name mh-mh-quote-unescaped-sharp save-buffer message "Running %s..." mh-variant-p nmh "mhbuild" "mhn" mh-exec-cmd-error nil format "mhdraft=%s" revert-buffer t "Running %s...done" run-hooks mh-mh-to-mime-hook] 6 (#$ . 47071) "*P"])
#@234 Quote "#" characters that haven't been quoted for "mhbuild".
If the "#" character is present in the first column, but it isn't
part of a MH-style directive then "mhbuild" gives an error.
This function will quote all such characters.
(defalias 'mh-mh-quote-unescaped-sharp #[0 "\212eb\210\300\301\302\303#\205! \304 \210\305`\306 \"\204 \307c\210\306 b\210\202 )\207" [re-search-forward "^#" nil t beginning-of-line mh-mh-directive-present-p mh-line-end-position "#"] 4 (#$ . 48478)])
#@211 Undo effects of \[mh-mh-to-mime].

It does this by reverting to a backup file. You are prompted to
confirm this action, but you can avoid the confirmation by adding
a prefix argument NOCONFIRM.

(fn NOCONFIRM)
(defalias 'mh-mh-to-mime-undo #[257 "\204 \302\303!\210\304\305\203' \306\307!@\310!\311R\211\262!\204' A\262\202\n \2040 \302\312\"\210\204A \313\314\315\"!\204A \302\316!\210\305\317 \210\320!\210)\321\305\211\211\211\322%\207" [buffer-file-name buffer-read-only error "Buffer does not seem to be associated with any file" ("," "#") nil file-exists-p file-name-directory file-name-nondirectory ".orig" "Backup file for %s no longer exists" yes-or-no-p format "Revert buffer from file %s? " "Revert not confirmed" erase-buffer insert-file-contents after-find-file t] 9 (#$ . 48971) "*P"])
#@299 Add tag to encrypt the message.

A proper multipart message is created for you when you send the
message. Use the command \[mh-mml-unsecure-message] to remove
this tag. Use a prefix argument METHOD to be prompted for one of
the possible security methods (see `mh-mml-method-default').

(fn METHOD)
(defalias 'mh-mml-secure-message-encrypt #[257 "\301\302#\207" [mh-identity-pgg-default-user-id mh-secure-message "encrypt"] 5 (#$ . 49793) (byte-code "\300 C\207" [mh-mml-query-cryptographic-method] 1)])
#@296 Add tag to sign the message.

A proper multipart message is created for you when you send the
message. Use the command \[mh-mml-unsecure-message] to remove
this tag. Use a prefix argument METHOD to be prompted for one of
the possible security methods (see `mh-mml-method-default').

(fn METHOD)
(defalias 'mh-mml-secure-message-sign #[257 "\301\302#\207" [mh-identity-pgg-default-user-id mh-secure-message "sign"] 5 (#$ . 50305) (byte-code "\300 C\207" [mh-mml-query-cryptographic-method] 1)])
#@308 Add tag to encrypt and sign the message.

A proper multipart message is created for you when you send the
message. Use the command \[mh-mml-unsecure-message] to remove
this tag. Use a prefix argument METHOD to be prompted for one of
the possible security methods (see `mh-mml-method-default').

(fn METHOD)
(defalias 'mh-mml-secure-message-signencrypt #[257 "\301\302#\207" [mh-identity-pgg-default-user-id mh-secure-message "signencrypt"] 5 (#$ . 50808) (byte-code "\300 C\207" [mh-mml-query-cryptographic-method] 1)])
(defvar mh-mml-cryptographic-method-history nil)
#@39 Read the cryptographic method to use.
(defalias 'mh-mml-query-cryptographic-method #[0 "\203 	@\206\n \n\303\304\305\"\306\307\310\307\301&\207\n\207" [current-prefix-arg mh-mml-cryptographic-method-history mh-mml-method-default completing-read format-prompt "Method" (("pgp") ("pgpmime") ("smime")) nil t] 9 (#$ . 51385)])
#@243 Add tag to encrypt or sign message.

METHOD should be one of: "pgpmime", "pgp", "smime".
MODE should be one of: "sign", "encrypt", "signencrypt", "none".
IDENTITY is optionally the default-user-id to use.

(fn METHOD MODE &optional IDENTITY)
(defalias 'mh-secure-message #[770 "\204 \302\303!\207\304\305\306E\307\310\311\312F\235\204 \302\313\"\210\235\204( \302\314\"\210\315 \210\312\230?\205W \212eb\210\316\317!\210	\203M \320\321\322\323\324	&\202V \320\321\322\323%)\207" [mh-pgp-support-flag mh-identity-pgg-default-user-id error "Your version of Gnus does not support PGP/GPG" "pgpmime" "pgp" "smime" "sign" "encrypt" "signencrypt" "none" "Method %s is invalid" "Mode %s is invalid" mml-unsecure-message mh-goto-header-end 1 mml-insert-tag secure method mode sender] 13 (#$ . 51722)])
#@257 Compose MIME message from MML tags.

Typically, you send a message with attachments just like any
other message. However, you may take a sneak preview of the MIME
encoding if you wish by running this command.

This action can be undone by running \[undo].
(defalias 'mh-mml-to-mime #[0 "\301\302!\210\203* \303 \210\304\305!\203 \306\305\307\310\304\305!!!\"\210\306\311\312\313\314\304\311!\315\"\316#\"\210\317 p\320 \32117 \322 0\207rq\210ed|\210c\210\323!\210)\324\325!!\207" [mh-pgp-support-flag require message message-options-set-recipient message-options-get message-sender message-options-set mail-strip-quoted-names mh-alias-expand message-recipients mapconcat #[257 "\300\301!!\207" [mail-strip-quoted-names mh-alias-expand] 4 "\n\n(fn ALI)"] split-string "[, ]+" ", " buffer-string buffer-modified-p (error) mml-to-mime set-buffer-modified-p error error-message-string] 7 (#$ . 52543) nil])
#@33 Remove any secure message tags.
(defalias 'mh-mml-unsecure-message #[0 "\204 \301\302!\207\303 \207" [mh-pgp-support-flag error "Your version of Gnus does not support PGP/GPG" mml-unsecure-message] 2 (#$ . 53459) nil])
#@62 Check if the current buffer has text which may be a MML tag.
(defalias 'mh-mml-tag-present-p #[0 "\212eb\210\300\301\302\303#)\207" [re-search-forward "\\(<#\\(mml\\|part\\)\\(.\\|\n\\)*>[ \n	]*<#/\\(mml\\|part\\)>\\|^<#secure.+>$\\)" nil t] 4 (#$ . 53686)])
#@73 Regexp matching valid media types used in MIME attachment compositions.
(defvar mh-media-type-regexp "\\(a\\(?:pplication\\|udio\\)\\|image\\|m\\(?:essage\\|ultipart\\)\\|text\\|video\\)/[-.+a-zA-Z0-9]+" (#$ . 53951))
#@212 Check if the text between BEGIN and END might be a MH-style directive.
The optional argument BEGIN defaults to the beginning of the
buffer, while END defaults to the end of the buffer.

(fn &optional BEGIN END)
(defalias 'mh-mh-directive-present-p #[512 "\204 e\262\211\204 d\262\212\3012U b\210\302\303\304#\203S \305`\306 \"\211\307\232\204O \310\311\"\2039 \312\301\304\"\266\202 \313\314\"@\211\203N \310\"\203N \312\301\304\"\210\210\210\202 \3150)\207" [mh-media-type-regexp --cl-block-search-for-mh-directive-- re-search-forward "^#" t buffer-substring-no-properties mh-line-end-position "" string-match "^forw[ 	\n]+" throw split-string "[ 	;@]" nil] 7 (#$ . 54176)])
#@316 Return the content type associated with the given FILENAME.
If the "file" command exists and recognizes the given file,
then its value is returned; otherwise, the user is prompted for
a type (see `mailcap-mime-types').
Optional argument DEFAULT is returned if a type isn't entered.

(fn FILENAME &optional DEFAULT)
(defalias 'mh-minibuffer-read-type #[513 "\300 \210\211\206 \301!\206 \302\303!\211\302\232\204 \211\206& \304\305\306\"\307\310\311 \"\"\211\312\232\204- \207\207" [mailcap-parse-mimetypes mm-default-file-type "application/octet-stream" mh-file-mime-type completing-read format-prompt "Content type" mapcar list mailcap-mime-types ""] 9 (#$ . 54873)])
#@107 Return MIME type of FILENAME from file command.
Returns nil if file command not on system.

(fn FILENAME)
(defalias 'mh-file-mime-type #[257 "\302 \204 \303\207\304!\203 \305!\204 \303\207\306!r\211q\210\307\310\"\216\311\312\303\313\303\314\315\316	!&\210eb\210\317	\303\320#\205@ \321\322\323!\"*\207" [mh-temp-buffer mh-media-type-regexp mh-have-file-command nil file-exists-p file-readable-p get-buffer-create make-closure #[0 "\301\300!\207" [V0 kill-buffer] 2] call-process "file" (t nil) "-b" "-i" expand-file-name re-search-forward t mh-file-mime-type-substitute match-string 0] 11 (#$ . 55555)])
#@269 Substitutions to make for Content-Type returned from file command.
The first element is the Content-Type returned by the file command.
The second element is a regexp matching the file name, usually the
extension.
The third element is the Content-Type to replace with.
(defvar mh-file-mime-type-substitutions '(("application/msword" "\\.xls" "application/ms-excel") ("application/msword" "\\.ppt" "application/ms-powerpoint") ("text/plain" "\\.vcf" "text/x-vcard") ("text/rtf" "\\.rtf" "application/rtf") ("application/x-zip" "\\.sxc" "application/vnd.sun.xml.calc") ("application/x-zip" "\\.sxd" "application/vnd.sun.xml.draw") ("application/x-zip" "\\.sxi" "application/vnd.sun.xml.impress") ("application/x-zip" "\\.sxw" "application/vnd.sun.xml.writer") ("application/x-zip" "\\.odg" "application/vnd.oasis.opendocument.graphics") ("application/x-zip" "\\.odi" "application/vnd.oasis.opendocument.image") ("application/x-zip" "\\.odp" "application/vnd.oasis.opendocument.presentation") ("application/x-zip" "\\.ods" "application/vnd.oasis.opendocument.spreadsheet") ("application/x-zip" "\\.odt" "application/vnd.oasis.opendocument.text")) (#$ . 56177))
#@159 Return possibly changed CONTENT-TYPE on the FILENAME.
Substitutions are made from the `mh-file-mime-type-substitutions'
variable.

(fn CONTENT-TYPE FILENAME)
(defalias 'mh-file-mime-type-substitute #[514 "\302\211\303\2036 @@\262@\304\234\262\230\203/ \305\"\203/ @\306\234\262\302\262\202 A\262\202 )\207" [mh-file-mime-type-substitutions case-fold-search nil t 1 string-match 2] 9 (#$ . 57341)])
#@176 Cached value of function `mh-have-file-command'.
Do not reference this variable directly as it might not have been
initialized. Always use the command `mh-have-file-command'.
(defvar mh-have-file-command 'undefined (#$ . 57766))
#@107 Return t if `file' command is on the system.
'file -i' is used to get MIME type of composition insertion.
(defalias 'mh-have-file-command #[0 "\302=\203\" \303\304!\205! \304\305!\205! \306\305\307\211\211\310\311\312\313	\"&\314U\207" [mh-have-file-command mh-progs undefined fboundp executable-find "file" call-process nil "-i" "-b" expand-file-name "inc" 0] 10 (#$ . 58002)])
#@30 Free the decoded MIME parts.
(defalias 'mh-mime-cleanup #[0 "\302p\"\303\304!\203 \304ed\"\210\211\205, \305\306!	>\204# \307\310\311D\"\210\312H!\210\313p\"\207" [mh-globals-hash cl-struct-mh-buffer-data-tags gethash fboundp remove-images mh-mm-destroy-parts type-of signal wrong-type-argument mh-buffer-data 1 remhash] 6 (#$ . 58391)])
#@53 Free MIME data for externally displayed MIME parts.
(defalias 'mh-destroy-postponed-handles #[0 "\302p\"\211\203 \303\304!	>\204 \305\306\307D\"\210\310H!\210\311p\"\207" [mh-globals-hash cl-struct-mh-buffer-data-tags gethash mh-mm-destroy-parts type-of signal wrong-type-argument mh-buffer-data 1 remhash] 6 (#$ . 58741)])
(provide 'mh-mime)
