Synchronized with flim-1_14_5.
authorkawabata <kawabata>
Sat, 3 May 2003 17:05:51 +0000 (17:05 +0000)
committerkawabata <kawabata>
Sat, 3 May 2003 17:05:51 +0000 (17:05 +0000)
16 files changed:
ChangeLog
FLIM-ELS
FLIM-MK
Makefile
VERSION
eword-encode.el
ftp.in
luna.el
mime-def.el
mime-en.sgml
mime-en.texi
mime-ja.sgml
mime-ja.texi
mime-parse.el
smtp.el
std11.el

index a6a2d39..f07198b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,73 @@
+2002-12-27  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * FLIM: Version 1.14.5 (Demachiyanagi) released.
+
+2002-11-15  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * smtp.el (smtp-send-buffer): Error if `smtp-server' is nil.
+
+2002-11-15  Yoichi NAKAYAMA  <yoichi@eken.phys.nagoya-u.ac.jp>
+
+       * FLIM-ELS (flim-version-specific-modules): Don't install mailcap.el.
+       * FLIM-MK (install-flim): Avoid creating empty directory.
+
+2002-11-06  Yoichi NAKAYAMA  <yoichi@eken.phys.nagoya-u.ac.jp>
+
+       * mime-parse.el (mime-parse-buffer): Require mmbuffer.
+
+2002-09-26  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+       * luna.el (luna-define-method): Clear method cache of child
+       classes.
+
+2002-09-24  TSUCHIYA Masatoshi  <tsuchiya@namazu.org>
+
+       * mime-ja.texi (CVS): Escape @.
+
+       * luna.el (luna-define-method): Fix the bug that method cache is
+       not cleard.
+
+2002-09-14  KOSEKI Yoshinori  <kose@meadowy.org>
+
+       * mime-en.texi (CVS): Fix Typo. (@ to @@).
+       mime-ja.texi (CVS): Ditto.
+
+2002-08-26  MORIOKA Tomohiko  <tomo@mousai.as.wakwak.ne.jp>
+
+       * std11.el: Update Copyright header.
+
+2002-07-30  MORIOKA Tomohiko  <tomo@mousai.as.wakwak.ne.jp>
+
+       * std11.el (std11-non-atom-regexp): New constant.
+       (std11-analyze-atom): New implementation to avoid error in current
+       XEmacs UTF-2000 [may be caused by a bug about regexp].
+
+2002-07-26  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * smtp.el (smtp-open-connection-function): Add doc.
+       (smtp-end-of-line): Doc fix.
+
+2002-07-24  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * smtp.el (smtp-end-of-line): New variable.
+       (smtp-read-response): Use it.
+       (smtp-send-command): Use it.
+       (smtp-send-data): Use it.
+
+\f
 2002-06-03  KAWABATA, Taichi  <batta@beige.ocn.ne.jp>
 
        * FLIM-rfc2231-encoder: merged with FLIM Version 1.14.4.
 
+2002-06-03  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
+
+       * FLIM: Version 1.14.4 (Kashiharajing\e.D\8eþ-mae) released.
+
 2002-06-02  Shuhei KOBAYASHI  <shuhei@aqua.ocn.ne.jp>
 
        * eword-encode.el (mime-header-encode-method-alist):
        Added encoder for Content-Type.
-       
+
        * mime-def.el (mime-attribute-char-regexp): Arranged.
 
        * mime-parse.el (mime-decode-parameter-value): Comment fix.
 2002-05-20  KAWABATA, Taichi  <batta@beige.ocn.ne.jp>
 
        MIME Parameter Value encoder support.
-       
+
        * eword-encode.el: Require 'mime-parse.
        (eword-encode-Content-Disposition-field-body): New function.
        (mime-header-encode-method-alist): Use it.
-       
+
        * mime-def.el (mime-non-attribute-char-regexp): New variable.
 
        * mime-parse.el (mime-divide-extended-parameter): New function.
        (mime-encode-parameters): Likewise.
 
 \f
-2002-06-03  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
-
-       * FLIM: Version 1.14.4 (Kashiharajing\e-Dþ-mae) released.\e-A
-
 2002-01-16  Hiroya Murata     <lapis-lazuli@pop06.odn.ne.jp>
 
        * luna.el (luna-class-find-member): Don't search parents'
        (mime-encode-field-body): Use `mime-header-encode-method-alist'.
        (mime-encode-header-in-buffer): Error if cannot encode.
 
+2001-11-19  Kenichi OKADA  <okada@opaopa.org>
+
+       * smtp.el (smtp-find-server): Fix.
+
+2001-11-18  Kenichi OKADA  <okada@opaopa.org>
+
+       * smtp.el (smtp-send-by-myself): Fix.
+
+2001-11-18  Kenichi OKADA  <okada@opaopa.org>
+
+       * smtp.el (smtp-send-by-myself): New variable.
+       (smtp-use-starttls-ignore-error): New variable.
+       (smtp-find-mx): New function.
+       (smtp-dig): New function.
+       (smtp-find-server): New function.
+       (smtp-send-buffer-by-myself): New funcion.
+       (smtp-send-buffer): Change for `smtp-send-buffer-by-myself'.
+
 2001-11-03  Shuhei KOBAYASHI  <shuhei@aqua.ocn.ne.jp>
 
        * hmac-md5.el: Removed kludge for Emacs 21 prerelease versions.
 
+2001-09-21  Kenichi OKADA  <okada@opaopa.org>
+
+       * smtp.el(smtp-submit-package): Check extensions for starttls.
+
 2001-07-16  Katsumi Yamaoka   <yamaoka@jpl.org>
 
        * smtpmail.el (smtpmail-send-it): Work even if the first line of
 \f
 2001-06-01  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
 
-       * FLIM: Version 1.14.3 (Unebigory\e-Dòmae) released.\e-A
+       * FLIM: Version 1.14.3 (Unebigory\8eòmae) released.
 
 2001-06-01  Katsumi Yamaoka   <yamaoka@jpl.org>
 
 2001-02-27  Shuhei KOBAYASHI  <shuhei@aqua.ocn.ne.jp>
 
        MIME Parameter Value decoder support.
-       
+
        * mime-def.el (std11-quoted-pair-regexp, std11-non-qtext-char-list,
        std11-qtext-regexp, std11-quoted-string-regexp): Removed.
        (mime-media-type/subtype-regexp): Ditto.
        mime-parse-Content-Transfer-Encoding): New implementation.
        (mime-read-Content-Type, mime-read-Content-Disposition,
        mime-read-Content-Transfer-Encoding): Ditto.
-       
+
 2001-02-26  Shuhei KOBAYASHI  <shuhei@aqua.ocn.ne.jp>
 
        * hmac-md5.el, hmac-sha1.el: Modify comments.
        * qmtp.el (qmtp-open-connection-function): Revert initial value to
        `open-network-stream'.
        (qmtp-send-buffer): Use `binary-funcall'.
-       
+
 2000-12-23  OKAZAKI Tetsurou  <okazaki@be.to>
 
        * FLIM-ELS (flim-modules): Delete `mmdbuffer'.
        * mmbuffer.el (mime-write-entity-body): Use `binary-write-region'
        instead of `write-region-as-binary'.
        (mime-write-entity): Don't use `write-region-as-raw-text-CRLF'.
