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.2 [1/2]
Content-Type: multipart/mixed; boundary="Multipart Tue Nov  9 09:14:11 1993"
Message-ID: <MORIOKA.93Nov9091411@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.2 [1/2]
Content-Transfer-Encoding: 7bit
Organization: Japan Advanced Institute of Science and Technology, Ishikawa,
	Japan
Mime-Version: 1.0
Date: Tue, 9 Nov 1993 14:14:11 GMT
Lines: 399
Xref: galaxy.trc.rwcp.or.jp fj.editor.emacs:4109 fj.mail:1433 fj.sources:2904
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.mail&nb=1433&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 Tue Nov  9 09:14:11 1993
Content-Type: text/plain; charset=ISO-2022-JP

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

  $B:#2s$+$i!"(BISO-2022-JP, Base64 header $B$N(B encoder $B$r@5<0%5%]!<%H$7$^$9!#(B

  $B$^$?!"(Bencode $B$7$J$$(B field $B$r;XDj$G$-$^$9!#(B

  $B$=$7$F!";n83E*$K!"(BSubject: $B$K(B encoded-word $B$,4^$^$l$k>l9g!"$=$l$r(B 
decode $B$7$?7A$N!"(BX-Nsubject: $B$r:n@.$9$k5!G=$rDI2C$7$^$7$?!#(B

$B!J$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$$!K(B

--Multipart Tue Nov  9 09:14:11 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/(B11$B7n(B8$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
$B$=$l$r2~B$$7$F!"(Bunfolding $B5!G=$rIU$12C$(!"(BMule $B$K$*$$$F(B ISO-8859-*
character set $B$d(B Q-encoding $B$KBP1~$7$^$7$?!#(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 Mule $B$K$*$1$k(B decoding

character set:ISO-2022-JP, ISO-8859-1..9
encoding:Base64, Quoted-Printable

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


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

character set:ISO-2022-JP
encoding:Base64

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

2.3 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


$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"))
   (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"))
   (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 tiny-mime patch

  GNUS 3.14.4, GNUS 4.1 $B$H(B mh-e 3.8 $B$KBP$9$k(B patch $B$OMQ0U$7$F$$$^$9!#(B
$B$3$N(B patch $B$G$O!"G_ED$5$s$N(B metamail.el $B$bJ;MQ$7$F!"(BM-t $B$r2!$9$3$H$K$h$C(B
$B$F!"(B

(1) tiny-mime.el $B$K$h$k(B message header $B$@$1$N(B decode

(2) metamail.el $B$K$h$k(B full decode

(0) $B2?$b$7$J$$(B

$B$r@ZBX$($k$3$H$,$G$-$^$9!#(B

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

6.1.1 $B=`Hw(B

  metamail $B$r%$%s%9%H!<%k$7$F$*$/$N$,K>$^$7$$!#(B

  MH $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$9$k!#$^$?!"$=$l0J30$N(B MH $B$N=hM}$O(B Emacs $B$NB&$G<h$j;E@Z$k$N$G!"(B
MH $B$N@_Dj$O$7$J$$$h$&$K$9$k!#(B

6.1.2 patch $B$rEv$F$k(B

6.1.2.1 GNUS $B$N>l9g(B

  GNUS 4.1 $B$b$7$/$O(B 3.14.4 $B$rF~<j$7$F$*$/!#(B

  $B$=$7$F!"$=$l$>$l$N%P!<%8%g%s$KBP1~$7$?(B patch $B$r(B gnus.el $B$KEv$F$k(B
$B!J(BGNUS 4.1 $BMQ$O(B gnus-4.1-MIME.patch-2, GNUS 3.14.4 $BMQ$O(B 
gnus-3.14.4-MIME.patch $B$H$$$&(B file $BL>$G$9!K!#(B

  $B$=$l$,@.8y$9$k$H!"(Bpatch $B$NEv$?$C$?(B gnus.el $B$r(B byte-compile $B$9$k!#(B

6.1.2.2 mh-e 3.8

  mh-e 3.8 $B$rF~<j$9$k!#(Bfile $BL>$,(B mh-e.el $B$K$J$C$F$$$J$1$l$P(B mh-e.el $B$K(B
$BD>$7$F$*$/!#$=$7$F!"(Bpatch$B!J(Bmh-e-3.8-MIME.patch$B!K$r(B mh-e.el $B$KEv$F$k!#(B

  $B$=$l$,@.8y$9$k$H!"(Bpatch $B$NEv$?$C$?(B mh-e.el $B$r(B byte-compile $B$9$k!#(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 Tue Nov  9 09:14:11 1993
Content-Type: text/plain; charset=ISO-2022-JP

$B(.!X7r9/$HH~MF$N$?$a$K?)8e$K0lGU$N9HCc!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 Tue Nov  9 09:14:11 1993--
