MMCT TEAM
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  ]

Current File : //usr/share/emacs/24.3/lisp/gnus/mm-util.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:10:15 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/gnus/mm-util.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 "\301\302!\204
\303\302\304\305B\"\210\306\307!\210\306\310!\210\311\312\313\"\210\314\315\316\317\320\321\322\323\324B\325\326B\327\330B\331\332\333\334\335\336\337\340\341B\342\343B\344\345B\257\"\210\303\346\347\"\210\303\350\351\"\210\303\352\353\"\210\303\354\355\"\210\303\356\357\"\210\303\360\301\361!\203c\361\202n\301\362!\203m\362\202n\363\"\210\364\365\366\367#\211\370\371\")=\203\210\303\372\363\"\210\202\215\303\372\373\"\210\303\374\375\"\207" [char fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] require mail-prsvr timer autoload gnus-completing-read "gnus-util" mapc #[(elem) "\302\303\304@\"!\305@!\203\306	@\"\202\306	A\")\207" [elem nfunc intern format "mm-%s" fboundp defalias] 4] (coding-system-list . ignore) (char-int . identity) (coding-system-equal . equal) (annotationp . ignore) (set-buffer-file-coding-system . ignore) read-charset #[(prompt) "\302\303\304\305	\"\306#!\207" [prompt mm-mime-mule-charset-alist intern gnus-completing-read mapcar #[(e) "\301@!\207" [e symbol-name] 2] t] 6 "Return a charset."] subst-char-in-string #[(from to string &optional inplace) "\203	\202\306	!	G\307\nW\203+	\nH\fU\203$	\n
I\210\nT\211\202	+\207" [inplace string idx len from to copy-sequence 0] 4 "Replace characters in STRING from FROM to TO.\n	  Unless optional argument INPLACE is non-nil, return a new string."] replace-in-string #[(string regexp rep &optional literal) "\304	\n\305%\207" [regexp rep string literal replace-regexp-in-string nil] 6 "See `replace-regexp-in-string', only the order of args differs."] (string-as-unibyte . identity) (string-make-unibyte . identity) (string-as-multibyte . identity) (multibyte-string-p . ignore) (insert-byte . insert-char) (multibyte-char-to-unibyte . identity) (set-buffer-multibyte . ignore) special-display-p #[(buffer-name) "\205	\n\235\203\f\303\207\304	\n\"A\206\305\306\215\207" [special-display-function buffer-name special-display-buffer-names t assoc return (byte-code "\304\211\205=\n@\211;\203\305	\"\203\306\307\310\"\210	:\2035	@;\2035\305	@\"\2035\306\307	A\"\210\nA\211\204\304*\207" [special-display-regexps elem --dolist-tail-- buffer-name nil string-match throw return t] 4)] 3 "Returns non-nil if a buffer named BUFFER-NAME gets a special frame."] substring-no-properties #[(string &optional from to) "	\206\303\nO\304\303G\305$\210\207" [string from to 0 set-text-properties nil] 5 "Return a substring of STRING, without text properties.\nIt starts at index FROM and ending before TO.\nTO may be nil or omitted; then the substring runs to the end of STRING.\nIf FROM is nil or omitted, the substring starts at the beginning of STRING.\nIf FROM or TO is negative, it counts from the end.\n\nWith one argument, just copy STRING without its properties."] line-number-at-pos #[(&optional pos) "\206`\303\212eb\210`\nb\210\304y\210\305	`\"T+\207" [pos start opoint nil 0 count-lines] 3 "Return (narrowed) buffer line number at position POS.\nIf POS is nil, use current buffer location.\nCounting starts at (point-min), so the value refers\nto the contents of the accessible portion of the buffer."] mm-decode-coding-string decode-coding-string mm-encode-coding-string encode-coding-string mm-decode-coding-region decode-coding-region mm-encode-coding-region encode-coding-region mm-string-to-multibyte string-to-multibyte mm-char-or-char-int-p char-or-char-int-p char-valid-p identity make-char japanese-jisx0208 36 34 decode-char ucs mm-ucs-to-char #[(codepoint) "\301\302\"\206\303\207" [codepoint decode-char ucs 35] 3 "Convert Unicode codepoint to character."] mm-read-coding-system read-coding-system] 22)
(defvar mm-coding-system-list nil)
#@29 Get the coding system list.
(defalias 'mm-get-coding-system-list #[nil "\206\300 \211\207" [mm-coding-system-list] 2 (#$ . 4302)])
#@214 Return non-nil if CS is a symbol naming a coding system.
In XEmacs, also return non-nil if CS is a coding system object.
If CS is available, return CS itself in Emacs, and return a coding
system object in XEmacs.
(defalias 'mm-coding-system-p #[(cs) "\301\302!\203\205!\302!\207\301\303!\203\303!\205!\207\304 >@\207" [cs fboundp find-coding-system coding-system-p mm-get-coding-system-list] 2 (#$ . 4444)])
#@137 A mapping from unknown or invalid charset names to the real charset names.

See `mm-codepage-iso-8859-list' and `mm-codepage-ibm-list'.
(defvar mm-charset-synonym-alist (byte-code "\300\301\302!?\205	\303\301\304!?\205\305\301\306!?\205\307\301\310!?\205'\301\311!\205'\312\301\313!?\2059\301\314!\2038\315\2029\316\301\317!?\205G\301\320!\205G\321\301\322!?\205U\301\323!\205U\324\301\325!?\205c\301\326!\205c\327\301\330!?\205q\301\331!\205q\332\301\333!?\205\301\331!\205\334&\n\207" [append mm-coding-system-p x-ctext ((x-ctext . ctext)) iso-8859-15 ((iso-8859-15 . iso-8859-1)) big5-hkscs ((big5-hkscs . big5)) unicode utf-16-le ((unicode . utf-16-le)) ks_c_5601-1987 cp949 ((ks_c_5601-1987 . cp949)) ((ks_c_5601-1987 . euc-kr)) windows-31j cp932 ((windows-31j . cp932)) gbk cp936 ((gbk . cp936)) utf8 utf-8 ((utf8 . utf-8)) iso8859-1 iso-8859-1 ((iso8859-1 . iso-8859-1)) iso_8859-1 ((iso_8859-1 . iso-8859-1))] 12) (#$ . 4870))
#@247 Create a coding system cpNUMBER.
The coding system is created using `codepage-setup'.  If ALIAS is
non-nil, an alias is created and added to
`mm-charset-synonym-alist'.  If ALIAS is a string, it's used as
the alias.  Else windows-NUMBER is used.
(defalias 'mm-codepage-setup #[(number &optional alias) "\203;\203\303!\202\303\304\305	\"!\303\304\306	\"!\307\n!\2044\310\311!\2030\311	!\210\2024\312\313!\210\205D\307\n!\205D\314\315\nB\")\207" [alias number cp intern format "windows-%s" "cp%s" mm-coding-system-p fboundp codepage-setup error "`codepage-setup' not present in this Emacs version" add-to-list mm-charset-synonym-alist] 4 (#$ . 5834) (let ((completion-ignore-case t) (candidates (if (fboundp 'cp-supported-codepages) (cp-supported-codepages) (error "`codepage-setup' not present in this Emacs version")))) (list (gnus-completing-read "Setup DOS Codepage" candidates t nil nil "437")))])
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\313\314\304\315\306\307\310\311&	\207" [custom-declare-variable mm-codepage-iso-8859-list (list 1250 '(1252 . 1) '(1254 . 9) '(1255 . 8)) "A list of Windows codepage numbers and iso-8859 charset numbers.\n\nIf an element is a number corresponding to a supported windows\ncodepage, appropriate entries to `mm-charset-synonym-alist' are\nadded by `mm-setup-codepage-iso-8859'.  An element may also be a\ncons cell where the car is a codepage number and the cdr is the\ncorresponding number of an iso-8859 charset." :type (list (set :inline t (const 1250 :tag "Central and East European") (const (1252 . 1) :tag "West European") (const (1254 . 9) :tag "Turkish") (const (1255 . 8) :tag "Hebrew")) (repeat :inline t :tag "Other options" (choice (integer :tag "Windows codepage number") (cons (integer :tag "Windows codepage number") (integer :tag "iso-8859 charset  number"))))) :version "22.1" :group mime mm-codepage-ibm-list (list 437 860 861 862 863 865 852 850 855 866 857 864 869 874) "List of IBM codepage numbers.\n\nThe codepage mappings slightly differ between IBM and other vendors.\nSee \"ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/IBM/README.TXT\".\n\nIf an element is a number corresponding to a supported windows\ncodepage, appropriate entries to `mm-charset-synonym-alist' are\nadded by `mm-setup-codepage-ibm'." (list (set :inline t (const 437 :tag "US etc.") (const 860 :tag "Portugal") (const 861 :tag "Iceland") (const 862 :tag "Israel") (const 863 :tag "Canadian French") (const 865 :tag "Nordic") (const 852) (const 850 :tag "Latin 1") (const 855 :tag "Cyrillic") (const 866 :tag "Cyrillic - Russian") (const 857 :tag "Turkish") (const 864 :tag "Arabic") (const 869 :tag "Greek") (const 874 :tag "Thai")) (repeat :inline t :tag "Other options" (integer :tag "Codepage number")))] 10)
#@115 Add appropriate entries to `mm-charset-synonym-alist'.
Unless LIST is given, `mm-codepage-iso-8859-list' is used.
(defalias 'mm-setup-codepage-iso-8859 #[(&optional list) "\204	\306\211\205p@\306\211\211\n:\2039\307\310\311\n@\"!\307\310\312\n@\"!\307\310\313\nA\"!\202H\307\310\311\n\"!\307\310\312\n\"!\314
!\204g\314!\203`\315\316
B\"\210\202g\315\316
\fB\"\210+A\211\204\306*\207" [list mm-codepage-iso-8859-list i --dolist-tail-- iso windows nil intern format "cp%d" "windows-%d" "iso-8859-%d" mm-coding-system-p add-to-list mm-charset-synonym-alist cp] 5 (#$ . 8632)])
#@110 Add appropriate entries to `mm-charset-synonym-alist'.
Unless LIST is given, `mm-codepage-ibm-list' is used.
(defalias 'mm-setup-codepage-ibm #[(&optional list) "\204	\306\211\205;@\307\310\311\n\"!\307\310\312\n\"!\313
!\2042\313\f!\2032\314\315
\fB\"\210*A\211\204\306*\207" [list mm-codepage-ibm-list number --dolist-tail-- cp ibm nil intern format "ibm%d" "cp%d" mm-coding-system-p add-to-list mm-charset-synonym-alist] 6 (#$ . 9248)])
(byte-code "\300 \210\301 \210\302\303\304\305\306\307\310\311\312\313&	\210\314\303\315\316#\207" [mm-setup-codepage-iso-8859 mm-setup-codepage-ibm custom-declare-variable mm-charset-eval-alist (if (featurep 'xemacs) nil '((windows-1250 mm-codepage-setup 1250 t) (windows-1251 mm-codepage-setup 1251 t) (windows-1253 mm-codepage-setup 1253 t) (windows-1257 mm-codepage-setup 1257 t))) "An alist of (CHARSET . FORM) pairs.\nIf an article is encoded in an unknown CHARSET, FORM is\nevaluated.  This allows to load additional libraries providing\ncharsets on demand.  If supported by your Emacs version, you\ncould use `autoload-coding-system' here." :version "22.1" :type (list (set :inline t (const (windows-1250 mm-codepage-setup 1250 t)) (const (windows-1251 mm-codepage-setup 1251 t)) (const (windows-1253 mm-codepage-setup 1253 t)) (const (windows-1257 mm-codepage-setup 1257 t)) (const (cp850 mm-codepage-setup 850 nil))) (repeat :inline t :tag "Other options" (cons (symbol :tag "charset") (symbol :tag "form")))) :group mime put risky-local-variable t] 10)
#@477 Return coding-system corresponding to CHARSET.
CHARSET is a symbol naming a MIME charset.
If optional argument LBT (`unix', `dos' or `mac') is specified, it is
used as the line break code type of the coding system.

If ALLOW-OVERRIDE is given, use `mm-charset-override-alist' to
map undesired charset names to their replacement.  This should
only be used for decoding, not for encoding.

A non-nil value of SILENT means don't issue a warning even if CHARSET
is not available.
(defalias 'mm-charset-to-coding-system #[(charset &optional lbt allow-override silent) ";\203\n\306\227!	\203\306\307\310	#!\204\207\311 \203'\312\313!\204)\207\n\203A\236A\211\205=\314\f!\205=\f)\206\372\315=\204P\316\317\320!\"\203R\321\207\314!\203Z\207\312\322!\203f\322!\206\372
\236\211@A\f\205\215\205\215\323\324\325\217\210\314\f!\326\327\f\"\210\205\215\f+\206\372\236A\211\205\242\314\f!\205\242\f)\206\372\323\311 \323 \211!\203\332!@ \f\204\321\313 \330\"\206\312\313 \331\"=\203\321 !A\211!\204\263*\"\204\370\f\204\370\312\332!\203\363\332\333\334#\210\202\370\326\334\"\210\f)\207" [charset lbt allow-override mm-charset-override-alist cs mm-charset-eval-alist intern format "%s-%s" mm-get-coding-system-list fboundp coding-system-get mm-coding-system-p us-ascii string-match "ansi.x3.4" symbol-name ascii coding-system-from-name nil (eval form) ((error)) message "Added charset `%s' via `mm-charset-eval-alist'" :mime-charset mime-charset gnus-message 7 "Unknown charset: %s" el form mm-charset-synonym-alist c --dolist-tail-- silent] 6 (#$ . 10777)])
#@202 A mapping from undesired charset names to their replacement.

You may add pairs like (iso-8859-1 . windows-1252) here,
i.e. treat iso-8859-1 as windows-1252.  windows-1252 is a
superset of iso-8859-1.
(custom-declare-variable 'mm-charset-override-alist ''((gb2312 . gbk) (iso-8859-1 . windows-1252) (iso-8859-8 . windows-1255) (iso-8859-9 . windows-1254)) '(#$ . 12406) :type '(list :convert-widget (lambda (widget) (let ((defaults (delq nil (mapcar (lambda (pair) (if (mm-charset-to-coding-system (cdr pair) nil nil t) pair)) '((gb2312 . gbk) (iso-8859-1 . windows-1252) (iso-8859-8 . windows-1255) (iso-8859-9 . windows-1254) (undecided . windows-1252))))) (val (copy-sequence (default-value 'mm-charset-override-alist))) pair rest) (while val (push (if (and (prog1 (setq pair (assq (caar val) defaults)) (setq defaults (delq pair defaults))) (equal (car val) pair)) `(const ,pair) `(cons :format "%v" (const :format "(%v" ,(caar val)) (symbol :size 3 :format " . %v)\n" ,(cdar val)))) rest) (setq val (cdr val))) (while defaults (push `(const ,(pop defaults)) rest)) (widget-convert 'list `(set :inline t :format "%v" ,@(nreverse rest)) `(repeat :inline t :tag "Other options" (cons :format "%v" (symbol :size 3 :format "(%v") (symbol :size 3 :format " . %v)\n"))))))) :set #[(symbol value) "\302\303\304\305\306	\"\"\"\207" [symbol value custom-set-default delq nil mapcar #[(pair) "\301A\302\211\303$\205\207" [pair mm-charset-to-coding-system nil t] 5]] 7] :version "22.1" :group 'mime)
#@28 100% binary coding system.
(defvar mm-binary-coding-system (byte-code "\300\301!\203\301\207\300\302!\203\302\207\303\207" [mm-coding-system-p binary no-conversion nil] 2) (#$ . 13910))
#@44 Text-safe coding system (For removing ^M).
(defvar mm-text-coding-system (byte-code "\302>\203\303\304!\203\304\207\303\305!\203\305\207	\207" [system-type mm-binary-coding-system (windows-nt ms-dos) mm-coding-system-p raw-text-dos raw-text] 2) (#$ . 14106))
#@31 Text coding system for write.
(defvar mm-text-coding-system-for-write nil (#$ . 14378))
#@34 Coding system of auto save file.
(defvar mm-auto-save-coding-system (byte-code "\302\303!\203\304>\203\302\305!\203\305\207	\207\303\207\302\306!\2030\307>\203.\302\310!\203,\310\207	\207\306\207\302\311!\2038\311\207	\207" [system-type mm-binary-coding-system mm-coding-system-p utf-8-emacs (windows-nt ms-dos) utf-8-emacs-dos emacs-mule (windows-nt ms-dos) emacs-mule-dos escape-quoted] 2) (#$ . 14472))
#@30 The universal coding system.
(defvar mm-universal-coding-system mm-auto-save-coding-system (#$ . 14896))
#@38 Alist of MIME-charset/MULE-charsets.
(defvar mm-mime-mule-charset-alist (byte-code "\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336!\2030\337\340\341\342\343\336 \"\"B\202P\335\344!\203B\344\345!\204B\346\347!\204F\350\202P\351\352\353\341\354\347\355\"\"\"\257\207" [(us-ascii ascii) (iso-8859-1 latin-iso8859-1) (iso-8859-2 latin-iso8859-2) (iso-8859-3 latin-iso8859-3) (iso-8859-4 latin-iso8859-4) (iso-8859-5 cyrillic-iso8859-5) (koi8-r cyrillic-iso8859-5 gnus-koi8-r) (iso-8859-6 arabic-iso8859-6) (iso-8859-7 greek-iso8859-7) (iso-8859-8 hebrew-iso8859-8) (iso-8859-9 latin-iso8859-9) (iso-8859-14 latin-iso8859-14) (iso-8859-15 latin-iso8859-15) (viscii vietnamese-viscii-lower) (iso-2022-jp latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978) (euc-kr korean-ksc5601) (gb2312 chinese-gb2312) (gbk chinese-gbk) (gb18030 gb18030-2-byte gb18030-4-byte-bmp gb18030-4-byte-smp gb18030-4-byte-ext-1 gb18030-4-byte-ext-2) (big5 chinese-big5-1 chinese-big5-2) (tibetan tibetan) (thai-tis620 thai-tis620) (windows-1251 cyrillic-iso8859-5) (iso-2022-7bit ethiopic arabic-1-column arabic-2-column) (iso-2022-jp-2 latin-iso8859-1 greek-iso8859-7 latin-jisx0201 japanese-jisx0208-1978 chinese-gb2312 japanese-jisx0208 korean-ksc5601 japanese-jisx0212) (iso-2022-int-1 latin-iso8859-1 greek-iso8859-7 latin-jisx0201 japanese-jisx0208-1978 chinese-gb2312 japanese-jisx0208 korean-ksc5601 japanese-jisx0212 chinese-cns11643-1 chinese-cns11643-2) (iso-2022-int-1 latin-iso8859-1 latin-iso8859-2 cyrillic-iso8859-5 greek-iso8859-7 latin-jisx0201 japanese-jisx0208-1978 chinese-gb2312 japanese-jisx0208 korean-ksc5601 japanese-jisx0212 chinese-cns11643-1 chinese-cns11643-2 chinese-cns11643-3 chinese-cns11643-4 chinese-cns11643-5 chinese-cns11643-6 chinese-cns11643-7) (iso-2022-jp-3 latin-jisx0201 japanese-jisx0208-1978 japanese-jisx0208 japanese-jisx0213-1 japanese-jisx0213-2) (shift_jis latin-jisx0201 katakana-jisx0201 japanese-jisx0208) fboundp unicode-precedence-list utf-8 delq ascii mapcar charset-name charsetp unicode-a mm-coding-system-p mule-utf-8 (utf-8 unicode-a unicode-b unicode-c unicode-d unicode-e) append (utf-8) delete coding-system-get safe-charsets] 36) (#$ . 15007))
#@254 Make the `utf-8' MIME charset usable by the Mule-UCS package.
This function will run when the `un-define' module is loaded under
XEmacs, and fill the `utf-8' entry in `mm-mime-mule-charset-alist'
with Mule charsets.  It is completely useless for Emacs.
(defalias 'mm-enrich-utf-8-by-mule-ucs #[nil "\300\301!\205\n\302\303\304\217\207" [boundp unicode-basic-translation-charset-order-list nil (byte-code "\303\304\305\306J!\"\307\236	\203	\n\241\202\307\nBC\244\211*\207" [mm-mime-mule-charset-alist elem val delq ascii copy-sequence unicode-basic-translation-charset-order-list utf-8] 4) ((error))] 3 (#$ . 17285)])
(byte-code "\306\307!\203U\306\310!\203U\310\307\311!!\312\211\211\211\f\203Q\f\211A@\313\314\"\206/\313\315\"\211\203\313\316\"\211\317=\204\n\236\204\n\320\321	\"BB\202\237-\312\207" [alist mule mime cs css mm-mime-mule-charset-alist fboundp coding-system-list sort-coding-systems base-only nil coding-system-get :mime-charset mime-charset safe-charsets t delq ascii] 6)
#@210 A list of special charsets.
Valid elements include:
`iso-8859-15'    convert ISO-8859-1, -9 to ISO-8859-15 if ISO-8859-15 exists.
`iso-2022-jp-2'  convert ISO-2022-jp to ISO-2022-jp-2 if ISO-2022-jp-2 exists.
(defvar mm-hack-charsets '(iso-8859-15 iso-2022-jp-2) (#$ . 18321))
#@71 ISO-8859-15 exchangeable coding systems and inconvertible characters.
(defvar mm-iso-8859-15-compatible '((iso-8859-1 "\244\246\250\264\270\274\275\276") (iso-8859-9 "\244\246\250\264\270\274\275\276\320\335\336\360\375\376")) (#$ . 18604))
#@73 A table of the difference character between ISO-8859-X and ISO-8859-15.
(defvar mm-iso-8859-x-to-15-table (byte-code "\301\302!\205\303\304!\205\305\306\"\207" [mm-iso-8859-15-compatible fboundp coding-system-p mm-coding-system-p iso-8859-15 mapcar #[(cs) "\303@!\203*\304\305\306@\"!\307	!\304\305\306\310\"!	Z\305A@@\"\311\n\312\"*BB\207\313\207" [cs c string mm-coding-system-p string-to-char decode-coding-string "\341" char-charset iso-8859-15 append nil (gnus-charset 0)] 5]] 3) (#$ . 18851))
#@306 Preferred coding systems for encoding outgoing messages.

More than one suitable coding system may be found for some text.
By default, the coding system with the highest priority is used
to encode outgoing messages (see `sort-coding-systems').  If this
variable is set, it overrides the default priority.
(custom-declare-variable 'mm-coding-system-priorities '(let ((lang (if (boundp 'current-language-environment) (symbol-value 'current-language-environment)))) (cond ((not lang) nil) ((string-match "\\`Japanese" lang) '(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8)))) '(#$ . 19369) :version "21.2" :type '(repeat (symbol :tag "Coding system")) :group 'mime)
#@199 Use `find-coding-systems-region' to find proper coding systems.

Setting it to nil is useful on Emacsen supporting Unicode if sending
mail with multiple parts is preferred to sending a Unicode one.
(defvar mm-use-find-coding-systems-region (fboundp 'find-coding-systems-region) (#$ . 20046))
#@198 *Alist of extra numeric entities and characters other than ISO 10646.
This table is used for decoding extra numeric entities to characters,
like "€" to the euro sign, mainly in html messages.
(defvar mm-extra-numeric-entities (mapcar #[(item) "@AB\207" [item] 2] '((128 . 8364) (130 . 8218) (131 . 402) (132 . 8222) (133 . 8230) (134 . 8224) (135 . 8225) (136 . 710) (137 . 8240) (138 . 352) (139 . 8249) (140 . 338) (142 . 381) (145 . 8216) (146 . 8217) (147 . 8220) (148 . 8221) (149 . 8226) (150 . 8211) (151 . 8212) (152 . 732) (153 . 8482) (154 . 353) (155 . 8250) (156 . 339) (158 . 382) (159 . 376))) (#$ . -20345))
#@66 Return the MIME charset corresponding to the given Mule CHARSET.
(defalias 'mm-mule-charset-to-mime-charset #[(charset) "\306\307!\203?\306\310!\203?\311\310\307C!!\312\"\313\211	\204<\203<\211A@\211\203\314\n\315\"\2067\314\n\316\"\211\203	+\207\317\320\311\317\321\f\"\312\"\"\313\203v\211@A)>\203k\211@@)\313\211A@\210\202M
*\207" [charset mime cs css mm-mime-mule-charset-alist out fboundp find-coding-systems-for-charsets sort-coding-systems sort mm-sort-coding-systems-predicate nil coding-system-get :mime-charset mime-charset mapcar #[(cs) "	\236\207" [cs mm-mime-mule-charset-alist] 2] car alist x] 7 (#$ . 20981)])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias mm-enable-multibyte #[nil "\300\301!\207" [set-buffer-multibyte to] 2 "Set the multibyte flag of the current buffer.\nOnly do this if the default value of `enable-multibyte-characters' is\nnon-nil.  This is a no-op in XEmacs."] mm-disable-multibyte #[nil "\300\301!\207" [set-buffer-multibyte nil] 2 "Unset the multibyte flag of in the current buffer.\nThis is a no-op in XEmacs."]] 3)
(defalias 'mm-preferred-coding-system #[(charset) "\301\302\"\206\301\303\"\207" [charset get-charset-property preferred-coding-system prefered-coding-system] 3])
#@51 Guess Mule charset from the language environment.
(defalias 'mm-guess-charset #[nil "\206*\305\301!\205\306\307\310	\n\"\236!@\211\203\311=\203)\306\f\236!@\206(\312\207" [mail-parse-mule-charset current-language-environment language-info-alist mail-parse-charset mm-mime-mule-charset-alist boundp last charset assoc ascii latin-iso8859-1] 6 (#$ . 22268)])
(put 'mm-guess-charset 'byte-optimizer 'byte-compile-inline-expand)
#@213 Return charset of a character in current buffer at position POS.
If POS is nil, it defaults to the current point.
If POS is out of range, the value is nil.
If the charset is `composition', return the actual one.
(defalias 'mm-charset-after #[(&optional pos) "f\306\211\307W\203\310\211\202p\311\312!\205\312\n!\211\313=\2034\206&`\314\211T\"\211A@*\202p	\203B	\315>\204B	\202p
\206p\316\317!\205W\320\301\321\"\236!@\211\203b
\310=\203o\320\236!@\206n\322
*\207" [pos charset char p x mail-parse-mule-charset nil 128 ascii fboundp char-charset composition find-charset-region (ascii eight-bit-control eight-bit-graphic) boundp current-language-environment last assoc latin-iso8859-1 language-info-alist mail-parse-charset mm-mime-mule-charset-alist] 6 (#$ . 22713)])
#@66 Return the MIME charset corresponding to the given Mule CHARSET.
(defalias 'mm-mime-charset #[(charset) "\301=\203\n\302\303!\210\304\305!\203@\304\306!\203@\307!\203.\305\307!\310\"\206C\305\307!\311\"\206C\312=\2036\313\207\307!\206C\314!\207\314!\207" [charset unknown error "The message contains non-printable characters, please use attachment" fboundp coding-system-get get-charset-property mm-preferred-coding-system :mime-charset mime-charset ascii us-ascii mm-mule-charset-to-mime-charset] 3 (#$ . 23521)])
(byte-code "\300\301!\203\302\303\301\"\210\202\302\303\304\"\210\305\306!\203!\302\307\310\"\210\202&\302\307\311\"\210\300\207" [fboundp delete-dups defalias mm-delete-duplicates #[(list) "\211\203	\302	@	A\"\241\210	A\211\204)\207" [list tail delete] 5 "Destructively remove `equal' duplicates from LIST.\nStore the result in LIST and return it.  LIST must be a proper list.\nOf several `equal' occurrences of an element in LIST, the first\none is kept.\n\nThis is a compatibility function for Emacsen without `delete-dups'."] boundp enable-multibyte-characters mm-multibyte-p #[nil "\207" [enable-multibyte-characters] 1 "Non-nil if multibyte is enabled in the current buffer."] #[nil "\300\301!\207" [featurep mule] 2]] 3)
#@115 Return non-nil if the session is multibyte.
This affects whether coding conversion should be attempted generally.
(defalias 'mm-default-multibyte-p #[nil "\300\301!\205\302\303!\203\304\303!\207\305\207" [featurep mule boundp enable-multibyte-characters default-value t] 2 (#$ . 24802)])
(defalias 'mm-iso-8859-x-to-15-region #[(&optional b e) "\306\307!\205]\310\211\211\211\214\f\203
\f}\210eb\210\311\310w\210m\204Y\307\310f\211!\236\211\2046\310u\210\202R	\nAA>\203F\312\310u\210\202R\313	\nA@\\\314\315!\210!\210\311\310w\210\202),?\207" [inconvertible c item charset e b fboundp char-charset nil "-" t insert-before-markers delete-char 1 mm-iso-8859-x-to-15-table] 4])
(defalias 'mm-sort-coding-systems-predicate #[(a b) "\304\305\"\306\n!\211\205&\306!\211\203%\307\n!	>G\307!	>GV\202&\310)\207" [mm-coding-system-priorities priorities a b mapcar #[(cs) "\301!\211\205\302!\207" [cs mm-coding-system-p coding-system-base] 2] mm-coding-system-p coding-system-base t] 3])
#@979 Determine which MIME charset to use to send region as message.
This uses the XEmacs-specific latin-unity package to better handle the
case where identical characters from diverse ISO-8859-? character sets
can be encoded using a single one of the corresponding coding systems.

It treats `mm-coding-system-priorities' as the list of preferred
coding systems; a useful example setting for this list in Western
Europe would be '(iso-8859-1 iso-8859-15 utf-8), which would default
to the very standard Latin 1 coding system, and only move to coding
systems that are less supported as is necessary to encode the
characters that exist in the buffer.

Latin Unity doesn't know about those non-ASCII Roman characters that
are available in various East Asian character sets.  As such, its
behavior if you have a JIS 0212 LATIN SMALL LETTER A WITH ACUTE in a
buffer and it can otherwise be encoded as Latin 1, won't be ideal.
But this is very much a corner case, so don't worry about it.
(defalias 'mm-xemacs-find-mime-charset-1 #[(begin end) "\306\211\211\307\310!\204\311\312!\203\313\310!\210\307\310!\205-\314
\"\315
\"\316\317\215,\207" [mm-coding-system-priorities curset psets csets systems begin nil featurep latin-unity locate-library "latin-unity" require latin-unity-representations-feasible-region latin-unity-representations-present-region done (byte-code "\306\211\203C\n@\307\310	\"\211>\203\311\312	C\"\210	\f>\204'\311\312\306\"\210\313

	\314&\203<\311\312	C\"\210\nA\211\204*\306\207" [systems curset --dolist-tail-- latin-unity-ucs-list latin-unity-coding-systems begin nil latin-unity-massage-name buffer-default throw done latin-unity-maybe-remap t end csets psets] 8) end] 4 (#$ . 25826)])
(defalias 'mm-xemacs-find-mime-charset '(macro . #[(begin end) "\300\207" [nil] 1]))
#@198 Return the MIME charsets needed to encode the region between B and E.
nil means ASCII, a single-element list represents an appropriate MIME
charset, and a longer list means no appropriate charset.
(defalias 'mm-find-mime-charset-region #[(b e &optional hack-charsets) "\306\307 \203e	\203e\310\n\"
\203\311\f\312\"\313\314\f\"\211\315\232\204`\f\203`\f\211A@\316\317\"\206<\316\320\"\211 \203\\\321\322\323 !\"\204\\\321\324\323 !\"\204\\\306 C*\202$)\204x\306\211\204x\325\326\327\313\330\331\n\"\"\"!G\332V\203\266\333>\203\266\333!>\203\266\212\334\n\")\203\266\"\306#\211$\203\265$@#\313#@\"$A\211$\204\240*\335>\203\310\335!>\203\310\313\336\")\207" [charsets mm-use-find-coding-systems-region b e systems mm-coding-system-priorities nil mm-multibyte-p find-coding-systems-region sort mm-sort-coding-systems-predicate delq compound-text (undecided) coding-system-get :mime-charset mime-charset string-match "^[Xx]-" symbol-name "utf-16" mm-delete-duplicates mapcar mm-mime-charset ascii mm-find-charset-region 1 iso-8859-15 mm-iso-8859-x-to-15-region iso-2022-jp-2 iso-2022-jp head cs hack-charsets mm-iso-8859-15-compatible x --dolist-tail--] 9 (#$ . 27657)])
#@94 Create a temporary buffer, and evaluate FORMS there like `progn'.
Use unibyte mode for this.
(defalias 'mm-with-unibyte-buffer '(macro . #[(&rest forms) "\301\302BB\207" [forms with-temp-buffer (mm-disable-multibyte)] 3 (#$ . 28891)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put mm-with-unibyte-buffer lisp-indent-function 0 edebug-form-spec (body)] 4)
#@96 Create a temporary buffer, and evaluate FORMS there like `progn'.
Use multibyte mode for this.
(defalias 'mm-with-multibyte-buffer '(macro . #[(&rest forms) "\301\302BB\207" [forms with-temp-buffer (mm-enable-multibyte)] 3 (#$ . 29269)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put mm-with-multibyte-buffer lisp-indent-function 0 edebug-form-spec (body)] 4)
#@401 Evaluate FORMS with current buffer temporarily made unibyte.
Equivalent to `progn' in XEmacs.

Note: We recommend not using this macro any more; there should be
better ways to do a similar thing.  The previous version of this macro
bound the default value of `enable-multibyte-characters' to nil while
evaluating FORMS but it is no longer done.  So, some programs assuming
it if any may malfunction.
(defalias 'mm-with-unibyte-current-buffer '(macro . #[(&rest forms) "\302\303!\304\305BC\306\307BB\310\311	B\306\312BBEF)\207" [multibyte forms make-symbol "multibyte" let (enable-multibyte-characters) when ((set-buffer-multibyte nil)) prog1 progn ((set-buffer-multibyte t))] 8 (#$ . 29653)]))
(byte-code "\300\301\302\303#\210\300\301\304\305#\207" [put mm-with-unibyte-current-buffer lisp-indent-function 0 edebug-form-spec (body)] 4)
#@55 Return a list of Emacs charsets in the region B to E.
(defalias 'mm-find-charset-region #[(b e) "\306 \203,\307\310!\203,\310	\"\311\312\211\203'\f@\313\n\"\fA\211\204\312\n+\207\212\214	}\210eb\210\314\312w\210m\203A\315\202r\312\316\317!\205T\320\305\321\"\236!@\211\322=\203]\312
\204j\320\236!@\322
\206p\323)D*\207" [b e css cs --dolist-tail-- charset mm-multibyte-p fboundp find-charset-region (composition eight-bit-control eight-bit-graphic control-1) nil delq "-" (ascii) boundp current-language-environment last assoc ascii latin-iso8859-1 language-info-alist mail-parse-charset mm-mime-mule-charset-alist] 6 (#$ . 30500)])
#@63 Return an `auto-mode-alist' with only the .gz (etc) thingies.
(defalias 'mm-auto-mode-alist #[nil "\304\n\203 \n\211@A)<\203\n@	B\n\211A@\210\202	\237*\207" [auto-mode-alist out alist x nil] 3 (#$ . 31175)])
#@58 A list of handlers doing (un)compression (etc) thingies.
(defvar mm-inhibit-file-name-handlers '(jka-compr-handler image-file-handler epa-file-handler) (#$ . 31400))
#@368 Like `insert-file-contents', but only reads in the file.
A buffer may be modified in several ways after reading into the buffer due
to advanced Emacs features, such as file-name-handlers, format decoding,
`find-file-hooks', etc.
If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'.
  This function ensures that none of these modifications will take place.
(defalias 'mm-insert-file-contents #[(filename &optional visit beg end replace inhibit) "\306	?\205	\307 \310\311!\312\216\313\311\314\"\210\306\211\306	\203$\315\202&	\2035\316\"\2027\317\320!\203C\320\202D\321\211J\306L\210\322\216\315%.\f\207" [format-alist inhibit auto-mode-alist #1=#:old enable-local-variables after-insert-file-functions nil mm-auto-mode-alist default-value major-mode ((byte-code "\301\302\"\207" [#1# set-default major-mode] 3)) set-default fundamental-mode insert-file-contents append boundp find-file-hook find-file-hooks ((set ffh val)) enable-local-eval inhibit-file-name-operation mm-inhibit-file-name-handlers inhibit-file-name-handlers ffh val filename visit beg end replace] 7 (#$ . 31573)])
#@354 Append the contents of the region to the end of file FILENAME.
When called from a function, expects three arguments,
START, END and FILENAME.  START and END are buffer positions
saying what text to write.
Optional fourth argument specifies the coding system to use when
encoding the file.
If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'.
(defalias 'mm-append-to-file #[(start end filename &optional codesys inhibit) "\206		\206	\n\203\306\202\f\203\307

\"\202 

\310\311\312%\210\313\314\"+\207" [codesys mm-text-coding-system-for-write mm-text-coding-system inhibit inhibit-file-name-operation mm-inhibit-file-name-handlers append-to-file append write-region t no-message message "Appended to %s" inhibit-file-name-handlers coding-system-for-write start end filename] 6 (#$ . 32716)])
#@86 Like `write-region'.
If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'.
(defalias 'mm-write-region #[(start end filename &optional append visit lockname coding-system inhibit) "\206		\206	\n\203\306\202\f\203\307
\"\202 	\306\n\f
&+\207" [coding-system mm-text-coding-system-for-write mm-text-coding-system inhibit inhibit-file-name-operation mm-inhibit-file-name-handlers write-region append inhibit-file-name-handlers coding-system-for-write start end filename visit lockname] 7 (#$ . 33550)])
(byte-code "\300\301\302\"\210\303\304!\203\305\306\307\217\203\310\311\304\"\210\202\310\311\312\"\210\305\207" [autoload gmm-write-region "gmm-utils" fboundp make-temp-file nil (byte-code "\301K\302!\205+\303\304!\203\305\304D!\202\306H\211\205+G\307Y\205+\3108\311=)\207" [def make-temp-file byte-code-function-p fboundp compiled-function-arglist eval 0 4 3 suffix] 3) ((error)) defalias mm-make-temp-file #[(prefix &optional dir-flag suffix) "\302 \303\304\216\305\306!\210\307\310\311\217\204+\207" [file umask default-file-modes nil ((set-default-file-modes umask)) set-default-file-modes 448 err (byte-code "\305\306\307\310!\203\310 \202	\"!\203\nP\f\203%\311\n!\210\2020\312\313\314\n\314\315\314\316&\210\314\207" [prefix temporary-file-directory file suffix dir-flag make-temp-name expand-file-name fboundp temp-directory make-directory gmm-write-region "" nil silent excl] 8) ((file-already-exists t) (file-error (byte-code "\301@A\"\207" [err signal] 3)))] 3 "Create a temporary file.\nThe returned file name (created by appending some random characters at the end\nof PREFIX, and expanding against `temporary-file-directory' if necessary),\nis guaranteed to point to a newly created empty file.\nYou can then use `write-region' to write new data into the file.\n\nIf DIR-FLAG is non-nil, create a new empty directory instead of a file.\n\nIf SUFFIX is non-nil, add that at the end of the file name."]] 3)
(defvar mm-image-load-path-cache nil)
(defalias 'mm-image-load-path #[(&optional package) "\203	@\232\203A\207\306\211	\306\211\203@
@\211\2039\307\310\311\f!!\312\f\206.\313Q\211!\2039\nB
A\211\204*\n\237	\nB\n*\207" [mm-image-load-path-cache load-path result dir path --dolist-tail-- nil file-directory-p file-name-directory directory-file-name "etc/images/" "gnus/" package] 5])
(byte-code "\300\301!\203\302\303\304\"\210\202\302\303\305\"\210\300\306!\203!\302\307\310\"\210\202&\302\307\311\"\210\300\207" [fboundp detect-coding-region defalias mm-detect-coding-region #[(start end) "\303	\"\211\242\206\n)\207" [start end coding-systems detect-coding-region] 4 "Like `detect-coding-region' except returning the best one."] #[(start end) "`	b\210\306\nw\210`\n=\203\307\202?\206?\310\304!\205&\311\312\313\f
\"\236!@\211\2031\307=\203>\311
\236!@\206=\314b\210)\207" [point start end mail-parse-mule-charset current-language-environment language-info-alist "-" ascii boundp last charset assoc latin-iso8859-1 mail-parse-charset mm-mime-mule-charset-alist] 5] coding-system-get mm-detect-mime-charset-region #[(start end) "\303	\"\304\n\305\"\206\304\n\306\")\207" [start end cs mm-detect-coding-region coding-system-get :mime-charset mime-charset] 3 "Detect MIME charset of the text in the region between START and END."] #[(start end) "\302	\"\207" [start end mm-detect-coding-region] 4 "Detect MIME charset of the text in the region between START and END."]] 3)
#@127 Return the MIME charset corresponding to CODING-SYSTEM.
To make this function work with XEmacs, the APEL package is required.
(defalias 'mm-coding-system-to-mime-charset #[(coding-system) "\205\301\302!\205\302\303\"\206\302\304\"\207" [coding-system fboundp coding-system-get :mime-charset mime-charset] 3 (#$ . 37086)])
#@528 Decompress buffer's contents, depending on jka-compr.
Only when FORCE is t or `auto-compression-mode' is enabled and FILENAME
agrees with `jka-compr-compression-info-list', decompression is done.
Signal an error if FORCE is neither nil nor t and compressed data are
not decompressed because `auto-compression-mode' is disabled.
If INPLACE is nil, return decompressed data or nil without modifying
the buffer.  Otherwise, replace the buffer's contents with the
decompressed data.  The buffer's multibyteness must be turned off.
(defalias 'mm-decompress-buffer #[(filename &optional inplace force) "\205\246	\203\306\307\310!\210\202\311\312!\205\246\312 \205\246\313!\211\205\245	\314\306D>\2044\312 \2044\315\316!\210\317\n!\320\n!\321\322\323\n!#\324 p\211\314\211#$%&'()\325\326'\"\210\327\330!*r*q\210\331\216\332 \210\333%!\210\334\335\336\217\210+\337&!\203\204\314\340\341\217\210+\203\226\f\204\224ed|\210
c\210\314\325\326\f\206\240'\342P\"\210
.	)\207" [filename force info mm-binary-coding-system err-msg retval t require jka-compr fboundp jka-compr-installed-p jka-compr-get-compression-info nil error "" jka-compr-info-uncompress-program jka-compr-info-uncompress-args format "%s %s..." jka-compr-info-uncompress-message jka-compr-make-temp-name message "%s" generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1=#:temp-buffer buffer-name kill-buffer] 2)) mm-disable-multibyte insert-buffer-substring err (byte-code "\306\307ed\310\211	D\311\n&>\2044\312 \210\313\314\315\316	!\210\317 \312 \210\310\"\320#\321\261\210\322\323\313\314\n\320#\f$\317 \311\207" [prog err-file args jka-compr-acceptable-retval-list filename err-msg apply call-process-region t nil erase-buffer mapconcat identity split-string insert-file-contents buffer-string " " "\n" format "Error while executing \"%s %s < %s\"" retval] 9) ((error (byte-code "\302!\302\207" [err err-msg error-message-string] 2))) file-exists-p (delete-file err-file) ((error)) "done" coding-system-for-write coding-system-for-read cur err-file msg args prog #1# inplace] 10 (#$ . 37424)])
#@316 Find coding system used to decode the contents of the current buffer.
This function looks for the coding system magic cookie or examines the
coding system specified by `file-coding-system-alist' being associated
with FILENAME which defaults to `buffer-file-name'.  Data compressed by
gzip, bzip2, etc. are allowed.
(defalias 'mm-find-buffer-file-coding-system #[(&optional filename) "\204	\212\205\304\305\"?\205\306\307\310#\211\203,\311\312!q\210\313 \210\nc\210\314!eb\210\315\216\316\317!\205T\203M\317JdeZ\"\206T\320\321\"@\202T\307\211\322\323\217)+\207" [filename buffer-file-name decomp auto-coding-alist string-match "\\.\\(?:tar\\.[^.]+\\|tbz\\|tgz\\)\\'" mm-decompress-buffer nil t generate-new-buffer " *temp*" mm-disable-multibyte file-name-sans-extension ((byte-code "\203\301p!\210\301\207" [decomp kill-buffer] 2)) boundp set-auto-coding-function find-operation-coding-system insert-file-contents (byte-code "\300J\301deZ\"\207" [set-auto-coding-function nil] 4) ((error))] 5 (#$ . 39557)])
(provide 'mm-util)

MMCT - 2023