-       
+
        * mime-def.el: Don't require `poem'.
        (binary-insert-file-contents): New function.
        (binary-write-region): New function.
 
 2000-12-04   Daiki Ueno  <ueno@unixuser.org>
 
-        * smtpmail.el (smtpmail-send-it): Use `smtp-send-buffer' instead of
-        `smtp-via-smtp'.
-        (smtpmail-send-queued-mail): Ditto.
+       * smtpmail.el (smtpmail-send-it): Use `smtp-send-buffer' instead of
+       `smtp-via-smtp'.
+       (smtpmail-send-queued-mail): Ditto.
 
 2000-11-24  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
 
 \f
 2000-07-12  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
 
-       * FLIM-Chao: Version 1.14.1 (Rokujiz\e-Dò) released.\e-A
+       * FLIM-Chao: Version 1.14.1 (Rokujiz\8eò) released.
 
 2000-07-10  MORIOKA Tomohiko  <tomo@kanji.zinbun.kyoto-u.ac.jp>
 
 
 2000-05-25  Tanaka Akira      <akr@m17n.org>
 
-        * mime-en.sgml, mime-ja.sgml: Update for CVS via SSH.
-       
+       * mime-en.sgml, mime-ja.sgml: Update for CVS via SSH.
+
 2000-05-09  Katsumi Yamaoka   <yamaoka@jpl.org>
 
        * smtp.el (smtp-deduce-address-list): Set `case-fold-search' to `t'
 \f
 1999-05-31  MORIOKA Tomohiko  <tomo@m17n.org>
 
-       * FLIM: Version 1.12.7 (Y\e-Dþzaki) released.\e-A
+       * FLIM: Version 1.12.7 (Y\8eþzaki) released.
 
 1999-05-31  MORIOKA Tomohiko  <tomo@m17n.org>
 
 \f
 1999-05-11  MORIOKA Tomohiko  <tomo@m17n.org>
 
-       * FLIM: Version 1.12.6 (Family-K\e-Dòenmae) released.\e-A
+       * FLIM: Version 1.12.6 (Family-K\8eòenmae) released.
 
 1999-04-27  Shuhei KOBAYASHI  <shuhei@aqua.ocn.ne.jp>
 
 \f
 1999-01-23  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.12.3 (Kintetsu-K\e-Dòriyama) released.\e-A
+       * FLIM: Version 1.12.3 (Kintetsu-K\8eòriyama) released.
 
 1999-01-23  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
 \f
 1999-01-21  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.12.2 (Kuj\e-Dò) released.\e-A
+       * FLIM: Version 1.12.2 (Kuj\8eò) released.
 
 1999-01-16  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
 \f
 1998-12-02  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.12.1 (Nishinoky\e-Dò) released.\e-A
+       * FLIM: Version 1.12.1 (Nishinoky\8eò) released.
 
 1998-11-30  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
 \f
 1998-10-26  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.11.2 (Heij\e-Dò) was released.\e-A
+       * FLIM: Version 1.11.2 (Heij\8eò) was released.
 
        * NEWS (Abolish variable `mime-temp-directory'): New subsection.
 
 \f
 1998-10-12  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.10.4 (Shin-H\e-Dòsono) was released.\e-A
+       * FLIM: Version 1.10.4 (Shin-H\8eòsono) was released.
 
 1998-10-12  Katsumi Yamaoka   <yamaoka@jpl.org>
 
 \f
 1998-09-29  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.10.0 (K\e-Dòdo) was released.\e-A
+       * FLIM: Version 1.10.0 (K\8eòdo) was released.
 
        * README.en (What's FLIM): Add mel-ccl.el.
 
 \f
 1998-08-31  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.9.1 (Tonosh\e-Dò) was released.\e-A
+       * FLIM: Version 1.9.1 (Tonosh\8eò) was released.
 
        * mime-en.sgml (mm-backend): Translate a little.
 
 \f
 1998-07-07  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM-Chao: Version 1.8.0 (Shij\e-Dò) was released.\e-A
+       * FLIM-Chao: Version 1.8.0 (Shij\8eò) was released.
 
 1998-07-07  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
 \f
 1998-07-01  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.8.0 (\e-DÒkubo) was released.\e-A
+       * FLIM: Version 1.8.0 (\8eÒkubo) was released.
 
        * README.en: Delete `How to use'.
 
 \f
 1998-06-28  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM-Chao: Version 1.7.0 (Goj\e-Dò) was released.\e-A
+       * FLIM-Chao: Version 1.7.0 (Goj\8eò) was released.
 
 1998-06-26  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
 \f
 1998-06-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.4.1 (Momoyama-Gory\e-Dòmae) was released.\e-A
+       * FLIM: Version 1.4.1 (Momoyama-Gory\8eòmae) was released.
 
 1998-06-18  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
 \f
 1998-05-06  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.2.0 (J\e-Dþjò) was released.\e-A
+       * FLIM: Version 1.2.0 (J\8eþj\8eò) was released.
 
        * README.en (What's FLIM): Delete description about
        std11-parse.el; add description about mailcap.el.
 \f
 1998-05-05  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.1.0 (T\e-Dòji) was released.\e-A
+       * FLIM: Version 1.1.0 (T\8eòji) was released.
 
 1998-05-04  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
 \f
 1998-04-17  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
-       * FLIM: Version 1.0.1 (Ky\e-Dòto) was released.\e-A
+       * FLIM: Version 1.0.1 (Ky\8eòto) was released.
 
        * mime-def.el (mime-spadework-module-version-string): New
        constant.
index 529c5dd..dbf9c6d 100644 (file)
--- a/FLIM-ELS
+++ b/FLIM-ELS
@@ -15,7 +15,7 @@
                     md4 ntlm sasl-ntlm sasl-scram
                     smtp qmtp smtpmail))
 
