tm 5.21
authormorioka <morioka>
Mon, 2 Mar 1998 13:55:52 +0000 (13:55 +0000)
committermorioka <morioka>
Mon, 2 Mar 1998 13:55:52 +0000 (13:55 +0000)
14 files changed:
Makefile
Makefile.19
doc/signature-jp.ol
doc/signature-jp.tex
doc/tm-comp-2.0-jp.pln [new file with mode: 0644]
doc/tm-comp-jp.pln
mime-setup.el
tm-comp.el
tm-ftp.el
tm-latex.el [new file with mode: 0644]
tm-partial.el [new file with mode: 0644]
tm-rich.el
tm-setup.el
tm-view.el

index 680ffa7..6e85f9f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ GOMI    = $(UTILS) *.elc
 FILES  = README.eng Makefile Makefile.18 Makefile.19 *.el *.c methods \
                doc/Makefile doc/*.pln doc/*.ol doc/*.tex doc/*.texi
 
-TARFILE = tm5.18.tar
+TARFILE = tm5.21.tar
 
 all:   $(UTILS) $(DVI)
 
index f4814ae..51a2cd5 100644 (file)
@@ -20,7 +20,7 @@ TMDIR = $(HOME)/lib/emacs19/lisp/tm
 .el.elc:
        $(EMACS) -batch -q . -f batch-byte-compile $<
 
-all:   $(TLELC) tl-orig.elc tl-mule.elc signature.elc \
+all:   $(TLELC) tl-orig.elc tl-mule.elc tl-list.elc signature.elc \
        tiny-mime.elc $(TMELC) tm-orig.elc tm-mule.elc $(TMMELC) \
        tm-mh-e.elc tm-gnus.elc $(TMVELC)
 
@@ -39,31 +39,31 @@ signature.elc:      signature.el
        $(EMACS) -batch -q . -l tl-header.el -f batch-byte-compile $<
 
 tiny-mime.elc: tiny-mime.el
-       $(EMACS) -batch -q . -l tl-header.el -f batch-byte-compile $<
+       $(EMACS) -batch -q . -l tl-header.el -l tl-str.el -f batch-byte-compile $<
 
 $(TMELC):
-       $(EMACS) -batch -q . -l tiny-mime.el -f batch-byte-compile $<
+       $(EMACS) -batch -q . -l tl-str.el -l tl-list.el -l tl-mule.el -l tm-mule.el -l tl-header.el -l tiny-mime.el -f batch-byte-compile $<
 
 tm-orig.elc:   tm-orig.el
        $(ORIG) -batch -q . -l tl-orig.el -f batch-byte-compile $<
 
 tm-mule.elc:   tm-mule.el
-       $(MULE) -batch -q . -l tl-list.el -f batch-byte-compile $<
+       $(MULE) -batch -q . -l tl-str.el -l tl-list.el -l tl-mule.el -f batch-byte-compile $<
 
 $(TMMELC):
-       $(EMACS) -batch -q . -l tiny-mime.el -l tm-misc.el \
+       $(EMACS) -batch -q . -l tl-str.el -l tl-list.el -l tl-mule.el -l tl-header.el -l tm-mule.el -l tiny-mime.el -l tm-misc.el \
                -f batch-byte-compile $<
 
 tm-gnus.elc:   tm-gnus.el
-       $(EMACS) -batch -q . -l tiny-mime.el -l tm-misc.el -l gnus \
+       $(EMACS) -batch -q . -l tl-str.el -l tl-list.el -l tl-header.el -l tl-mule.el -l tm-mule.el -l tiny-mime.el -l tm-misc.el -l gnus \
                -f batch-byte-compile $<
 
 tm-mh-e.elc:   tm-mh-e.el
-       $(EMACS) -batch -q . -l tiny-mime.el -l tm-misc.el -l mh-e \
+       $(EMACS) -batch -q . -l tl-str.el -l tl-list.el -l tl-header.el -l tl-mule.el -l tm-mule.el -l tiny-mime.el -l tm-misc.el -l mh-e \
                -f batch-byte-compile $<
 
 $(TMVELC):
-       $(EMACS) -batch -q . -l tiny-mime.el -l tm-misc.el -l tm-view.el \
+       $(EMACS) -batch -q . -l tl-str.el -l tl-list.el -l tl-header.el -l tl-mule.el -l tm-mule.el -l tiny-mime.el -l tm-misc.el -l tm-view.el \
                -f batch-byte-compile $<
 
 install:       all tl-install tm-install
index 795362b..0941191 100644 (file)
@@ -31,5 +31,5 @@ by. \e$B2,It\e(B \e$B<wCK\e(B
        Insert your signature: ~/.signature-
 
 \e$B$HJ9$$$F$-$^$9$N$G!"@ZBXMQ$KMQ0U$5$l$?%U%!%$%k$N$J$+$+$i!"5a$a$k$b$N$r\e(B
-\e$B%3%s%W%j!<%7%g%s$r;H$C$FMQ0U$KA*Br$9$k$3$H$,$G$-$^$9!#6uJ8;zNs$r\e(B
-\e$BF~NO$9$l$P!"\e(B`signature-file-name' \e$B$G;XDj$5$l$k%U%!%$%k$,FI$_9~$^$l$^$9!#\e(B
+\e$B%3%s%W%j!<%7%g%s$r;H$C$FMF0W$KA*Br$9$k$3$H$,$G$-$^$9!#6uJ8;zNs$rF~NO$9\e(B
+\e$B$l$P!"\e(B`signature-file-name' \e$B$G;XDj$5$l$k%U%!%$%k$,FI$_9~$^$l$^$9!#\e(B
index ed7b800..2c9c3c6 100644 (file)
@@ -51,6 +51,6 @@ signature.el 
 \endlist}
 \par
 ¤Èʹ¤¤¤Æ¤­¤Þ¤¹¤Î¤Ç¡¢ÀÚÂØÍѤËÍÑ°Õ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¤Ê¤«¤«¤é¡¢µá¤á¤ë¤â¤Î¤ò
-¥³¥ó¥×¥ê¡¼¥·¥ç¥ó¤ò»È¤Ã¤ÆÍÑ°Õ¤ËÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¶õʸ»úÎó¤ò
-ÆþÎϤ¹¤ì¤Ð¡¢`signature-file-name' ¤Ç»ØÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤Þ¤ì¤Þ¤¹¡£
+¥³¥ó¥×¥ê¡¼¥·¥ç¥ó¤ò»È¤Ã¤ÆÍưפËÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¶õʸ»úÎó¤òÆþÎϤ¹
+¤ì¤Ð¡¢`signature-file-name' ¤Ç»ØÄꤵ¤ì¤ë¥Õ¥¡¥¤¥ë¤¬Æɤ߹þ¤Þ¤ì¤Þ¤¹¡£
 \end{document}
diff --git a/doc/tm-comp-2.0-jp.pln b/doc/tm-comp-2.0-jp.pln
new file mode 100644 (file)
index 0000000..e5d1457
--- /dev/null
@@ -0,0 +1,62 @@
+\e$B2,It!w5~Bg$G$9!#\e(B
+
+In article <199408221831.DAA24174@melon.jaist.ac.jp>,
+    \e$B<i2,\e(B \e$BCNI'\e(B (MORIOKA Tomohiko) <morioka@jaist.ac.jp> writes:
+
+\e$B<i2,\e(B>   \e$B8=<BF(Hr$7$F!"Bg$-$J\e(B message \e$B$rH/Aw$9$k;~!"<+F0E*$K\e(B message/partial 
+\e$B<i2,\e(B> \e$B7A<0$KJ,3d$7$F$/$l$k$b$N$r=q$-$^$7$?!#\e(B
+
+\e$BJXMx$J$N$G!"$9$3$72~NI\e(B(\e$B2~0-!)\e(B)\e$B$7$F$_$^$7$?!#\e(B
+
+1. mime-mode-exit \e$B$r>r7oIU$-$G8F$V$h$&$K$7!"\e(Bmime-mode \e$B0J30$G$b\e(B
+  \e$B;H$($k$h$&$K$7$?!#\e(B
+
+  \e$B:G6a\e(B mh-e 4.1 \e$B$N\e(B mh-edit-mhn \e$B$b;H$C$F$_$F$$$k$N$G!"\e(Bmime-mode \e$B0J30$G$b\e(B
+  \e$B;H$($k$h$&$K$7$?$H$$$&$N$,F05!$G$9!#6KC<$K8@$($PIaCJ$O\e(B MIME \e$B$rA4A3;H$C$F\e(B
+  \e$B$$$J$$?M$G$b!"<+F0J,3d$K$O;H$($k$H;W$$$^$9!#\e(B
+
+\e$B!t\e(B mh-edit-mhn \e$B$GJQ49$7$?8e\e(B mime/view-mode \e$B$KF~$C$F%W%l%S%e!<$7!"\e(B
+  \e$B$&$^$/$$$C$F$J$+$C$?$i\e(B mh-revert-mhn-edit \e$B$G$d$jD>$9!"$H$$$&\e(B
+  \e$B<j=g$O\e(B mime-mode \e$B$H\e(B metamail-* \e$B$h$j$O2wE,$G$9!#\e(B
+
+2. \e$B%X%C%@$H%\%G%#$N6h@Z$j$,6u9T$N>l9g$K$bBP1~$7$?!#\e(B
+
+    mh-edit-mhn \e$B$N=PNO$O$3$N7A<0$J$N$G!"$d$`$rF@$:$=$&$7$^$7$?!#\e(B
+
+3. mime/draft-file-name \e$B$,\e(B nil \e$B$N$H$-$K;H$&%U%!%$%kL>$r0J2<$N$h$&$K$7$?!#\e(B
+
+       (make-temp-name (expand-file-name "tm-draft" mime/tmp-dir))
+
+4. \e$BJ,3d$7$?%a%C%;!<%8$K$O!"$b$H$N\e(B Subject \e$B$N$&$7$m$K\e(B (1/3) \e$B$J$I$H$D$/\e(B
+  \e$B$h$&$K$7$?!#\e(B
+
+    \e$B6a$$>-Mh!"\e(Bsuper-pipe \e$B$d\e(B gnus-uu \e$B$N$h$&$K!"\e(Bmessage/partial \e$B$N$H$-$O$I\e(B
+  \e$B$l$+$R$H$D$N5-;v$r$_$l$PB>$N$rC5$7$K9T$/5!G=$,\e(B tm-view.el \e$B$K<BAu$5$l$k\e(B
+  \e$B$3$H$r4j$C$F$N$3$H$G$9\e(B ^_^
+
+
+
+\e$B$^$@5$$KF~$i$J$$E@$G$9$,!"\e(B
+
+1. \e$B$b$H$N\e(B(\e$B=q$-$+$1$N\e(B)\e$B%a%C%;!<%8$N%X%C%@$r$=$N$^$^Aw$C$F$7$^$&$N$G!"\e(B
+  \e$BNc$($P\e(B MH \e$B$N>l9g!"\e(BBcc:, Dcc: Fcc: \e$B$J$IK\MhAw$C$?;~$K>C$($k\e(B
+  \e$B$O$:$N$b$N$,FO$$$F$7$^$&\e(B(\e$B$H$/$K\e(B Bcc: \e$B$,8+$($k$N$OLdBj\e(B)\e$B!#\e(B
+  \e$B1#$9%U%#!<%k%I$r;XDj$G$-$k$h$&$K$9$Y$-!#\e(B
+
+2. \e$B@8@.$5$l$k\e(B id \e$B$,D9$C$?$i$7$/$F$+$C$30-$$!#\e(B
+  (\e$BNc$($P\e(B GNUS \e$B$N\e(B message-id \e$B@8@.%k!<%A%s$rE>MQ$7$F$O$I$&$+\e(B)
+
+\e$B$J$I$,$"$j$^$9!#\e(B
+
+\e$B<i2,\e(B>   \e$B$^$?!"\e(Bmessage \e$B$N:GBg9T?t$rJQ?t\e(B mime/message-max-length \e$B$G;XDj$G$-$^\e(B
+\e$B<i2,\e(B> \e$B$9!#$H$j$"$($:!"\e(Bdefault \e$B$G$O\e(B 1000 \e$B9T$K$7$F$"$j$^$9$,!"$3$l$K4X$9$k0lHL\e(B
+\e$B<i2,\e(B> \e$BE*$JCM$O$"$k$s$G$7$g$&$+!)\e(B
+
+\e$B9T?t$h$j$O%P%$%H?t$,Bg;v$J$O$:$G!"$h$/8@$o$l$k$N$O\e(B1\e$BDL$"$?$j\e(B50KB\e$B$rD6$(\e(B
+\e$B$J$$$h$&$K$H$$$&@)Ls$G$9$M\e(B(\e$B$&$A$N%;%s%?!<$NMxMQ$N<j0z$K$b$=$&=q$$$F$"\e(B
+\e$B$j$^$7$?\e(B)\e$B!#5pBg$J%a!<%k$NB?$/$O%P%$%J%j%U%!%$%k$NE>Aw$G!"Cf?H$O\e(B base64 
+\e$B$G0l9T\e(B80\e$B;z<e$K$J$C$F$$$k$H2>Dj$9$k$H!"\e(B600 \e$B9T6/$K$"$?$j$^$9!#$7$+$7\e(B50KB
+\e$B0J>e$N$b$N$ODL$i$J$$$h$&$K$J$C$F$$$k$H$$$&$o$1$G$O$J$/C1$K0BA4$d8zN($r\e(B
+\e$B9M$($F$NCM$G$7$g$&$+$i!"\e(Bsplit \e$B$NI8=`CM$G$b$"$k\e(B 1000 \e$B$GLdBj$J$$$H;W$$$^$9!#\e(B
+-----
+\e$B2,It<wCK!w5~ETBg3XBg7?7W;;5!%;%s%?!<8&5f3+H/It\e(B
index e5d1457..9547318 100644 (file)
@@ -1,62 +1,46 @@
 \e$B2,It!w5~Bg$G$9!#\e(B
 
-In article <199408221831.DAA24174@melon.jaist.ac.jp>,
-    \e$B<i2,\e(B \e$BCNI'\e(B (MORIOKA Tomohiko) <morioka@jaist.ac.jp> writes:
-
-\e$B<i2,\e(B>   \e$B8=<BF(Hr$7$F!"Bg$-$J\e(B message \e$B$rH/Aw$9$k;~!"<+F0E*$K\e(B message/partial 
-\e$B<i2,\e(B> \e$B7A<0$KJ,3d$7$F$/$l$k$b$N$r=q$-$^$7$?!#\e(B
-
-\e$BJXMx$J$N$G!"$9$3$72~NI\e(B(\e$B2~0-!)\e(B)\e$B$7$F$_$^$7$?!#\e(B
-
-1. mime-mode-exit \e$B$r>r7oIU$-$G8F$V$h$&$K$7!"\e(Bmime-mode \e$B0J30$G$b\e(B
-  \e$B;H$($k$h$&$K$7$?!#\e(B
-
-  \e$B:G6a\e(B mh-e 4.1 \e$B$N\e(B mh-edit-mhn \e$B$b;H$C$F$_$F$$$k$N$G!"\e(Bmime-mode \e$B0J30$G$b\e(B
-  \e$B;H$($k$h$&$K$7$?$H$$$&$N$,F05!$G$9!#6KC<$K8@$($PIaCJ$O\e(B MIME \e$B$rA4A3;H$C$F\e(B
-  \e$B$$$J$$?M$G$b!"<+F0J,3d$K$O;H$($k$H;W$$$^$9!#\e(B
-
-\e$B!t\e(B mh-edit-mhn \e$B$GJQ49$7$?8e\e(B mime/view-mode \e$B$KF~$C$F%W%l%S%e!<$7!"\e(B
-  \e$B$&$^$/$$$C$F$J$+$C$?$i\e(B mh-revert-mhn-edit \e$B$G$d$jD>$9!"$H$$$&\e(B
-  \e$B<j=g$O\e(B mime-mode \e$B$H\e(B metamail-* \e$B$h$j$O2wE,$G$9!#\e(B
-
-2. \e$B%X%C%@$H%\%G%#$N6h@Z$j$,6u9T$N>l9g$K$bBP1~$7$?!#\e(B
-
-    mh-edit-mhn \e$B$N=PNO$O$3$N7A<0$J$N$G!"$d$`$rF@$:$=$&$7$^$7$?!#\e(B
-
-3. mime/draft-file-name \e$B$,\e(B nil \e$B$N$H$-$K;H$&%U%!%$%kL>$r0J2<$N$h$&$K$7$?!#\e(B
-
-       (make-temp-name (expand-file-name "tm-draft" mime/tmp-dir))
-
-4. \e$BJ,3d$7$?%a%C%;!<%8$K$O!"$b$H$N\e(B Subject \e$B$N$&$7$m$K\e(B (1/3) \e$B$J$I$H$D$/\e(B
+message/partial \e$B$,4JC1$K\e(B decode \e$B$G$-$k$h$&$K$J$C$?$N$G!"\e(Btm-comp.el
+\e$B$r$$$D$b;H$&$h$&$K$7$h$&$H;W$C$?$N$G$9$,!";H$$$O$8$a$F$_$k$H$$$m$$$m\e(B
+\e$BITK~$,$G$F$-$^$7$?!#\e(B
+
+\e$B!&Aw?.$K<:GT$7$F$b!"$J$K$4$H$b$J$/=*$C$F$7$^$$!"$&$^$/Aw$l$?$+\e(B
+  \e$B$I$&$+3NG'$G$-$J$$\e(B(\e$B%P%C%U%!$b$J$/$J$k\e(B)
+\e$B!&\e(Bmh-letter-mode \e$B$+$i$NAw?.$N>l9g!"\e(Bmh-send-letter \e$B$,K\Mh$b$D\e(B
+  \e$B5!G=$G$"$k!"\e(Bprefix argument \e$B$K$h$k@ZBX$($d!"\e(Bannotate \e$B$N\e(B
+  \e$B5!G=$,;H$($J$/$J$k!#\e(B
+\e$B!&\e(Bnews-reply-mode \e$B$N>l9g!"\e(Bnntp-server \e$B$,\e(B open \e$B$5$l$F$$$J$$$H\e(B
+  \e$B$3$1$k!#$3$l$O\e(B gnus-post-news \e$B$rC1FH$K5/F0$7$?>l9g$d\e(B
+  \e$B=q$$$F$$$k$&$A$K\e(B connection \e$B$,@Z$l$?>l9g$K:$$k!#\e(B
+\e$B!&\e(Bnews-inews-hook \e$B$d\e(B mh-before-send-letter-hook \e$B$b8z$+$J$$!#\e(B
+\e$B!&J,3d8e$N%a%C%;!<%8$N%\%G%#It$N@hF,$K!"J,3dA0$N%a%C%;!<%8$N\e(B
+  \e$B%X%C%@It$,F~$k$,!"$=$3$K\e(B Fcc: \e$B$d\e(B Dcc: \e$B$,8+$($F$+$C$30-$$!#\e(B
+
+\e$B$J$I$NLdBjE@$,$"$j$^$7$?!#$=$3$G$3$l$i$rF'$^$($FBgI}$K2~NI$7$F\e(B
+\e$B$_$^$7$?!#2~NIE@$N$"$i$^$7$O!"\e(B
+
+1\e$B!"J,3d$5$l$J$$%a%C%;!<%8$N>l9g$K$O!"\e(Bmime/message-default-sender-alist
+  \e$B$K=q$+$l$?K\Mh$N4X?t\e(B(mh-letter-mode \e$B$J$i\e(B mh-send-letter)\e$B$,8F$P$l$k$h\e(B
+  \e$B$&$K$7$?\e(B(\e$B$3$l$G\e(B tm-comp \e$B$rI8=`@_Dj$K$$$l$F$7$^$C$F$b$[$\LdBj$J$$$H\e(B
+  \e$B;W$$$^$9\e(B)\e$B!#\e(B
+
+2. \e$BJ,3d$7$?%a%C%;!<%8$r$=$l$>$lAw$kJ}K!\e(B mime/message-sender-alist \e$B$H$O\e(B
+  \e$BJL$K!"J,3dAw?.A0$HJ,3dAw?.8e$K$=$l$>$l0l2s$E$D<B9T$5$l$k\e(B hook \e$B$r\e(B
+  \e$B=q$1$k$h$&$K$7$?!#\e(B
+
+3. mime/message-sender-alist \e$B$KEPO?$9$k\e(B method \e$B$N=i4|CM$H$7$F!"\e(B
+  mh-send-letter \e$B$*$h$S\e(B gnus-inews-news \e$B$G$N5!G=$r$[$\$H$j$3$`\e(B
   \e$B$h$&$K$7$?!#\e(B
 
-    \e$B6a$$>-Mh!"\e(Bsuper-pipe \e$B$d\e(B gnus-uu \e$B$N$h$&$K!"\e(Bmessage/partial \e$B$N$H$-$O$I\e(B
-  \e$B$l$+$R$H$D$N5-;v$r$_$l$PB>$N$rC5$7$K9T$/5!G=$,\e(B tm-view.el \e$B$K<BAu$5$l$k\e(B
-  \e$B$3$H$r4j$C$F$N$3$H$G$9\e(B ^_^
-
-
-
-\e$B$^$@5$$KF~$i$J$$E@$G$9$,!"\e(B
-
-1. \e$B$b$H$N\e(B(\e$B=q$-$+$1$N\e(B)\e$B%a%C%;!<%8$N%X%C%@$r$=$N$^$^Aw$C$F$7$^$&$N$G!"\e(B
-  \e$BNc$($P\e(B MH \e$B$N>l9g!"\e(BBcc:, Dcc: Fcc: \e$B$J$IK\MhAw$C$?;~$K>C$($k\e(B
-  \e$B$O$:$N$b$N$,FO$$$F$7$^$&\e(B(\e$B$H$/$K\e(B Bcc: \e$B$,8+$($k$N$OLdBj\e(B)\e$B!#\e(B
-  \e$B1#$9%U%#!<%k%I$r;XDj$G$-$k$h$&$K$9$Y$-!#\e(B
-
-2. \e$B@8@.$5$l$k\e(B id \e$B$,D9$C$?$i$7$/$F$+$C$30-$$!#\e(B
-  (\e$BNc$($P\e(B GNUS \e$B$N\e(B message-id \e$B@8@.%k!<%A%s$rE>MQ$7$F$O$I$&$+\e(B)
+4. \e$B0l$D$N5-;v$N9T$N@)8B$r\e(B mime/message-default-max-length \e$B$H$7\e(B
+  \e$B$5$i$K!"\e(Bmode \e$B$4$H$N@)8B$b\e(B mime/message-max-length-alist \e$B$K\e(B
+  \e$B=q$1$k$h$&$K$7$?!#\e(B
 
-\e$B$J$I$,$"$j$^$9!#\e(B
+5. MIME \e$B$G=q$$$?5-;v$N\e(B preview \e$B$N$?$a$N4X?t$H$7$F!"\e(B
+  mime/draft-preview \e$B$H$$$&$N$rMQ0U$7$?\e(B(\e$B$3$l$O$*$^$1\e(B)\e$B!#\e(B
 
-\e$B<i2,\e(B>   \e$B$^$?!"\e(Bmessage \e$B$N:GBg9T?t$rJQ?t\e(B mime/message-max-length \e$B$G;XDj$G$-$^\e(B
-\e$B<i2,\e(B> \e$B$9!#$H$j$"$($:!"\e(Bdefault \e$B$G$O\e(B 1000 \e$B9T$K$7$F$"$j$^$9$,!"$3$l$K4X$9$k0lHL\e(B
-\e$B<i2,\e(B> \e$BE*$JCM$O$"$k$s$G$7$g$&$+!)\e(B
+\e$B$J$I$G$9!#%Q%C%A$r$D$/$C$?$i$b$H$h$jBg$-$/$J$C$F$7$^$C$?$N$G!"\e(B
+\e$BA4BN$r$*FO$1$7$^$9!#\e(B
 
-\e$B9T?t$h$j$O%P%$%H?t$,Bg;v$J$O$:$G!"$h$/8@$o$l$k$N$O\e(B1\e$BDL$"$?$j\e(B50KB\e$B$rD6$(\e(B
-\e$B$J$$$h$&$K$H$$$&@)Ls$G$9$M\e(B(\e$B$&$A$N%;%s%?!<$NMxMQ$N<j0z$K$b$=$&=q$$$F$"\e(B
-\e$B$j$^$7$?\e(B)\e$B!#5pBg$J%a!<%k$NB?$/$O%P%$%J%j%U%!%$%k$NE>Aw$G!"Cf?H$O\e(B base64 
-\e$B$G0l9T\e(B80\e$B;z<e$K$J$C$F$$$k$H2>Dj$9$k$H!"\e(B600 \e$B9T6/$K$"$?$j$^$9!#$7$+$7\e(B50KB
-\e$B0J>e$N$b$N$ODL$i$J$$$h$&$K$J$C$F$$$k$H$$$&$o$1$G$O$J$/C1$K0BA4$d8zN($r\e(B
-\e$B9M$($F$NCM$G$7$g$&$+$i!"\e(Bsplit \e$B$NI8=`CM$G$b$"$k\e(B 1000 \e$B$GLdBj$J$$$H;W$$$^$9!#\e(B
------
-\e$B2,It<wCK!w5~ETBg3XBg7?7W;;5!%;%s%?!<8&5f3+H/It\e(B
+\e$B!t\e(B alist \e$B$NCf?H$,D9$/$J$j$9$.$?$N$G$9$,!"JL$N4X?t$H$7$FFHN)$5$;$?\e(B
+  \e$BJ}$,$$$$$G$7$g$&$+!)\e(B
index 068711b..86fc4da 100644 (file)
@@ -1,5 +1,5 @@
 ;;;
-;;; $Id: mime-setup.el,v 5.0 1994/09/26 15:04:55 morioka Exp $
+;;; $Id: mime-setup.el,v 5.1 1994/11/29 16:10:15 morioka Exp $
 ;;;
 
 (provide 'mime-setup)
@@ -76,6 +76,9 @@
         ("richtext"
          ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
          )
+        ("enriched"
+         ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
+         )
         ("x-latex"
          ("x-name")
          ;;("charset" "" "ISO-2022-JP" "US-ASCII" "ISO-8859-1" "ISO-8859-8")
index 39f3c81..f94ff7e 100644 (file)
@@ -1,5 +1,8 @@
 ;;;
-;;; $Id: tm-comp.el,v 2.0 1994/10/17 06:55:56 morioka Exp $
+;;; tm-comp.el
+;;;
+;;; by  MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;;; and   OKABE Yasuo    <okabe@kudpc.kyoto-u.ac.jp>
 ;;;
 
 (provide 'tm-comp)
 (require 'tl-header)
 (require 'mail-utils)
 
-(defvar mime/message-max-length 1000)
+
+;;; @ version
+;;;
+
+(defconst mime/composer-RCS-ID
+  "$Id: tm-comp.el,v 3.2 1994/12/02 05:56:20 morioka Exp $")
+
+(defconst mime/composer-version (get-version-string mime/composer-RCS-ID))
+
+
+;;; @ variables
+;;;
+
+(defvar mime/message-default-max-length 1000)
+
+(defvar mime/message-max-length-alist
+  '((news-reply-mode . 500)))
+
+(defconst mime/message-nuke-headers
+  "\\(^[Cc]ontent-\\|^[Ss]ubject:\\|^[Mm][Ii][Mm][Ee]-[Vv]ersion:\\)")
+(defvar mime/message-blind-headers
+  "\\(^[BDFbdf][Cc][Cc]:\\|^[Cc][Cc]:[ \t]*$\\)")
+
+(defvar mime/message-default-sender-alist
+  '((mail-mode . mail-send-and-exit)
+    (mh-letter-mode . mh-send-letter)
+    (news-reply-mode . gnus-inews-news)))
 
 (defvar mime/message-sender-alist
-  '((mail-mode . sendmail-send-it)
-    (mh-letter-mode . (lambda ()
-                       (write-region (point-min) (point-max)
+  '((mail-mode  . (lambda ()
+                   (interactive)
+                   (sendmail-send-it)
+                   ))
+    (mh-letter-mode . (lambda (&optional arg)
+                       (interactive "P")
+                       (write-region (point-min) (point-max)
                                      mime/draft-file-name)
-                       (call-process
-                        (expand-file-name mh-send-prog mh-progs)
-                        nil nil nil mime/draft-file-name)
-                       ))
-    (news-reply-mode . gnus-inews-article)
+                       (message 
+                         (format "Sending %d/%d..." (+ i 1) total))
+                       (cond (arg
+                              (pop-to-buffer "MH mail delivery")
+                              (erase-buffer)
+                              (mh-exec-cmd-output mh-send-prog t "-watch" "-nopush"
+                                                  "-nodraftfolder" mh-send-args mime/draft-file-name)
+                              (goto-char (point-max))  ; show the interesting part
+                              (recenter -1)
+                              (sit-for 1))
+                             (t
+                              (apply 'mh-exec-cmd-quiet t mh-send-prog 
+                                     (mh-list-to-string
+                                      (list "-nopush" "-nodraftfolder" "-noverbose" "-nowatch" mh-send-args mime/draft-file-name)))))
+                       (message 
+                         (format "Sending %d/%d... done" (+ i 1) total))
+                             ))
+    (news-reply-mode . (lambda ()
+                        (interactive)
+                        (widen)
+                        (goto-char (point-min))
+                        (save-restriction
+                          (narrow-to-region
+                           (point-min)
+                           (progn
+                             (goto-char (point-min))
+                             (search-forward (concat "\n" mail-header-separator "\n"))
+                             (point)))
+                          ;; Mail the message too if To: or Cc: exists.
+                          (if (or (mail-fetch-field "to" nil t)
+                                  (mail-fetch-field "cc" nil t))
+                              (if gnus-mail-send-method
+                                  (progn
+                                    (message
+                                     (format "Sending (%d/%d) via mail..." (+ i 1) total))
+                                    (widen)
+                                    (funcall gnus-mail-send-method)
+                                    (message
+                                     (format "Sending (%d/%d) via mail... done" (+ i 1) total))
+                                (ding)
+                                (message "No mailer defined.  To: and/or Cc: fields ignored.")
+                                (sit-for 1)))))
+                        (message
+                         (format "Posting %d/%d to USENET..." (+ i 1) total))
+                        (if (gnus-inews-article)
+                            (message 
+                             (format "Posting %d/%d to USENET... done" (+ i 1) total))
+                          ;; We cannot signal an error.
+                          (ding)
+                          (message
+                           (format "Article %d/%d rejected: %s" (+ i 1) total (gnus-status-message)))
+                          (sit-for 3))
+                          ))
     ))
+                    
 
 (defvar mime/window-config-alist
   '((mail-mode       . nil)
                         ))
     ))
 
+(defvar mime/news-reply-mode-server-running nil)
+
+(defvar mime/message-before-send-hook-alist
+  '((mh-letter-mode  . mh-before-send-letter-hook))
+    (news-reply-mode . '(lambda ()
+                         (let ((case-fold-search nil))
+                           (or (boundp 'mime/news-reply-mode-server-running)
+                               (make-variable-buffer-local 'mime/news-reply-mode-server-running))
+                           (setq mime/news-reply-mode-server-running (gnus-server-opened))
+                           (save-excursion
+                             (gnus-start-server-process)
+                             (widen)
+                             (goto-char (point-min))
+                             (run-hooks 'news-inews-hook)
+                             (save-restriction
+                               (narrow-to-region
+                                (point-min)
+                                (progn
+                                  (goto-char (point-min))
+                                  (search-forward (concat "\n" mail-header-separator "\n"))
+                                  (point)))
+                               
+                               (goto-char (point-min))
+                               (if (search-forward-regexp "^Newsgroups: +" nil t)
+                                   (save-restriction
+                                     (narrow-to-region
+                                      (point)
+                                      (if (re-search-forward "^[^ \t]" nil 'end)
+                                          (match-beginning 0)
+                                        (point-max)))
+                                     (goto-char (point-min))
+                                     (replace-regexp "\n[ \t]+" " ")
+                                     (goto-char (point-min))
+                                     (replace-regexp "[ \t\n]*,[ \t\n]*\\|[ \t]+" ",")
+                                     ))
+                               ))))
+                    ))
+
+(defvar mime/message-after-send-hook-alist
+  '((mh-letter-mode  . '(lambda ()
+                        (if mh-annotate-char
+                            (mh-annotate-msg mh-sent-from-msg
+                                             mh-sent-from-folder
+                                             mh-annotate-char
+                                             "-component" mh-annotate-field
+                                             "-text"
+                                             (format "\"%s %s\""
+                                                     (mh-get-field "To:")
+                                                     (mh-get-field "Cc:"))))))
+    (news-reply-mode . '(lambda ()
+                         (or mime/news-reply-mode-server-running
+                             (gnus-close-server))
+                         (and (fboundp 'bury-buffer) (bury-buffer))))
+    ))
+
+
+;;; @ functions
+;;;
+
 (defun mime/split-and-send (&optional cmd)
   (interactive)
-  (if (null cmd)
-      (setq cmd (cdr (assq major-mode mime/message-sender-alist)))
-    )
-  (let ((mime/draft-file-name (buffer-file-name))
-       (lines (count-lines (point-min)(point-max)))
-       (separator mail-header-separator)
-       (config (eval (cdr (assq major-mode mime/window-config-alist))))
+  (let ((mime/message-max-length
+        (or (cdr (assq major-mode mime/message-max-length-alist))
+            mime/message-default-max-length))
+       (lines (count-lines (point-min) (point-max)))
        )
-    (if (null mime/draft-file-name)
-       (setq mime/draft-file-name 
-             (make-temp-name (expand-file-name "tm-draft" mime/tmp-dir)))
-      )
-    (if (and (boundp 'mime-mode-flag) mime-mode-flag)
-       (mime-mode-exit))
     (if (<= lines mime/message-max-length)
-       (funcall cmd)
-      (let ((header (message/get-header-string-except
-                    "\\(^[Cc]ontent-\\|^[Ss]ubject:\\)" separator))
-           (subject (mail-fetch-field "subject"))
-           (id (concat "\""
-                       (replace-space-with-underline (current-time-string))
-                       "@" (system-name) "\""))
-           )
-       (goto-char (point-min))
-       (if (re-search-forward (concat "^" (regexp-quote separator) "$")
-                              nil t)
-           (replace-match "")
-         )
-       (let* ((total (+ (/ lines mime/message-max-length)
+       (call-interactively
+        (or cmd (cdr (assq major-mode mime/message-default-sender-alist))))
+      (let* ((mime/draft-file-name 
+             (or (buffer-file-name)
+                 (make-temp-name (expand-file-name "tm-draft" mime/tmp-dir))))
+            (separator mail-header-separator)
+            (config (eval (cdr (assq major-mode mime/window-config-alist))))
+            (id (concat "\""
+                        (replace-space-with-underline (current-time-string))
+                        "@" (system-name) "\"")))
+
+       (let ((hook (eval (cdr (assq major-mode mime/message-before-send-hook-alist)))))
+         (run-hooks 'hook))
+       (let* ((header (message/get-header-string-except
+                     mime/message-nuke-headers separator))
+              (orig-header (message/get-header-string-except
+                            mime/message-blind-headers separator))
+              (subject (mail-fetch-field "subject"))
+              (total (+ (/ lines mime/message-max-length)
                         (if (> (mod lines mime/message-max-length) 0)
                             1)))
-              (i 0)(l mime/message-max-length)
+              (i 0)
+              (l mime/message-max-length)
               (the-buf (current-buffer))
               (buf (get-buffer "*tmp-send*"))
+              (command
+               (or cmd
+                (cdr (assq major-mode mime/message-sender-alist))
+                (cdr (assq major-mode mime/message-default-sender-alist))))
               data)
+         (goto-char (point-min))
+         (if (re-search-forward (concat "^" (regexp-quote separator) "$")
+                                nil t)
+             (replace-match "")
+           )
          (if buf
              (progn
                (switch-to-buffer buf)
          (setq mail-header-separator separator)
          (switch-to-buffer the-buf)
          (goto-char (point-min))
+         (re-search-forward "^$" nil t)
          (while (< i total)
            (setq buf (get-buffer "*tmp-send*"))
-           
            (setq data (buffer-substring
                        (point)
                        (progn
            (insert
             (format "Subject: %s (%d/%d)\n" subject (+ i 1) total))
            (insert
+            (format "Mime-Version: 1.0\n"))
+           (insert
             (format
              "Content-Type: message/partial; id=%s; number=%d; total=%d\n%s\n"
              id (+ i 1) total separator))
+           (if (eq i 0)
+               (insert orig-header))
            (insert data)
-           (funcall cmd)
+           (save-excursion
+             (call-interactively command))
            (erase-buffer)
            (switch-to-buffer the-buf)
            (setq l (+ l mime/message-max-length))
            (setq i (+ i 1))
            )
-         )))
-    (set-buffer-modified-p nil)
-    (kill-buffer (current-buffer))
-    (if config
-       (set-window-configuration config)
-      )
-    ))
+         )
+       (let ((hook (eval (cdr (assq major-mode mime/message-after-send-hook-alist)))))
+         (run-hooks 'hook))
+       (set-buffer-modified-p nil)
+       (cond ((y-or-n-p "Kill draft buffer? ")
+              (kill-buffer (current-buffer))
+              (if config
+                  (set-window-configuration config))))
+       (message "")
+       ))))
+
+(defun mime/mime-mode-exit-and-run ()
+  (interactive)
+  (mime-mode-exit)
+  (call-interactively 'mime/split-and-send))
 
 (add-hook 'mime-mode-hook
          (function
           (lambda ()
             (if (not (fboundp 'default-mime-mode-exit-and-run))
                 (progn
-                  (make-variable-buffer-local 'mime/send-message-method)
                   (fset 'default-mime-mode-exit-and-run
-                        'mime-mode-exit-and-run)
+                        (symbol-function 'mime-mode-exit-and-run))
                   (fset 'mime-mode-exit-and-run
-                        'mime/split-and-send)
+                        'mime/mime-mode-exit-and-run)
                   )))))
 
+(autoload 'mime/viewer-mode "tm-view" nil t)
+
+(defun mime/draft-preview ()
+  (interactive)
+  (goto-char (point-min))
+  (mime/viewer-mode)
+  (pop-to-buffer (current-buffer)))
+
 (defun message/get-header-string-except (pat boundary)
   (save-excursion
     (save-restriction
                 (if (= arg 32)
                     ?_
                   arg)))) str "")
-  )
+  )
\ No newline at end of file
index 9044ed8..6907d13 100644 (file)
--- a/tm-ftp.el
+++ b/tm-ftp.el
@@ -1,9 +1,12 @@
 ;;;
 ;;; tm-ftp: anonymous ftp processor for tm-view
 ;;;
-;;; by MASUTANI Yasuhiro <masutani@me.es.osaka-u.ac.jp> (1994/11/5)
+;;; by MASUTANI Yasuhiro <masutani@me.es.osaka-u.ac.jp> (1994/11/ 5)
 ;;;    
-;;; modified by MORIOKA Tomohiko <morioka@jaist.ac.jp> (1994/11/8)
+;;; modified by MORIOKA Tomohiko <morioka@jaist.ac.jp>  (1994/11/ 8)
+;;;         and OKABE Yasuo <okabe@kudpc.kyoto-u.ac.jp> (1994/11/11)
+;;;
+;;; $Id: tm-ftp.el,v 5.0 1994/11/11 04:45:17 morioka Exp $
 ;;;
 
 (provide 'tm-ftp)
@@ -20,6 +23,7 @@
     (setq pathname
          (concat "/anonymous@" site ":" directory))
     (message (concat "Accessing " pathname "/" name "..."))
+    (switch-to-buffer mime/preview-buffer)
     (dired pathname)
     (goto-char (point-min))
     (search-forward name)
@@ -30,7 +34,3 @@
             ("access-type" . "anon-ftp")
             (method . mime/decode-message/external-ftp)
             ))
-
-          
-
-       
\ No newline at end of file
diff --git a/tm-latex.el b/tm-latex.el
new file mode 100644 (file)
index 0000000..1bdfb28
--- /dev/null
@@ -0,0 +1,48 @@
+;;;
+;;; tm-latex: tm-view internal decoder for tm-view
+;;;
+;;; by OKABE Yasuo <okabe@kudpc.kyoto-u.ac.jp> (1994/11/11)
+;;;
+;;; modified by MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;;;
+;;; $Id: tm-latex.el,v 1.1 1994/11/29 18:20:07 morioka Exp $
+;;;
+
+(provide 'tm-latex)
+
+(defun mime/decode-text/latex (beg end cal)
+  (let* ((cur-buf (current-buffer))
+        new-buf
+        (name (or (cdr (assoc "name" cal))
+                  (cdr (assoc "x-name" cal))
+                  (concat (make-temp-name "tm") ".tex"))))
+    (switch-to-buffer mime/preview-buffer)
+    (find-file (expand-file-name name mime/tmp-dir))
+    (if (or (<= (buffer-size) 0)
+           (y-or-n-p "Replace the existing buffer?"))
+       (progn
+         (erase-buffer)
+         (setq new-buf (current-buffer))
+         (save-excursion
+           (set-buffer cur-buf)
+           (goto-char beg)
+           (re-search-forward "^$")
+           (append-to-buffer new-buf (+ (match-end 0) 1) end)
+           )))
+    ))
+
+(set-atype 'mime/content-decoding-condition
+          '((type . "text/x-latex")
+            (method . mime/decode-text/latex)
+            ))
+
+(set-atype 'mime/content-decoding-condition
+          '((type . "application/x-latex")
+            (method . mime/decode-text/latex)
+            ))
+
+(set-atype 'mime/content-decoding-condition
+          '((type . "application/octet-stream")
+            ("type" . "latex")
+            (method . mime/decode-text/latex)
+            ))
diff --git a/tm-partial.el b/tm-partial.el
new file mode 100644 (file)
index 0000000..805b26c
--- /dev/null
@@ -0,0 +1,163 @@
+;;; 
+;;; tm-partial.el
+;;; 
+;;; Grabbing all MIME "message/partial"s.
+;;; by Yasuo OKABE @ Kyoto University 1994
+;;; modified by MORIOKA Tomohiko
+
+;; original file is 
+;;  gif.el written by Art Mellor @ Cayman Systems, Inc. 1991
+
+(require 'tm-view)
+
+;; This regular expression controls what types of subject lines can be
+;; parsed. Currently handles lines like:
+;;     foo [1/3]
+;;     foo (1/3)
+;;     foo 1/3
+;;     foo [1 of 3]
+;;     foo (1 of 3)
+;;     foo 1 of 3
+;;     foo1 of 3
+
+(defvar mime/gp:subject-start-regexp "[ \t]*\\(v[0-9]+i[0-9]+:[ \t]+\\)?")
+
+(defvar mime/gp:subject-end-regexp "\\([[(]?\\)\\([0-9]+\\)\\(/\\| [oO][fF] \\)\\([0-9]+\\)\\([])]?\\)[ \t]*$")
+
+;; display Article at the cursor in Subject buffer.
+(defun mime/gp:display-article ()
+  (save-excursion   
+    (cond
+     ((eq target 'gnus4)
+      (gnus-summary-display-article (gnus-summary-article-number)))
+     ((eq target 'mh-e)
+      (mh-show))
+     (t
+       (error "Fatal. Unsupported mode")))))
+   
+(defun mime/decode-message/grab-partials (beg end cal)
+  (interactive)
+  (let* ((id (cdr (assoc "id" cal)))
+        (number (cdr (assoc "number" cal)))
+        (total (cdr (assoc "total" cal)))
+        (buffer (generate-new-buffer id))
+        (mother mime/preview-buffer)
+        target
+        subject-buf
+        (article-buf (buffer-name (current-buffer)))
+        (subject-id nil)
+        (part-num 1)
+        (part-missing nil))
+    (cond ((eq major-mode 'gnus-article-mode)
+          (progn
+            (setq subject-buf gnus-summary-buffer)
+            (setq target 'gnus4)))
+         ((eq major-mode 'mh-show-mode)
+          (progn
+            (string-match "^show-\\(.+\\)$" article-buf)
+            (setq subject-buf (substring article-buf (match-beginning 1) (match-end 1)))
+            (setq target 'mh-e)))
+         (t (error "%s is not supported. Sorry." major-mode)))
+    
+    (if (and (eq beg (point-min)) (eq end (point-max)))
+       (save-excursion
+         (goto-char (point-min))
+         (re-search-forward "^$")
+         (let ((delim (match-beginning 0)))
+           (goto-char (point-min))
+           (if (re-search-forward "^[Ss]ubject:.*$" delim t)
+               (let ((tail (match-end 0)))
+                 (beginning-of-line)
+                 (re-search-forward (concat "^[Ss]ubject:" mime/gp:subject-start-regexp) tail t)
+                 (let ((start (point)))
+                   (if (and (re-search-forward mime/gp:subject-end-regexp tail t)
+                            (eq (string-to-int number)
+                                (string-to-int (buffer-substring (match-beginning 2) (match-end 2))))
+                            (eq (string-to-int total)
+                                (string-to-int (buffer-substring (match-beginning 4) (match-end 4)))))
+                       (setq subject-id (buffer-substring start (match-end 1)))
+                     (setq part-missing (string-to-int number)))))
+             (setq part-missing t))))
+      (setq part-missing t))
+
+    ;; if you can't parse the subject line, try simple decoding method
+    (if (or part-missing
+           (not (y-or-n-p "Merge partials?")))
+       (progn
+         (kill-buffer buffer)
+         (mime/decode-message/partial-region beg end cal))
+      (progn 
+       (set-buffer subject-buf)
+       (setq part-missing (mime/gp:part-missing-p subject-id (string-to-int total)))
+       (if part-missing
+           (progn
+             (kill-buffer buffer)
+             (error "Couldn't find part %d" part-missing)))
+       (save-excursion
+         (while (<= part-num (string-to-int total))
+           (goto-char (point-min))
+           (message "Grabbing part %d of %d" part-num (string-to-int total))
+           (re-search-forward
+                     (concat (regexp-quote subject-id) "0*"
+                             (int-to-string part-num)) nil t)
+           (mime/gp:display-article)
+           (save-excursion
+             (set-buffer article-buf)
+             (goto-char (point-min))
+             (re-search-forward "^$")
+             (let ((delimit (point)))
+               (goto-char (point-min))
+               (if (not
+                    (and
+                     (re-search-forward
+                      "^[Cc]ontent-[Tt]ype:[ \t]*message/partial;" delimit t)
+                     (re-search-forward
+                      (concat "[ \t]+id=[ \t]*\""
+                               (regexp-quote id) "\";") delimit)
+                     (re-search-forward
+                      (concat "[ \t]+number=[ \t]*"
+                               (int-to-string part-num) ";") delimit)))
+                   (progn
+                     (kill-buffer buffer)
+                     (error "Couldn't find part %d" part-num)))
+               (append-to-buffer buffer (+ delimit 1) (point-max))))
+           (setq part-num (+ part-num 1))))
+       (mime/gp:display-article)
+       (save-excursion
+         (set-buffer article-buf)
+         (make-variable-buffer-local 'mime/content-list)
+         (setq mime/content-list (mime/parse-contents)))
+       (delete-other-windows)
+       (switch-to-buffer buffer)
+       (goto-char (point-min))
+       (setq major-mode 'mime/show-message-mode)
+       (mime/viewer-mode mother)
+       (pop-to-buffer (current-buffer))
+       ))))
+
+;; Check if all the parts are there
+(defun mime/gp:part-missing-p (subject-string num-parts)
+  (save-excursion
+    (let ((part-num 1)
+         (cant-find nil))
+
+      (while (and (<= part-num num-parts) (not cant-find))
+       (goto-char (point-min))
+       ;; If the parts are numbered 01/10, then chop off the leading 0
+       (if (not (re-search-forward
+                 (concat (regexp-quote subject-id) "0*" 
+                         (int-to-string part-num))
+                 nil t))
+           (setq cant-find part-num)
+         (progn
+           (message "Found part %d of %d." part-num num-parts)
+           (setq part-num (+ part-num 1)))))
+      cant-find)))
+
+
+(set-atype 'mime/content-decoding-condition
+          '((type . "message/partial")
+            (method . mime/decode-message/grab-partials)
+            ))
+
+(provide 'tm-partial)
index e93e36a..5ac2d8b 100644 (file)
@@ -1,5 +1,5 @@
 ;;;
-;;; $Id: tm-rich.el,v 2.2 1994/10/31 07:44:51 morioka Exp morioka $
+;;; $Id: tm-rich.el,v 3.0 1994/11/29 17:59:32 morioka Exp $
 ;;;
 ;;;          by MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 ;;; modified by YAMATE Keiichirou <ics9118@sem1.info.osaka-cu.ac.jp>
@@ -9,9 +9,14 @@
 
 (require 'tm-view)
 
+
+(defvar mime/text/richtext-face-list
+  '("bold" "italic" "fixed" "underline"))
+
 (defvar mime/text/enriched-face-list
   '("bold" "italic" "fixed" "underline"))
 
+
 (cond ((and (>= (string-to-int emacs-version) 19) window-system)
        (require 'hilit19)
        (defun mime/set-face-region (b e face)
                 ))))
        )
       ((and (boundp 'NEMACS) NEMACS)
-       (setq mime/text/enriched-face-list
+       (setq mime/available-face-list
             '("bold" "italic" "underline"))
-       (setq mime/text/enriched-face-attribute-alist
+       (setq mime/available-face-attribute-alist
             '(("bold"      . inversed-region)
               ("italic"    . underlined-region)
               ("underline" . underlined-region)
               ))
        (defun mime/set-face-region (beg end sym)
         (attribute-add-narrow-attribute
-         (cdr (assoc sym mime/text/enriched-face-attribute-alist))
+         (cdr (assoc sym mime/available-face-attribute-alist))
          beg end))
        )
       (t
-       (setq mime/text/enriched-face-list
+       (setq mime/text/richtext-face-list
             nil)
        (defun mime/set-face-region (beg end sym)
         )
        ))
 
-(defun mime/decode-text/enriched-region (beg end)
+
+;;; @ text/richtext
+;;;
+
+(defun mime/decode-text/richtext-region (beg end)
   (interactive "*r")
   (save-excursion
     (save-restriction
@@ -67,7 +76,7 @@
                   )
                 (setq fb (point))
                 )
-               ((member (downcase cmd) mime/text/enriched-face-list)
+               ((member (downcase cmd) mime/text/richtext-face-list)
                 (setq b (point))
                 (save-excursion
                   (save-restriction
          )
        ))))
 
+(defun mime/decode-text/richtext (&optional ctl)
+  (interactive)
+  (save-excursion
+    (save-restriction
+      (let ((beg (point-min)) (end (point-max)))
+       (goto-char (point-min))
+       (if (search-forward "\n\n" nil t)
+           (setq beg (match-end 0))
+         )
+       (mime/decode-text/richtext-region beg end)
+       ))))
+
+
+;;; @ text/enriched
+;;;
+
+(defun mime/decode-text/enriched-region (beg end)
+  (interactive "*r")
+  (save-excursion
+    (save-restriction
+      (narrow-to-region beg end)
+      (while (re-search-forward "[\n]+" nil t)
+       (let ((str (buffer-substring (match-beginning 0)
+                                    (match-end 0))))
+         (if (string= str "\n")
+             (replace-match " ")
+           (replace-match (substring str 1))
+           )))
+      (goto-char beg)
+      (let (cmd str (fb (point)) fe b e)
+       (while (re-search-forward "<\\(<\\|[^<>\n\r \t]+>\\)" nil t)
+         (setq b (match-beginning 0))
+         (setq cmd (buffer-substring b (match-end 0)))
+         (if (string= cmd "<<")
+             (replace-match "<")
+           (replace-match "")
+           (setq cmd (downcase (substring cmd 1 (- (length cmd) 1))))
+           )
+         (cond ((string= cmd "param")
+                (setq b (point))
+                (save-excursion
+                  (save-restriction
+                    (if (search-forward "</param>" nil t)
+                        (progn
+                          (replace-match "")
+                          (setq e (point))
+                          )
+                      (setq e end)
+                      )))
+                (delete-region b e)
+                )
+               ((member cmd mime/text/enriched-face-list)
+                (setq b (point))
+                (save-excursion
+                  (save-restriction
+                    (if (re-search-forward (concat "</" cmd ">") nil t)
+                        (progn
+                          (replace-match "")
+                          (setq e (point))
+                          )
+                      (setq e end)
+                      )))
+                (mime/set-face-region b e cmd)
+                )))
+       (goto-char (point-max))
+       (if (not (eq (preceding-char) ?\n))
+           (insert "\n")
+         )
+       ))))
+
 (defun mime/decode-text/enriched (&optional ctl)
   (interactive)
   (save-excursion
        ))))
 
 
-(set-alist 'mime/content-filter-alist
-          "text/enriched" (function mime/decode-text/enriched))
+;;; @ setting
+;;;
 
 (set-alist 'mime/content-filter-alist
-          "text/richtext" (function mime/decode-text/enriched))
+          "text/richtext" (function mime/decode-text/richtext))
 
+(set-alist 'mime/content-filter-alist
+          "text/enriched" (function mime/decode-text/enriched))
index 73259da..75fe4ca 100644 (file)
@@ -1,10 +1,46 @@
 ;;;
-;;; $Id: tm-setup.el,v 3.0 1994/09/01 05:37:13 morioka Exp $
+;;; $Id: tm-setup.el,v 4.0 1994/12/04 09:35:44 morioka Exp $
 ;;;
 
 (provide 'tm-setup)
 
 
+;;; @ for LaTeX
+;;;
+(add-hook 'tm-view-load-hook
+         (function
+          (lambda ()
+            (set-atype 'mime/content-decoding-condition
+                       '((type . "text/x-latex")
+                         (method . mime/decode-text/latex)
+                         ))
+            (set-atype 'mime/content-decoding-condition
+                       '((type . "application/x-latex")
+                         (method . mime/decode-text/latex)
+                         ))
+            (set-atype 'mime/content-decoding-condition
+                       '((type . "application/octet-stream")
+                         ("type" . "latex")
+                         (method . mime/decode-text/latex)
+                         ))
+            (autoload 'mime/decode-text/latex "tm-latex")
+            )))
+
+
+;;; @ for Anonymous FTP (need of ange-ftp)
+;;;
+(add-hook 'tm-view-load-hook
+         (function
+          (lambda ()
+            (set-atype 'mime/content-decoding-condition
+                       '((type . "message/external-body")
+                         ("access-type" . "anon-ftp")
+                         (method . mime/decode-message/external-ftp)
+                         ))
+            (autoload 'mime/decode-text/latex "tm-ftp")
+            )))
+
+
 ;;; @ for Emacs 18
 ;;;
 (if (< (string-to-int emacs-version) 19)
index 0eb9369..24ca642 100644 (file)
@@ -20,7 +20,7 @@
 ;;;
 
 (defconst mime/viewer-RCS-ID
-  "$Id: tm-view.el,v 5.19 1994/11/08 11:13:12 morioka Exp $")
+  "$Id: tm-view.el,v 5.21 1994/11/21 18:38:48 morioka Exp morioka $")
 
 (defconst mime/viewer-version (get-version-string mime/viewer-RCS-ID))
 
@@ -49,8 +49,8 @@
 ;;(setq mime/content-decoding-condition
   '(((type . "text/plain")
      (method "tm-plain" nil 'file 'type 'encoding 'mode 'name))
-    ((type . "text/x-latex")
-     (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
+    ;;((type . "text/x-latex")
+    ;; (method "tm-latex" nil 'file 'type 'encoding 'mode 'name))
     ((type . "audio/basic")
      (method "tm-au"    nil 'file 'type 'encoding 'mode 'name))
     ((type . "image/gif")
 
 (defvar mime/default-showing-Content-Type-list
 ;;(setq mime/default-showing-Content-Type-list
-  '("text/plain" "text/richtext" "text/enriched" "text/x-latex" nil))
+  '("text/plain" "text/richtext" "text/enriched"
+    "text/x-latex" "application/x-latex"
+    "application/octet-stream" nil))
 
 (defvar mime/go-to-top-node-method-alist
 ;;(setq mime/go-to-top-node-method-alist
          (setq ctl (cdr ctl))
          (setq cal (nconc (list (cons 'type ctype)
                                 (cons 'encoding encoding)
+                                (cons 'major-mode major-mode)
                                 )
                           ctl))
          (if mime/body-decoding-mode