;ELC ;;; Compiled ;;; in Emacs version 27.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\304\305\306\307\310\311\312\301&\210\313\314\315\316\317\320\321\322\312\305& \210\313\323\324\325\317\326\321\322\312\305& \210\313\327\330\331\317\332\321\333\312\305& \210\313\334\335\336\312\301\321\337\317\340& \210\313\341\342\343\312\301\321\337\317\344& \207" [require rmail mail-parse message custom-declare-group rmail-mime nil "Rmail MIME handling options." :prefix "rmail-mime-" :group custom-declare-variable rmail-mime-media-type-handlers-alist '(("multipart/.*" rmail-mime-multipart-handler) ("text/.*" rmail-mime-text-handler) ("text/\\(x-\\)?patch" rmail-mime-bulk-handler) ("\\(image\\|audio\\|video\\|application\\)/.*" rmail-mime-bulk-handler)) "Functions to handle various content types.\nThis is an alist with elements of the form (REGEXP FUNCTION ...).\nThe first item is a regular expression matching a content-type.\nThe remaining elements are handler functions to run, in order of\ndecreasing preference. These are called until one returns non-nil.\nNote that this only applies to items with an inline Content-Disposition,\nall others are handled by `rmail-mime-bulk-handler'.\nNote also that this alist is ignored when the variable\n`rmail-enable-mime' is non-nil." :type (alist :key-type regexp :value-type (repeat function)) :version "23.1" rmail-mime-attachment-dirs-alist `(("text/.*" "~/Documents") ("image/.*" "~/Pictures") (".*" "~/Desktop" "~" ,temporary-file-directory)) "Default directories to save attachments of various types into.\nThis is an alist with elements of the form (REGEXP DIR ...).\nThe first item is a regular expression matching a content-type.\nThe remaining elements are directories, in order of decreasing preference.\nThe first directory that exists is used." (alist :key-type regexp :value-type (repeat directory)) rmail-mime-show-images 'button "What to do with image attachments that Emacs is capable of displaying.\nIf nil, do nothing special. If `button', add an extra button\nthat when pushed displays the image in the buffer. If a number,\nautomatically show images if they are smaller than that size (in\nbytes), otherwise add a display button. Anything else means to\nautomatically display the image in the buffer." (choice (const :tag "Add button to view image" button) (const :tag "No special treatment" nil) (number :tag "Show if smaller than certain size") (other :tag "Always show" show)) "23.2" rmail-mime-render-html-function (cond ((fboundp 'libxml-parse-html-region) 'rmail-mime-render-html-shr) ((executable-find "lynx") 'rmail-mime-render-html-lynx) (t nil)) "Function to convert HTML to text.\nCalled with buffer containing HTML extracted from message in a\ntemporary buffer. Converts to text in current buffer. If nil,\ndisplay HTML source." "25.1" (choice function (const nil)) rmail-mime-prefer-html (if rmail-mime-render-html-function t nil) "If non-nil, default to showing HTML part rather than text part\nwhen both are available." boolean] 10) #@111 Buffer containing the mbox data. The value is usually nil, and bound to a proper value while processing MIME. (defvar rmail-mime-mbox-buffer nil (#$ . 3396)) #@104 Buffer showing a message. The value is usually nil, and bound to a proper value while processing MIME. (defvar rmail-mime-view-buffer nil (#$ . 3561)) #@136 The first coding-system used for decoding a MIME entity. The value is usually nil, and bound to non-nil while inserting MIME entities. (defvar rmail-mime-coding-system nil (#$ . 3719)) #@102 Bound to T inside `rmail-search-mime-message' to suppress expensive operations such as HTML decoding (defvar rmail-mime-searching nil (#$ . 3911)) #@2177 Return a newly created MIME-entity object from arguments. A MIME-entity is a vector of 10 elements: [TYPE DISPOSITION TRANSFER-ENCODING DISPLAY HEADER TAGLINE BODY CHILDREN HANDLER TRUNCATED] TYPE and DISPOSITION correspond to MIME headers Content-Type and Content-Disposition respectively, and have this format: (VALUE (ATTRIBUTE . VALUE) (ATTRIBUTE . VALUE) ...) Each VALUE is a string and each ATTRIBUTE is a string. Consider the following header, for example: Content-Type: multipart/mixed; boundary="----=_NextPart_000_0104_01C617E4.BDEC4C40" The corresponding TYPE argument must be: ("multipart/mixed" ("boundary" . "----=_NextPart_000_0104_01C617E4.BDEC4C40")) TRANSFER-ENCODING corresponds to MIME header Content-Transfer-Encoding, and is a lower-case string. DISPLAY is a vector [CURRENT NEW], where CURRENT indicates how the header, tag line, and body of the entity are displayed now, and NEW indicates how their display should be updated. Both elements are vectors [HEADER-DISPLAY TAGLINE-DISPLAY BODY-DISPLAY], where each constituent element is a symbol for the corresponding item with these values: nil: not displayed t: displayed by the decoded presentation form raw: displayed by the raw MIME data (for the header and body only) HEADER and BODY are vectors [BEG END DISPLAY-FLAG], where BEG and END are markers that specify the region of the header or body lines in RMAIL's data (mbox) buffer, and DISPLAY-FLAG non-nil means that the header or body is, by default, displayed by the decoded presentation form. TAGLINE is a vector [TAG BULK-DATA DISPLAY-FLAG], where TAG is a string indicating the depth and index number of the entity, BULK-DATA is a cons (SIZE . TYPE) indicating the size and type of an attached data, DISPLAY-FLAG non-nil means that the tag line is displayed by default. CHILDREN is a list of child MIME-entities. A "multipart/*" entity has one or more children. A "message/rfc822" entity has just one child. Any other entity has no child. HANDLER is a function to insert the entity according to DISPLAY. It is called with one argument ENTITY. TRUNCATED is non-nil if the text of this entity was truncated. (defalias 'rmail-mime-entity #[(type disposition transfer-encoding display header tagline body children handler &optional truncated) "\306 \n \f  \n&\n\207" [type disposition transfer-encoding display header tagline vector body children handler truncated] 11 (#$ . 4066)]) (defalias 'rmail-mime-entity-type #[(entity) "\301H\207" [entity 0] 2]) (put 'rmail-mime-entity-type 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-disposition #[(entity) "\301H\207" [entity 1] 2]) (put 'rmail-mime-entity-disposition 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-transfer-encoding #[(entity) "\301H\207" [entity 2] 2]) (put 'rmail-mime-entity-transfer-encoding 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-display #[(entity) "\301H\207" [entity 3] 2]) (put 'rmail-mime-entity-display 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-header #[(entity) "\301H\207" [entity 4] 2]) (put 'rmail-mime-entity-header 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-tagline #[(entity) "\301H\207" [entity 5] 2]) (put 'rmail-mime-entity-tagline 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-body #[(entity) "\301H\207" [entity 6] 2]) (put 'rmail-mime-entity-body 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-children #[(entity) "\301H\207" [entity 7] 2]) (put 'rmail-mime-entity-children 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-handler #[(entity) "\301H\207" [entity 8] 2]) (put 'rmail-mime-entity-handler 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-truncated #[(entity) "\301H\207" [entity 9] 2]) (put 'rmail-mime-entity-truncated 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-entity-set-truncated #[(entity truncated) "\302 I\207" [entity truncated 9] 3]) (put 'rmail-mime-entity-set-truncated 'byte-optimizer 'byte-compile-inline-expand) #@47 Save the attachment using info in the BUTTON. (defalias 'rmail-mime-save #[(button) "\306\n\303\"\306\n\304\"\306\n\305\" & ;\204- \211'\307H)\203-\310\311!\204-\312\313!\210\314\315\316\317 \"\f\314 \f\"#\f\"\320 !\203L\314\321&!\322 !\"\323\324!(r(q\210\325\216\326\327!\210\330\331!\210\332) ;\203n c\210\202\264 \211'\333H) \211'\334H)*+\335 *\336H*\337H#\210+\340\230\203\247\3411\237\342ed\"0\202\243\210\202\263\210\202\263+\343\230\203\263\344ed\"\210*\345\331\211 \331\211\211\332&.\207" [rmail-view-buffer rmail-mime-mbox-buffer button filename directory data button-get 9 y-or-n-p "This entity is truncated; save anyway? " error "Aborted" expand-file-name read-file-name format "Save as (default: %s): " file-directory-p file-name-nondirectory file-name-as-directory generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1=#:temp-buffer buffer-name kill-buffer] 2] set-buffer-file-coding-system no-conversion set-buffer-multibyte nil t 2 6 insert-buffer-substring 0 1 "base64" (error) base64-decode-region "quoted-printable" quoted-printable-decode-region write-region ofilename entity #1# buffer-undo-list body transfer-encoding] 9 (#$ . 8264)]) (define-button-type 'rmail-mime-save 'action 'rmail-mime-save) (defalias 'rmail-mime-display-header #[(disp) "\301H\207" [disp 0] 2]) (put 'rmail-mime-display-header 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-display-tagline #[(disp) "\301H\207" [disp 1] 2]) (put 'rmail-mime-display-tagline 'byte-optimizer 'byte-compile-inline-expand) (defalias 'rmail-mime-display-body #[(disp) "\301H\207" [disp 2] 2]) (put 'rmail-mime-display-body 'byte-optimizer 'byte-compile-inline-expand) #@514 Return a vector describing the displayed region of a MIME-entity at POS. Optional 2nd argument ENTITY is the MIME-entity at POS. The value is a vector [INDEX HEADER TAGLINE BODY END], where INDEX: index into the returned vector indicating where POS is (1..3) HEADER: the position of the beginning of a header TAGLINE: the position of the beginning of a tag line, including the newline that precedes it BODY: the position of the beginning of a body END: the position of the end of the entity. (defalias 'rmail-mime-entity-segment #[(pos &optional entity) "\212\204\n\306 \307\"\204\310\311````%\202\344\211\312H)\313H eV\2039\306 S\307\"=\2039\314 \307\315e$\202: \311\315\211\211b\210\211\313H)\203[\316\317\315\320#\210` \fY\203e\321\211\311H)\203s\312y\210` Y\203}\312\211\321H)\203\330\211\322H)\313H\315\323\307\315d$\211dW\203\324\306\n\307\"\211\211\322H)\313H\211\203\324G\313V\203\324\324\"\313=\203\324\323\n\307\315d$\211\202\236*\202\332 \310 \f \n%.)\207" [entity pos end body-beg tagline-beg index get-text-property rmail-mime-entity vector 1 3 0 previous-single-property-change nil search-forward "\n\n" t 2 5 next-single-property-change string-match beg current disp tag2 tag] 7 (#$ . 9981)]) #@53 Make MIME-entity ENTITY display in the default way. (defalias 'rmail-mime-shown-mode #[(entity) "\211\304H)\305H\211\306\211\307H)\310HI\210 \305\211\311H)\310HI\210 \310\211\312H)\310HI\210)\211\313H)\314\211\205J @\315\n!\210 A\211\204;\314*\207" [entity new child --dolist-tail-- 3 1 0 4 2 5 6 7 nil rmail-mime-shown-mode] 5 (#$ . 11291)]) #@49 Make MIME-entity ENTITY display in hidden mode. (defalias 'rmail-mime-hidden-mode #[(entity) "\211\304H)\305H\211\306\307I\210 \305\310I\210 \311\307I\210)\211\312H)\307\211\2055 @\313\n!\210 A\211\204&\307*\207" [entity new child --dolist-tail-- 3 1 0 nil t 2 7 rmail-mime-hidden-mode] 4 (#$ . 11657)]) #@46 Make MIME-entity ENTITY display in raw mode. (defalias 'rmail-mime-raw-mode #[(entity) "\211\304H)\305H\211\306\307I\210 \305\310I\210 \311\307I\210)\211\312H)\310\211\2055 @\313\n!\210 A\211\204&\310*\207" [entity new child --dolist-tail-- 3 1 0 raw nil 2 7 rmail-mime-raw-mode] 4 (#$ . 11978)]) #@199 Toggle on and off the raw display mode of MIME-entity at point. With optional argument STATE, force the specified display mode. Use `raw' for raw mode, and any other non-nil value for decoded mode. (defalias 'rmail-mime-toggle-raw #[(&optional state) "m\203 dS\202\n`\306\307\"\211\211\310H)\311H\312 \"\f\313=\2043\f\2049\n\211\311H)\313=\2049\314 !\202S\315 !\210\316\317 \212 \320Hb\210\321 !\210\322!+,\207" [pos entity current segment state disp get-text-property rmail-mime-entity 3 0 rmail-mime-entity-segment raw rmail-mime-raw-mode rmail-mime-shown-mode t buffer-modified-p 1 rmail-mime-insert restore-buffer-modified-p modified inhibit-read-only] 4 (#$ . 12293)]) #@52 Hide or show the body of the MIME-entity at point. (defalias 'rmail-mime-toggle-hidden #[nil "\306`\307\"\204\306e\307\"\205\263pm\203dS\202`\306 \307\"\211\211\310H)\311H\312 \f\" \211\313H)\203n\311H\310U\203J\313Hb\210\314\f!\210 \203\226\315HeU\203\226\f\211\310H)\315H\211\311\316I\210)\202\226\f;\204\206\f\211\317H)\203\206\320\321!\204\206\322\323!\210\324\f!\210\f\211\310H)\315H\313\316I\210\316\325 \212\315Hb\210\326\f!\210\327!. \207" [rmail-view-buffer rmail-mime-mbox-buffer rmail-mime-view-buffer pos entity current get-text-property rmail-mime-entity 3 0 rmail-mime-entity-segment 2 rmail-mime-hidden-mode 1 t 9 y-or-n-p "This entity is truncated; show anyway? " error "Aborted" rmail-mime-shown-mode buffer-modified-p rmail-mime-insert restore-buffer-modified-p segment disp new rmail-buffer modified inhibit-read-only] 5 (#$ . 12993) nil]) (byte-code "\301\302\303#\210\301\304\305#\210\301\306\307#\207" [rmail-mode-map define-key " " forward-button [backtab] backward-button " " rmail-mime-toggle-hidden] 4) #@124 Insert a tag line for MIME-entity ENTITY. ITEM-LIST is a list of strings or button-elements (list) to add to the tag line. (defalias 'rmail-mime-insert-tagline #[(entity &rest item-list) "\306c\210\211\307H)\310H\211G\310V\203\311 \312\"\313\261\210)\211\310H)@\314\261\210\315\211\316H)\312H\211\211\317H)\203>\320\202?\321)\322\323\324\325%\210\f\326\211\203p@\211\203g ;\203b c\210\202g\327\315 \"\210A\211\204O*\330c\207" [entity tag new disp item-list item "\n[" 5 0 substring 1 ":" " " insert-button 3 2 "Hide" "Show" :type rmail-mime-toggle help-echo "mouse-2, RET: Toggle show/hide" nil apply "]\n\n" --dolist-tail--] 7 (#$ . 14082)]) #@53 Update the current tag line for MIME-entity ENTITY. (defalias 'rmail-mime-update-tagline #[(entity) "\305\306 \211\307H)\310H\311H\203\312\202\313\314`!\315 !Tb\210\316`!\212\nc\210`\317 !|\210)\315 !`|\210\320`\317 !\321$\210\322 !\210\311y,\207" [entity button label modified inhibit-read-only t buffer-modified-p 3 1 2 "Hide" "Show" next-button button-start button-at button-end put-text-property rmail-mime-entity restore-buffer-modified-p] 6 (#$ . 14761)]) #@152 Decode and insert a MIME-entity header HEADER in the current buffer. HEADER is a vector [BEG END DEFAULT-STATUS]. See `rmail-mime-entity' for details. (defalias 'rmail-mime-insert-header #[(header) "`\306\214 \211}\210r\nq\210\n \212 \307Hb\210\310` \311H\"\210,\312 `\"\210\2034\2044\306Beb\210\313 \210db\210\314c+\207" [last-coding-system-used pos rmail-mime-mbox-buffer rmail-mime-view-buffer rmail-view-buffer rmail-buffer nil 0 rmail-copy-headers 1 rfc2047-decode-region rmail-highlight-headers "\n" header rmail-mime-coding-system] 4 (#$ . 15242)]) #@134 Return the last coding system used to decode HEADER. HEADER is a header component of a MIME-entity object (see `rmail-mime-entity'). (defalias 'rmail-mime-find-header-encoding #[(header) "\306\307!rq\210\310\216pr\nq\210\311\n \212\312Hb\210\313`\314H\"\210-\315ed\"\210 ,\207" [#1=#:temp-buffer buf rmail-mime-mbox-buffer rmail-view-buffer rmail-buffer last-coding-system-used generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] nil 0 rmail-copy-headers 1 rfc2047-decode-region header] 4 (#$ . 15819)]) #@54 Handle the current buffer as a plain text MIME part. (defalias 'rmail-mime-text-handler #[(content-type content-disposition content-transfer-encoding) "\303\304 \n\305\211\306\211\211#\305\306\211\307#\"\305\306\211\211#\305\310\306\211B\307#\305\306\211\211#\306\303& !\210\307\207" [content-type content-disposition content-transfer-encoding rmail-mime-insert-text rmail-mime-entity vector nil t ""] 12 (#$ . 16381)]) #@56 Decode and insert the text body of MIME-entity ENTITY. (defalias 'rmail-mime-insert-decoded-text #[(entity) "\211\306H)\302 A\236A\211\205\307\n!\211\310H)` \203(\311 !\204*\312\f\306H;\2039\f\306Hc\210\202t\211\313H)\314\f\306H\f\315H#\210\316\230\203g\3171_\320 `\"0\202c\210\202s\210\202s\321\230\203s\322 `\"\210)\323 ` #\210\203\205:\203\220\324 !\325=\204\220 n\206\226\326c-\207" [entity content-type charset coding-system body pos 0 coding-system-from-name 6 coding-system-p undecided 2 insert-buffer-substring 1 "base64" (error) base64-decode-region "quoted-printable" quoted-printable-decode-region decode-coding-region coding-system-base us-ascii "\n" transfer-encoding rmail-mime-mbox-buffer rmail-mime-coding-system] 6 (#$ . 16808)]) #@52 Presentation handler for a plain text MIME entity. (defalias 'rmail-mime-insert-text #[(entity) "\211\306H)\307H\211\306H)\310H\211\311H)\211\312H)\211\313H)`\314`\" \307H\250\204N\315 \307H!\204N\316  \307I\210ed|\210)\211\307H)\211\307H)=\203j \317Hb\210\202\216\211\307H)\203\320 \317H \310HZ!\210\211\307H)\203\216\321 !\210\211\310H)\211\310H)=\203\324\211\310H)\203\301\211\317H)\211\317H)=\203\315 \306H \317HZu\210\202\370\322!\210\202\370\211\310H)\203\351\320 \306H \317HZ!\210\211\310H)\203\370\323!\210\211\317H)\211\317H)=\203 \311H \306HZu\210\202<\211\317H)\203-\320 \311H \306HZ!\210\211\317H)\203<\324!\210\325\n`\326$.\207" [entity segment beg body tagline header 3 0 1 4 5 6 rmail-mime-entity-segment markerp buffer-string 2 delete-char rmail-mime-insert-header rmail-mime-update-tagline rmail-mime-insert-tagline rmail-mime-insert-decoded-text put-text-property rmail-mime-entity new current data disp] 10 (#$ . 17603)]) #@57 Decode and insert the image body of MIME-entity ENTITY. (defalias 'rmail-mime-insert-image #[(entity) "\211\306H)@\211\307H)\310H\211\311H)\312 \306H;\203( \306H\202~ \211\313H)\314\315!rq\210\316\216\317\312!\210\320\321 \306H \310H#\210\322\230\203l\3231d\324ed\"0\202h\210\202x\210\202x\325\230\203x\326ed\"\210\327ed\"-\330\331\f\nA\320#!\210\332c,\207" [entity content-type bulk-data body data rmail-view-buffer 0 5 1 6 nil 2 generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1=#:temp-buffer buffer-name kill-buffer] 2] set-buffer-multibyte t insert-buffer-substring "base64" (error) base64-decode-region "quoted-printable" quoted-printable-decode-region buffer-substring-no-properties insert-image create-image "\n" transfer-encoding rmail-mime-mbox-buffer #1# buffer-undo-list] 6 (#$ . 18658)]) #@58 Decode, render, and insert html from MIME-entity ENTITY. (defalias 'rmail-mime-insert-html #[(entity) "\211\306H)\211\307H)\304\211\310H)A\236Ap\311\312 \f\203(\313\f! \2032\314 !\2044\315\316\317!!r!q\210\320\216\321\312!\210\311\"\322# \310H \323H#\210 \324\230\203n\3251f\326ed\"0\202j\210\202y\210\202y \327\230\203y\330ed\"\210 \315=\203\254\212eb\210\331\332\312\311#\203\235\313\333\323!!\211\203\233\314 !\204\235\315 \315=\203\253$\203\253$)\334e` #\210%\203\275%:\203\310\335 !\336=\204\310 %p&r q\210`'(\203\340(&!\210\202\345\322&!\210\337'!.\f\207" [entity coding-system case-fold-search buffer charset transfer-encoding 6 2 0 t nil coding-system-from-name coding-system-p undecided generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1=#:temp-buffer buffer-name kill-buffer] 2] set-buffer-multibyte insert-buffer-substring 1 "base64" (error) base64-decode-region "quoted-printable" quoted-printable-decode-region re-search-forward "^\203\315\335\n!\203\315\"\203\317\"\336=\204\317\"\247\203\310 \"W\203\317\337\202\317\312\f \240\210\f\n\241\210 .\207" [entity to-show type body bulk-data size 0 1 5 6 nil string-to-number 2 "base64" 3 4 "quoted-printable" 7 string-match "text/html" html "text/" text "image/\\(.*\\)" image-type-from-file-name "." match-string boundp image-types image-type-available-p button t content-type encoding rmail-mime-show-images] 7 (#$ . 22345)]) #@53 Presentation handler for an attachment MIME entity. (defalias 'rmail-mime-insert-bulk #[(entity) "\211\306H)\211\307H)\211\310H)\306H\211\310H)\307H\211\311H)\211\312H)\2114\307H5\211\313H)6\3142\2167\3158\2119\205\2149@8\3168@ @\"\203\2028A\315:\2119\203\2019@:\317:!\203x\320\314:\"\2109A\2119\204f*9A\2119\204K\315*0\206\222\321\f\322 A\236A\206\245\323\nA\236A\206\245\324\325;\326`\"<\315\211=*\315>6\306H\250\204\312\3276\306H!\203\325*5@>\202 6\306H;\203\3466\306H*\202\330 *\331*!\203\365\332\333!\2106\306*I\210\334!\210ed|\210*G>>\335V\203$;A\203$>\336\245>;A;\202 `= \211?\306H)\f\211?\306H)=\203B<\337Hb\210\202f \211?\306H)\203X\340<\337H<\307HZ!\210\f\211?\306H)\203f\341 !\210 \211?\307H)\f\211?\307H)=\203\251 \211?\307H)\203\224 \211?\337H)\f\211?\337H)=\203\242<\310H<\337HZu\210\202\351\342!\210\202\351 \211?\307H)\203\277\340<\310H<\337HZ!\210\f\211?\307H)\203\351\343\344\345\346\347\350\323\314\351\f!\352*\257 \353\354>;@#$\210 \211?\337H)\f\211?\337H)=\203 <\311H<\310HZu\210\202d \211?\337H)\203\340<\311H<\310HZ!\210\f\211?\337H)\203d5A\355=\2038\356!\210\202d5A\357=\203S@\203L\356!\210\202d\360!\210\202d5A\203`\361!\210\202d\356!\210\362=`\363$.\207" [entity content-type content-disposition current new header 0 1 3 4 5 6 directory nil string-match file-directory-p throw "~" name filename "noname" (B kB MB GB) rmail-mime-entity-segment markerp buffer-string multibyte-string-p cl--assertion-failed (not (multibyte-string-p data)) rmail-mime-set-bulk-data 1024.0 1024.0 2 delete-char rmail-mime-insert-header rmail-mime-update-tagline rmail-mime-insert-tagline " Save:" :type rmail-mime-save help-echo "mouse-2, RET: Save attachment" file-name-as-directory data format " (%.0f%s)" text rmail-mime-insert-decoded-text html rmail-mime-insert-html rmail-mime-insert-image put-text-property rmail-mime-entity tagline bulk-data body rmail-mime-attachment-dirs-alist entry --dolist-tail-- dir units segment beg size disp rmail-mime-searching] 15 (#$ . 23372)]) #@262 Handle the current buffer as a multipart MIME body. The current buffer should be narrowed to the body. CONTENT-TYPE, CONTENT-DISPOSITION, and CONTENT-TRANSFER-ENCODING are the values of the respective parsed headers. See `rmail-mime-handle' for their format. (defalias 'rmail-mime-multipart-handler #[(content-type content-disposition content-transfer-encoding) "\303 \n\304$\210\305\207" [content-type content-disposition content-transfer-encoding rmail-mime-process-multipart nil t] 5 (#$ . 25529)]) #@391 Process the current buffer as a multipart MIME body. If PARSE-TAG is nil, modify the current buffer directly for showing the MIME body and return nil. Otherwise, PARSE-TAG is a string indicating the depth and index number of the entity. In this case, parse the current buffer and return a list of MIME-entity objects. The other arguments are the same as `rmail-mime-multipart-handler'. (defalias 'rmail-mime-process-multipart #[(content-type content-disposition content-transfer-encoding parse-tag) "\306\236A\307@\310\"A@\311\312\211\211\211\211\211+,-\211\204,\313\314./$\210\315Peb\210\316\312\317#\203V\320\321!\203V0\203Q\311\225d}\210\202Ve\311\225|\210\322\323-\"\203c\324\202r\322\325-\"\203p\326\202r\312e+\316\312\317#\203\207\312\311\224\211\204\237 \204.\212\327\312w\210d`V)\203.\317d\211\203.\320\330!\203\255\331 \317\202\310\320\321!\203\274\332\311\225\317\"\202\310\n\203\306\331 \202\310\312\f\203u,T,0\203\214+ }\210\333\312\334\3350,#.$\2111\2112\336H)\337H\3371\2112\340H)\341\317II\2101\n\2112\342\nI*\2101 B*\202% \f|\210\214+ }\210\343 \210)\f\211+b\210\202u0\205\372 \237\322\344-\"\203\371\312\21134 \3121\2115\203\3065@\2111\2112\337H)@\206a.@\345\230\203\2751\2112\311H)@6\322\3466\"\203\274\322\3476\"\203\2167\203\212\337\202\244\341\202\244\322\3506\"\203\2437\203\237\341\202\244\337\202\244\33684\203\26383X\203\2731483))5A\2115\204N* \3121\2115\203\3705@141=\204\3571\2112\351H)\341\312I\210\3521!\2105A\2115\204\321, . \207" [content-type last truncated entities next end boundary split-string "/" 0 nil rmail-mm-get-boundary-error-message "No boundary defined" "\n--" search-forward t looking-at "[ ]*\n" string-match "mixed" ("text/plain") "digest" ("message/rfc822") "\n" "--[ ]*$" point-max-marker copy-marker rmail-mime-process format "%s/%d" 3 1 5 2 9 rmail-mime-show "alternative" "inline" "text/" "text/html" "text/plain" 6 rmail-mime-hidden-mode beg index subtype content-disposition content-transfer-encoding parse-tag child entity best-priority best --dolist-tail-- type rmail-mime-prefer-html priority] 10 (#$ . 26041)]) #@51 Presentation handler for a multipart MIME entity. (defalias 'rmail-mime-insert-multipart #[(entity) "\211\306H)\307H\211\306H)\310H\211\311H)\211\312H)\211\313H)`\314`\"\211\211\307H)\211\307H)=\203K \315Hb\210\202o\211\307H)\203`\316 \315H \310HZ!\210\211\307H)\203o\317 !\210\211\310H)\211\310H)=\203\265\211\310H)\203\242\211\315H)\211\315H)=\203\256 \306H \315HZu\210\202\331\320!\210\202\331\211\310H)\203\312\316 \306H \315HZ!\210\211\310H)\203\331\321!\210\322\n`\323$\210\211\315H)\211\315H)=\203 \311H \306HZu\210\202#\211\324H)\325\211\203\"@\326!\210A\211\204*.\207" [entity segment beg body tagline header 3 0 1 4 5 6 rmail-mime-entity-segment 2 delete-char rmail-mime-insert-header rmail-mime-update-tagline rmail-mime-insert-tagline put-text-property rmail-mime-entity 7 nil rmail-mime-insert new current disp child --dolist-tail--] 10 (#$ . 28265)]) #@755 Handle the current buffer as a MIME part. The current buffer should be narrowed to the respective body, and point should be at the beginning of the body. CONTENT-TYPE, CONTENT-DISPOSITION, and CONTENT-TRANSFER-ENCODING are the values of the respective parsed headers. The latter should be lower-case. The parsed headers for CONTENT-TYPE and CONTENT-DISPOSITION have the form (VALUE . ALIST) In other words: (VALUE (ATTRIBUTE . VALUE) (ATTRIBUTE . VALUE) ...) VALUE is a string and ATTRIBUTE is a symbol. Consider the following header, for example: Content-Type: multipart/mixed; boundary="----=_NextPart_000_0104_01C617E4.BDEC4C40" The parsed header value: ("multipart/mixed" ("boundary" . "----=_NextPart_000_0104_01C617E4.BDEC4C40")) (defalias 'rmail-mime-handle #[(content-type content-disposition content-transfer-encoding) "\306\230\203\3071\310`d\"0\202\210\2026\2036\311\2026\312\230\203.\313`d\"\210\311\2026\314\230\2036\311 @\315\230\203l\311 \311\211\203h @\316\f@@\"\203a\n\204a\fA@ # A\211\204G+\202s\317 #\210\214~\210\320`S\321\"\311\211\211\205\302\211\322H)\323H\211\322H)\324H\322\323W\205\301HI\210T\211\202\247*,\207" [content-transfer-encoding content-disposition stop rmail-mime-media-type-handlers-alist entry --dolist-tail-- "base64" (error) base64-decode-region nil "quoted-printable" quoted-printable-decode-region "8bit" "inline" string-match rmail-mime-bulk-handler get-text-property rmail-mime-entity 3 0 1 content-type new current entity i --dotimes-limit--] 5 (#$ . 29245)]) #@364 Handle the current buffer as a MIME message. If SHOW-HEADERS is non-nil, then the headers of the current part will shown as usual for a MIME message. The headers are also shown for the content type message/rfc822. This function will be called recursively if multiple parts are available. The current buffer must contain a single message. It will be modified. (defalias 'rmail-mime-show #[(&optional show-headers) "\301\302\"\207" [show-headers rmail-mime-process nil] 3 (#$ . 30855)]) (defalias 'rmail-mime-process #[(show-headers parse-tag &optional default-content-type default-content-disposition) "e\306\211\211eb\210\306f\307=\203`T\2025\310\311\306\312#\2035\313\225\214e }\210\314\315!\314\316!\314\317!) \203< \227\n\203J\320\n!\206O\321\202O\f\206O\322\203Z\323!\202_ \206_\324\211@\325\235\204i\3263\203\304@\327\2304\330 !5\331\332 5\306#6\3313\306\211B\312#7\3315\333 4#8\3316\334H7\334H8\334H#9\306\211:;\306<\335\336\n@\"\203\337\214 Sd}\2103G\313U\203\3179\3377\334\306II\210\340\n 3$:\341;)\202\212\335\342\n@\"\203/\214 d}\210\343\3123\344\345$\211=\211<\346H)\337H\211>\313\312I\210=\211<\347H)\334\312I\210>\337\306I\210=\211<\350H)\334\306I\210=C:\341;+\202\2124\203V\335\351\n@\"\203V9\3377\334\312II\2109\3348\334\312II\210\352;\202\2124\203s\335\353\n@\"\203s9\3377\334\306II\210\354;\202\2129\3377\334\312II\2109\3348\334\306II\210\352;\355\n \331\211\306\211\211#9\"678:;& <;\352=\203\275\356