Server IP : 111.118.215.189 / Your IP : 18.117.158.174 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/gnus/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
;ELC ;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:14 2024 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/gnus/mm-decode.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\204 \302\301\303\304B\"\210\305\306!\210\305\307!\210\310\311\312\"\210\310\313\312\"\210\310\314\312\"\210\310\315\316\"\210\310\317\320\"\210\310\321\320\"\210\310\322\323\"\210\310\324\325\"\210\310\326\325\"\210\310\327\325\"\210\330\331\332\"\210\333\334\335\336\337\340\341\342\343\344\343\345\343\346& \210\333\347\335\350\337\351\343\344\343\345\343\346&\207" [fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] require mail-parse mm-bodies autoload gnus-map-function "gnus-util" gnus-replace-in-string gnus-read-shell-command mm-inline-partial "mm-partial" mm-inline-external-body "mm-extern" mm-extern-cache-contents mm-insert-inline "mm-view" mm-archive-decoders "mm-archive" mm-archive-dissect-and-inline mm-dissect-archive add-hook gnus-exit-gnus-hook mm-destroy-postponed-undisplay-list custom-declare-group mime-display nil "Display of MIME in mail and news articles." :link (custom-manual "(emacs-mime)Display Customization") :version "21.1" :group mail news multimedia mime-security "MIME security in mail and news articles." (custom-manual "(emacs-mime)Display Customization")] 14) (defalias 'mm-handle-buffer '(macro . #[(handle) "\301\302E\207" [handle nth 0] 3])) (defalias 'mm-handle-type '(macro . #[(handle) "\301\302E\207" [handle nth 1] 3])) (defalias 'mm-handle-media-type #[(handle) "@;\203 @\207A@@\207" [handle] 1]) (put 'mm-handle-media-type 'byte-optimizer 'byte-compile-inline-expand) (defalias 'mm-handle-media-supertype #[(handle) "\301\211@;\203 @\202 A@@)\302\"@\207" [handle split-string "/"] 4]) (put 'mm-handle-media-supertype 'byte-optimizer 'byte-compile-inline-expand) (defalias 'mm-handle-media-subtype #[(handle) "\302\211@;\203 @\202 A@@)\303\"\211A@)\207" [handle x split-string "/"] 4]) (put 'mm-handle-media-subtype 'byte-optimizer 'byte-compile-inline-expand) (defalias 'mm-handle-encoding '(macro . #[(handle) "\301\302E\207" [handle nth 2] 3])) (defalias 'mm-handle-undisplayer '(macro . #[(handle) "\301\302E\207" [handle nth 3] 3])) (defalias 'mm-handle-set-undisplayer '(macro . #[(handle function) "\302\303\304E E\207" [handle function setcar nthcdr 3] 4])) (defalias 'mm-handle-disposition '(macro . #[(handle) "\301\302E\207" [handle nth 4] 3])) (defalias 'mm-handle-description '(macro . #[(handle) "\301\302E\207" [handle nth 5] 3])) (defalias 'mm-handle-cache '(macro . #[(handle) "\301\302E\207" [handle nth 6] 3])) (defalias 'mm-handle-set-cache '(macro . #[(handle contents) "\302\303\304E E\207" [handle contents setcar nthcdr 6] 4])) (defalias 'mm-handle-id '(macro . #[(handle) "\301\302E\207" [handle nth 7] 3])) (defalias 'mm-handle-multipart-original-buffer '(macro . #[(handle) "\301\302\303\304DF\207" [handle get-text-property 0 'buffer car] 5])) (defalias 'mm-handle-multipart-from '(macro . #[(handle) "\301\302\303\304DF\207" [handle get-text-property 0 'from car] 5])) (defalias 'mm-handle-multipart-ctl-parameter '(macro . #[(handle parameter) "\302\303\304 DF\207" [parameter handle get-text-property 0 car] 5])) (defalias 'mm-make-handle '(macro . #[(&optional buffer type encoding undisplayer disposition description cache id) "\306 \n\f \257 \207" [buffer type encoding undisplayer disposition description list cache id] 9])) (byte-code "\300\301\302\303\304\305\306\307\310\311& \210\300\312\313\314\304\315\306\316\310\311& \210\300\317\320\321\304\315\306\322\310\311& \210\300\323\324\325\304\315\306\316\310\311& \210\300\326\324\327\304\315\306\330\310\311& \210\300\331\332\333\306\334\310\311&\210\300\335\336\337\306\340\310\311&\210\300\341\342\343\304\315\306\344\310\311& \210\300\345\346\347\306\350\310\311&\210\300\351\352\353\306\354\310\311&\210\300\355\313\356\306\357\310\311&\210\300\360\313\361\306\362\310\311&\210\300\363\313\364\306\365\310\311&\210\300\366\367\370\306\371\310\311&\210\300\372\313\373\306\374\310\311&\210\300\375\376\377\306\201@ \304\201A \310\311& \207" [custom-declare-variable mm-text-html-renderer (cond ((fboundp 'libxml-parse-html-region) 'shr) ((executable-find "w3m") 'gnus-w3m) ((executable-find "links") 'links) ((executable-find "lynx") 'lynx) ((locate-library "w3") 'w3) ((locate-library "html2text") 'html2text) (t nil)) "Render of HTML contents.\nIt is one of defined renderer types, or a rendering function.\nThe defined renderer types are:\n`shr': use the built-in Gnus HTML renderer;\n`gnus-w3m': use Gnus renderer based on w3m;\n`w3m': use emacs-w3m;\n`w3m-standalone': use plain w3m;\n`links': use links;\n`lynx': use lynx;\n`w3': use Emacs/W3;\n`html2text': use html2text;\nnil : use external viewer (default web browser)." :version "24.1" :type (choice (const shr) (const gnus-w3m) (const w3) (const w3m :tag "emacs-w3m") (const w3m-standalone :tag "standalone w3m") (const links) (const lynx) (const html2text) (const nil :tag "External viewer") (function)) :group mime-display mm-inline-text-html-with-images nil "If non-nil, Gnus will allow retrieving images in HTML contents with\nthe <img> tags. It has no effect on Emacs/w3. See also the\ndocumentation for the `mm-w3m-safe-url-regexp' variable." "22.1" boolean mm-w3m-safe-url-regexp "\\`cid:" "Regexp matching URLs which are considered to be safe.\nSome HTML mails might contain a nasty trick used by spammers, using\nthe <img> tag which is far more evil than the [Click Here!] button.\nIt is most likely intended to check whether the ominous spam mail has\nreached your eyes or not, in which case the spammer knows for sure\nthat your email address is valid. It is done by embedding an\nidentifier string into a URL that you might automatically retrieve\nwhen displaying the image. The default value is \"\\\\`cid:\" which only\nmatches parts embedded to the Multipart/Related type MIME contents and\nGnus will never connect to the spammer's site arbitrarily. You may\nset this variable to nil if you consider all urls to be safe." (choice (regexp :tag "Regexp") (const :tag "All URLs are safe" nil)) mm-inline-text-html-with-w3m-keymap t "If non-nil, use emacs-w3m command keys in the article buffer." mm-enable-external "Indicate whether external MIME handlers should be used.\n\nIf t, all defined external MIME handlers are used. If nil, files are saved by\n`mailcap-save-binary-file'. If it is the symbol `ask', you are prompted\nbefore the external MIME handler is invoked." (choice (const :tag "Always" t) (const :tag "Never" nil) (const :tag "Ask" ask)) mm-inline-media-tests '(("image/p?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-xpixmap" 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 identity) ("text/x-diff" mm-display-patch-inline identity) ("application/emacs-lisp" mm-display-elisp-inline identity) ("application/x-emacs-lisp" mm-display-elisp-inline identity) ("application/x-shellscript" mm-display-shell-script-inline identity) ("application/x-sh" mm-display-shell-script-inline identity) ("text/x-sh" mm-display-shell-script-inline identity) ("application/javascript" mm-display-javascript-inline identity) ("text/dns" mm-display-dns-inline identity) ("text/x-org" mm-display-org-inline identity) ("text/html" mm-inline-text-html (lambda (handle) mm-text-html-renderer)) ("text/x-vcard" mm-inline-text-vcard (lambda (handle) (or (featurep 'vcard) (locate-library "vcard")))) ("message/delivery-status" mm-inline-text identity) ("message/rfc822" mm-inline-message identity) ("message/partial" mm-inline-partial identity) ("message/external-body" mm-inline-external-body identity) ("text/.*" mm-inline-text identity) ("application/x-.?tar\\(-.*\\)?" mm-archive-dissect-and-inline identity) ("application/zip" mm-archive-dissect-and-inline 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) ("image/.*" mm-inline-image (lambda (handle) (and (mm-valid-image-format-p 'imagemagick) (mm-with-unibyte-buffer (mm-insert-part handle) (let ((image (ignore-errors (if (fboundp 'create-image) (create-image (buffer-string) 'imagemagick 'data-p) (mm-create-image-xemacs (mm-handle-media-subtype handle)))))) (when image (setcar (cdr handle) (list "image/imagemagick")) (mm-image-fit-p handle))))))) ("audio/.*" ignore ignore) ("image/.*" ignore ignore) (".*" mm-inline-text mm-readable-p)) "Alist of media types/tests saying whether types can be displayed inline." (repeat (list (regexp :tag "MIME type") (function :tag "Display function") (function :tag "Display test"))) mm-inlined-types '("image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/x-gtar-compressed" "application/x-tar" "application/zip" "application/pgp") "List of media types that are to be displayed inline.\nSee also `mm-inline-media-tests', which says how to display a media\ntype inline." (repeat regexp) mm-keep-viewer-alive-types '("application/postscript" "application/msword" "application/vnd.ms-excel" "application/pdf" "application/x-dvi") "List of media types for which the external viewer will not be killed\nwhen selecting a different article." (repeat regexp) mm-automatic-display '("text/plain" "text/enriched" "text/richtext" "text/html" "text/x-verbatim" "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "text/dns" "application/pgp-signature" "application/emacs-lisp" "application/x-emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp\\'" "text/x-org") "A list of MIME types to be displayed automatically." (repeat regexp) mm-attachment-override-types '("text/x-vcard" "application/pkcs7-mime" "application/x-pkcs7-mime" "application/pkcs7-signature" "application/x-pkcs7-signature") "Types to have \"attachment\" ignored if they can be displayed inline." (repeat regexp) mm-inline-override-types "Types to be treated as attachments even if they can be displayed inline." (repeat regexp) mm-automatic-external-display "List of MIME type regexps that will be displayed externally automatically." (repeat regexp) mm-discouraged-alternatives "List of MIME types that are discouraged when viewing multipart/alternative.\nViewing agents are supposed to view the last possible part of a message,\nas that is supposed to be the richest. However, users may prefer other\ntypes instead, and this list says what types are most unwanted. If,\nfor instance, text/html parts are very unwanted, and text/richtext are\nsomewhat unwanted, then the value of this variable should be set\nto:\n\n (\"text/html\" \"text/richtext\")\n\nAdding \"image/.*\" might also be useful. Spammers use it as the\npreferred part of multipart/alternative messages. See also\n`gnus-buttonized-mime-types', to which adding \"multipart/alternative\"\nenables you to choose manually one of two types those mails include." (repeat regexp) mm-tmp-directory (if (fboundp 'temp-directory) (temp-directory) (if (boundp 'temporary-file-directory) temporary-file-directory "/tmp/")) "Where mm will store its temporary files." directory mm-inline-large-images "If t, then all images fit in the buffer.\nIf 'resize, try to resize the images so they fit." (radio (const :tag "Inline large images as they are." t) (const :tag "Resize large images." resize) (const :tag "Do not inline large images." nil)) mm-file-name-rewrite-functions '(mm-file-name-delete-control mm-file-name-delete-gotchas) "List of functions used for rewriting file names of MIME parts.\nEach function takes a file name as input and returns a file name.\n\nReady-made functions include `mm-file-name-delete-control',\n`mm-file-name-delete-gotchas' (you should not remove these two\nfunctions), `mm-file-name-delete-whitespace',\n`mm-file-name-trim-whitespace', `mm-file-name-collapse-whitespace',\n`mm-file-name-replace-whitespace', `capitalize', `downcase',\n`upcase', and `upcase-initials'." (list (set :inline t (const mm-file-name-delete-control) (const mm-file-name-delete-gotchas) (const mm-file-name-delete-whitespace) (const mm-file-name-trim-whitespace) (const mm-file-name-collapse-whitespace) (const mm-file-name-replace-whitespace) (const capitalize) (const downcase) (const upcase) (const upcase-initials) (repeat :inline t :tag "Function" function))) "23.1"] 10) #@295 *List of functions for rewriting the full file names of MIME parts. This is used when viewing parts externally, and is meant for transforming the absolute name so that non-compliant programs can find the file where it's saved. Each function takes a file name as input and returns a file name. (defvar mm-path-name-rewrite-functions nil (#$ . -14482)) #@68 String used for replacing whitespace characters; default is `"_"'. (defvar mm-file-name-replace-whitespace nil (#$ . 14840)) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\313\314\304\315\306\307& \210\300\316\317\320\313\314\304\321\306\307& \207" [custom-declare-variable mm-default-directory nil "The default directory where mm will save files.\nIf not set, `default-directory' will be used." :type (choice directory (const :tag "Default" nil)) :group mime-display mm-attachment-file-modes 384 "Set the mode bits of saved attachments to this integer." :version "22.1" integer mm-external-terminal-program "xterm" "The program to start an external terminal." string] 10) (defvar mm-last-shell-command "") (defvar mm-content-id-alist nil) (defvar mm-postponed-undisplay-list nil) (defvar mm-inhibit-auto-detect-attachment nil) (defvar mm-dissect-default-type "text/plain") (byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\305\"\210\300\306\305\"\207" [autoload mml2015-verify "mml2015" mml2015-verify-test mml-smime-verify "mml-smime" mml-smime-verify-test] 3) (defvar mm-verify-function-alist '(("application/pgp-signature" mml2015-verify "PGP" mml2015-verify-test) ("application/x-gnus-pgp-signature" mm-uu-pgp-signed-extract-1 "PGP" mm-uu-pgp-signed-test) ("application/pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test) ("application/x-pkcs7-signature" mml-smime-verify "S/MIME" mml-smime-verify-test))) (byte-code "\300\301\302\303\304\305\306\307\310\311& \210\312\313\314\"\210\312\315\314\"\207" [custom-declare-variable mm-verify-option 'never "Option of verifying signed parts.\n`never', not verify; `always', always verify;\n`known', only verify known protocols. Otherwise, ask user.\n\nWhen set to `always' or `known', you should add\n\"multipart/signed\" to `gnus-buttonized-mime-types' to see\nresult of the verification." :version "22.1" :type (choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group mime-security autoload mml2015-decrypt "mml2015" mml2015-decrypt-test] 10) (defvar mm-decrypt-function-alist '(("application/pgp-encrypted" mml2015-decrypt "PGP" mml2015-decrypt-test) ("application/x-gnus-pgp-encrypted" mm-uu-pgp-encrypted-extract-1 "PGP" mm-uu-pgp-encrypted-test))) #@148 Option of decrypting encrypted parts. `never', not decrypt; `always', always decrypt; `known', only decrypt known protocols. Otherwise, ask user. (custom-declare-variable 'mm-decrypt-option nil '(#$ . 17141) :version "22.1" :type '(choice (item always) (item never) (item :tag "only known protocols" known) (item :tag "ask" nil)) :group 'mime-security) #@42 Keymap for input viewer with completion. (defvar mm-viewer-completion-map (byte-code "\302\303!\304 \"\210\305\306\307#\210)\207" [map minibuffer-local-completion-map make-sparse-keymap mm-viewer-completion-map set-keymap-parent define-key " " self-insert-command] 4) (#$ . 17501)) #@42 Keymap for input viewer with completion. (defvar mm-viewer-completion-map (byte-code "\302\303!\304 \"\210\305\306\307#\210)\207" [map minibuffer-local-completion-map make-sparse-keymap mm-viewer-completion-map set-keymap-parent define-key " " self-insert-command] 4) (#$ . 17793)) #@240 Convert association list ALIST into the equivalent property-list form. The plist is returned. This converts from ((a . 1) (b . 2) (c . 3)) into (a 1 b 2 c 3) The original alist is not modified. See also `destructive-alist-to-plist'. (defalias 'mm-alist-to-plist #[(alist) "\303 \203 @\211A\n@BB) A\211\204 \237)\207" [plist alist el nil] 4 (#$ . 18086)]) #@59 Say whether external viewer for HANDLE should stay alive. (defalias 'mm-keep-viewer-alive-p #[(handle) " \211@;\203 @\202 A@@)\305\306\307\215+\207" [mm-keep-viewer-alive-types handle ty type types nil found (byte-code "\211A@\211\205 \303 \n\"\203 \304\305\306\"\210\202 \207" [types ty type string-match throw found t] 3)] 4 (#$ . 18462)]) #@121 Set the undisplayer for HANDLE to FUNCTION. Postpone undisplaying of viewers for types in `mm-keep-viewer-alive-types'. (defalias 'mm-handle-set-external-undisplayer #[(handle function) "\304!\203 \305!\306 \233\n\240\210\306\233\307\240\210 B\211)\207\306\233\n\240\207" [handle new-handle function mm-postponed-undisplay-list mm-keep-viewer-alive-p copy-sequence 3 nil] 2 (#$ . 18826)]) (defalias 'mm-destroy-postponed-undisplay-list #[nil "\205 \301\302!\210\303!\207" [mm-postponed-undisplay-list message "Destroying external MIME viewers" mm-destroy-parts] 2]) (autoload 'message-fetch-field "message") #@157 Dissect the current buffer and return a list of MIME handles. If NO-STRICT-MIME, don't require the message to have a MIME-Version header before proceeding. (defalias 'mm-dissect-buffer #[(&optional no-strict-mime loose-mime from) "\212\306\211\211\211\211\211\211\211\211./0\214\307 \2101\204* 2\204* \310\311!\203\207 \310\312!\2110\2057 \3130!/\310\314!\310\315!\206[ /\205[ \3163/@\"\2114A@)\317=\205[ \320\321\322!\310\323!(\204n \310\324!((\203 \325(!\2114A@)(\n\203\207 \326\n!)/\203\226 \327\330/@\"\204\262 \3315C\f\205\244 \332\333\f!\227!1\205\255 \334!\n%\202P\335/@\330\"\211.\2114A@).@\211.\336\232\203 \337\232\203\327 \340\202\330 \341\342/A\236A\"5\343\344/@G\345/A!/@$\210\343\344/@G\346\347 \350(\342\"\257/@$\210/@\351/(\"*B\2026\352\331/\f\205$\332\333\f!\227!1\205-\334!\n &/(# \203O\327\353 \"\203G\354\355 \" B6B6.\n\207" [result id description cd cte subtype nil mail-narrow-to-head mail-fetch-field "mime-version" "content-type" mail-header-parse-content-type "content-transfer-encoding" "content-disposition" mm-assoc-string-match mm-inline-text "inline" message-fetch-field "content-description" "content-id" "from" mail-extract-address-components mail-decode-encoded-word-string string-match "/" mm-dissect-singlepart intern mail-header-strip mail-header-parse-content-disposition split-string "multipart" "digest" "message/rfc822" "text/plain" start add-text-properties 0 mm-alist-to-plist buffer mm-copy-to-buffer from mm-dissect-multipart mm-possibly-verify-or-decrypt " *<\\(.*\\)> *" match-string 1 type ctl ct no-strict-mime loose-mime mm-inline-media-tests x mm-dissect-default-type mm-content-id-alist] 10 (#$ . 19452)]) (defalias 'mm-dissect-singlepart #[(ctl cte &optional force cdl description id) "\204 @\306\232\203 \307\310 \"\202 \311\205 \303\nA\236A\f\204B @\312\232\203B \203B \313\314\"\203B \315\316\317\"!\211\203A \240\210))\320 \321\n\321\257\307 @\322 \"\203| \211A@)\203| \323AA@!\203| \324!\202~ *\207" [force ctl cdl filename mm-inhibit-auto-detect-attachment new-type "text/plain" assoc format t "application/octet-stream" string-match "\\.\\([^.]+\\)$" mailcap-extension-to-mime match-string 1 mm-copy-to-buffer nil mm-archive-decoders executable-find mm-dissect-archive cte description id decoder handle x] 9]) (defalias 'mm-dissect-multipart #[(ctl from) "eb\210\306\307\301\"P\310 !\311P\312\211\212db\210\313\n\312\314#\203% \315\224\202&