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: tiny-mime.el ver 2.4 =?ISO-2022-JP?B?GyRCIUokNCRhJHMkSiQ1GyhC?=
 =?ISO-2022-JP?B?GyRCJCQbKEIgGyRCJVAhPCU4JWclcyFLGyhC?=
Content-Type: multipart/mixed; boundary="Multipart Fri Nov 12 17:10:59 1993"
Message-ID: <MORIOKA.93Nov12171059@is15e0s03.jaist.ac.jp>
Sender: news@jaist.ac.jp (News System Administrator)
X-Nsubject: tiny-mime.el ver 2.4 $B!J$4$a$s$J$5$$(B $B%P!<%8%g%s!K(B
Content-Transfer-Encoding: 7bit
Organization: Japan Advanced Institute of Science and Technology, Ishikawa,
	Japan
Mime-Version: 1.0
Date: Fri, 12 Nov 1993 22:10:59 GMT
Lines: 609
Xref: galaxy.trc.rwcp.or.jp fj.editor.emacs:4149 fj.mail:1444 fj.sources:2911
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.mail&nb=1444&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 Nov 12 17:10:59 1993
Content-Type: text/plain; charset=ISO-2022-JP

  version 2.2 $B$G$O(B Common Lisp $B$N4X?t(B (caar $B$H(B cadr) $B$r;H$C$F$7$^$C$?(B
$B$?$a$K!"8fLBOG$r$+$1$^$7$?!#(B

  $B$=$N4X?t$O(B phrase-route-address $B$N(B parser $BItJ,$G$7$+;H$C$F$$$J$+$C$?(B
$B$N$G$9$,!"IT9,$K$7$F!"(BMule $B$G%A%'%C%/$7$?;~!"(Baddress-spec + comment $B7A(B
$B<0$N%F%9%H$7$+$7$J$+$C$?$?$a$K!"$=$N%_%9$,H/3P$7$J$+$C$?$N$G$7$?!#(B

  $B!J$@$$$V8O$l$F$-$?$+$i!"$=$m$=$mNI$$$+$J$"$H;W$C$?$N$K$J$"!K(B

  $B$3$N%_%9$K4X$9$k(B patch $B<+BN$OB>$NJ}$,8xI=$7$FD:$$$?$N$G$9$,!"$3$N%_(B
$B%9$N=|5n$K2C$($F!"(B

 $B!&IT@5$J(B Base64 encoded-word $B$KBP$9$k%m%P%9%H@-$N8~>e(B
 $B!&(BNEmacs, NEpoch $B$G$N(B Q-encoding $B$N%5%]!<%H(B
 $B!&(BUS-ASCII $B$N%5%]!<%H!J$G$b!";H$o$J$$$@$m$&$J!K(B
 $B!&(BISO-8859-* $B$,!"<B:]$K$O!"(BASCII $B$7$+4^$s$G$$$J$1$l$P!"(BNEmacs, NEpoch
   $B$G$b(B decoding $B$9$k$h$&$K$7$?!#(B
 $B!&(BQ-encoding $B$N%P%0$N=|5n(B (^_^;
 $B!&(Bencoder $B$N6uGr$N=hM}$K4X$9$kF0:n$N2~NI(B

$B$rIU$12C$($?$b$N$r8xI=$7$^$9!#(B

  $B%_%9$,L5$$$h$&$K$H;W$C$F$O$$$^$9$,!"$^$?!"2?$+IT6q9g$,$"$C$?$i65$($F(B
$B2<$5$$!#(B

  $B0J2<$K!"(Btiny-mime.doc $B$H(B tiny-mime.el $B$N(B version 2.2 $B$KBP$9$k(B patch 
$B$r$D$1$^$9!#Nc$K$h$C$F!"(BMIME $B7A<0$G$D$1$^$9$N$G!"(BMIME body $BBP1~$NJ}$O(B 
MIME $B$G=hM}$7$F2<$5$$!#HsBP1~$NJ}$O!"(Beditor $BEy$G@Z$j=P$7$F2<$5$$!#(B

  $B$G$O!#(B

--Multipart Fri Nov 12 17:10:59 1993
Content-Type: application/octet-stream; name="tiny-mime.doc-2.4-2.2.patch"
Content-Transfer-Encoding: 7bit

*** tiny-mime.docTue Nov  9 09:16:40 1993
--- /home/fs109/morioka/emacs/junk/tiny-mime.docFri Nov 12 16:30:51 1993
***************
*** 1,6 ****
  $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
  
--- 1,6 ----
  $B!X(Btiny-mime.el $B@bL@=q!Y(B
  by. $B<i2,(B $BCNI'(B
! 1993$BG/(B11$B7n(B12$BF|(B
  
    $B$3$N@bL@=q$O(B plain2 $B$G(B LaTeX $B7A<0$KJQ49$G$-$^$9!#(B
  
***************
*** 10,39 ****
    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
--- 10,47 ----
    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
--Multipart Fri Nov 12 17:10:59 1993
Content-Type: application/octet-stream; name="tiny-mime.el-2.4-2.2.patch"
Content-Transfer-Encoding: 7bit

*** tiny-mime.elTue Nov  9 09:22:05 1993
--- /home/fs109/morioka/emacs/junk/tiny-mime.elFri Nov 12 12:56:32 1993
***************
*** 1,5 ****
  ;; 
! ;; $Id: tiny-mime.el,v 2.2 1993/11/08 22:52:40 morioka Exp morioka $
  ;;
  ;;     A MIME style message header decoder/encoder package.
  ;;     Now encoder can encode only ISO-2022-JP string by Base64.
--- 1,5 ----
  ;; 
! ;; $Id: tiny-mime.el,v 2.4 1993/11/12 03:58:23 morioka Exp morioka $
  ;;
  ;;     A MIME style message header decoder/encoder package.
  ;;     Now encoder can encode only ISO-2022-JP string by Base64.
***************
*** 30,35 ****
--- 30,63 ----
  (defconst mime/tspecials "()<>@,;:\\\"/[]?.=")
  (defconst mime/charset-regexp "[A-Za-z0-9!#$%&'*+---^_`{}|~]")
  (defconst mime/encoded-text-regexp "[!->@-~]+")
+ 
+ (defconst mime/Base64-token-regexp "[A-Za-z0-9+/=]")
+ (defconst mime/Base64-encoded-text-regexp
+   (concat "\\("
+       mime/Base64-token-regexp
+       mime/Base64-token-regexp
+       mime/Base64-token-regexp
+       mime/Base64-token-regexp
+       "\\)+"))
+ (defconst mime/Base64-encoding-and-encoded-text-regexp
+   (concat "\\(B\\)\\?" mime/Base64-encoded-text-regexp))
+ 
+ (defconst mime/Quoted-Printable-hex-char "[0123456789ABCDEF]")
+ (defconst mime/Quoted-Printable-encoded-text-regexp
+   (concat "\\([^=?_]\\|="
+       mime/Quoted-Printable-hex-char
+       mime/Quoted-Printable-hex-char
+       "\\)+"))
+ (defconst mime/Quoted-Printable-encoding-and-encoded-text-regexp
+   (concat "\\(Q\\)\\?" mime/Quoted-Printable-encoded-text-regexp))
+ 
+   (defconst mime/encoded-word-regexp
+   (concat "=\\?\\(" mime/charset-regexp
+   "+\\)\\?\\("
+   mime/Base64-encoding-and-encoded-text-regexp
+   "\\|"
+   mime/Quoted-Printable-encoding-and-encoded-text-regexp
+   "\\)\\?="))
  (defconst mime/encoded-word-regexp (concat (regexp-quote "=?")
     "\\("
     mime/charset-regexp
***************
*** 47,52 ****
--- 75,89 ----
        (substring s (match-beginning n) (match-end n))
      (buffer-substring (match-beginning n) (match-end n))))
  
+ (defun mime/encoded-word-charset (str)
+   (mime/nth-string str 1))
+ 
+ (defun mime/encoded-word-encoding (str)
+   (mime/nth-string str 2))
+ 
+ (defun mime/encoded-word-encoded-text (str)
+   (mime/nth-string str 3))
+ 
  (defun mime/rest-of-string (str)
    (if (stringp str)
        (substring str (match-end 0))
***************
*** 82,108 ****
         
         ;; by mol. 1993/10/4
         (defun mime/convert-string-to-emacs (charset str)
!  (if (string= charset "ISO-2022-JP")
!      (code-convert-string str *junet* *internal*)
!    (let ((dest "")
!  (LC (get-leading-character charset))
!  LC-str
!  (len (length str))(i 0) chr chr-str
!  )
!      (if (not (null LC))
!  (progn
!    (setq LC-str (char-to-string LC))
!    (while (< i len)
!      (setq chr (elt str i))
!      (setq chr-str (char-to-string chr))
!      (if (< chr 128)
!  (setq dest (concat dest chr-str))
!        (setq dest (concat dest LC-str chr-str))
!        )
!      (setq i (+ i 1))
!      ))
!        (setq dest str))
!      dest)))
         
         ;; by mol. 1993/11/2
         (defun mime/convert-string-from-emacs (string charset)
--- 119,149 ----
         
         ;; by mol. 1993/10/4
         (defun mime/convert-string-to-emacs (charset str)
!  (cond ((string= charset "ISO-2022-JP")
! (code-convert-string str *junet* *internal*))
!        ((string= charset "US-ASCII")
! str)
!        (t
! (let ((dest "")
!       (LC (get-leading-character charset))
!       LC-str
!       (len (length str))(i 0) chr chr-str
!       )
!   (if (not (null LC))
!       (progn
! (setq LC-str (char-to-string LC))
! (while (< i len)
!   (setq chr (elt str i))
!   (setq chr-str (char-to-string chr))
!   (if (< chr 128)
!       (setq dest (concat dest chr-str))
!     (setq dest (concat dest LC-str chr-str))
!     )
!   (setq i (+ i 1))
!   ))
!     (setq dest str))
!   dest)))
!  )
         
         ;; by mol. 1993/11/2
         (defun mime/convert-string-from-emacs (string charset)
***************
*** 116,123 ****
         (defun mime/decode-encoded-text (charset encoding str)
   (mime/convert-string-to-emacs
    charset
!   (cond ((string= encoding "B") (mime/base64-decode-string str))
! ((string= encoding "Q") (mime/decode-Q-string str))
  (t (message "unknown encoding %s" encoding) str)
  )))
         )
--- 157,164 ----
         (defun mime/decode-encoded-text (charset encoding str)
   (mime/convert-string-to-emacs
    charset
!   (cond ((string-match "^B$" encoding) (mime/base64-decode-string str))
! ((string-match "^Q$" encoding) (mime/Quoted-Printable-decode-string str))
  (t (message "unknown encoding %s" encoding) str)
  )))
         )
***************
*** 155,188 ****
       (convert-string-kanji-code str ic oc)
     str))
         
         ;; by mol. 1993/10/4
         (defun mime/convert-string-to-emacs (charset str)
!  (if (string= charset "ISO-2022-JP")
!      (convert-string-kanji-code str 2 3)
!    str))
         
         ;; by mol. 1993/11/2
         (defun mime/convert-string-from-emacs (string charset)
   (cond ((equal charset "ISO-2022-JP")
! (convert-string-kanji-code string 3 2))
         ((equal charset "US-ASCII") string)
         (t nil)
         ))
         
         ;; by mol. 1993/10/4
         (defun mime/decode-encoded-text (charset encoding str)
!  (mime/convert-string-to-emacs
!   charset
!   (cond ((string= encoding "B") (mime/base64-decode-string str))
! ((string= encoding "Q")
!  (message "Q-encoding is not supported")
!  (concat "=?" charset "?" encoding "?" str "?=")
!  )
! (t
!  (message "unknown encoding %s" encoding)
!  (concat "=?" charset "?" encoding "?" str "?=")
!  ))
!   ))
         )
        (t
         ;; by mol. 1993/9/26
--- 196,247 ----
       (convert-string-kanji-code str ic oc)
     str))
         
+        (defun check-ASCII-string (str)
+  (let ((i 0)
+        len)
+    (setq len (length str))
+    (catch 'label
+      (while (< i len)
+        (if (>= (elt str i) 128)
+    (throw 'label nil))
+        (setq i (+ i 1))
+        )
+      str)))
+        
         ;; by mol. 1993/10/4
         (defun mime/convert-string-to-emacs (charset str)
!  (cond ((string-match "^ISO-2022-JP$" charset)
! (convert-string-kanji-code str 2 3))
!        ((string-match "^US-ASCII$" charset) str)
!        ((string-match "^ISO-8859-[1-9]$" charset)
! (check-ASCII-string str))
!        (t nil)
!        ))
         
         ;; by mol. 1993/11/2
         (defun mime/convert-string-from-emacs (string charset)
   (cond ((equal charset "ISO-2022-JP")
! (code-convert-string string *internal* *junet*))
         ((equal charset "US-ASCII") string)
         (t nil)
         ))
         
         ;; by mol. 1993/10/4
         (defun mime/decode-encoded-text (charset encoding str)
!  (let ((ds (mime/convert-string-to-emacs
!     charset
!     (cond ((string-match "^B$" encoding)
!    (mime/base64-decode-string str))
!   ((string-match "^Q$" encoding)
!    (mime/Quoted-Printable-decode-string str))
!   (t
!    (message "unknown encoding %s" encoding)
!    (concat "=?" charset "?" encoding "?" str "?=")
!    )))))
!    (if ds
!        ds
!      (concat "=?" charset "?" encoding "?" str "?="))
!    ))
         )
        (t
         ;; by mol. 1993/9/26
***************
*** 200,208 ****
  ;; by mol. 1993/10/4
  (defun mime/decode-encoded-word (word)
    (if (string-match mime/encoded-word-regexp word)
!       (let ((charset (mime/nth-string word 1))
!     (encoding (mime/nth-string word 2))
!     (text (mime/nth-string word 3)))
  (mime/decode-encoded-text charset encoding text))
      word))
  
--- 259,267 ----
  ;; by mol. 1993/10/4
  (defun mime/decode-encoded-word (word)
    (if (string-match mime/encoded-word-regexp word)
!       (let ((charset (mime/encoded-word-charset word))
!     (encoding (mime/encoded-word-encoding word))
!     (text (mime/encoded-word-encoded-text word)))
  (mime/decode-encoded-text charset encoding text))
      word))
  
***************
*** 255,283 ****
  ;;; @@ Quoted-Printable (Q-encode) decoder
  ;;;by mol. 1993/10/4
  ;;;
! (defun mime/decode-Q-string (str)
    (let ((dest "")
  (len (length str))
  (i 0) chr num h l)
      (while (< i len)
        (setq chr (elt str i))
!       (if (eq chr ?=)
!   (if (< (+ i 2) len)
!       (progn
! (setq h (hex-char-to-number (elt str (+ i 1))))
! (setq l (hex-char-to-number (elt str (+ i 2))))
! (setq num (+ (* h 16) l))
! (setq dest (concat dest (char-to-string num)))
! (setq i (+ i 3))
! )
!     (progn
!       (setq dest (concat dest (char-to-string chr)))
!       (setq i (+ i 1))
!       ))
! (progn
!   (setq dest (concat dest (char-to-string chr)))
!   (setq i (+ i 1))
!   ))
        )
      dest))
  
--- 314,346 ----
  ;;; @@ Quoted-Printable (Q-encode) decoder
  ;;;by mol. 1993/10/4
  ;;;
! (defun mime/Quoted-Printable-decode-string (str)
    (let ((dest "")
  (len (length str))
  (i 0) chr num h l)
      (while (< i len)
        (setq chr (elt str i))
!       (cond ((eq chr ?=)
!      (if (< (+ i 2) len)
!  (progn
!    (setq h (hex-char-to-number (elt str (+ i 1))))
!    (setq l (hex-char-to-number (elt str (+ i 2))))
!    (setq num (+ (* h 16) l))
!    (setq dest (concat dest (char-to-string num)))
!    (setq i (+ i 3))
!    )
!        (progn
!  (setq dest (concat dest (char-to-string chr)))
!  (setq i (+ i 1))
!  )))
!     ((eq chr ?_)
!      (setq dest (concat dest (char-to-string 32)))
!      (setq i (+ i 1))
!      )
!     (t
!      (setq dest (concat dest (char-to-string chr)))
!      (setq i (+ i 1))
!      ))
        )
      dest))
  
***************
*** 598,612 ****
  ((= c ?=) nil)
  (t (error "not a base64 character %c" c))))
  
- ;;; (and nil
- ;;; (let ((n 0))
- ;;;   (while (< n 64) 
- ;;;     (if (/= n 
- ;;;     (mime/base64-char-to-bit (mime/base64-bit-to-char n)))
- ;;; (error "%d" n))
- ;;;     (setq n (1+ n))))
- ;;; )
- 
  (defun mime/mask (i n) (logand i (1- (ash 1 n))))
  (defun mime/base64-encode-1 (a &optional b &optional c)
    (cons (ash a -2)
--- 661,666 ----
***************
*** 625,642 ****
      (mime/mask (ash c (- 4 6)) 4))
      (if d (cons (logior (ash (mime/mask c 2) 6) d)
  nil))))))
! ;;; (and nil
! ;;; (let ((l '(?\e ?$ ?@)) m n)
! ;;;   (setq m (mapcar (function char-to-string)
! ;;;   (mapcar (function mime/base64-bit-to-char)
! ;;;   (apply (function mime/base64-encode-1) l))))
! ;;;   (setq n (mapcar (function identity)
! ;;;   (apply (function mime/base64-decode-1)
! ;;;  (mapcar (function mime/base64-char-to-bit)
! ;;;  (mapcar (function string-to-char) m)))))
! ;;;   (message "%s %s %s" l m n))
! ;;; )
! 
  ;; (mime/base64-decode-chars ?G ?y ?R ?A)
  (defun mime/base64-decode-chars (a b c d)
    (apply (function mime/base64-decode-1)
--- 679,685 ----
      (mime/mask (ash c (- 4 6)) 4))
      (if d (cons (logior (ash (mime/mask c 2) 6) d)
  nil))))))
! 
  ;; (mime/base64-decode-chars ?G ?y ?R ?A)
  (defun mime/base64-decode-chars (a b c d)
    (apply (function mime/base64-decode-1)
***************
*** 658,669 ****
    (mime/base64-fecth-from (function (lambda (f p) (char-after p)))
    from pos len))
  
- ;;; (and nil
- ;;; (mapcar (function (lambda (x) (if (integerp x) (char-to-string x)
- ;;; x)))
- ;;; (mime/base64-fecth-from-string "hoge" 1 4))
- ;;; )
- 
  (defun mime/base64-fecth-from-string (from pos len)
    (mime/base64-fecth-from (function (lambda (f p)
        (if (< p (length f)) (aref f p))))
--- 701,706 ----
***************
*** 730,741 ****
  phrase ad)
      (if (and p
       (setq ad (mime/parse-addr-spec (substring str p)))
!      (eq (elt (cadr ad) 0) ?>))
  (list (list (substring str 0 (- p 1))
      "<"
!     (caar ad)
      ">")
!       (substring (cadr ad) 1)
        )
        nil)
      ))
--- 767,778 ----
  phrase ad)
      (if (and p
       (setq ad (mime/parse-addr-spec (substring str p)))
!      (eq (elt (nth 1 ad) 0) ?>))
  (list (list (substring str 0 (- p 1))
      "<"
!     (car (car ad))
      ">")
!       (substring (nth 1 ad) 1)
        )
        nil)
      ))
***************
*** 881,886 ****
--- 918,955 ----
       dest)
        )))
  
+ (defun mime/separate-string-by-charset (str)
+   (let ((rl (mime/separate-string-by-chartype str))
+ (i 1) len (pcell nil) cell ncell dpcell (dest nil))
+     (setq len (length rl))
+     (setq dpcell (list (nth 0 rl)))
+     (setq cell (nth 1 rl))
+     (setq ncell (nth 2 rl))
+     (while (< i len)
+       (cond ((and (eq (car (car dpcell)) lc-jp)
+   (eq (car cell) LC-space)
+   (not (eq (car ncell) lc-ascii)))
+      (setq dpcell (list (cons lc-jp (concat (cdr (car dpcell))
+     (cdr cell))
+       )))
+      )
+     ((and (eq (car (car dpcell)) lc-jp)
+   (eq (car cell) lc-jp))
+      (setq dpcell (list (cons lc-jp (concat (cdr (car dpcell))
+     (cdr cell))
+       )))
+      )
+     (t
+      (setq dest (append dest dpcell))
+      (setq dpcell (list cell))
+      ))
+       (setq i (+ i 1))
+       (setq cell ncell)
+       (setq ncell (nth (+ i 1) rl))
+       )
+     (setq dest (append dest dpcell))
+     dest))
+ 
  (defun mime/charset-and-encoding-name (LC)
    (cond ((eq LC lc-ascii) nil)
  ((eq LC lc-jp) (cons "ISO-2022-JP" "B"))
***************
*** 888,894 ****
    )
  
  (defun mime/separate-string-for-encoder (string)
!   (let ((rl (mime/separate-string-by-chartype string))
  (i 0) len cell0 cell1 cell2 (dest nil))
      (setq len (length rl))
      (setq cell0 (nth 0 rl))
--- 957,963 ----
    )
  
  (defun mime/separate-string-for-encoder (string)
!   (let ((rl (mime/separate-string-by-charset string))
  (i 0) len cell0 cell1 cell2 (dest nil))
      (setq len (length rl))
      (setq cell0 (nth 0 rl))
--Multipart Fri Nov 12 17:10:59 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 Fri Nov 12 17:10:59 1993--
