2 @setfilename tm-view-en.info
3 @settitle{tm-view 7.77 Reference Manual (English Version)}
5 @title tm-view 7.77 Reference Manual (English Version)
6 @author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
9 @node Top, Introduction, (dir), (dir)
10 @top tm-view 7.77 Reference Manual (English Version)
14 This file documents tm-view, a MIME Viewer for GNU Emacs.
18 * Introduction:: What is tm-view?
19 * MIME display:: Structure of display in mime/viewer-mode
20 * mime/viewer-mode:: Navigation in mime/viewer-mode
21 * method:: Mechanism of decoding
22 * Two buffers for an article:: raw-article-buffer and preview-buffer
23 * API:: Functions to decode MIME message
29 @node Introduction, MIME display, Top, Top
30 @chapter What is tm-view?
32 The tm-view is a general MIME viewer running on GNU Emacs.@refill
34 tm-view provides the major-mode called @code{mime/viewer-mode}
35 (@ref{mime/viewer-mode}) to read MIME message for MUA. MUA
36 (@ref{(tm-en)MUA}) implementer can use it to add MIME function.@refill
38 tm-view is a user interface kernel to view and navigate MIME message.
39 tm-view drives some programs to navigate each content-type
40 (@ref{(tm-en)content-type})s, they are called
41 @cindex{method}@strong{method} (@ref{method}). tm-view calls some
42 programs to display each contents and headers in preview buffer, they
43 are called @cindex{filter}@strong{filter} (@ref{Two buffers for an
44 article}). Method and filters are tm-view application program. They
45 expand tm-view to treat various kinds of MIME types.
48 @node MIME display, mime/viewer-mode, Introduction, Top
49 @chapter Structure of display in mime/viewer-mode
51 In mime/viewer-mode (@ref{mime/viewer-mode}), following are displayed
52 for each parts:@refill
62 You can change design or stop to display if you specify for each
63 conditions, such as content-types.@refill
68 From: morioka@@jaist.ac.jp (MORIOKA Tomohiko)
70 Newsgroups: zxr.message.mime
71 Date: 22 Oct 93 11:02:44
73 Organization: Japan Advanced Institute of Science and Technology,
77 How to compose MIME message in MIME-Edit mode.
79 Press `C-c C-x ?' then help message will be displayed:
81 C-c C-x C-t insert a text message.
82 C-c C-x TAB insert a (binary) file.
83 C-c C-x C-e insert a reference to external body.
84 C-c C-x C-v insert a voice message.
85 C-c C-x C-y insert a mail or news message.
86 C-c C-x RET insert a mail message.
87 C-c C-x C-s insert a signature file at end.
88 C-c C-x t insert a new MIME tag.
89 C-c C-x a enclose as multipart/alternative.
90 C-c C-x p enclose as multipart/parallel.
91 C-c C-x m enclose as multipart/mixed.
92 C-c C-x d enclose as multipart/digest.
93 C-c C-x s enclose as PGP signed.
94 C-c C-x e enclose as PGP encrypted.
95 C-c C-x C-k insert PGP public key.
96 C-c C-x C-p preview editing MIME message.
99 So press `C-c C-x C-i' and specify file name you want to include.
101 MIME encoding for binary file is normally Base64.
107 In this way, it is finish a message attaching a picture.
109 ======================== A cup of Russian tea ========================
110 ============ * not by jam, not by marmalade, by honey * ============
111 ============ MORIOKA Tomohiko ============
112 =============== Internet E-mail: <morioka@@jaist.ac.jp> ===============
121 * content-separator::
124 @node content-button, content-header, MIME display, MIME display
125 @section content-button
127 content-subject displays abstract for the part. It is placed in top of
130 In default, it is displayed following design:
133 [1.3 test (text/plain)]
137 First number field represents position of a content in the part. It is
138 called @cindex{content-number}@strong{content-number}. It can be
139 considered as the chapter number in the message.@refill
141 Second string part represents title. It is created by following:
145 name paramater or x-name parameter in Content-Type field
146 (@ref{(tm-en)Content-Type field})
148 Content-Description field (@ref{(tm-en)Content-Description field}) or
155 If they are not exists, space is displayed.@refill
157 Third parenthesis part represents content-type/subtype of the part. If
158 it is non-MIME part, @code{nil} is displayed.@refill
160 Content-button is used like icon when content-header
161 (@ref{content-header}) and content-body (@ref{content-body}) are hidden.
169 if you press @kbd{v} key, GIF image is displayed.
171 If mouse operations are available, you can press content-button by mouse
172 button-2 (center button of 3 button-mouse) to play, similarly to press
173 @kbd{v} key. (cf. @ref{mime/viewer-mode}) @refill
175 By the way, it is annoying to display content-button if content-header
176 is displayed. So tm-view provides a mechanism to specify conditions
177 to display content-button.
180 @defvar mime-viewer/content-button-ignored-ctype-list
182 List of content-types.@refill
184 If content-type of a part is a member of this list, its content-button
190 @node content-header, content-body, content-button, MIME display
191 @section content-header
193 A content header displays the header portion of a part in the
194 preview-buffer. However it is annoying to display header for every
195 parts, so tm-view provides a mechanism to specify its condition.@refill
197 When the function @code{mime-viewer/header-visible-p} returns @code{t}
198 for reversed-content-number of a part, content-header is
201 This judge function returns @code{t} when a part is root or content-type
202 of its parent is a member of the variable
203 @code{mime-viewer/childrens-header-showing-Content-Type-list}.@refill
205 If you want to change this condition, please redefine it. Notice that
207 @code{mime-viewer/childrens-header-showing-Content-Type-list}, however
208 if you redefine function @code{mime-viewer/header-visible-p}, it may not
209 work. So if you want to redefine it, it should be refer variable
210 @code{mime-viewer/childrens-header-showing-Content-Type-list}.@refill
212 When content-header is displayed, content-header are formated by the
214 @cindex{content-header-filter}@strong{content-header-filter}.
215 Content-header-filter is searched from variable
216 @code{mime-viewer/content-header-filter-alist}. Its key is major-mode
217 of the raw-article-buffer (@ref{raw-article-buffer}). If not found,
218 function @code{mime-viewer/default-content-header-filter} is
222 @defvar mime-viewer/childrens-header-showing-Content-Type-list
224 List of content-types. If content-type of parent of a part is a member
225 of this variable, its content-header is displayed. Default value is
226 @code{'("message/rfc822" "message/news")}.@refill
228 This variable is referred by the function
229 @code{mime-viewer/header-visible-p}.
234 @defun mime-viewer/header-visible-p rcnum cinfo &optional ctype
236 Returns @code{t} if a part which reversed-content-number is @var{rcnum}
237 in content-info @var{cinfo} is displayed.@refill
239 If you know content-type, you can specify by @var{ctype}.
244 @defvar mime-viewer/content-header-filter-alist
246 Association-list whose key is major-mode of a raw-article-buffer, value
247 is content-header-filter.
252 @defun mime-viewer/default-content-header-filter
254 It is called when content-header-filter is not found in variable
255 @code{mime-viewer/content-header-filter-alist}.@refill
257 It refers @code{mime-viewer/ignored-field-regexp}.
262 @defvar mime-viewer/ignored-field-list
264 List of regular expression to represent invisible fields even if
265 content-header is displayed.@refill
267 Variable @code{mime-viewer/ignored-field-regexp} is created from
270 Please use function @code{tm:add-fields} or @code{tm:delete-fields} to
276 @node content-body, content-separator, content-header, MIME display
277 @section content-body
279 @cindex{content-body}@strong{content-body} represents content of the
282 tm-view does not display raw content body. For example, if a content
283 has binary, it is hidden. If a content has text/enriched, it is
284 formated. Namely content body is hidden or formated.@refill
286 Function @code{mime-viewer/body-visible-p} is a judge function whether
287 content-body of a content is displayed. If it returns @code{nil},
288 content-body is hidden. In default, it returns non-@code{nil} when
289 content-type of a part is a member of variable
290 @code{mime-viewer/default-showing-Content-Type-list}.@refill
292 When content-body of a content is displayed, content-body is formated by
293 @cindex{content-filter}@strong{content-filter}. Content-filter is
294 searched from variable @code{mime-viewer/content-filter-alist}. At this
295 time, major-mode of the raw-article-buffer (@ref{raw-article-buffer}) is
298 If it is not found, function
299 @code{mime-viewer/default-content-filter} is called.
302 @defvar mime-viewer/default-showing-Content-Type-list
304 List of content-type. If content-type of a part is a member of this
305 variable, its body is displayed.
310 @defun mime-viewer/body-visible-p rcnum cinfo &optional ctype
312 Return non-@code{nil}, if content-type of a part is displayed.
313 @var{rcnum} is reversed-content-number of a part. @var{cinfo} is
314 content-info of the message. If you know content-type of a part, you
315 can specify it as argument @var{ctype}.
320 @defvar mime-viewer/content-filter-alist
322 Association-list whose key is major-mode of a raw-article-buffer, value
328 @defun mime-viewer/default-content-filter rcnum cinfo ctype params subj
330 It is called when content-body of a part should be displayed and
331 content-filter is not found in
332 @code{mime-viewer/content-filter-alist}.@refill
334 In default, it does nothing.
339 @node content-separator, , content-body, MIME display
340 @section content-separator
342 @cindex{content-separator}@strong{content-separator} is displayed to
343 represent boundary of contents.@refill
345 Content-separator is displayed by function
346 @code{mime-viewer/default-content-separator}. In default, it displays
347 line-break when content-header and content-body are not
350 If you want to change this condition, please redefine this function.
353 @defun mime-viewer/default-content-separator rcnum cinfo ctype params subj
355 Display content-separator. @var{cnum} is content-number of a content.
356 @var{cinfo} is content-info of the message. @var{ctype} is content-type
357 of a content. @var{params} is Content-Type field parameters of a
358 content. @var{subj} is subject.@refill
360 In default, it displays line-break when content-header and content-body
366 @node mime/viewer-mode, method, MIME display, Top
367 @chapter Navigation in mime/viewer-mode
369 @code{mime/viewer-mode} has following functions:@refill
373 goes to the upper content (returns to the Summary mode if the cursor
374 is sitting on the top content (*1))
377 goes to the previous content
380 goes to the next content
392 goes to the next line
395 goes to the previous line
398 goes to the beginning of message
401 goes to the end of message
404 playbacks a part (*2)
407 extracts a file from a part (*2)
413 displays X-Face in the message
415 @item @key{mouse-button-2}
416 drives mouse button in preview-buffer.
418 For content-button, it playbacks a part (*2)@refill
420 For URL-button, it drives WWW browser@refill
428 (*1) Not return to the Summary mode unless tm-view has been setup using
429 tm-mh-e, tm-vm, gnus-mime, tm-gnus, tm-rmail etc.@refill
431 (*2) Actual playback/extract/print will be performed by a method.
436 @node method, Two buffers for an article, mime/viewer-mode, Top
437 @chapter Mechanism of decoding
439 In @code{mime/viewer-mode}, you can do play (@kbd{v}), extract
440 (@kbd{e}), or print (@kbd{C-c C-p}) for each parts. These operations
441 are called @cindex{decoding operation(s) (for a part)}@strong{decoding
442 operation(s) (for a part)}. And kind of decoding operations are called
443 @cindex{decoding-mode}@strong{decoding-mode}.@refill
445 When decoding operation is driven, tm-view calls a procedure matched for
446 the condition, such as content-type (@ref{(tm-en)content-type}) of the
447 part or its environment. This procedure is called
448 @cindex{method}@strong{method}.@refill
450 There are two kinds of methods. One is Emacs Lisp function, called
451 @cindex{internal method}@strong{internal method}. Another one is
452 external program, called @cindex{external method}@strong{external
455 Internal method operates in Emacs, so it can do carefully.@refill
457 External method is called as asynchronous process, so Emacs does not
458 wait while method is running. So it is good for big data, such as
459 audio, image or video.
463 * decoding-condition:: Setting decoding condition for parts
464 * environment variables:: Environment variables
467 @node decoding-condition, environment variables, method, method
468 @section Setting decoding condition for parts
470 When decoding operation is driven, tm-view calls a method matched for
471 the condition searched from the variable
472 @code{mime/content-decoding-condition}.@refill
474 Variable @code{mime/content-decoding-condition} is defined as a list
475 with the following syntax:@refill
478 (condition_1 condition_2 ...)
481 Each condition are association-list with the following syntax:@refill
484 ((field-type_1 . value_1)
485 (field-type_2 . value_2)
489 For example, if you want to call the external method named tm-plain to
490 decode every text/plain (@ref{(tm-en)text/plain}) type parts, you can
491 define the condition like:@refill
494 ((type . "text/plain")
495 (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
498 This condition definition will match all parts whose content-type
499 (@ref{(tm-en)content-type}) are text/plain. Here is an another
503 ((type . "text/plain")
504 (method "tm-plain" nil 'file 'type 'encoding 'mode 'name)
508 This will match the part whose type is text/plain and the mode is
511 Here is an another example:@refill
514 ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file)
518 This will match all parts which have a mode of play.@refill
520 The conditions defined in a variable
521 @code{mime/content-decoding-condition} are examined from top to
522 bottom. The first matching condition becomes valid and the method
523 specified in that condition definition will be executed.
527 * method value:: Format of method value
528 * Example of decoding-condition::
531 @node method value, Example of decoding-condition, decoding-condition, decoding-condition
532 @subsection Format of method value
534 You can specify the method field of the decoding-condition definition in
535 two different ways,@refill
545 (method STRING FLAG arg1 arg2 ...)
551 When a symbol is specified in the method field, a function whose name is
552 SYMBOL will be called as an internal method.@refill
554 When a list is specified in the method field, it will be called as an
555 external method.@refill
557 The list below shows the meaning of the parameters when the external
558 method is specified in the method field.@refill
562 name of an external method
565 If @code{t}, both the content-header and the content-body
566 are passed to an external method.
568 If @code{nil}, only the content-body is passed to an external
572 list of arguments passed to an external method
576 An argument passed to an external method can be in one of the following
584 value gotten using SYMBOL as a key from decoding-condition
587 value gotten using STRING as a key from decoding-condition
591 @code{'SYMBOL} can be one of the following:@refill
595 name of a file holding the original content
598 content-type/sub-type of Content-Type field
601 field body of Content-Transfer-Encoding field
607 name of a file created by decode operation
612 @code{'STRING} is used to search a parameter of the Content-Type
613 field whose name matches with it, and pass the value of that parameter
614 to the external method.
617 @node Example of decoding-condition, , method value, decoding-condition
618 @subsection Example of decoding-condition
620 Following is an example of decoding-condition:
623 (defvar mime/content-decoding-condition
624 '(((type . "text/plain")
625 (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
626 ((type . "text/x-latex")
627 (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
628 ((type . "audio/basic")
629 (method "tm-au" nil 'file 'type 'encoding 'mode 'name))
630 ((type . "image/gif")
631 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
632 ((type . "image/jpeg")
633 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
634 ((type . "image/tiff")
635 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
636 ((type . "image/x-tiff")
637 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
638 ((type . "image/x-xbm")
639 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
640 ((type . "image/x-pic")
641 (method "tm-image" nil 'file 'type 'encoding 'mode 'name))
642 ((type . "video/mpeg")`
643 (method "tm-mpeg" nil 'file 'type 'encoding 'mode 'name))
644 ((type . "application/octet-stream")
645 (method "tm-file" nil 'file 'type 'encoding 'mode 'name))
646 ((type . "message/partial")
647 (method . mime/decode-message/partial-region))
648 ((method "metamail" t
649 "-m" "tm" "-x" "-d" "-z" "-e" 'file)(mode . "play"))
654 For example, if you want to use metamail to decode any contents,
657 (setq mime/content-decoding-condition
659 ((method "metamail" t "-m" "tm" "-x" "-d" "-z" "-e" 'file))
666 Variable @code{mime/content-decoding-condition} provides you of very
667 flexible way to define the conditions of decoding. It can be simple if
668 you only need the a few decoding methods, while it can be very
669 complicated if you want to use the separate decoding method for each
670 type/mode combination.@refill
672 Following function may be useful to set decoding-condition. It is a
673 function of @file{tl-atype.el}.
676 @defun set-atype symbol alist
678 Add condition @var{alist} to @var{symbol}.
685 (set-atype 'mime/content-decoding-condition
686 '((type . "message/external-body")
687 ("access-type" . "anon-ftp")
688 (method . mime/decode-message/external-ftp)
696 @node environment variables, , decoding-condition, method
697 @section Environment variables
699 Standard methods of tm-view reference some environment variables. You
700 can specify them to customize.
704 Directory for temporary files or extracted files. If it is omitted,
705 @file{/tmp/} is used.
708 Dither for mpeg_play. If it is omitted, `gray' is used.
711 WWW browser name. If it is omitted, `netscape' is used.
717 @node Two buffers for an article, API, method, Top
718 @chapter raw-article-buffer and preview-buffer
720 tm-view managements two buffers, one is for raw message called
721 @cindex{raw-article-buffer}@strong{raw-article-buffer}, another one is
722 to preview for user called
723 @cindex{preview-buffer}@strong{preview-buffer}. major-mode of
724 raw-article-buffer is same as major-mode for article of original MUA,
725 major-mode of preview-buffer is @code{mime/viewer-mode}
726 (@ref{mime/viewer-mode}).@refill
728 When called @code{mime/viewer-mode}, tm-view analyzes
729 raw-article-buffer, and sets its result to the variable
730 @code{mime::article/content-info}.@refill
732 After that, tm-view create a preview-buffer corresponded to the
733 raw-article-buffer. As this time, tm-view modifies header and body of
734 each parts of the message by specified conditions. Filter program for
735 header is called @cindex{header-filter}@strong{header-filter}
736 (@ref{content-header}), filter program for body is called
737 @cindex{content-filter}@strong{content-filter} (@ref{content-body}), and
738 they are called @cindex{filter}@strong{filter}.@refill
740 When preview-buffer is made, buffer local variable of preview-buffer
741 @code{mime::preview/content-list} is made to register structure of
742 preview-buffer. tm-view manages message by
743 @code{mime::article/content-info} in raw-article-buffer and
744 @code{mime::preview/content-list} in preview-buffer.@refill
749 In this document, I call ``content-type'' as content-type/subtype of
756 * raw-article-buffer:: buffer local variables of raw-article-buffer
757 * preview-buffer:: Buffer local variables of preview-buffer
760 @node raw-article-buffer, preview-buffer, Two buffers for an article, Two buffers for an article
761 @section buffer local variables of raw-article-buffer
763 @deffn{Structure} mime::content-info rcnum point-min point-max type parameters encoding children
765 structure to represent MIME content in raw-article-buffer. It is called
766 by @cindex{content-info}@strong{content-info}.@refill
768 Please use reference function @code{mime::content-info/SLOT-NAME} to
769 reference slot of content-info. Their argument is only
772 Following is a list of slots of the structure:
776 ``reversed content-number'' (list)
779 beginning point of region in raw-article-buffer
782 end point of region in raw-article-buffer
785 content-type/sub-type (string or nil)
788 parameter of Content-Type field (association list)
791 Content-Transfer-Encoding (string or nil)
794 parts included in this part (list of content-infos)
798 If a part includes other parts in its contents, such as multipart or
799 message/rfc822, content-infos of other parts are included in
800 @var{children}, so content-info become a tree.
804 @defvar mime::article/content-info
806 result of MIME parsing of raw-article-buffer (content-info)
810 @defvar mime::article/preview-buffer
812 preview-buffer corresponded by this buffer
816 @defun mime-article/point-content-number point &optional cinfo
818 In a region managed by content-info @var{cinfo}, it returns
819 content-number corresponded by @var{point}.@refill
821 If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
826 @defun mime-article/rcnum-to-cinfo rcnum &optional cinfo
828 In a region managed by content-info @var{cinfo}, it returns content-info
829 corresponded by reversed-content-number @var{rcnum}.@refill
831 If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
836 @defun mime-article/cnum-to-cinfo rcnum &optional cinfo
838 In a region managed by content-info @var{cinfo}, it returns content-info
839 corresponded by content-number @var{rcnum}.@refill
841 If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
846 @defun mime/flatten-content-info &optional cinfo
848 It returns flatten list of content-info from content-info @var{cinfo}
851 If @var{cinfo} is omitted, @code{mime::article/content-info} is used as
857 @node preview-buffer, , raw-article-buffer, Two buffers for an article
858 @section Buffer local variables of preview-buffer
860 @defvar mime::preview/mother-buffer
862 Mother buffer of this preview-buffer.
866 @deffn{Structure} mime::preview-content-info point-min point-max buffer content-info
868 structure to represent MIME content in preview-buffer. It is called by
869 @cindex{preview-content-info}@strong{preview-content-info}.@refill
871 Please use reference function
872 @code{mime::preview-content-info/SLOT-NAME} to reference slot of
873 preview-content-info. Their argument is only
874 preview-content-info.@refill
876 Following is a list of slots of the structure:
880 beginning point of region in preview-buffer
883 end point of region in preview-buffer
886 raw-article-buffer corresponding a part
889 content-info corresponding a part
896 @defvar mime::preview/content-list
898 List of preview-content-info to represent structure of this
904 @defvar mime::preview/article-buffer
906 raw-article-buffer corresponded by this preview-buffer.
911 @defvar mime::preview/original-major-mode
913 major-mode of original buffer.
918 @defvar mime::preview/original-window-configuration
920 window-configuration just before made this preview-buffer.
925 @defun mime-preview/point-pcinfo point &optional pcl
927 In a region of preview-buffer managed by preview-content-info @var{pcl},
928 it returns preview-content-info corresponded by @var{point}.@refill
930 If @var{cinfo} is omitted, @code{mime::preview/content-list} is used.
935 @node API, Concept Index, Two buffers for an article, Top
936 @chapter Functions to decode MIME message
938 tm-view provides some available functions to decode and navigate MIME
939 message to each MUA (@ref{(tm-en)MUA})s.@refill
941 There are 2 kinds of functions, one is for MIME preview, another one is
942 to decode RFC 1522 encoded-word (@ref{(tm-en)encoded-word}).
946 * API about MIME preview:: Function to preview MIME message
947 * encoded-word decoding:: encoded-word decoder
950 @node API about MIME preview, encoded-word decoding, API, API
951 @section Function to preview MIME message
954 @deffn{Command} mime/viewer-mode &optional mother ctl encoding ibuf obuf mother-keymap
956 Parse @var{ibuf} as a MIME message, and create preview-buffer into
957 @var{obuf} to display to user, then enter @code{mime/viewer-mode}
958 (@ref{mime/viewer-mode}).@refill
960 If @var{ibuf} is omitted, current buffer is used.@refill
962 @var{mother} is used to specify original raw-article-buffer. It may be
963 useful when a raw-article-buffer is assembled from message/partial
966 @var{ctl} is used to specify Content-Type field
967 (@ref{(tm-en)Content-Type field}) information. Its format is output
968 format of @code{mime/Content-Type}. When @var{ctl} is specified,
969 tm-view uses it instead of Content-Type field of the
970 raw-article-buffer.@refill
972 @var{encoding} is used to specify field-body of
973 Content-Transfer-Encoding field. When is is specified, tm-view uses it
974 instead of Content-Type field of the raw-article-buffer.@refill
976 If @var{mother-keymap} is specified, keymap of @code{mime/viewer-mode}
982 @node encoded-word decoding, , API about MIME preview, API
983 @section encoded-word decoder
985 tm-view has functions to decode RFC 1522 encoded-word
986 (@ref{(tm-en)encoded-word}).
989 @deffn{Command} mime/decode-message-header
991 It decodes encoded-words in message header of current buffer.@refill
993 If an encoded-word is broken or invalid, or it has non supported MIME
994 charset (@ref{(tm-en)MIME charset}), it is not decoded.
999 @deffn{Command} mime-eword/decode-region start end &optional unfolding must-unfold
1001 It decodes encoded-words in region @var{start} to @var{end}.@refill
1003 If an encoded-word is broken or invalid, or it has non supported MIME
1004 charset (@ref{(tm-en)MIME charset}), it is not decoded.@refill
1006 If @var{unfolding} is non-nil, it unfolds folded fields.@refill
1008 If @var{must-fold} is non-nil and decoded result of an encoded-word has
1009 folding or raw CR or LF, it unfolds or delete raw CR or LF.
1014 @defun mime-eword/decode-string string &optional must-unfold
1016 It decodes encoded-words in @var{string} and returns decoded
1019 If an encoded-word is broken or invalid, or it has non supported MIME
1020 charset (@ref{(tm-en)MIME charset}), it is not decoded.@refill
1022 If @var{string} is folded, it unfolds @var{string} before
1025 If @var{must-fold} is non-nil and decoded result of an encoded-word has
1026 folding or raw CR or LF, it unfolds or delete raw CR or LF.
1031 @node Concept Index, Function Index, API, Top
1032 @chapter Concept Index
1036 @node Function Index, Variable Index, Concept Index, Top
1037 @chapter Function Index
1041 @node Variable Index, , Function Index, Top
1042 @chapter Variable Index