MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 18.218.164.141
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/mh-e/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/mh-e/mh-mime.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:39 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/mh-e/mh-mime.el
;;; in Emacs version 24.3.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

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


(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\324\"\210\311\325\326\"\210\311\327\326\"\210\311\330\326\"\210\311\331\332\"\210\311\333\334\"\210\311\335\336\"\210\311\337\340\"\210\311\341\342\"\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-string mail-header-parse-content-type mail-header-strip 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" rfc2047-decode-region "rfc2047" widget-convert-button "wid-edit"] 3)
#@74 Convenience macro to get the MIME data structures of the current buffer.
(defalias 'mh-buffer-data '(macro . #[nil "\300\207" [(gethash (current-buffer) mh-globals-hash)] 1 (#$ . 1464)]))
#@113 

(fn &key (HANDLES nil) (HANDLES-CACHE (make-hash-table)) (PARTS-COUNT 0) (PART-INDEX-HASH (make-hash-table)))
(defalias 'mh-make-buffer-data #[(&rest #1=#:--cl-rest--) "\306>A@\307>\206\310\311 DA@\312>\206\313A@\314>\206'\310\311 DA@
\203V
@\315>\203?
AA\211\202-\316>A@\203M\310\211\202-\317\320
@\"\210\202,)\321	\n\f\257,\207" [#1# handles handles-cache parts-count part-index-hash #2=#:--cl-keys-- :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)" mh-buffer-data] 6 (#$ . 1659)])
(defalias 'mh-buffer-data-p #[(arg) ":\205	@\301=\207" [arg mh-buffer-data] 2])
(defalias 'mh-mime-handles '(macro . #[(z) "\301\302E\207" [z nth 1] 3]))
(defalias 'mh-mime-handles-cache '(macro . #[(z) "\301\302E\207" [z nth 2] 3]))
(defalias 'mh-mime-parts-count '(macro . #[(z) "\301\302E\207" [z nth 3] 3]))
(defalias 'mh-mime-part-index-hash '(macro . #[(z) "\301\302E\207" [z nth 4] 3]))
#@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) (#$ . 2798))
#@79 Default to use for `mh-mime-save-parts-default-directory'.
Set from last use.
(defvar mh-mime-save-parts-directory nil (#$ . 5465))
(defvar mh-mime-button-commands '((mh-press-button "
" "Toggle Display")))
(defvar mh-mime-button-map (byte-code "\306 \307	!\310Y\204\311\n\"\210\312\313\314#\210\315\211\2035
@\312\f\211A@)\f@#\210
A\211\204*)\207" [map emacs-version mh-show-mode-map mh-mime-button-commands c --dolist-tail-- make-sparse-keymap string-to-number 21 set-keymap-parent define-key [mouse-2] mh-push-button nil x] 5))
(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 "\303 \304	!\305Y\204\306\n\"\210\307\310\311#\210\307\312\313#\210)\207" [map 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] 4))
#@917 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".
(defalias 'mh-display-with-external-viewer #[(part-index) ":\203@\301\302\303#\207" [part-index mh-folder-mime-action #[nil "\306`\307\"\211\211@;\203	@\202	A@@)\310\311\312\n\313\"\"\211\211@@)\314\315
\2034\314\316
\"\2025\317\"\320\321\211\211\211
& \321!\322\323\"\203Z\324P\325\"\326\327!\203h\327K\202i\330#\331\216\"\330=\203{\332\327!\210\202\200\327\"M\210\333\216\334\".\f\207" [part handle type methods x def get-text-property mh-data mapcar #[(x) "\301\302\"AC\207" [x assoc viewer] 3] mailcap-mime-info all format "Viewer%s: " " (default %s)" "" completing-read nil string-match "^[^% 	]+$" " %s" #[(handle function) "\303	\n#\207" [folder handle function mh-handle-set-external-undisplayer] 4] fboundp mm-handle-set-external-undisplayer cl--unbound ((byte-code "\301=\203
\302\303!\210\202\303M\210\301\207" [#1=#:old cl--unbound fmakunbound mm-handle-set-external-undisplayer] 2)) fmakunbound ((set-buffer-modified-p nil)) mm-display-external prompt method mh-show-folder-buffer folder buffer-read-only #2=#:vnew #1#] 9] nil] 4 (#$ . 6798) "P"])
#@467 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.
(defalias 'mh-folder-inline-mime-part #[(part-index) ":\203@\301\302\303#\207" [part-index mh-folder-mime-action mh-mime-inline-part nil] 4 (#$ . 8837) "P"])
#@38 Toggle display of the raw MIME part.
(defalias 'mh-mime-inline-part #[nil "\306\307`\310\"\307`\311\"\312	!`\306\211	\203S\n\204S\204S\313	!\314\315 \316 \317#\210\320 \321y\210\322	\"\210\320 \314
\211b\210\316 \323
BD#\210)\202f	\203f\n\204_\203f\324 \210\325\326!\210\fb\210\327\306!.\207" [buffer-read-only data inserted-flag displayed-flag point start 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 end contents] 7 (#$ . 9473) nil])
#@452 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.
(defalias 'mh-folder-save-mime-part #[(part-index) ":\203@\301\302\303#\207" [part-index mh-folder-mime-action mh-mime-save-part nil] 4 (#$ . 10185) "P"])
#@26 Save MIME part at point.
(defalias 'mh-mime-save-part #[nil "\304`\305\"\211\205\306	\206\n!\307!\210\211))\207" [data mh-mime-save-parts-directory default-directory mm-default-directory get-text-property mh-data file-name-as-directory mh-mm-save-part] 4 (#$ . 10803) nil])
#@564 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.
(defalias 'mh-folder-toggle-mime-part #[(part-index) ":\203@\301\302\303#\207" [part-index mh-folder-mime-action mh-press-button t] 4 (#$ . 11093) "P"])
#@404 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.
(defalias 'mh-mime-save-parts #[(prompt) "\306=\203\307 \202\310\311!\306=\203	\202\n\312\313!\203#\314\202$\315\2044\f\316\232\2044\f\311\232\203A
\204A\317\320\316\211\311$\202f\204K\f\311\232\203\\
\203\\\317\321\322
\"\323
\311\323%\202f\f;\203e\f\202f
&'()&\323\232\203|
\203|
&\324&!\204\211\325\326!\202\333\f\316\232\203\222&r\327*!q\210\330&!\210&\331 +\332\333\334',\"\316\311\316\335()\336\312\313!?\205\276\337F!&\210\340 +V\205\332\341 -\342\216\343*!\210\344\345!**,\207" [major-mode mh-show-folder-buffer mh-current-folder prompt mh-mime-save-parts-default-directory mh-mime-save-parts-directory mh-show-mode mh-show-buffer-message-number mh-get-msg-num t mh-variant-p nmh "mhstore" "mhn" nil read-directory-name "Store in directory: " format "Store in directory (default %s): " "" 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 ((set-window-configuration #1=#:wconfig)) switch-to-buffer-other-window sit-for 3 directory command folder msg mh-log-buffer initial-size mh-progs #1#] 12 (#$ . 11822) "P"])
#@44 Toggle the value of `mh-decode-mime-flag'.
(defalias 'mh-toggle-mh-decode-mime-flag #[nil "?\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 (#$ . 13462) nil])
#@59 Toggle option `mh-display-buttons-for-inline-parts-flag'.
(defalias 'mh-toggle-mime-buttons #[nil "?\301\302\303\"\207" [mh-display-buttons-for-inline-parts-flag mh-show nil t] 3 (#$ . 13746) nil])
#@128 Display message, HANDLE.
The function decodes the message and displays it. It avoids
decoding the same message multiple times.
(defalias 'mh-mm-inline-message #[(handle) "`	\306\212\214
\211}\210\307\"!\210\310\311\"\312\311p#\"8\"\206e\"$\312\311p#\"8%\313$\314\306!\211&\203C\315&!\210\202G\316 &\311p#\"A\211'\317&\311p#\"A@\"\240\210)&)%#*!\210eb\210\320 \210\f\203}\321e\n#\210eb\210\202\200\322 \210\323 \210\324 \210(\325=\203\220\326 \210eb\210\327c\210\330 \210\331 \210\332\"\233\333\306\334\335\336\337\340 \341 EFE\240.\207" [mh-clean-message-header-flag mh-invisible-header-fields-compiled visible-headers invisible-headers clean-message-header b nil mm-insert-part mh-mime-display gethash 2 puthash mm-dissect-buffer mh-mm-uu-dissect-text-parts mm-uu-dissect 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 lambda let (buffer-read-only) (if (fboundp 'remove-specifier) (mapcar (lambda (prop) (remove-specifier (face-property 'default prop) (current-buffer))) '(background background-pixmap foreground))) delete-region point-min-marker point-max-marker handle mh-globals-hash #1=#:v #2=#:v handles #3=#:c mh-highlight-citation-style] 10 (#$ . 13953)])
#@47 Decode RFC2047 encoded message header fields.
(defalias 'mh-decode-message-header #[nil "\205\f\302\303e\304 \")\207" [mh-decode-mime-flag buffer-read-only nil rfc2047-decode-region mh-mail-header-end] 3 (#$ . 15345)])
#@47 Decode RFC2047 encoded message header fields.
(defalias 'mh-decode-message-subject #[nil "\205\212\302\303\304\305!\210`\306 \210`\"*\207" [mh-decode-mime-flag buffer-read-only nil rfc2047-decode-region mh-goto-header-field "Subject:" mh-header-field-end] 3 (#$ . 15573)])
#@194 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.
(defalias 'mh-mime-display #[(&optional pre-dissected-handles) "\306\307 \310\311\312!\203\312K\202\313\314\216\f\313=\203%\315\312!\210\202)\312\fM\210eb\210\316\317\306\320#\204:db\210\317c\210\321\322\323\217.\207" [mh-show-folder-buffer raw-message-data folder handles #1=#:vnew #2=#:old nil buffer-string #[(handle function) "\303	\n#\207" [folder handle function mh-handle-set-external-undisplayer] 4] fboundp mm-handle-set-external-undisplayer cl--unbound ((byte-code "\301=\203
\302\303!\210\202\303M\210\301\207" [#2# cl--unbound fmakunbound mm-handle-set-external-undisplayer] 2)) fmakunbound search-forward "\n\n" t err (byte-code "\203	\2025\304\305!\211\203\306	!\210\202\307 \310p\n\"A\211\311	\310p\n\"A@\"\240\210)	\2045\312 \210	\203Z	@;\203D	A\203Zeb\210\313\314\305\315#\204Rdb\210`d|\210\316	!\207\317 \207" [pre-dissected-handles handles mh-globals-hash #3=#:c mm-dissect-buffer nil mh-mm-uu-dissect-text-parts mm-uu-dissect gethash mh-mm-merge-handles mh-decode-message-body search-forward "\n\n" t mh-mime-display-part mh-signature-highlight] 7) ((error (byte-code "\302\303\304!\"\210ed|\210	c\207" [err raw-message-data message "Could not display body: %s" error-message-string] 4)))] 4 (#$ . 15857)])
#@99 Decode message based on charset.
If message has been encoded for transfer take that into account.
(defalias 'mh-decode-message-body #[nil "\303\211\211eb\210\304\305\303\306#\210\214e`}\210\303\307\310\217\311\n\301\"\312\313!);\203,\314!\n\2037\n@\315\232\205P\214\316 Td^d}\210\317	\205L\320\321!\227!\n@#)+\207" [cte charset ct nil re-search-forward "\n\n" t (byte-code "\300\301\302\303\"!\207" [mail-header-parse-content-type message-fetch-field "Content-Type" t] 4) ((error)) mail-content-type-get message-fetch-field "Content-Transfer-Encoding" mail-header-strip "text/plain" mh-mail-header-end mm-decode-body intern gnus-strip-whitespace] 5 (#$ . 17321)])
#@57 Decides the viewer to call based on the type of HANDLE.
(defalias 'mh-mime-display-part #[(handle) "\204\302\207@;\204\303!\207@\304\232\203\305A!\207	\2032@\306\232\204.@\307\232\2032\310!\207\311A!\207" [handle 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] 2 (#$ . 18006)])
#@54 Display the list of MIME parts, HANDLES recursively.
(defalias 'mh-mime-display-mixed #[(handles) "\301\302\"\207" [handles mapcar mh-mime-display-part] 3 (#$ . 18448)])
#@131 Choose among the alternatives, HANDLES the part that will be displayed.
If no part is preferred then all the parts are displayed.
(defalias 'mh-mime-display-alternative #[(handles) "\306!\307\211\n:\203#\n@\211	=\204\fB\nA\211\202\f\237+	\203;	@;\203;\310	!\210\311
!\202^	\203[\214`m\203I`\202K`T}\210\312	!\210\311
!\210db)\202^\313!*\207" [handles preferred #1=#:--cl-var-- x #2=#:--cl-var-- others mm-preferred-alternative nil mh-mime-display-part mh-mime-maybe-display-alternatives mh-mime-display-single mh-mime-display-mixed] 3 (#$ . 18626)])
#@154 Show buttons for ALTERNATIVES.
If `mh-mime-display-alternatives-flag' is non-nil then display
buttons for alternative parts that are usually suppressed.
(defalias 'mh-mime-maybe-display-alternatives #[(alternatives) "\205.	\205.\304c\210\305c\210	\306\211\203+@\307c\210\310\n\311\n!\306#\210A\211\204*\304c\207" [mh-display-buttons-for-alternatives-flag alternatives x --dolist-tail-- "\n----------------------------------------------------\n" "Alternatives:\n" nil "\n" mh-insert-mime-button mh-mime-part-index] 5 (#$ . 19207)])
#@47 Display PGP encrypted/signed message, HANDLE.
(defalias 'mh-mime-display-security #[(handle) "\214``}\210\305c\210\306!\210\307A!\210\305c\210	\306!\210)\310\311 \312 B\211\2053\313\314@G\f@%,\207" [handle mh-mime-security-button-end-line-format mh-mime-security-button-line-format value parameter "\n" mh-insert-mime-security-button mh-mime-display-mixed mh-region point-min-marker point-max-marker put-text-property 0] 7 (#$ . 19756)])
#@47 Display a leaf node, HANDLE in the MIME tree.
(defalias 'mh-mime-display-single #[(handle) "\211@;\203
@\202A@@)\306!\3078@\310\232\3078@\311\232\2050\312!\2050\313!\211\206l\314!\206l?\205l\n\206l\315\211@;\203T@\202XA@@)\316\"@)\317\232?\205l\312!\205l\313!\214`m\203w`\202y`T}\210\203\206	\320\232\204\315
\204\230\321c\210\322\323!\324#\210\202\315
\203\262\204\262\325!\204\253\325!\210\326!\210\202\315
\203\315\203\315\321c\210\322\323!\324#\210\327y\210\330!\210db.\207" [handle type small-image-flag attachmentp inlinep displayp mh-small-image-p 4 "attachment" "inline" 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 mh-pgp-support-flag mh-display-buttons-for-inline-parts-flag] 5 (#$ . 20212)])
#@49 Toggle display of button for MIME part, HANDLE.
(defalias 'mh-mm-display-part #[(handle) "\306 \210\307`\310\"`\311 \312\211\211\211$\212\313\216\314p\315\"\211%\203(\316%!\210
b\210\317&!\203f\307
\320\"\211\203H\321\322!\203H\322	@	A\"\210\323&!\210	\203W	@	A|\210)l?\205`\312y\210`|\202\214`\324y\210`|\210``}\210&&\325&\211&@;\203\207&@\202\214&A@@)\326\"@)\327\232\203\231\330c\210\312\331\332\217\333=\204\315&&\325&\211&@;\203\267&@\202\274&A@@)\326\"@)\327\232\203\315eb\210\334\324!\210&&\325&\211&@;\203\342&@\202\347&A@@)\326\"@)\335\232\203'\336=\203\373\337 \210\340 \210\341 \210\342&!\210eb\210\343 db\210\343 B\211).\n\207" [buffer-read-only region mail-parse-ignored-charsets mail-parse-charset window point beginning-of-line get-text-property mh-part selected-window nil ((byte-code "\305!\203\n\306!\210	b\210\307 \210\310\n\311\n!#\210	b\210\f\203)\312\313 \314 \315\fD#\210\305\207" [window point handle id region 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" (mm-display-part handle) ((error)) inline delete-char "text" gnus mh-gnus-article-highlight-citation mh-display-smileys mh-display-emphasis mh-signature-highlight point-marker id win handle mh-highlight-citation-style] 8 (#$ . 21150)])
#@208 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).
(defalias 'mh-mime-part-index #[(handle) "\305\306\305p	\"8\"\206'\306\305p	\"8\307\n\310\305p	\"\233\211\211@T\240)#*\207" [handle mh-globals-hash #1=#:v #2=#:v #3=#:c gethash 4 puthash 3] 7 (#$ . 22696)])
#@140 Decide whether HANDLE is a "small" image that can be displayed inline.
This is only useful if a Content-Disposition header is not present.
(defalias 'mh-small-image-p #[(handle) "\306A@@	\"AA@\307\211\205`\310\211@;\203!@\202%A@@)\311\"@)\312\232\205`!\205`\313!\314\315!\205B\315\f!\211\205_
A\206Q\316 SW\205_
@\206^\317 W**\207" [handle mh-mm-inline-media-tests mm-inline-large-images media-test image size assoc t split-string "/" "image" mm-get-image fboundp image-size window-height window-width mh-max-inline-image-height mh-max-inline-image-width] 4 (#$ . 23124)])
#@60 Decide if HANDLE is a vcard that must be displayed inline.
(defalias 'mh-inline-vcard-p #[(handle) "A@\302\303!\204\304\305!\205'	:\205'	@\306\232\205'\212\214~\210eb\210\307 *?)\207" [handle type featurep vcard fboundp vcard-pretty-print "text/x-vcard" mh-signature-separator-p] 2 (#$ . 23731)])
#@160 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.
(defalias 'mh-signature-highlight #[(&optional handle) "\204\304\202W\305\211@;\203@\202A@@)\306\"@)\307\232\203G\305\211@;\2036@\202:A@@)\306\"\211A@*\310\232\204K\304\202W\311 \312=\203V\313\202W\314\212db\210\315\n\316\317#\205w\320`d\"\321\322\323#\210\321\324\317#\210)\316*\207" [handle x regexp ov "^-- $" split-string "/" "text" "html" mh-mm-text-html-renderer lynx "^   --$" "^--$" re-search-backward nil t make-overlay overlay-put face mh-show-signature evaporate] 4 (#$ . 24042)])
#@160 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.
(defalias 'mh-insert-mime-button #[(handle index displayed) "\306!\203	\204\307!\210\310A@\311\"\206*\310\3128\313\"\206*\310A@\314\"\206*\315\211@;\2037@\202;A@@)\316\3178\206D\315!	\204O\306!\203S\320\202T\321\322\211\211-.	\323\324	\"\203q	\325\225\322O	.	\315\232?\205\326	PP-\315\232\204\214\327\fPn\204\223\330c\210`\331/0\332\3331!\334\335\3362\337\257\"#\210`\340\341\n\342\343\344\3451\346\347&\210\350\351!\205\307\351\n\"\3223\2114\205\3544@3\350\352!\203\342\3523\353\354#\2104A\2114\204\320\322.	\207" [handle displayed end begin long-type dots mm-handle-displayed-p mm-display-part mail-content-type-get name 4 filename url "" mail-decode-encoded-word-string 5 "   " "..." nil string-match ".*/" 0 "; " " --- " "\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 description type mh-mime-button-line-format mh-mime-button-line-format-alist mh-mime-button-map index ov --dolist-tail--] 13 (#$ . 24733)])
#@42 Display buttons for PGP message, HANDLE.
(defalias 'mh-insert-mime-security-button #[(handle) "\306\307\301@#\310\311	\n\"8\206\310\311	\"8\206\312\211@\313\232\203'\314\202(\315\316Q\306\307\317@#\2065\3202\306\307\321@#3\322\21145\322\211673\203W\3233P\202X\32438\203d3\202e\3244\3252!7n\204t\323c\210`5\3269:\327\330;!\3318\332\333\3349\335\257\"#\210`6\336\33756\340\341\342\343;\3447\345\346&
\210\347\350!\205\264\35056\"\322<\211=\203\330=@<\347\351!\203\317\351<\352\353#\210=A\211=\204\275*2\354\232\205@\313\232\203\353\355\202\354\356\211\356\232\203\367\357\202\370\324>\360\361\f
>$*.	\207" [handle protocol mm-verify-function-alist mm-decrypt-function-alist crypto-type type get-text-property 0 2 assoc "Unknown" "multipart/signed" " Signed" " Encrypted" " Part" gnus-info "Undecided" gnus-details nil "\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" info details pressed-details begin end face mh-mime-security-button-pressed mh-mime-security-button-line-format mh-mime-security-button-line-format-alist mh-mime-security-button-map ov --dolist-tail-- warning] 15 (#$ . 26140)])
#@72 Return the button face to use for encrypted/signed mail based on INFO.
(defalias 'mh-mime-security-button-face #[(info) "\301\302\"\203	\303\207\301\304\"\203\305\207\301\306\"\203\307\207\301\310\"\203$\307\207\303\207" [info string-match "OK" mh-show-pgg-good "Failed" mh-show-pgg-bad "Undecided" mh-show-pgg-unknown "Untrusted"] 3 (#$ . 27753)])
#@292 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.
(defalias 'mh-folder-mime-action #[(part-index action include-security-flag) "\204\306 \210\307 \310\n!\210\203\311p!\210\312\216\f\203 \313\202!\314`\315
\316\"\203?\f\2039\315
\316\"\fU\203? \202j\315
\317\"\203U\203U\f\204U \202j\320\321\"\210`
U\203g\322\323!\202j ,\207" [mh-showing-mode mh-in-show-buffer-saved-window mh-show-buffer mh-bury-show-buffer-flag part-index point mh-show selected-window switch-to-buffer-other-window bury-buffer ((select-window mh-in-show-buffer-saved-window)) #[(p) "\303\304\"\211\250\205
	\nU)\207" [p part part-index get-text-property mh-part] 4] #[(p) "\203	\302	\303\"\207\302	\304\"\250\207" [include-security-flag p get-text-property mh-data mh-part] 3] get-text-property mh-part mh-data mh-goto-next-button nil message "No matching MIME part found" criterion action include-security-flag] 3 (#$ . 28119)])
#@254 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.
(defalias 'mh-goto-next-button #[(backward-flag &optional criterion) "9\203\303!\204\304!\204\305\212\306 \210\212\307`\310\"\203>	\203'\311\202(\312y\313U\204	\2038eb\210\202db\210\202`)\307`\310\"\203b	\203Po\202Qm\204b	\203\\\312\202]\311y\210\202A\314\315\215*\206j`b\207" [criterion backward-flag point-before-current-button fboundp functionp #[(x) "\300\207" [t] 1] beginning-of-line get-text-property mh-data 1 -1 0 --cl-block-loop-- (byte-code "\203\303\202	\304y\305U\204\203db\210\202eb\210\306 \210`	U\204:\307`\310\"\203\n`!\203\311\312`\"\210\202\313\207" [backward-flag point-before-current-button criterion -1 1 0 beginning-of-line get-text-property mh-data throw --cl-block-loop-- nil] 3)] 3 (#$ . 29304)])
#@54 Callback for widget, WIDGET.
Parameter EL is unused.
(defalias 'mh-widget-press-button #[(widget el) "\301\302\"b\210\303 \207" [widget widget-get :from mh-press-button] 3 (#$ . 30333)])
#@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 #[nil "\306`\307\"\306`\310\"\311	\312\313\314!\203\314K\202 \315\316\216\315=\2032\317\314!\210\2027\314M\210\f\203Bl\203B\320u\210\321\216\f\205K\f
!.	\207" [mh-mm-inline-media-tests mh-show-folder-buffer folder buffer-read-only function data get-text-property mh-data mh-callback nil #[(handle function) "\303	\n#\207" [folder handle function mh-handle-set-external-undisplayer] 4] fboundp mm-handle-set-external-undisplayer cl--unbound ((byte-code "\301=\203
\302\303!\210\202\303M\210\301\207" [#1=#:old cl--unbound fmakunbound mm-handle-set-external-undisplayer] 2)) fmakunbound -1 ((set-buffer-modified-p nil)) mm-inline-media-tests #2=#:vnew #1#] 5 (#$ . 30528) nil])
#@185 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.
(defalias 'mh-push-button #[(event) "\212\306\307!\205\310!\211@)\306\311!\2051\310!\312	8\2060	A@:\203-	A@@\2020	A@)\313 \314\n!q\210\315 `\316\223\317 \316\320\216\321\n!\210b\210\322`\323\"\322`\324\" !\325\"\306\326!\203r\326K\202s\327#\330\216\"\327=\203\205\331\326!\210\202\212\326\"M\210\205\224!.\207" [event position #1=#:event-window #2=#:event-position #3=#:original-window #4=#:original-position fboundp posn-window event-start posn-point 5 selected-window window-buffer make-marker nil buffer-modified-p ((byte-code "\303!\210	b\210	\304\211\223\210\305\n!\207" [#5=#:modified-flag #4# #3# set-buffer-modified-p nil select-window] 3)) select-window get-text-property mh-data mh-callback #[(handle func) "\303	\n#\207" [folder handle func mh-handle-set-external-undisplayer] 4] mm-handle-set-external-undisplayer cl--unbound ((byte-code "\301=\203
\302\303!\210\202\303M\210\301\207" [#6=#:old cl--unbound fmakunbound mm-handle-set-external-undisplayer] 2)) fmakunbound #5# buffer-read-only mh-show-folder-buffer mh-mm-inline-media-tests function data mm-inline-media-tests folder #7=#:vnew #6#] 7 (#$ . 31391) "e"])
#@302 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.
(defalias 'mh-handle-set-external-undisplayer #[(folder handle function) "\306!\203(\307!\310	\233\n\240\210\310\233\311\240\210rq\210\312p\f\"A\211	
@B\240+\207\310\233\n\240\207" [handle new-handle function folder mh-globals-hash #1=#:c mh-mm-keep-viewer-alive-p copy-sequence 3 nil gethash] 4 (#$ . 32764)])
#@48 Callback from security button for part HANDLE.
(defalias 'mh-mime-security-press-button #[(handle) "\306\307\310@#\203
\311!\207\306\307\312@#\313`\n@b\210\n@\nA|\210r\306\307\314@#q\210\315\211\316A\"\211A=\204E\317A!\210
\241\210,\320!\210	b*\207" [handle point region mm-verify-option mm-decrypt-option new 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] 5 (#$ . 33390)])
#@54 Toggle display of detailed security info for HANDLE.
(defalias 'mh-mime-security-show-details #[(handle) "\304\305\306@#\211\205E\304`\307\"?\304`\310\"\311u\210\304`\310\"\n=\203(\311u\210\202\312u\210\214``}\210\313!\210)`\314`d\310\n$\206@d|\210\311y*)\207" [handle details 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] 7 (#$ . 33907)])
#@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 #[nil "\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 (#$ . 34413)])
#@18 Display smileys.
(defalias 'mh-display-smileys #[nil "\205\301 \205\302\303!\205\303ed\"\207" [mh-graphical-smileys-flag mh-small-show-buffer-p fboundp smiley-region] 3 (#$ . 34803)])
#@29 Display graphical emphasis.
(defalias 'mh-display-emphasis #[nil "\2052\303 \2052\304\305\306!\203\306K\202\307\310\216	\307=\203'\311\306!\210\202+\306	M\210\212eb\210\312 ,\207" [mh-graphical-emphasis-flag #1=#:vnew #2=#:old mh-small-show-buffer-p #[nil "\300\207" [nil] 1] fboundp article-goto-body cl--unbound ((byte-code "\301=\203
\302\303!\210\202\303M\210\301\207" [#2# cl--unbound fmakunbound article-goto-body] 2)) fmakunbound article-emphasize] 2 (#$ . 35000)])
#@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 #[nil "\302\303\301!\203(	\203(	\247\203	\202(	<\203(\304\305	\"\206&\304\306	\"A\247?\2064\307\245\310 Y)\207" [max font-lock-maximum-size nil boundp assoc mh-show-mode t 8 buffer-size] 3 (#$ . 35496)])
#@395 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.
(defalias 'mh-compose-forward #[(&optional description folder range) "\306\307\310!\311#\312\n	\"\313\211\205;\f@
\314\232\203)\315\n\316\317\"#\210\2023\320\n\316\317\"#\210\fA\211\204\313+\207" [range messages folder message --dolist-tail-- mh-compose-insertion mapconcat identity mh-list-to-string " " mh-translate-range nil mml mh-mml-forward-message format "%s" mh-mh-forward-message description] 7 (#$ . 35863) (let* ((description (mml-minibuffer-read-description)) (folder (mh-prompt-for-folder "Message from" mh-sent-from-folder nil)) (default (if (and (equal folder mh-sent-from-folder) (numberp mh-sent-from-msg)) mh-sent-from-msg (nth 0 (mh-translate-range folder "cur")))) (range (mh-read-range "Forward" folder (or (and default (number-to-string default)) t) t t))) (list description folder range))])
#@117 Forward a message as attachment.

The function will prompt the user for a DESCRIPTION, a FOLDER and
MESSAGE number.
(defalias 'mh-mml-forward-message #[(description folder message) "\306\232\203	\247\203	\202\307!\211\250\2030\310\311\312\f\313\314O\n$\315
\306\230?\205+
\316$\2024\317\320\n\")\207" [message mh-sent-from-msg msg mh-user-path folder description "" string-to-number mml-attach-file format "%s%s/%d" 1 nil "message/rfc822" "inline" error "The message number, %s, is not a integer"] 8 (#$ . 37095)])
#@199 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].
(defalias 'mh-mh-forward-message #[(&optional description folder messages) "\305 \210\306c\210\203\307\230\204c\210\310c\210	\203%	\307\230\204%\311	\261\210\n\203A\n\307\230\204A`\311\n\261\210\312`\313\314$\210)\202M\f\247\203M\311\315\f!\261\210\316c\207" [description folder messages start mh-sent-from-msg beginning-of-line "#forw [" "" "]" " " subst-char-in-region 44 32 int-to-string "\n"] 5 (#$ . 37630) (list (mml-minibuffer-read-description) (mh-prompt-for-folder "Message from" mh-sent-from-folder nil) (read-string (concat "Messages" (if (numberp mh-sent-from-msg) (format " (default %d): " mh-sent-from-msg) ": "))))])
#@423 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.
(defalias 'mh-compose-insertion #[(&optional inline) "\302\232\203	\203\303\304!\207\303 \207\305\306!\207" [mh-compose-insertion inline mml mh-mml-attach-file "inline" call-interactively mh-mh-attach-file] 2 (#$ . 38485) "P"])
#@392 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.
(defalias 'mh-mml-attach-file #[(&optional disposition) "\305\306!\307!\310 \206\311	!\312\313\301	\314\303\f\302\n&	,\207" [file type description disposition dispos mml-minibuffer-read-file "Attach file: " mh-minibuffer-read-type mml-minibuffer-read-description mh-mml-minibuffer-read-disposition mml-insert-empty-tag part filename] 10 (#$ . 39147)])
#@285 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].
(defalias 'mh-mh-attach-file #[(filename type description attributes) "\304	\n$\207" [filename type description attributes mh-mh-compose-type] 5 (#$ . 39906) (let ((filename (mml-minibuffer-read-file "Attach file: "))) (list filename (mh-minibuffer-read-type filename) (mml-minibuffer-read-description) (read-string "Attributes: " (concat "name=\"" (file-name-nondirectory filename) "\""))))])
#@238 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.
(defalias 'mh-mh-compose-type #[(filename type &optional description attributes comment) "\305 \210\306\261\210	\203\307	\261\210\n\203\310\n\311\261\210\312c\210\203%c\210\313\314\f!\261\210\315c\207" [type attributes comment description filename beginning-of-line "#" "; " " (" ")" " [" "] " expand-file-name "\n"] 3 (#$ . 40593)])
#@271 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].
(defalias 'mh-mh-compose-anon-ftp #[(host filename type description) "\304\305	\n%\207" [host filename type description mh-mh-compose-external-type "anon-ftp"] 6 (#$ . 41183) (list (read-string "Remote host: ") (read-string "Remote filename: ") (mh-minibuffer-read-type "DUMMY-FILENAME") (mml-minibuffer-read-description))])
#@328 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].
(defalias 'mh-mh-compose-external-compressed-tar #[(host filename description) "\303\304	\305\n\306\307&\207" [host filename description mh-mh-compose-external-type "anon-ftp" "application/octet-stream" "type=tar; conversions=x-compress" "mode=image"] 8 (#$ . 41787) (list (read-string "Remote host: ") (read-string "Remote filename: ") (mml-minibuffer-read-description))])
#@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")) (#$ . 42496))
#@437 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].
(defalias 'mh-mh-compose-external-type #[(access-type host filename type &optional description attributes parameters comment) "\306 \210\307\261\210	\203\310	\261\210\n\203\311\n\312\261\210\313c\210\203%c\210\314c\210\315\f\310\261\210\316
\261\210\317\320!\261\210\321!\211\203L\322\323\261\210)\203X\310\261\210\324c\207" [type attributes comment description access-type host beginning-of-line "#@" "; " " (" ") " " [" "] " "access-type=" "site=" "; name=" file-name-nondirectory file-name-directory "; directory=\"" "\"" "\n" filename directory parameters] 4 (#$ . 42735) (list (completing-read "Access type: " mh-access-types) (read-string "Remote host: ") (read-string "Remote filename: ") (mh-minibuffer-read-type "DUMMY-FILENAME") (if current-prefix-arg (mml-minibuffer-read-description)) (if current-prefix-arg (read-string "Attributes: ")) (if current-prefix-arg (read-string "Parameters: ")) (if current-prefix-arg (read-string "Comment: ")))])
#@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 (#$ . 44164))
#@858 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].
(defalias 'mh-mh-to-mime #[(&optional extra-args) "\303 \210\304 \210\305\306\307\310!\203\311\202\312\"\210\307\310!\203)\313\314\311\205#	\n$\210\2027\313\315\316\n\"\312\2054	\n$\210\317\320\211\211#\210\305\321\307\310!\203I\311\202J\312\"\210\322\323!\207" [extra-args 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] 5 (#$ . 44446) "*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 #[nil "\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 (#$ . 45859)])
#@195 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.
(defalias 'mh-mh-to-mime-undo #[(noconfirm) "\204\305\306!\210\307\310\211\203(\311\312!\n@\313!\314R\211!\204(\nA\211\204\n\2041\305\315\"\210\204B\316\317\320	\"!\204B\305\321!\210\310\322 \210\323	!\210)\324\310\211\211\211\325%*\207" [buffer-file-name backup-file backup-strings noconfirm 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] 7 (#$ . 46354) "*P"])
#@286 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').
(defalias 'mh-mml-secure-message-encrypt #[(method) "\302\303	#\207" [method mh-identity-pgg-default-user-id mh-secure-message "encrypt"] 4 (#$ . 47209) (list (mh-mml-query-cryptographic-method))])
#@283 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').
(defalias 'mh-mml-secure-message-sign #[(method) "\302\303	#\207" [method mh-identity-pgg-default-user-id mh-secure-message "sign"] 4 (#$ . 47700) (list (mh-mml-query-cryptographic-method))])
#@295 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').
(defalias 'mh-mml-secure-message-signencrypt #[(method) "\302\303	#\207" [method mh-identity-pgg-default-user-id mh-secure-message "signencrypt"] 4 (#$ . 48182) (list (mh-mml-query-cryptographic-method))])
(defvar mh-mml-cryptographic-method-history nil)
#@39 Read the cryptographic method to use.
(defalias 'mh-mml-query-cryptographic-method #[nil "\203	@\206\n\n\304\305\306\"\307\310\311\310\301&)\207\n\207" [current-prefix-arg mh-mml-cryptographic-method-history mh-mml-method-default def completing-read format "Method (default %s): " (("pgp") ("pgpmime") ("smime")) nil t] 8 (#$ . 48738)])
#@206 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.
(defalias 'mh-secure-message #[(method mode &optional identity) "\204\306\307!\207\310\311\312E\313\314\315\316F\n\235\204\306\317\"\210\f	\235\204)\306\320\f\"\210\321 \210\f\316\230?\205T\212eb\210\322\323!\210
\203L\324\325\303\304\f\326
&\202S\324\325\303\304\f%)*\207" [mh-pgp-support-flag valid-modes valid-methods method mode 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 sender] 8 (#$ . 49090)])
#@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 #[nil "\304\305!\210\203*\306 \210\307\310!\203\311\310\312\313\307\310!!!\"\210\311\314\315\316\317\307\314!\320\"\321#\"\210\322 p\323 \324\325\326\217+\207" [mh-pgp-support-flag modified-flag buffer saved-text require message message-options-set-recipient message-options-get message-sender message-options-set mail-strip-quoted-names mh-alias-expand message-recipients mapconcat #[(ali) "\301\302!!\207" [ali mail-strip-quoted-names mh-alias-expand] 3] split-string "[, ]+" ", " buffer-string buffer-modified-p err (mml-to-mime) ((error (byte-code "rq\210ed|\210	c\210\304\n!\210)\305\306!!\207" [buffer saved-text modified-flag err set-buffer-modified-p error error-message-string] 3)))] 7 (#$ . 49932) nil])
#@33 Remove any secure message tags.
(defalias 'mh-mml-unsecure-message #[nil "\204\301\302!\207\303 \207" [mh-pgp-support-flag error "Your version of Gnus does not support PGP/GPG" mml-unsecure-message] 2 (#$ . 50944) nil])
#@62 Check if the current buffer has text which may be a MML tag.
(defalias 'mh-mml-tag-present-p #[nil "\212eb\210\300\301\302\303#)\207" [re-search-forward "\\(<#\\(mml\\|part\\)\\(.\\|\n\\)*>[ \n	]*<#/\\(mml\\|part\\)>\\|^<#secure.+>$\\)" nil t] 4 (#$ . 51173)])
#@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]+" (#$ . 51440))
#@186 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.
(defalias 'mh-mh-directive-present-p #[(&optional begin end) "\204e	\204\fd\212\302\303\215)\207" [begin end --cl-block-search-for-mh-directive-- (byte-code "b\210\305\306	\307#\203A\310`\311 \"\211\312\232\204=\313\314\n\"\203&\315\316\307\"\210\202=\317\n\320\"@\211\203<\313\f\"\203<\315\316\307\"\210))\202\321\207" [begin end s first-token mh-media-type-regexp re-search-forward "^#" t buffer-substring-no-properties mh-line-end-position "" string-match "^forw[ 	\n]+" throw --cl-block-search-for-mh-directive-- split-string "[ 	;@]" nil] 5)] 2 (#$ . 51665)])
#@283 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.
(defalias 'mh-minibuffer-read-type #[(filename &optional default) "\304 \210\206\305	!\206\306\307	!\211\306\232\204\n\206(\310\311\312\"\313\314\315 \"\"\211\316\232\2043\2024+\207" [default filename probed-type type mailcap-parse-mimetypes mm-default-file-encoding "application/octet-stream" mh-file-mime-type completing-read format "Content type (default %s): " mapcar list mailcap-mime-types ""] 6 (#$ . 52440)])
#@92 Return MIME type of FILENAME from file command.
Returns nil if file command not on system.
(defalias 'mh-file-mime-type #[(filename) "\304 \204\305\207\306!\203\307!\204\305\207\310	!r\nq\210\311\216\312\313\305\314\305\315\316\317!&\210eb\210\320\305\321#\205=\322\323\324!\"+\207" [filename mh-temp-buffer tmp-buffer mh-media-type-regexp mh-have-file-command nil file-exists-p file-readable-p get-buffer-create ((kill-buffer tmp-buffer)) call-process "file" (t nil) "-b" "-i" expand-file-name re-search-forward t mh-file-mime-type-substitute match-string 0] 9 (#$ . 53161)])
#@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")) (#$ . 53759))
#@131 Return possibly changed CONTENT-TYPE on the FILENAME.
Substitutions are made from the `mh-file-mime-type-substitutions'
variable.
(defalias 'mh-file-mime-type-substitute #[(content-type filename) "\306\211	\307\211\203>@@@\310\234	
\230\2035\311\f\f\"\2035@\312\234\306\211\202\fA\211\204-\207" [mh-file-mime-type-substitutions content-type case-fold-search answer match type nil t 1 string-match 2 subst filename] 6 (#$ . 54897)])
#@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 (#$ . 55366))
#@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 #[nil "\302=\203\"\303\304!\205!\304\305!\205!\306\307\305\310\211\211\311\312\313\314	\"&!\207" [mh-have-file-command mh-progs undefined fboundp executable-find "file" zerop call-process nil "-i" "-b" expand-file-name "inc"] 11 (#$ . 55602)])
#@30 Free the decoded MIME parts.
(defalias 'mh-mime-cleanup #[nil "\302p\"\303\304!\203\304ed\"\210	\205\305	A@!\210\306p\")\207" [mh-globals-hash mime-data gethash fboundp remove-images mh-mm-destroy-parts remhash] 3 (#$ . 55997)])
#@53 Free MIME data for externally displayed MIME parts.
(defalias 'mh-destroy-postponed-handles #[nil "\302p\"\211\203\303	A@!\210\304p\")\207" [mh-globals-hash mime-data gethash mh-mm-destroy-parts remhash] 4 (#$ . 56239)])
(provide 'mh-mime)

MMCT - 2023