;ELC   
;;; Compiled by root@tweety.build.redhat.com on Tue Dec 14 03:50:02 2004
;;; from file /usr/src/build/496412-noarch/BUILD/flim-1.14.7/mime-parse.el
;;; in Emacs version 21.3.1
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`mime-parse.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\"\210\304\307\306\"\210\304\310\306\"\207" [require mime-def luna std11 autoload mime-entity-body-buffer "mime" mime-entity-body-start-point mime-entity-body-end-point] 3)
#@353 *List of functions to return result of lexical analyze.
Each function must have two arguments: STRING and START.
STRING is the target string to be analyzed.
START is start position of STRING to analyze.

Previous function is preferred to next function.  If a function
returns nil, next function is used.  Otherwise the return value will
be the result.
(custom-declare-variable 'mime-lexical-analyzer ''(std11-analyze-quoted-string std11-analyze-domain-literal std11-analyze-comment std11-analyze-spaces mime-analyze-tspecial mime-analyze-token) '(#$ . -879) :group 'mime :type '(repeat function))
(defalias 'mime-analyze-tspecial #[(string start) "G	V\205 	H\n>\205 \303	\211TOB	TB\207" [string start mime-tspecial-char-list tspecials] 4])
(defalias 'mime-analyze-token #[(string start) "\304	\n#\205 \305\224\nU\205 \305\225\306	\nOB)B\207" [mime-token-regexp string start end string-match 0 mime-token] 4])
#@43 Analyze STRING as lexical tokens of MIME.
(defalias 'mime-lexical-analyze #[(string) "\305	\"\306\211\211@@\307>\203 \fA\211\202\n \f\fA\211\203? \n@@\310>\2035 \nA\241\210\nA\211\202 A\nA\211\204! \f+\207" [string mime-lexical-analyzer tail prev ret std11-lexical-analyze nil (spaces comment) (spaces comment)] 4 (#$ . 1805)])
(defalias 'mime-decode-parameter-value #[(text charset language) "\306\307\310!!\311\216rq\210\312\313!\210	c\210eb\210\314\315\313\316#\2031 \317``\320Z{\321\"``\322Z|\210c\210\202 \323 \n\203_ \324 \210\312\316!\210	\n\313\313\203\\ \325\n\"\211\203\\ \326\f\"\202] \f,\203n \327\330	G\331	%\210	+\207" [#1=#:temp-buffer text charset lbt string cs get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) set-buffer-multibyte nil re-search-forward "%[0-9A-Fa-f][0-9A-Fa-f]" t string-to-int 2 16 3 buffer-string erase-buffer mime-charset-to-coding-system decode-coding-string put-text-property 0 mime-language enable-multibyte-characters language] 6])
(defalias 'mime-decode-parameter-encode-segment #[(segment) "\302\303\304!!\305\216rq\210\306\307!\210	c\210eb\210\310\311!\203  \312\225b\210m\2045 \313\314\315\307f!\"``T|\210c\210\202 \316 +\207" [#1=#:temp-buffer segment get-buffer-create generate-new-buffer-name " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) set-buffer-multibyte nil looking-at "[^][()<>@,;:\\\"/?= - *'%]+" 0 format "%%%02X" char-int buffer-string] 4])
#@361 Decode PARAMS as a property list of MIME parameter values.
Return value is an association list of MIME parameter values.
If parameter continuation is used, segments of values are concatenated.
If parameters contain charset information, values are decoded.
If parameters contain language information, it is set to `mime-language'
property of the decoded-value.
(defalias 'mime-decode-parameters #[(params) "G\306\245\307\211\203\310\311@\"\203\355 \312\225\313\225V\203\355 @\312\313\225O\227\306\224\2037 \314@\306\224T\306\225O!\2028 \312\315\f	\"A\211@\203S A\202c \316\307\"\307\211E\fB	B\317\224\203\337 \320!\203\277 \310\321\"\203\262 @\312\317\224\307OI\210A\313\224\203\227 \312\313\225O\227\240\210A\306\224\203\351 \322\306\224\306\225O\227!\240\210\202\351 @\312\323!I\210\202\351 \310\324\"\203\322 @I\210\202\351 @\323!I\210\202\351 @\323!I\210,\202\372 @\227A@B\nBAA\211\204 	\203%	@@\325\326\327	@A@\330#\306	@8\317	@8#B\nB	A\211\204\n+\207" [params eparams dest len attribute section 2 nil string-match "^\\([^][()<>@,;:\\\"/?= - *'%]+\\)\\(\\*[0-9]+\\)?\\(\\*\\)?$" 0 1 string-to-int assoc make-vector 3 zerop "^\\([^][()<>@,;:\\\"/?= - *'%]+\\)?'\\([-A-Za-z]+\\)?'\\(\\([^][()<>@,;:\\\"/?= - *'%]\\|%[0-9A-Fa-f][0-9A-Fa-f]\\)+\\)$" intern mime-decode-parameter-encode-segment "^\\(\\([^][()<>@,;:\\\"/?= - *'%]\\|%[0-9A-Fa-f][0-9A-Fa-f]\\)+\\)$" mime-decode-parameter-value mapconcat identity "" eparam value] 7 (#$ . 3374)])
(byte-code "\300\301\302\"\210\303\301\302\"\207" [defalias mime-parse-parameters-from-list mime-decode-parameters make-obsolete] 3)
#@144 Parse TOKENS as MIME parameter values.
Return a property list, which is a list of the form
(PARAMETER-NAME1 VALUE1 PARAMETER-NAME2 VALUE2...).
(defalias 'mime-parse-parameters #[(tokens) "\303\211\n\203p \n@@\304=\203p \n@A\305\230\203p \nA\211\203p \n@@\306=\203p \n@A\nA\211\203p \n@@\304=\203p \n@A\307\230\203p \nA\211\203p \n@@\310>\203p \n@@\311=\203a \312\n@A!\202d \n@A	BB\nA\211\204 	\237*\207" [attribute params tokens nil tspecials ";" mime-token "=" (mime-token quoted-string) quoted-string std11-strip-quoted-pair] 4 (#$ . 5045)])
#@172 Parse FIELD-BODY as a Content-Type field.
FIELD-BODY is a string.
Return value is a mime-content-type object.
If FIELD-BODY is not a valid Content-Type field, return nil.
(defalias 'mime-parse-Content-Type #[(field-body) "\306!\211@@\307=\205P 	@A	A\211@@\310=\205O 	@A\311\230\205O 	A\211\205O 	@@\307=\205O \312\n\227!\312	@A\227!\313\314	A!!\305B\304\fB+BB))\207" [field-body tokens primary-type parameters subtype type mime-lexical-analyze mime-token tspecials "/" intern mime-decode-parameters mime-parse-parameters] 6 (#$ . 5606)])
#@151 Parse field-body of Content-Type field of current-buffer.
Return value is a mime-content-type object.
If Content-Type field is not found, return nil.
(defalias 'mime-read-Content-Type #[nil "\301\302!\211\205 \303!)\207" [field-body std11-field-body "Content-Type" mime-parse-Content-Type] 3 (#$ . 6161)])
#@193 Parse FIELD-BODY as a Content-Disposition field.
FIELD-BODY is a string.
Return value is a mime-content-disposition object.
If FIELD-BODY is not a valid Content-Disposition field, return nil.
(defalias 'mime-parse-Content-Disposition #[(field-body) "\304!\211@@\305=\205  \306	@A\227!\307\310	A!!\303B\n*B)\207" [field-body tokens parameters type mime-lexical-analyze mime-token intern mime-decode-parameters mime-parse-parameters] 5 (#$ . 6477)])
#@172 Parse field-body of Content-Disposition field of current-buffer.
Return value is a mime-content-disposition object.
If Content-Disposition field is not found, return nil.
(defalias 'mime-read-Content-Disposition #[nil "\301\302!\211\205 \303!)\207" [field-body std11-field-body "Content-Disposition" mime-parse-Content-Disposition] 3 (#$ . 6937)])
#@180 Parse FIELD-BODY as a Content-Transfer-Encoding field.
FIELD-BODY is a string.
Return value is a string.
If FIELD-BODY is not a valid Content-Transfer-Encoding field, return nil.
(defalias 'mime-parse-Content-Transfer-Encoding #[(field-body) "\302!\211@@\303=\205 	@A\227)\207" [field-body tokens mime-lexical-analyze mime-token] 3 (#$ . 7295)])
#@159 Parse field-body of Content-Transfer-Encoding field of current-buffer.
Return value is a string.
If Content-Transfer-Encoding field is not found, return nil.
(defalias 'mime-read-Content-Transfer-Encoding #[nil "\301\302!\211\205 \303!)\207" [field-body std11-field-body "Content-Transfer-Encoding" mime-parse-Content-Transfer-Encoding] 3 (#$ . 7651)])
#@59 Parse TOKENS as msg-id of Content-ID or Message-ID field.
(defalias 'mime-parse-msg-id #[(tokens) "\301!@\207" [tokens std11-parse-msg-id] 2 (#$ . 8013)])
#@26 Parse STRING as cid URI.
(defalias 'mime-uri-parse-cid #[(string) "\301\302\303!AA\304\244B!\207" [string mime-parse-msg-id (specials . "<") std11-lexical-analyze ((specials . ">"))] 4 (#$ . 8175)])
(defalias 'mime-parse-message #[(representation-type &optional default-ctl parent node-id) "e\306\211d\306\211b\210\307\310\306\311#\203( \312\225\211	U\203\" 	\202$ T\202, ee\214\f}\210\313\314!\211\205< \315!)\206B )\316\317p\320\321\322\323p\324\f\325\326\n\327	&-\207" [content-type body-end body-start header-end header-start str nil re-search-forward "^$" t 0 std11-fetch-field "Content-Type" mime-parse-Content-Type luna-make-entity :location :content-type :parent :node-id :buffer :header-start :header-end :body-start :body-end default-ctl representation-type parent node-id] 21])
#@81 Parse BUFFER as a MIME message.
If buffer is omitted, it parses current-buffer.
(defalias 'mime-parse-buffer #[(&optional buffer representation-type) "\302\303!\210\212\203\f q\210\304	\206 \305\306\")\207" [buffer representation-type require mmbuffer mime-parse-message mime-buffer-entity nil] 3 (#$ . 8996)])
(provide 'mime-parse)