-(setq flim-version-specific-modules '(mailcap))
+(setq flim-version-specific-modules nil)
 
 (setq hmac-modules '(hex-util
                     hmac-def md5 sha1
diff --git a/FLIM-MK b/FLIM-MK
index 68c42d4..8415fd1 100644 (file)
--- a/FLIM-MK
+++ b/FLIM-MK
@@ -33,8 +33,9 @@ LISPDIR=%s\n" PREFIX LISPDIR))))
 
 (defun install-flim ()
   (config-flim)
-  (install-elisp-modules flim-version-specific-modules "./"
-                        FLIM_VERSION_SPECIFIC_DIR)
+  (if flim-version-specific-modules
+      (install-elisp-modules flim-version-specific-modules "./"
+                            FLIM_VERSION_SPECIFIC_DIR))
   (install-elisp-modules flim-modules "./" FLIM_DIR))
 
 (defun check-flim ()
index 68ae4b1..3b0c7fb 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@
 
 PACKAGE = flim
 API    = 1.14
-RELEASE = 4
+RELEASE = 5
 
 TAR    = tar
 RM     = /bin/rm -f
@@ -25,10 +25,13 @@ GOMI        = *.elc \
 FILES  = README.?? Makefile FLIM-MK FLIM-CFG FLIM-ELS *.el ChangeLog
 
 VERSION        = $(API).$(RELEASE)
-ARC_DIR_PREFIX = /home/kanji/tomo/public_html/comp/emacsen/lisp
+ARC_DIR_PREFIX = /home/kanji/tomo/public_html/lemi/dist
 ARC_DIR = $(ARC_DIR_PREFIX)/flim/flim-$(API)
 SEMI_ARC_DIR = $(ARC_DIR_PREFIX)/semi/semi-1.14-for-flim-$(API)
 
+CVS_HOST = cvs.m17n.org
+
+
 elc:
        $(EMACS) $(FLAGS) -f compile-flim $(PREFIX) $(LISPDIR) \
                $(VERSION_SPECIFIC_LISPDIR)
@@ -56,7 +59,7 @@ tar:
        cvs commit
        sh -c 'cvs tag -R $(PACKAGE)-`echo $(VERSION) | tr . _`; \
        cd /tmp; \
-       cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root \
+       cvs -d :pserver:anonymous@$(CVS_HOST):/cvs/root \
                export -d $(PACKAGE)-$(VERSION) \
                -r $(PACKAGE)-`echo $(VERSION) | tr . _` \
                flim'
diff --git a/VERSION b/VERSION
index f4e88e1..012ff27 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -4,55 +4,62 @@
 
 ;;-------------------------------------------------------------------------
 ;;     Kinki Nippon Railway    \e$(B6a5&F|K\E4F;\e(B     http://www.kintetsu.co.jp/
-;;     Ky\e-Dòto Line\e-A                \e$(B5~ET@~\e(B
+;;     Ky\e.D\8eòto Line          \e$(B5~ET@~\e(B
 ;;-------------------------------------------------------------------------
-1.0.1  Ky\e-Dòto\e-A                     \e$(B5~ET\e(B             ; <=> JR, \e$(B5~ET;T8rDL6I\e(B
-1.1.0  T\e-Dòji\e-A                      \e$(BEl;{\e(B
-1.2.0  J\e-Dþjò\e-A                      \e$(B==>r\e(B
+1.0.1  Ky\8eòto                  \e$(B5~ET\e(B             ; <=> JR, \e$(B5~ET;T8rDL6I\e(B
+1.1.0  T\8eòji                   \e$(BEl;{\e(B
+1.2.0  J\8eþj\8eò                  \e$(B==>r\e(B
 1.2.1  Kamitobaguchi           \e$(B>eD;1)8}\e(B
 1.2.2  Takeda                  \e$(BC]ED\e(B             ; = \e$(B5~ET;T8rDL6I\e(B \e$(B1(4]@~\e(B
 1.3.0  Fushimi                 \e$(BIz8+\e(B
 1.4.0  Kintetsu-Tambabashi     \e$(B6aE4C0GH66\e(B       ; <=> \e$(B5~:e\e(B \e$(BC0GH66\e(B
-1.4.1  Momoyama-Gory\e-Dòmae\e-A \e$(BEm;38fNMA0\e(B
+1.4.1  Momoyama-Gory\8eòmae      \e$(BEm;38fNMA0\e(B
 1.5.0  Mukaijima               \e$(B8~Eg\e(B
 1.6.0  Ogura                   \e$(B>.AR\e(B
 1.7.0  Iseda                   \e$(B0K@*ED\e(B
-1.8.0  \e-DÒkubo\e-A                     \e$(BBg5WJ]\e(B
+1.8.0  \8eÒkubo                  \e$(BBg5WJ]\e(B
 1.8.1  Kutsukawa               \e$(B5WDE@n\e(B
 1.9.0  Terada                  \e$(B;{ED\e(B
-1.9.1  Tonosh\e-Dò\e-A                   \e$(BIYLnAq\e(B
+1.9.1  Tonosh\8eò                        \e$(BIYLnAq\e(B
 1.9.2  Shin-Tanabe             \e$(B?7EDJU\e(B
-1.10.0 K\e-Dòdo\e-A                      \e$(B6=8M\e(B
+1.10.0 K\8eòdo                   \e$(B6=8M\e(B
 1.10.1 Miyamaki                \e$(B;0;3LZ\e(B
 1.10.2 Kintetsu-Miyazu         \e$(B6aE45\DE\e(B
 1.10.3 Komada                  \e$(B9}ED\e(B
-1.10.4 Shin-H\e-Dòsono\e-A               \e$(B?7=K1`\e(B           ; <=> JR \e$(BJRD.@~\e(B \e$(B=K1`\e(B
+1.10.4 Shin-H\8eòsono            \e$(B?7=K1`\e(B           ; <=> JR \e$(BJRD.@~\e(B \e$(B=K1`\e(B
 1.10.5 Kizugawadai             \e$(BLZDE@nBf\e(B
 1.11.0 Yamadagawa              \e$(B;3ED@n\e(B
 1.11.1 Takanohara              \e$(B9b$N86\e(B
-1.11.2 Heij\e-Dò\e-A                     \e$(BJ?>k\e(B
+1.11.2 Heij\8eò                  \e$(BJ?>k\e(B
 1.11.3 Saidaiji                \e$(B@>Bg;{\e(B           ; = \e$(B6aE4\e(B \e$(BF`NI@~\e(B
 ;;-------------------------------------------------------------------------
 ;;     Kinki Nippon Railway    \e$(B6a5&F|K\E4F;\e(B     http://www.kintetsu.co.jp/
-;;     Ky\e-Dòto Line\e-A                \e$(B3`86@~\e(B
+;;     Ky\8eòto Line             \e$(B3`86@~\e(B
 ;;-------------------------------------------------------------------------
        (Saidaiji)              (\e$(B@>Bg;{\e(B)
 1.12.0 Amagatsuji              \e$(BFt%vDT\e(B
-1.12.1 Nishinoky\e-Dò\e-A                \e$(B@>$N5~\e(B
-1.12.2 Kuj\e-Dò\e-A                      \e$(B6e>r\e(B
-1.12.3 Kintetsu-K\e-Dòriyama\e-A \e$(B6aE474;3\e(B
+1.12.1 Nishinoky\8eò             \e$(B@>$N5~\e(B
+1.12.2 Kuj\8eò                   \e$(B6e>r\e(B
+1.12.3 Kintetsu-K\8eòriyama      \e$(B6aE474;3\e(B
 1.12.4 Tsutsui                 \e$(BE{0f\e(B
 1.12.5 Hirahata                \e$(BJ?C<\e(B             ; = \e$(B6aE4\e(B \e$(BE7M}@~\e(B
-1.12.6 Family-K\e-Dòenmae\e-A            \e$(B%U%!%_%j!<8x1`A0\e(B
-1.12.7 Y\e-Dþzaki\e-A                    \e$(B7k:j\e(B
+1.12.6 Family-K\8eòenmae         \e$(B%U%!%_%j!<8x1`A0\e(B
+1.12.7 Y\8eþzaki                 \e$(B7k:j\e(B
 1.13.0 Iwami                   \e$(B@P8+\e(B
 1.13.1 Tawaramoto              \e$(BED86K\\e(B           ; <=> \e$(B6aE4\e(B \e$(B@>ED86K\\e(B
 1.13.2 Kasanui                 \e$(B3^K%\e(B
 1.14.0 Ninokuchi               \e$(B?7%N8}\e(B
 1.14.1 Yagi                    \e$(BH,LZ\e(B             ; = \e$(B6aE4\e(B \e$(BBg:e@~\e(B
 1.14.2 Yagi-Nishiguchi         \e$(BH,LZ@>8}\e(B
-1.14.3 Unebigory\e-Dòmae\e-A             \e$(B@&K58fNMA0\e(B
-1.14.4 Kashiharajing\e-Dþ-mae\e-A        \e$(B3`86?@5\A0\e(B       ; = \e$(B6aE4\e(B \e$(BFnBg:e@~!"5HLn@~\e(B
+1.14.3 Unebigory\8eòmae          \e$(B@&K58fNMA0\e(B
+1.14.4 Kashiharajing\8eþ-mae     \e$(B3`86?@5\A0\e(B       ; = \e$(B6aE4\e(B \e$(BFnBg:e@~!"5HLn@~\e(B
+
+
+;;-------------------------------------------------------------------------
+;;     Keihan Electric Railway \e$(B5~:eEE5$E4F;\e(B     http://www.keihan.co.jp/
+;;                             \e$(B3{El@~\e(B
+;;-------------------------------------------------------------------------
+1.14.5 Demachiyanagi           \e$(B=PD.Lx\e(B           ; <=> \e$(B1CEE\e(B
 
 
 [Chao Version names]
 ;;-------------------------------------------------------------------------
 1.2.0  Takeda                  \e$(BC]ED\e(B             ; = \e$(B6aE4\e(B \e$(B5~ET@~\e(B
 1.3.0  Kuinabashi              \e$(B$/$$$J66\e(B
-1.4.0  J\e-Dþjò\e-A                      \e$(B==>r\e(B
-1.6.0  Kuj\e-Dò\e-A                      \e$(B6e>r\e(B
-1.6.1  Ky\e-Dòto\e-A                     \e$(B5~ET\e(B             ; <=> JR, \e$(B6aE4\e(B
-1.7.0  Goj\e-Dò\e-A                      \e$(B8^>r\e(B
-1.8.0  Shij\e-Dò\e-A                     \e$(B;M>r\e(B             ; <=> \e$(B:e5^\e(B \e$(B5~ET@~\e(B
+1.4.0  J\8eþj\8eò                  \e$(B==>r\e(B
+1.6.0  Kuj\8eò                   \e$(B6e>r\e(B
+1.6.1  Ky\8eòto                  \e$(B5~ET\e(B             ; <=> JR, \e$(B6aE4\e(B
+1.7.0  Goj\8eò                   \e$(B8^>r\e(B
+1.8.0  Shij\8eò                  \e$(B;M>r\e(B             ; <=> \e$(B:e5^\e(B \e$(B5~ET@~\e(B
 1.9.0  Karasuma Oike           \e$(B1(4]8fCS\e(B ; = \e$(B5~ET;T8rDL6I\e(B \e$(BEl@>@~\e(B
 1.10.0 Marutamach              \e$(B4]B@D.\e(B
 1.11.0 Imadegawa               \e$(B:#=P@n\e(B
 1.11.1 Kuramaguchi             \e$(B0HGO8}\e(B
-1.11.2 Kita\e-Dòji\e-A                   \e$(BKLBgO)\e(B
+1.11.2 Kita\8eòji                        \e$(BKLBgO)\e(B
 1.11.3 Kitayama                \e$(BKL;3\e(B
 1.11.4 Matugasaki              \e$(B>>%v:j\e(B
 1.11.5 Kokusaikaikan           \e$(B9q:]2q4[\e(B
 ;;     West Japan Railway      \e$(B@>F|K\N95RE4F;\e(B   http://www.westjr.co.jp/
 ;;     Nara Line               \e$(BF`NI@~\e(B
 ;;-------------------------------------------------------------------------
-1.12.0 [JR] Ky\e-Dòto\e-A                \e$(B5~ET\e(B             ; <=> \e$(B6aE4\e(B, \e$(B5~ET;T8rDL6I\e(B
-1.12.1 T\e-Dòfukuji\e-A          \e$(BElJ!;{\e(B           ; <=> \e$(B5~:e\e(B
+1.12.0 [JR] Ky\8eòto             \e$(B5~ET\e(B             ; <=> \e$(B6aE4\e(B, \e$(B5~ET;T8rDL6I\e(B
+1.12.1 T\8eòfukuji               \e$(BElJ!;{\e(B           ; <=> \e$(B5~:e\e(B
 1.12.2 Inari                   \e$(B0p2Y\e(B
 1.13.0 JR Fujinomori           JR \e$(BF#?9\e(B
 1.14.0 Momoyama                \e$(BEm;3\e(B
-1.14.1 Rokujiz\e-Dò\e-A          \e$(BO;COB"\e(B
+1.14.1 Rokujiz\8eò               \e$(BO;COB"\e(B
 ------ Kohata                  \e$(BLZH(\e(B
index 694ed57..8d24b64 100644 (file)
@@ -1,6 +1,6 @@
 ;;; eword-encode.el --- RFC 2047 based encoded-word encoder for GNU Emacs
 
-;; Copyright (C) 1995,1996,1997,1998,1999,2000,2002 Free Software Foundation, Inc.
+;; Copyright (C) 1995,1996,1997,1998,1999,2000,2002,2003 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: encoded-word, MIME, multilingual, header, mail, news
@@ -27,7 +27,6 @@
 (require 'mime-def)
 (require 'mel)
 (require 'std11)
-(require 'mime-parse)
 (require 'eword-decode)
 
 
diff --git a/ftp.in b/ftp.in
index 698a6c9..0410a6d 100644 (file)
--- a/ftp.in
+++ b/ftp.in
@@ -2,12 +2,12 @@
 
   It is available from
 
-    http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/comp/emacsen/lisp/flim/flim-API/
+    http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/lemi/dist/flim/flim-API/
 
 --[[message/external-body; access-type=URL;
        URL*0="http://";
        URL*1="www.kanji.zinbun.kyoto-u.ac.jp/~tomo/";
-       URL*2="comp/emacsen/lisp/";
+       URL*2="lemi/dist/";
        URL*3="flim/flim-API/";
        URL*4="PACKAGE-VERSION.tar.gz"]]
 Content-Type: application/octet-stream
diff --git a/luna.el b/luna.el
index 0199aed..f33b83f 100644 (file)
--- a/luna.el
+++ b/luna.el
@@ -164,8 +164,13 @@ The optional 5th BODY is the body of the method."
           (sym (luna-class-find-or-make-member
                 (luna-find-class ',class) ',name))
           (cache (get ',name 'luna-method-cache)))
-       (if cache
-          (unintern ',class cache))
+       (and cache
+           (fboundp sym)
+           (mapatoms
+            (lambda (s)
+              (if (memq (symbol-function sym) (symbol-value s))
+                  (unintern s cache)))
+            cache))
        (fset sym func)
        (put sym 'luna-method-qualifier ,method-qualifier))))
 
index 113c548..16fe95e 100644 (file)
@@ -32,7 +32,7 @@
 (eval-when-compile (require 'luna))    ; luna-arglist-to-arguments
 
 (eval-and-compile
-  (defconst mime-library-product ["FLIM" (1 14 4) "Kashiharajingþ-mae"]
+  (defconst mime-library-product ["FLIM" (1 14 5) "Demachiyanagi"]
     "Product name, version number and code name of MIME-library package."))
 
 (defmacro mime-product-name (product)
index 4e8dcad..50b57d0 100644 (file)
@@ -1,6 +1,6 @@
 <!doctype sinfo system>
 <head>
-<title>FLIM 1.12 Reference Manual about MIME Features
+<title>FLIM 1.14 Reference Manual about MIME Features
 <author>MORIOKA Tomohiko <mail>morioka@jaist.ac.jp</mail>
 <date>1999-01-27
 
@@ -914,10 +914,10 @@ Encode header fields to network representation, such as MIME
 encoded-word.
 <p>
 Each field is encoded as corresponding method specified by variable
-<code>eword-field-encoding-method-alist</code>.
+<code>mime-field-encoding-method-alist</code>.
 </defun>
 
-<defvar name="eword-field-encoding-method-alist">
+<defvar name="mime-field-encoding-method-alist">
 <p>
 Association list to specify field encoding method.  Each element looks
 like (FIELD . METHOD).
@@ -941,21 +941,11 @@ network-code.
 <p>
 <define type="group" name="mime">
 <p>
-MIME \e$B4XO"5!G=$K4X$9$k\e(B group.
+The group associated with functions related to MIME.
 <p>
-<code>mail</code> \e$B$H\e(B <code>news</code> \e$B$KB0$9$k!#\e(B
+It belongs to <code>mail</code> and <code>news</code>.
 </define>
 
-<defvar name="mime-temp-directory">
-<p>
-MIME \e$B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k\e(B file \e$B$r:n@.$9$k\e(B directory.
-<p>
-\e$B4D6-JQ?t\e(B <code>MIME_TMP_DIR</code>, <code>TM_TMP_DIR</code>,
-<code>TMPDIR</code>, <code>TMP</code> \e$B$b$7$/$O\e(B <code>TEMP</code> \e$B$,@_Dj\e(B
-\e$B$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$FMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"\e(B
-<code>"/tmp/"</code> \e$B$rMQ$$$k!#\e(B
-</defvar>
-
 
 <h1> Appendix
 <node> Appendix
@@ -1327,8 +1317,8 @@ EMACS-MIME ML, send an empty e-mail to:
 <h2> CVS based development
 <node> CVS
 <p>
-FLIM \e$B$N\e(B file \e$B$O\e(B CVS \e$B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G\e(B
-\e$B?7$N\e(B FLIM \e$B$rF~<j$9$k$3$H$,$G$-$^$9!'\e(B
+Files in FLIM are managed under CVS. Therefore you can obtain the
+newest FLIM by the following method:
 
 <verb>
 (0) cvs login
@@ -1344,19 +1334,19 @@ FLIM \e$B$N\e(B file \e$B$O\e(B CVS \e$B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K
 </verb>
 
 <p>
-CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
+If you would like to join CVS based development, please send mail to
 
 <ul>
 <li> <mail>cvs@cvs.m17n.org</mail>
 </ul>
 
 <noindent>
-\e$B$^$G!"%"%+%&%s%HL>$H\e(B ssh \e$B$N8x3+80$rAw$C$F$/$@$5$$!#\e(Bssh \e$B7PM3$G$O!"\e(B
-cvsroot \e$B$O\e(B :ext:cvs@cvs.m17n.org:/cvs/root \e$B$H$J$j$^$9!#\e(B
+with your account name and your public key for ssh.
+cvsroot is :ext:cvs@@cvs.m17n.org:/cvs/root.
 <p>
-\e$B$I$&$7$F$b\e(B ssh \e$B$,;H$($J$$>l9g!"\e(Bpserver \e$B7PM3$G$b3+H/$K;22C$G$-$^$9!#\e(B
-\e$B$3$N>l9g!"\e(BUNIX \e$B$N\e(B /etc/passwd \e$BMM<0$G0E9f2=$5$l$?%Q%9%o!<%I$rAw$C$F2<$5$$!#\e(B
-\e$B$3$N>l9g\e(B cvsroot \e$B$O\e(B :pserver:<\e$B%"%+%&%s%HL>\e(B>@cvs.m17n.org:/cvs/root \e$B$H$J$j$^$9!#\e(B
+If you cannot use ssh,  you can join development via pserver.
+In this case, please send UNIX /etc/passwd style crypted password.
+Then cvsroot is :pserver:<accountname>@cvs.m17n.org:/cvs/root.
 
 <h2> History of FLIM
 <node> History
index 9d27c0e..e04f744 100644 (file)
@@ -1,14 +1,14 @@
 \input texinfo.tex
 @c Generated automatically from mime-en.sgml by sinfo 3.7.
 @setfilename mime-en.info
-@settitle{FLIM 1.12 Reference Manual about MIME Features}
+@settitle{FLIM 1.14 Reference Manual about MIME Features}
 @titlepage
-@title FLIM 1.12 Reference Manual about MIME Features
+@title FLIM 1.14 Reference Manual about MIME Features
 @author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
 @subtitle 1999-01-27
 @end titlepage
 @node Top, Introduction, (dir), (dir)
-@top FLIM 1.12 Reference Manual about MIME Features
+@top FLIM 1.14 Reference Manual about MIME Features
 
 @ifinfo
 
@@ -1009,11 +1009,11 @@ Encode header fields to network representation, such as MIME
 encoded-word.@refill
 
 Each field is encoded as corresponding method specified by variable
-@code{eword-field-encoding-method-alist}.
+@code{mime-field-encoding-method-alist}.
 @end defun
 
 
-@defvar eword-field-encoding-method-alist
+@defvar mime-field-encoding-method-alist
 
 Association list to specify field encoding method.  Each element looks
 like (FIELD . METHOD).@refill
@@ -1037,24 +1037,12 @@ Otherwise the FIELD will be encoded as variable
 
 @deffn{group} mime
 
-MIME \e$B4XO"5!G=$K4X$9$k\e(B group.@refill
+The group associated with functions related to MIME.@refill
 
-@code{mail} \e$B$H\e(B @code{news} \e$B$KB0$9$k!#\e(B
+It belongs to @code{mail} and @code{news}.
 @end deffn
 
 
-@defvar mime-temp-directory
-
-MIME \e$B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k\e(B file \e$B$r:n@.$9$k\e(B 
-directory.@refill
-
-\e$B4D6-JQ?t\e(B @code{MIME_TMP_DIR}, @code{TM_TMP_DIR}, @code{TMPDIR},
-@code{TMP} \e$B$b$7$/$O\e(B @code{TEMP} \e$B$,@_Dj$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$F\e(B
-\e$BMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"\e(B@code{"/tmp/"} \e$B$rMQ$$$k!#\e(B
-@end defvar
-
-
-
 @node Appendix, Concept Index, custom, Top
 @chapter Appendix
 
@@ -1539,33 +1527,33 @@ EMACS-MIME ML, send an empty e-mail to:
 @node CVS, History, Bug report, Appendix
 @section CVS based development
 
-FLIM \e$B$N\e(B file \e$B$O\e(B CVS \e$B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G\e(B
-\e$B?7$N\e(B FLIM \e$B$rF~<j$9$k$3$H$,$G$-$^$9!'\e(B
+Files in FLIM are managed under CVS. Therefore you can obtain the
+newest FLIM by the following method.
 
 @example
 (0) cvs login
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
+    % cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root login
 
     CVS password: [CR] # NULL string
 
 (1) checkout
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout
+    % cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root checkout
        checkout [-r TAG] flim
 @end example
 
 
-CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
+If you would like to join CVS based development, please send mail to
 
 @itemize @bullet
 @item
- <cvs@cvs.m17n.org>
+ <cvs@@cvs.m17n.org>
 @end itemize
 
 @noindent
-\e$B$^$G!"\e(Baccount \e$BL>$H\e(B UNIX \e$B$N\e(B passwd \e$B$HF1$87A<0$N\e(B crypt \e$B2=$5$l$?\e(B password
-\e$B$r1h$($F8fO"Mm$/$@$5$$!#\e(B
+with your account name and your public key for ssh.
+cvsroot is :ext:cvs@@cvs.m17n.org:/cvs/root.
 
 
 @node History,  , CVS, Appendix
index e4bc50b..e68a09e 100644 (file)
@@ -1,6 +1,6 @@
 <!doctype sinfo system>
 <head>
-<title>FLIM 1.12 MIME \e$B5!G=@bL@=q\e(B
+<title>FLIM 1.14 MIME \e$B5!G=@bL@=q\e(B
 <author>\e$B<i2,\e(B \e$BCNI'\e(B <mail>morioka@jaist.ac.jp</mail>
 <date>1999-01-27
 
@@ -900,11 +900,11 @@ header separator \e$B$H$7$FMQ$$$i$l$k!#\e(B
 <p>
 Header \e$B$r\e(B network \e$BI=8=$KId9f2=$9$k!#\e(B
 <p>
-\e$B3F\e(B field \e$B$O\e(B <code>eword-field-encoding-method-alist</code> \e$B$G;XDj$5$l\e(B
+\e$B3F\e(B field \e$B$O\e(B <code>mime-field-encoding-method-alist</code> \e$B$G;XDj$5$l\e(B
 \e$B$?J}<0$GId9f2=$5$l$k!#\e(B
 </defun>
 
-<defvar name="eword-field-encoding-method-alist">
+<defvar name="mime-field-encoding-method-alist">
 <p>
 Field \e$B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[\e(B list\e$B!#3F\e(B element \e$B$O\e(B (FIELD
 . METHOD) \e$B$NMM$K$J$C$F$$$k!#\e(B
@@ -932,16 +932,6 @@ MIME \e$B4XO"5!G=$K4X$9$k\e(B group.
 <code>mail</code> \e$B$H\e(B <code>news</code> \e$B$KB0$9$k!#\e(B
 </define>
 
-<defvar name="mime-temp-directory">
-<p>
-MIME \e$B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k\e(B file \e$B$r:n@.$9$k\e(B directory.
-<p>
-\e$B4D6-JQ?t\e(B <code>MIME_TMP_DIR</code>, <code>TM_TMP_DIR</code>,
-<code>TMPDIR</code>, <code>TMP</code> \e$B$b$7$/$O\e(B <code>TEMP</code> \e$B$,@_Dj\e(B
-\e$B$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$FMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"\e(B
-<code>"/tmp/"</code> \e$B$rMQ$$$k!#\e(B
-</defvar>
-
 
 <h1> \e$BIUO?\e(B
 <node> Appendix
index 939e3a3..c7520bd 100644 (file)
@@ -1,14 +1,14 @@
 \input texinfo.tex
 @c Generated automatically from mime-ja.sgml by sinfo 3.7.
 @setfilename mime-ja.info
-@settitle{FLIM 1.12 MIME \e$B5!G=@bL@=q\e(B}
+@settitle{FLIM 1.14 MIME \e$B5!G=@bL@=q\e(B}
 @titlepage
-@title FLIM 1.12 MIME \e$B5!G=@bL@=q\e(B
+@title FLIM 1.14 MIME \e$B5!G=@bL@=q\e(B
 @author \e$B<i2,\e(B \e$BCNI'\e(B <morioka@@jaist.ac.jp>
 @subtitle 1999-01-27
 @end titlepage
 @node Top, Introduction, (dir), (dir)
-@top FLIM 1.12 MIME \e$B5!G=@bL@=q\e(B
+@top FLIM 1.14 MIME \e$B5!G=@bL@=q\e(B
 
 @ifinfo
 
@@ -997,12 +997,12 @@ Header \e$BCf$N\e(B encoded-word \e$B$rI|9f$9$k!#\e(B@refill
 
 Header \e$B$r\e(B network \e$BI=8=$KId9f2=$9$k!#\e(B@refill
 
-\e$B3F\e(B field \e$B$O\e(B @code{eword-field-encoding-method-alist} \e$B$G;XDj$5$l$?J}<0$G\e(B
+\e$B3F\e(B field \e$B$O\e(B @code{mime-field-encoding-method-alist} \e$B$G;XDj$5$l$?J}<0$G\e(B
 \e$BId9f2=$5$l$k!#\e(B
 @end defun
 
 
-@defvar eword-field-encoding-method-alist
+@defvar mime-field-encoding-method-alist
 
 Field \e$B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[\e(B list\e$B!#3F\e(B element \e$B$O\e(B (FIELD
 . METHOD) \e$B$NMM$K$J$C$F$$$k!#\e(B@refill
@@ -1032,18 +1032,6 @@ MIME \e$B4XO"5!G=$K4X$9$k\e(B group.@refill
 @end deffn
 
 
-@defvar mime-temp-directory
-
-MIME \e$B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k\e(B file \e$B$r:n@.$9$k\e(B 
-directory.@refill
-
-\e$B4D6-JQ?t\e(B @code{MIME_TMP_DIR}, @code{TM_TMP_DIR}, @code{TMPDIR},
-@code{TMP} \e$B$b$7$/$O\e(B @code{TEMP} \e$B$,@_Dj$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$F\e(B
-\e$BMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"\e(B@code{"/tmp/"} \e$B$rMQ$$$k!#\e(B
-@end defvar
-
-
-
 @node Appendix, Concept Index, custom, Top
 @chapter \e$BIUO?\e(B
 
@@ -1541,13 +1529,13 @@ FLIM \e$B$N\e(B file \e$B$O\e(B CVS \e$B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K
 @example
 (0) cvs login
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root login
+    % cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root login
 
     CVS password: [CR] # NULL string
 
 (1) checkout
 
-    % cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/root checkout
+    % cvs -d :pserver:anonymous@@cvs.m17n.org:/cvs/root checkout
        checkout [-r TAG] flim
 @end example
 
@@ -1556,12 +1544,12 @@ CVS \e$B$rMQ$$$?3+H/$K;22C$7$?$$J}$O\e(B
 
 @itemize @bullet
 @item
- <cvs@cvs.m17n.org>
+ <cvs@@cvs.m17n.org>
 @end itemize
 
 @noindent
-\e$B$^$G!"\e(Baccount \e$BL>$H\e(B UNIX \e$B$N\e(B passwd \e$B$HF1$87A<0$N\e(B crypt \e$B2=$5$l$?\e(B password
-\e$B$r1h$($F8fO"Mm$/$@$5$$!#\e(B
+\e$B$^$G!"%"%+%&%s%HL>$H\e(B ssh \e$B$N8x3+80$rAw$C$F$/$@$5$$!#\e(Bssh \e$B7PM3$G$O!"\e(B
+cvsroot \e$B$O\e(B :ext:cvs@@cvs.m17n.org:/cvs/root \e$B$H$J$j$^$9!#\e(B
 
 
 @node History,  , CVS, Appendix
index 6f87d8f..57d2228 100644 (file)
@@ -1,6 +1,6 @@
 ;;; mime-parse.el --- MIME message parser
 
-;; Copyright (C) 1994,95,96,97,98,99,2001,2002 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99,2001 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;     Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
@@ -687,7 +687,8 @@ If Content-Transfer-Encoding field is not found, return nil."
 ;;;###autoload
 (defun mime-parse-buffer (&optional buffer representation-type)
   "Parse BUFFER as a MIME message.
-If buffer is omitted, it parses current buffer."
+If buffer is omitted, it parses current-buffer."
+  (require 'mmbuffer)
   (save-excursion
     (if buffer (set-buffer buffer))
     (mime-parse-message (or representation-type
diff --git a/smtp.el b/smtp.el
index a3f97c6..ff13f5a 100644 (file)
--- a/smtp.el
+++ b/smtp.el
@@ -27,7 +27,7 @@
 
 
 ;;; Commentary:
-;; 
+;;
 
 ;;; Code:
 
@@ -58,10 +58,16 @@ called from `smtp-via-smtp' with arguments SENDER and RECIPIENTS."
                 (function :tag "Function"))
   :group 'smtp)
 
+(defcustom smtp-send-by-myself nil
+  "If non-nil, smtp.el send a mail by myself without smtp-server.
+This option requires \"dig.el\"."
+  :type 'boolean
+  :group 'smtp)
+
 (defcustom smtp-service "smtp"
   "SMTP service port number.  \"smtp\" or 25."
   :type '(choice (integer :tag "25" 25)
-                 (string :tag "smtp" "smtp"))
+                (string :tag "smtp" "smtp"))
   :group 'smtp)
 
 (defcustom smtp-local-domain nil
@@ -91,6 +97,11 @@ don't define this value."
   :type 'boolean
   :group 'smtp-extensions)
 
+(defcustom smtp-use-starttls-ignore-error nil
+  "If non-nil, do not use STARTTLS if STARTTLS is not available."
+  :type 'boolean
+  :group 'smtp-extensions)
+
 (defcustom smtp-use-sasl nil
   "If non-nil, use SMTP Authentication (RFC2554) if available."
   :type 'boolean
@@ -114,7 +125,23 @@ don't define this value."
 (defvar sasl-mechanisms)
 
 ;;;###autoload
-(defvar smtp-open-connection-function #'open-network-stream)
+(defvar smtp-open-connection-function #'open-network-stream
+  "*Function used for connecting to a SMTP server.
+The function will be called with the same four arguments as
+`open-network-stream' and should return a process object.
+Here is an example:
+
+\(setq smtp-open-connection-function
+      #'(lambda (name buffer host service)
+         (let ((process-connection-type nil))
+           (start-process name buffer \"ssh\" \"-C\" host
+                          \"nc\" host service))))
+
+It connects to a SMTP server using \"ssh\" before actually connecting
+to the SMTP port.  Where the command \"nc\" is the netcat executable;
+see http://www.atstake.com/research/tools/index.html#network_utilities
+for details.  In addition, you will have to modify the value for
+`smtp-end-of-line' to \"\\n\" if you use \"telnet\" instead of \"nc\".")
 
 (defvar smtp-read-point nil)
 
@@ -122,6 +149,11 @@ don't define this value."
 
 (defvar smtp-submit-package-function #'smtp-submit-package)
 
+(defvar smtp-end-of-line "\r\n"
+  "*String to use as end-of-line marker when talking to a SMTP server.
+This is \"\\r\\n\" by default, but it may have to be \"\\n\" when using a non
+native connection function.  See also `smtp-open-connection-function'.")
+
 ;;; @ SMTP package
 ;;; A package contains a mail message, an envelope sender address,
 ;;; and one or more envelope recipient addresses.  In ESMTP model
@@ -247,6 +279,51 @@ of the host to connect to.  SERVICE is name of the service desired."
                  smtp-connection-alist))
       connection)))
 
+(eval-and-compile
+  (autoload 'dig-invoke "dig")
+  (autoload 'dig-extract-rr "dig"))
+
+(defun smtp-find-mx (domain &optional doerror)
+  (let (server)
+    ;; dig.el resolves only primally MX.
+    (cond ((setq server (smtp-dig domain "MX"))
+          (progn (string-match " \\([^ ]*\\)$" server)
+                 (match-string 1 server)))
+         ((smtp-dig domain "A")
+           domain)
+         (t
+          (if doerror
+               (error (format "SMTP cannot resolve %s" domain)))))))
+
+(defun smtp-dig (domain type)
+  (let (dig-buf)
+    (set-buffer
+     (setq dig-buf (dig-invoke domain type)))
+    (prog1
+       (dig-extract-rr domain type)
+      (kill-buffer dig-buf))))
+
+(defun smtp-find-server (recipients)
+  (save-excursion
+    (let ((rec
+          (mapcar (lambda (recipient)
+                    (let (server)
+                      (if (and (string-match "@\\([^\t\n ]*\\)" recipient)
+                               (setq server
+                                     (smtp-find-mx
+                                      (match-string 1 recipient))))
+                          (cons server (list recipient))
+                        (error (format "cannot find server for %s." recipient)))))
+                  recipients))
+         ret rets rlist)
+      (while (setq rets (pop rec))
+       (if (setq ret (assoc (car rets) rec))
+           (setcdr ret
+                   (append (cdr ret) (cdr rets)))
+         (setq rlist
+               (append rlist (list rets)))))
+      rlist)))
+
 ;;;###autoload
 (defun smtp-via-smtp (sender recipients buffer)
   "Like `smtp-send-buffer', but sucks in any errors."
@@ -264,27 +341,30 @@ of the host to connect to.  SERVICE is name of the service desired."
 SENDER is an envelope sender address.
 RECIPIENTS is a list of envelope recipient addresses.
 BUFFER may be a buffer or a buffer name which contains mail message."
-  (let ((server
-        (if (functionp smtp-server)
-            (funcall smtp-server sender recipients)
-          smtp-server))
-       (package
-        (smtp-make-package sender recipients buffer))
-       (smtp-open-connection-function
-        (if smtp-use-starttls
-            #'starttls-open-stream
-          smtp-open-connection-function)))
-    (save-excursion
-      (set-buffer
-       (get-buffer-create
-       (format "*trace of SMTP session to %s*" server)))
-      (erase-buffer)
-      (buffer-disable-undo)
-      (unless (smtp-find-connection (current-buffer))
-       (smtp-open-connection (current-buffer) server smtp-service))
-      (make-local-variable 'smtp-read-point)
-      (setq smtp-read-point (point-min))
-      (funcall smtp-submit-package-function package))))
+  (if smtp-send-by-myself
+      (smtp-send-buffer-by-myself sender recipients buffer)
+    (let ((server
+          (if (functionp smtp-server)
+              (funcall smtp-server sender recipients)
+            (or smtp-server
+                (error "`smtp-server' not defined"))))
+         (package
+          (smtp-make-package sender recipients buffer))
+         (smtp-open-connection-function
+          (if smtp-use-starttls
+              #'starttls-open-stream
+            smtp-open-connection-function)))
+      (save-excursion
+       (set-buffer
+        (get-buffer-create
+         (format "*trace of SMTP session to %s*" server)))
+       (erase-buffer)
+       (buffer-disable-undo)
+       (unless (smtp-find-connection (current-buffer))
+         (smtp-open-connection (current-buffer) server smtp-service))
+       (make-local-variable 'smtp-read-point)
+       (setq smtp-read-point (point-min))
+       (funcall smtp-submit-package-function package)))))
 
 (defun smtp-submit-package (package)
   (unwind-protect
@@ -295,9 +375,14 @@ BUFFER may be a buffer or a buffer name which contains mail message."
          (smtp-response-error
           (smtp-primitive-helo package)))
        (if smtp-use-starttls
-           (progn
-           (smtp-primitive-starttls package)
-           (smtp-primitive-ehlo package)))
+           (if (assq 'starttls
+                     (smtp-connection-extensions-internal
+                      (smtp-find-connection (current-buffer))))
+               (progn
+                 (smtp-primitive-starttls package)
+                 (smtp-primitive-ehlo package))
+             (unless smtp-use-starttls-ignore-error
+               (error "STARTTLS is not supported on this server"))))
        (if smtp-use-sasl
            (smtp-primitive-auth package))
        (smtp-primitive-mailfrom package)
@@ -308,6 +393,42 @@ BUFFER may be a buffer or a buffer name which contains mail message."
        (smtp-primitive-quit package)
        (smtp-close-connection connection)))))
 
+(defun smtp-send-buffer-by-myself (sender recipients buffer)
+  "Send a message by myself.
+SENDER is an envelope sender address.
+RECIPIENTS is a list of envelope recipient addresses.
+BUFFER may be a buffer or a buffer name which contains mail message."
+  (let ((servers
+        (smtp-find-server recipients))
+       (smtp-open-connection-function
+        (if smtp-use-starttls
+            #'starttls-open-stream
+          smtp-open-connection-function))
+       server package)
+      (while (car servers)
+       (setq server (caar servers))
+       (setq recipients (cdar servers))
+       (if (not (and server recipients))
+           ;; MAILER-DAEMON is required. :)
+           (error (format "Cannot send <%s>"
+                          (mapconcat 'concat recipients ">,<"))))
+       (setq package
+             (smtp-make-package sender recipients buffer))
+       (save-excursion
+         (set-buffer
+          (get-buffer-create
+           (format "*trace of SMTP session to %s*" server)))
+         (erase-buffer)
+         (buffer-disable-undo)
+         (unless (smtp-find-connection (current-buffer))
+           (smtp-open-connection (current-buffer) server smtp-service))
+         (make-local-variable 'smtp-read-point)
+         (setq smtp-read-point (point-min))
+         (let ((smtp-use-sasl nil)
+               (smtp-use-starttls-ignore-error t))
+           (funcall smtp-submit-package-function package)))
+      (setq servers (cdr servers)))))
+
 ;;; @ hook methods for `smtp-submit-package'
 ;;;
 
@@ -502,13 +623,13 @@ BUFFER may be a buffer or a buffer name which contains mail message."
        response)
     (while response-continue
       (goto-char smtp-read-point)
-      (while (not (search-forward "\r\n" nil t))
+      (while (not (search-forward smtp-end-of-line nil t))
        (accept-process-output (smtp-connection-process-internal connection))
        (goto-char smtp-read-point))
       (if decoder
          (let ((string (buffer-substring smtp-read-point (- (point) 2))))
            (delete-region smtp-read-point (point))
-           (insert (funcall decoder string) "\r\n")))
+           (insert (funcall decoder string) smtp-end-of-line)))
       (setq response
            (nconc response
                   (list (buffer-substring
@@ -530,7 +651,7 @@ BUFFER may be a buffer or a buffer name which contains mail message."
           (smtp-connection-encoder-internal connection)))
       (set-buffer (process-buffer process))
       (goto-char (point-max))
-      (setq command (concat command "\r\n"))
+      (setq command (concat command smtp-end-of-line))
       (insert command)
       (setq smtp-read-point (point))
       (if encoder
@@ -544,8 +665,8 @@ BUFFER may be a buffer or a buffer name which contains mail message."
         (smtp-connection-encoder-internal connection)))
     ;; Escape "." at start of a line.
     (if (eq (string-to-char data) ?.)
-       (setq data (concat "." data "\r\n"))
-      (setq data (concat data "\r\n")))
+       (setq data (concat "." data smtp-end-of-line))
+      (setq data (concat data smtp-end-of-line)))
     (if encoder
        (setq data (funcall encoder data)))
     (process-send-string process data)))
index 97f9359..6c83a72 100644 (file)
--- a/std11.el
+++ b/std11.el
@@ -1,6 +1,6 @@
 ;;; std11.el --- STD 11 functions for GNU Emacs
 
-;; Copyright (C) 1995,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98,99,2000,01,02,03 Free Software Foundation, Inc.
 
 ;; Author:   MORIOKA Tomohiko <tomo@m17n.org>
 ;; Keywords: mail, news, RFC 822, STD 11
@@ -289,6 +289,11 @@ be the result."
   )
 ;; (defconst std11-spaces-regexp
 ;;   (eval-when-compile (concat "[" std11-space-char-list "]+")))
+
+(defconst std11-non-atom-regexp
+  (eval-when-compile
+    (concat "[" std11-special-char-list std11-space-char-list "]")))
+
 (defconst std11-atom-regexp
   (eval-when-compile
     (concat "[^" std11-special-char-list std11-space-char-list "]+")))
@@ -313,13 +318,21 @@ be the result."
     ))
 
 (defun std11-analyze-atom (string start)
-  (if (and (string-match std11-atom-regexp string start)
-          (= (match-beginning 0) start))
-      (let ((end (match-end 0)))
-       (cons (cons 'atom (substring string start end))
-             ;;(substring string end)
-             end)
-       )))
+  (if (string-match std11-non-atom-regexp string start)
+      (if (> (match-beginning 0) start)
+         (cons (cons 'atom (substring string start (match-beginning 0)))
+               (match-beginning 0))
+       nil)
+    (cons (cons 'atom (substring string start))
+         (length string)))
+  ;; (if (and (string-match std11-atom-regexp string start)
+  ;;          (= (match-beginning 0) start))
+  ;;     (let ((end (match-end 0)))
+  ;;       (cons (cons 'atom (substring string start end))
+  ;;             ;;(substring string end)
+  ;;             end)
+  ;;       ))
+  )
 
 (defun std11-check-enclosure (string open close &optional recursive from)
   (let ((len (length string))