%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/mail/ |
Current File : //usr/local/share/emacs/27.2/lisp/mail/rmailmm.elc |
;ELC ;;; Compiled ;;; in Emacs version 27.2 ;;; 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\324 G\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!\210A\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!\210A\211\204&