Newsgroups: fj.editor.emacs,fj.mail,fj.sources
Path: galaxy.trc.rwcp.or.jp!jaist-news!morioka
From: morioka@jaist.ac.jp (=?ISO-2022-JP?B?GyRCPGkyLBsoQiAbJEJDTkknGyhC?= /
 MORIOKA Tomohiko)
Subject: =?ISO-2022-JP?B?GyRCNEowVxsoQg==?= MIME header encoder/decoder:
 tiny-mime.el version 2.6 [1/5]
Content-Type: multipart/mixed; boundary="Multipart Fri Dec  3 21:10:34 1993"
Message-ID: <MORIOKA.93Dec3211034@is15e0s03.jaist.ac.jp>
Sender: news@jaist.ac.jp (News System Administrator)
X-Nsubject: $B4J0W(B MIME header encoder/decoder: tiny-mime.el version 2.6 [1/5]
Content-Transfer-Encoding: 7bit
Organization: JAIST, Hokuriku; Tatsunokuchi, Ishikawa, Japan /
 =?ISO-2022-JP?B?GyRCS0xOJkBoQzwySjNYNTs9UUJnM1gxIUJnM1gbKEIgGyRCQFAbKEI=?=
 =?ISO-2022-JP?B?GyRCQG44KUc9SH43NEMkOH1ELhsoQg==?=
Mime-Version: 1.0
Date: Fri, 3 Dec 1993 12:10:34 GMT
Lines: 470
Xref: galaxy.trc.rwcp.or.jp fj.editor.emacs:4224 fj.mail:1451 fj.sources:2915
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.mail&nb=1451&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

--Multipart Fri Dec  3 21:10:34 1993
Content-Type: text/plain; charset=ISO-2022-JP

  tiny-mime.el version 2.6 $B$r$*FO$1$7$^$9!#(B

  version 2.4 $B$KBP$9$kJQ99E@$O!"(B

(1) mail-header-separator $B$N;EMMJQ99(B

(2) MIME header $B$K4X78$J$$5!G=$r(B tm-misc.el $B$K0\F0(B

$B$G$9!#(B

  (2) $B$NJQ99$K$h$C$F(B GNUS with tiny-mime patch $B$G$O%(%i!<$,=P$k$b$N$H(B
$B;W$o$l$^$9$N$G!"(Btiny-mime patch $B$rMxMQ$7$?$$>l9g$O(B tm-misc.el $B$b(B load 
$B$7$F2<$5$$!#(B

  $B$?$@!"(Btiny-mime patch $B$O$3$N%Q%C%1%$%8$K4^$^$l$k(B tm-gnus, tm-mh-e $B$K(B
$B0\9T$9$kJ}$,K>$^$7$$$G$9!#(B

  $B$3$N(B message $B$O(B MIME $B$G=hM}$9$k$3$H$K$h$C$F!"<+F0E*$K(B file $B$r<h$j=P(B
$B$;$^$9!#HsBP1~$NJ}$O!"%(%G%#%?!<Ey$G!"@Z$j=P$7$F2<$5$$!#(B

--Multipart Fri Dec  3 21:10:34 1993
Content-Type: application/octet-stream; name="tiny-mime.doc"
Content-Transfer-Encoding: 7bit

$B!X(Btiny-mime.el $B@bL@=q!Y(B
by. $B<i2,(B $BCNI'(B
1993$BG/(B12$B7n(B3$BF|(B

  $B$3$N@bL@=q$O(B plain2 $B$G(B LaTeX $B7A<0$KJQ49$G$-$^$9!#(B


$B#1(B tiny-mime.el $B$H$O(B

  tiny-mime.el $B$O(B Mule, NEmacs, NEpoch $B>e$GF0:n$9$k(B MIME message
header $B$N(B encoder/decoder $B$G$9!#%*%j%8%J%k$O!"@N!"$($J$_(B $B$D$0$H$b(B $B$5$s(B
$B$,(B fj.editor.emacs $B$KEj9F$5$l$?(B MIME message header $B$N(B decoder $B$G$9!#(B

  $B8=:_$G$O!"Ev;~$N$b$N$KHf$Y!"(B

 $B!&(Bdecoding $B;~$K$*$1$k(B unfolding $B5!G=(B
 $B!&(BISO-2022-JP $B$K2C$(!"(BISO-8859-*, US-ASCII $B$N(B decoding
 $B!&(BQ-encoding $B$N(B decoding
 $B!&(BRFC 1522 $B$K4p$E$/(B ISO-2022-JP $BJ8;zNs$N(B Base64 encoding

$B$H$$$C$?5!G=$r;}$C$F$$$^$9!#(B


$B#2(B tiny-mime.el $B$N%5%]!<%H$9$k(B character set, encoding

  tiny-mime.el $B$O!"<!$N(B character set, encoding $B$r%5%]!<%H$7$^$9!#(B

2.1 decoding

  tiny-mime.el $B$O(B Base64 $B$H(B Quoted-Printable $B$N(B decoding $B$r%5%]!<%H$7(B
$B$^$9!#(B

2.1.1 Mule $B$K$*$1$k(B decoding

  ISO-2022-JP, US-ASCII, ISO-8859-1..9 $B$N(B decoding $B$r%5%]!<%H$7$^$9!#(B

2.1.2 NEmacs, NEpoch $B$K$*$1$k(B decoding

  ISO-2022-JP, US-ASCII $B$N(B decoding $B$r%5%]!<%H$7$^$9!#(B

  $B$^$?!"(BISO-8859-*$B$G$"$C$F$b!"(Bencoded-text $B$K4^$^$l$kJ8;zNs$,<B:]$K$O(B 
ASCII $B$GI=$;$kHO0O$J$iI=<($7$^$9!#(B

2.2 encoding

character set:ISO-2022-JP
encoding:Base64

$B$r%5%]!<%H$7$^$9!#(B


$B#3(B tiny-mime.el $B$N4JC1$J;H$$J}(B

3.1 decode

  tiny-mime.el $B$r(B load $B$7$F!"(Bdecode $B$7$?$$(B buffer $B>e$G!"(B

M-x mime/decode-message-header

$B$r<B9T$7$^$9!#(B

  $B$^$?!"(Bdecode $B$7$?$$(B region $B$r(B

M-x mime/decode-region

$B$G(B decode $B$9$k$3$H$,$G$-$^$9!#0zMQ$J$I$G(B body-part $B$K;D$C$?(B 
encoded-word $B$r(B decode $B$9$k$N$KJXMx$G$7$g$&!#(B

3.2 encode

  tiny-mime.el $B$r(B load $B$7$F!"(Bencode $B$7$?$$(B buffer $B>e$G!"(B

M-x mime/encode-message-header

$B$r<B9T$7$^$9!#(B


$B#4(B tiny-mime.el $B$NJQ?t(B

4.1 mime/no-encoding-header-fields

  tiny-mime.el $B$G(B encode $B$7$J$$(B message header $B$N(B field $B$r;XDj$7$^$9!#(B

  default $B$G$O(B X-Nsubject: $B$,;XDj$5$l$F$$$^$9!#(B

$BNc!'(B X-Nsubject: $B$H(B Subject: $B$r(B encode $B$7$J$$$h$&$K$9$k!#(B

[[E
----------------------------------------------------------------------
(setq mime/no-encoding-header-fields '("X-Nsubject" "Subject"))
----------------------------------------------------------------------
]]E

$B!NCm0U!O(B mime.el $B$HJ;MQ$9$k>l9g!"(Btiny-mime.el $B$,(B encode $B$7$J$/$F$b!"(B
mime.el $B$,(B encode $B$9$k$N$G!"(Bmime.el $B$,(B ISO-2022-JP $BJ8;zNs$N(B encode $B$r(B
$B$7$J$$$h$&$K@_Dj$7$^$9!#(B

4.2 mime/use-X-Nsubject

  $B$3$NJQ?t$NCM$,(B t $B$N>l9g!"(Bheader $B$r(B encode $B$9$k;~!"(Bencode $B$7$?7k2L!"(B
Subject: $B$K(B encoded-word $B$,4^$^$l$k>l9g!"(BSubject: $B$r(B decode $B$7$?$b$N$r(B
$BF~$l$?(B X-Nsubject: $B$r:n@.$7$^$9!#(B

  default $B$G$O(B nil $B$,;XDj$5$l$F$$$^$9!#(B

4.3 mail-header-separator

  $B4X?t(B mime/encode-message-header $B$K$*$1$k(B message-header $B$H(B body-part
$B$N6h@Z$j$rI=$9JQ?t$G$9!#Nc$($P!"(BGNUS $B$G$O(B "--text follows this line--" 
$B$,;XDj$5$l$^$9!#(B

$B!NCm0U!O$3$NJQ?t$NJ8;zNs$O!"(Bversion 2.6 $B$h$j@55,I=8=$G$O$J$/$J$j$^$7$?!#(B


$B#5(B mailer, news reader $B$X$NAH$_9~$_(B

  $BF|>oE*$K!"L50U<1$K(B MIME header $B$rK\Mh$N8@8l$G8+$?$$$H$$$&$N$OEvA3$N(B
$BM_5a$G$9!#$=$3$G!"(Btiny-mime.el $B$r(B mailer $B$d(B news reader $B$KAH$_9~$`$H<+(B
$BF0E*$K(B MIME header $B$N(B encoding/decoding $B$,$G$-$^$9!#(B

  $B$^$?!"(Bmetamail $B$r;H$C$F$*$i$l$kJ}$G$b!"IaCJ$O(B message header $B$N(B 
decode $B$@$1$GNI$/$F!"3($d2;$J$I$r:F@8$9$k;~$@$1(B metamail $B$r;H$&$H$$$&(B
$B$h$&$J;H$$J}$b$G$-$^$9!#(B

  $B$3$NL\E*$r<B8=$9$k$K$O!"(Bmailer $B$d(B news reader $B$NE,@Z$J(B hook $B$K(B 
mime/decode-message-header $B$rF~$l$l$PNI$$$G$7$g$&!#$^$?!"J8;zNs$N(B 
decode $B$r$7$?$$>l9g$N$?$a$K!"(B

(mime/decode-string $BJ8;zNs(B)

$B$H$$$&4X?t$bMQ0U$7$F$$$^$9!#(B

  $B0J2<$K!"(Btiny-mime.el $BC1BN$G(B GNUS, mh-e $B$KAH$_9~$`J}K!$r<($7$^$9$,!"(B
$B;d<+?H$,IaCJ;H$C$F$$$kJ}K!$G$O$J$$$N$G!"$&$^$/$$$+$J$$$+$bCN$l$J$$$3$H(B
$B$rCG$C$F$*$-$^$9!#(B

5.1 GNUS

[[E
----------------------------------------------------------------------
(setq gnus-article-prepare-hook 'mime/decode-message-header)
----------------------------------------------------------------------
]]E

$B$r;XDj$9$k$H!"(Bmessage header $B$N(B decode $B$r9T$J$$$^$9!#(B

  $B$^$?!"(BGNUS 3 $B$N>l9g!"(B

[[E
----------------------------------------------------------------------
(setq gnus-Inews-article-hook
      '(lambda ()
 (save-excursion
   (beginning-of-buffer)
   (insert-string
    (format "%s\n%s\n" 
    "Mime-Version: 1.0"
    "Content-Type: text/plain; charset=ISO-2022-JP"))
           (let ((mail-header-separator ""))
     (mime/encode-message-header))
   )))
----------------------------------------------------------------------
]]E

GNUS 4 $B$N>l9g!"(B

[[E
----------------------------------------------------------------------
(setq gnus-inews-article-hook
      '(lambda ()
 (save-excursion
   (beginning-of-buffer)
   (insert-string
    (format "%s\n%s\n" 
    "Mime-Version: 1.0"
    "Content-Type: text/plain; charset=ISO-2022-JP"))
           (let ((mail-header-separator ""))
     (mime/encode-message-header))
   )))
----------------------------------------------------------------------
]]E

$B$r;XDj$9$l$P!"Ej9F$9$k;~!"5-;v$r(B encode $B$7$F$/$l$k$H;W$$$^$9!#(B


5.2 mh-e

[[E
----------------------------------------------------------------------
(defvar mh-show-function nil
  "*Called from mh-show with current FOLDER & MESSAGE")

(or (fboundp 'si:mh-display-msg)
    (fset 'si:mh-display-msg (symbol-function 'mh-display-msg)) )

(defun mh-display-msg (msg-num folder)
  (si:mh-display-msg msg-num folder)
  (and mh-show-function
       (funcall mh-show-function folder msg-num) ))

(setq mh-show-function
      '(lambda (folder msg-num)
(mime/decode-message-header)))
----------------------------------------------------------------------
]]E

$B$r;XDj$9$k$H!"(Bmessage header $B$N(B decode $B$r9T$J$C$F$/$l$k$H;W$$$^$9!#(B

  $B$^$?!"(B

[[E
----------------------------------------------------------------------
(setq mh-before-send-letter-hook
      '(lambda ()
        (save-excursion
          (beginning-of-buffer)
          (insert-string
   (format "%s\n%s\n" 
   "Mime-Version: 1.0"
   "Content-Type: text/plain; charset=ISO-2022-JP"))
  (mime/encode-message-header)
  )))
----------------------------------------------------------------------
]]E

$B$r;XDj$9$l$P!"H/Aw$9$k;~!"(Bmessage $B$r(B encode $B$7$F$/$l$k$H;W$$$^$9!#(B


$B#6(B tm modules

  GNUS, mh-e $B$KBP$9$k(B MIME $BBP1~2=%b%8%e!<%k$G$9!#(B

  $B3F(B MUA $B$KBP1~$9$k%b%8%e!<%k$r(B load $B$9$k$H(B tiny-mime.el $B$K$h$k(B 
message header $B$N(B decoding $B$,%5%]!<%H$5$l!"$^$?!"(Bmetamail $B$*$h$S(B 
metamail.el $B$rJ;MQ$7$F(B MIME message $B$N(B full decoding $B$,9T$J$($^$9!#(B

  $B$3$N%Q%C%1%$%8$rMxMQ$9$k$K$O(B tm-<MUA name>.el $B$H(B tm-misc.el,
tiny-mime.el $B$,I,MW$G$9!#$5$i$K!"(BMIME message $B$N(B full decoding $B$r9T$J(B
$B$&$K$O(B metamail $B$*$h$S(B metamail.el $B$,I,MW$G$9!#(B

6.1 tm-gnus.el

  GNUS $B$KBP$9$k%b%8%e!<%k$G$9!#(B

  $B$3$N%b%8%e!<%k$r(B load $B$9$k$H(B

 (1) summary mode $B$G$N(B Subject: $B$N(B decoding

 (2) mode-line $B$G$N(B Subject: $B$N(B decoding

 (3) article mode $B$G$N(B message header $B$N(B decoding

$B$,%5%]!<%H$5$l$^$9!#(B

  summary mode $B$K(B

M-t : message header $B$N(B decoding $B$r9T$J$&$+$I$&$+$N@ZBX$((B

v   : MIME message $B$N(B full-decoding

$B$,DI2C$5$l$^$9!#(B

6.1.1 $B%$%s%9%H!<%k(B

  load-path $B$G;XDj$5$l$?%G%#%l%/%H%j!<$K(B tm-gnus.el $B$H(B tm-misc.el $B$rF~(B
$B$l$^$9!#(B

  $B$=$l$+$i(B ~/.emacs $B$N(B GNUS $B$N(B hook $B$N@_Dj$r9T$J$C$F$$$kItJ,$h$j8e$K(B

[[E
----------------------------------------------------------------------
(load "tm-gnus")
----------------------------------------------------------------------
]]E

$B$rDI2C$7$^$9!#(B

  MIME message $B$N(B full-decoding $B$r9T$J$&>l9g$O(B metamail $B%Q%C%1%$%8$r%$(B
$B%s%9%H!<%k$7!"(Bload-path $B$G;XDj$5$l$?%G%#%l%/%H%j!<$K(B metamail.el $B$rF~(B
$B$l$F2<$5$$!#(B

6.2 tm-mh-e.el

  mh-e $B$KBP$9$k%b%8%e!<%k$G$9!#(B

  $B$3$N%b%8%e!<%k$r(B load $B$9$k$H(B folder mode $B$K(B

M-t : message header $B$N(B decoding $B$r9T$J$&$+$I$&$+$N@ZBX$((B

v   : MIME message $B$N(B full-decoding

$B$,DI2C$5$l$^$9!#(B

6.2.1 $B%$%s%9%H!<%k(B

  load-path $B$G;XDj$5$l$?%G%#%l%/%H%j!<$K(B tm-mh-e.el $B$H(B tm-misc.el $B$rF~(B
$B$l$^$9!#(B

  $B$=$l$+$i(B ~/.emacs $B$N(B mh-e $B$N(B hook $B$N@_Dj$r9T$J$C$F$$$kItJ,$h$j8e$K(B

[[E
----------------------------------------------------------------------
(load "tm-mh-e")
----------------------------------------------------------------------
]]E

$B$rDI2C$7$^$9!#(B

  MIME message $B$N(B full-decoding $B$r9T$J$&>l9g$O(B metamail $B%Q%C%1%$%8$r%$(B
$B%s%9%H!<%k$7!"(Bload-path $B$G;XDj$5$l$?%G%#%l%/%H%j!<$K(B metamail.el $B$rF~(B
$B$l$F2<$5$$!#(B

  $B$^$?!"(BMH $B$,(B MH-6.8JP2 $B$N>l9g!"(B~/.mh_profile $B$K(B

[[E
----------------------------------------------------------------------
scan:-form scan.mime
inc:-form inc.mime
repl:-form replcomps.mime
showproc: mhl
----------------------------------------------------------------------
]]E

$B$rDI2C$7$F$/$@$5$$!#$^$?!"$=$l0J30$N(B MH $B$N=hM}$O(B Emacs $B$NB&$G<h$j;E@Z(B
$B$k$N$G!"(BMH $B$N@_Dj$O$7$J$$$h$&$K$7$F$/$@$5$$!#(B


$B#7(B mime.el $B$H$NJ;MQ(B

  mime.el $B$HJ;MQ$9$kNc$r<($7$^$9!#$3$NNc$N>l9g!"(BISO-2022-JP $BJ8;zNs$N(B 
encode $B$O(B tiny-mime.el $B$,9T$J$$!"$=$l0J30$NJ8;z=89g$KB0$9$kJ8;zNs$O(B 
mime.el $B$,(B encode $B$7$^$9!#(B

  $B$^$?!"(Btiny-mime.el $B$,(B encode $B$7$J$+$C$?J8;zNs$b(B mime.el $B$,(B encode $B$9(B
$B$k$N$G!"7k2LE*$K!"I,$:A4$F$N(B field $B$,(B encode $B$5$l$k$3$H$KCm0U$7$F2<$5(B
$B$$!#(B

[[E
----------------------------------------------------------------------
;;;
;;; for Edit MIME mode
;;;
(autoload 'mime-mode "mime" "Edit MIME message." t)
(autoload 'mime-convert-buffer "mime" "convert to MIME." t)
(setq mime-mode-hook '(lambda ()
(require 'mh-e)
(define-key (current-local-map)
  "\C-c\C-s" 'mh-insert-signature)
))

;; MIME header $B$N(B encoder $B$r(B tiny-mime $B$N$b$N$r;H$&!#(B
(setq mime-translate-hook 'mime/encode-message-header)

;;;
;;; for GNUS
;;;
(setq news-reply-mode-hook
      '(lambda ()
 (mime-mode)
 ))
(setq gnus-signature-file nil)

;;;
;;; for mh-e
;;;
(setq mh-letter-mode-hook
      '(lambda ()
 (mime/decode-message-header)
 (mime-mode)
 (make-local-variable 'mail-header-separator)
 (setq mail-header-separator "--------")
 ))
----------------------------------------------------------------------
]]E

7.1 $BFCDj$N(B field $B$r(B encode $B$7$?$/$J$$>l9g(B

  $BFCDj$N(B field $B$r(B encode $B$7$?$/$J$$>l9g!"(Btiny-mime.el $B$NJQ?t(B 
mime/no-encoding-header-fields $B$K$h$C$F!"(Btiny-mime.el $B$K$h$k(B encode $B$r(B
$B$d$a$k$3$H$,$G$-$^$9$,!"(Bmime.el $B$,(B encode $B$9$k$N$G$O0UL#$,$"$j$^$;$s!#(B
$B$=$3$G!"<!$N$h$&$K@_Dj$9$k$3$H$G!"(Bmime.el $B$G$b(B encode $B$7$J$$$h$&$K$G$-(B
$B$^$9!#(B

[[E
----------------------------------------------------------------------
(if (boundp 'MULE)
    (progn
      (defun mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP (begin end)
(let ((lclist (find-charset-region begin end)))
  (cond ((null lclist) nil);US-ASCII requres no encoding.
((memq lc-ltn1 lclist)
 '("ISO-8859-1" . "Q"))
((memq lc-ltn2 lclist)
 '("ISO-8859-2" . "Q"))
((memq lc-ltn3 lclist)
 '("ISO-8859-3" . "Q"))
((memq lc-ltn4 lclist)
 '("ISO-8859-4" . "Q"))
((memq lc-crl lclist)
 '("ISO-8859-5" . "Q"))
;;((memq lc-arb lclist)
;; '("ISO-8859-6" . "Q"))
((memq lc-grk lclist)
 '("ISO-8859-7" . "Q"))
((memq lc-hbw lclist)
 '("ISO-8859-8" . "Q"))
((memq lc-ltn5 lclist)
 '("ISO-8859-9" . "Q"))
((memq lc-jp lclist) nil)
(t;Unknown charset.  It must be Mule!
 '("X-ISO-2022-JP-2" . "B"))
)))
      (setq mime-header-charset-chooser
    'mime-header-charset-chooser-for-mule-no-encode-ISO-2022-JP)
      )
  (progn
    (defun mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP (begin end))
    (setq mime-header-charset-chooser
  'mime-header-charset-chooser-for-nemacs-no-encode-ISO-2022-JP)
    ))
----------------------------------------------------------------------
]]E

  $BMW$9$k$K!"(BISO-2022-JP $BJ8;zNs$N(B encode $B$r(B mime.el $B$K$5$;$J$/$9$kLu$G(B
$B$9!#(B


$B#8(B Mule $B$K$*$1$k2~B$(B

  Mule $B$G$O!"(B1 octet $BJ8;z=89g$H$7$F!"$H$j$"$($:!"(BISO-8859 $B%7%j!<%:$r%5(B
$B%]!<%H$7$^$7$?$,!"4X?t(B ``get-leading-character'' $B$K(B MIME $B$K$*$1$kJ8;z(B
$B=89gL>$H!"$=$l$KBP1~$9$k(B Mule $B$N(B leading character $B$r=q$-9~$a$PBP1~$G(B
$B$-$k$O$:$G$9!#(B

  $B$7$+$7$J$,$i!"(B2 octet $B$NJ8;z=89g$N>l9g!"$3$NJ}K!$G$OBP1~$G$-$^$;$s!#(B
--Multipart Fri Dec  3 21:10:34 1993
Content-Type: text/plain; charset=ISO-2022-JP

$B(.!X$o$+$i$s$+$M!)!D$`$m$s!"%8%g!<%/$@$h!Y(,(,(,(,(,(,(,(,(,(,(,(,(,(/(B
$B(-(B                  $B<i2,(B $BCNI'(B (MORIOKA Tomohiko)                    $B(-(B
$B(-!!(B                                    Email: <morioka@jaist.ac.jp>$B(-(B
$B(1(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(,(0(B
--Multipart Fri Dec  3 21:10:34 1993--
