From: kawabata Date: Sat, 3 May 2003 17:05:51 +0000 (+0000) Subject: Synchronized with flim-1_14_5. X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c37d8af5559568ebf6a57b6269d8920cd91e7ad4;p=elisp%2Fflim.git Synchronized with flim-1_14_5. --- diff --git a/ChangeLog b/ChangeLog index a6a2d39..f07198b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,73 @@ +2002-12-27 MORIOKA Tomohiko + + * FLIM: Version 1.14.5 (Demachiyanagi) released. + +2002-11-15 Katsumi Yamaoka + + * smtp.el (smtp-send-buffer): Error if `smtp-server' is nil. + +2002-11-15 Yoichi NAKAYAMA + + * FLIM-ELS (flim-version-specific-modules): Don't install mailcap.el. + * FLIM-MK (install-flim): Avoid creating empty directory. + +2002-11-06 Yoichi NAKAYAMA + + * mime-parse.el (mime-parse-buffer): Require mmbuffer. + +2002-09-26 TSUCHIYA Masatoshi + + * luna.el (luna-define-method): Clear method cache of child + classes. + +2002-09-24 TSUCHIYA Masatoshi + + * mime-ja.texi (CVS): Escape @. + + * luna.el (luna-define-method): Fix the bug that method cache is + not cleard. + +2002-09-14 KOSEKI Yoshinori + + * mime-en.texi (CVS): Fix Typo. (@ to @@). + mime-ja.texi (CVS): Ditto. + +2002-08-26 MORIOKA Tomohiko + + * std11.el: Update Copyright header. + +2002-07-30 MORIOKA Tomohiko + + * 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 + + * smtp.el (smtp-open-connection-function): Add doc. + (smtp-end-of-line): Doc fix. + +2002-07-24 Katsumi Yamaoka + + * smtp.el (smtp-end-of-line): New variable. + (smtp-read-response): Use it. + (smtp-send-command): Use it. + (smtp-send-data): Use it. + + 2002-06-03 KAWABATA, Taichi * FLIM-rfc2231-encoder: merged with FLIM Version 1.14.4. +2002-06-03 MORIOKA Tomohiko + + * FLIM: Version 1.14.4 (Kashiharajing.DŽþ-mae) released. + 2002-06-02 Shuhei KOBAYASHI * 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. @@ -36,11 +97,11 @@ 2002-05-20 KAWABATA, Taichi 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. @@ -49,10 +110,6 @@ (mime-encode-parameters): Likewise. -2002-06-03 MORIOKA Tomohiko - - * FLIM: Version 1.14.4 (Kashiharajing-Dþ-mae) released.-A - 2002-01-16 Hiroya Murata * luna.el (luna-class-find-member): Don't search parents' @@ -64,10 +121,32 @@ (mime-encode-field-body): Use `mime-header-encode-method-alist'. (mime-encode-header-in-buffer): Error if cannot encode. +2001-11-19 Kenichi OKADA + + * smtp.el (smtp-find-server): Fix. + +2001-11-18 Kenichi OKADA + + * smtp.el (smtp-send-by-myself): Fix. + +2001-11-18 Kenichi OKADA + + * 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 * hmac-md5.el: Removed kludge for Emacs 21 prerelease versions. +2001-09-21 Kenichi OKADA + + * smtp.el(smtp-submit-package): Check extensions for starttls. + 2001-07-16 Katsumi Yamaoka * smtpmail.el (smtpmail-send-it): Work even if the first line of @@ -80,7 +159,7 @@ 2001-06-01 MORIOKA Tomohiko - * FLIM: Version 1.14.3 (Unebigory-Dòmae) released.-A + * FLIM: Version 1.14.3 (UnebigoryŽòmae) released. 2001-06-01 Katsumi Yamaoka @@ -344,7 +423,7 @@ 2001-02-27 Shuhei KOBAYASHI 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. @@ -368,7 +447,7 @@ 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 * hmac-md5.el, hmac-sha1.el: Modify comments. @@ -526,7 +605,7 @@ * qmtp.el (qmtp-open-connection-function): Revert initial value to `open-network-stream'. (qmtp-send-buffer): Use `binary-funcall'. - + 2000-12-23 OKAZAKI Tetsurou * FLIM-ELS (flim-modules): Delete `mmdbuffer'. @@ -770,7 +849,7 @@ * 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. @@ -913,9 +992,9 @@ 2000-12-04 Daiki Ueno - * 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 @@ -1142,7 +1221,7 @@ 2000-07-12 MORIOKA Tomohiko - * FLIM-Chao: Version 1.14.1 (Rokujiz-Dò) released.-A + * FLIM-Chao: Version 1.14.1 (RokujizŽò) released. 2000-07-10 MORIOKA Tomohiko @@ -1229,8 +1308,8 @@ 2000-05-25 Tanaka Akira - * 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 * smtp.el (smtp-deduce-address-list): Set `case-fold-search' to `t' @@ -1760,7 +1839,7 @@ 1999-05-31 MORIOKA Tomohiko - * FLIM: Version 1.12.7 (Y-Dþzaki) released.-A + * FLIM: Version 1.12.7 (YŽþzaki) released. 1999-05-31 MORIOKA Tomohiko @@ -1935,7 +2014,7 @@ 1999-05-11 MORIOKA Tomohiko - * FLIM: Version 1.12.6 (Family-K-Dòenmae) released.-A + * FLIM: Version 1.12.6 (Family-KŽòenmae) released. 1999-04-27 Shuhei KOBAYASHI @@ -2052,7 +2131,7 @@ 1999-01-23 MORIOKA Tomohiko - * FLIM: Version 1.12.3 (Kintetsu-K-Dòriyama) released.-A + * FLIM: Version 1.12.3 (Kintetsu-KŽòriyama) released. 1999-01-23 MORIOKA Tomohiko @@ -2095,7 +2174,7 @@ 1999-01-21 MORIOKA Tomohiko - * FLIM: Version 1.12.2 (Kuj-Dò) released.-A + * FLIM: Version 1.12.2 (KujŽò) released. 1999-01-16 MORIOKA Tomohiko @@ -2281,7 +2360,7 @@ 1998-12-02 MORIOKA Tomohiko - * FLIM: Version 1.12.1 (Nishinoky-Dò) released.-A + * FLIM: Version 1.12.1 (NishinokyŽò) released. 1998-11-30 MORIOKA Tomohiko @@ -2499,7 +2578,7 @@ 1998-10-26 MORIOKA Tomohiko - * FLIM: Version 1.11.2 (Heij-Dò) was released.-A + * FLIM: Version 1.11.2 (HeijŽò) was released. * NEWS (Abolish variable `mime-temp-directory'): New subsection. @@ -2779,7 +2858,7 @@ 1998-10-12 MORIOKA Tomohiko - * FLIM: Version 1.10.4 (Shin-H-Dòsono) was released.-A + * FLIM: Version 1.10.4 (Shin-HŽòsono) was released. 1998-10-12 Katsumi Yamaoka @@ -2964,7 +3043,7 @@ 1998-09-29 MORIOKA Tomohiko - * FLIM: Version 1.10.0 (K-Dòdo) was released.-A + * FLIM: Version 1.10.0 (KŽòdo) was released. * README.en (What's FLIM): Add mel-ccl.el. @@ -3251,7 +3330,7 @@ 1998-08-31 MORIOKA Tomohiko - * FLIM: Version 1.9.1 (Tonosh-Dò) was released.-A + * FLIM: Version 1.9.1 (TonoshŽò) was released. * mime-en.sgml (mm-backend): Translate a little. @@ -3394,7 +3473,7 @@ 1998-07-07 MORIOKA Tomohiko - * FLIM-Chao: Version 1.8.0 (Shij-Dò) was released.-A + * FLIM-Chao: Version 1.8.0 (ShijŽò) was released. 1998-07-07 MORIOKA Tomohiko @@ -3506,7 +3585,7 @@ 1998-07-01 MORIOKA Tomohiko - * FLIM: Version 1.8.0 (-DÒkubo) was released.-A + * FLIM: Version 1.8.0 (ŽÒkubo) was released. * README.en: Delete `How to use'. @@ -3631,7 +3710,7 @@ 1998-06-28 MORIOKA Tomohiko - * FLIM-Chao: Version 1.7.0 (Goj-Dò) was released.-A + * FLIM-Chao: Version 1.7.0 (GojŽò) was released. 1998-06-26 MORIOKA Tomohiko @@ -3890,7 +3969,7 @@ 1998-06-19 MORIOKA Tomohiko - * FLIM: Version 1.4.1 (Momoyama-Gory-Dòmae) was released.-A + * FLIM: Version 1.4.1 (Momoyama-GoryŽòmae) was released. 1998-06-18 MORIOKA Tomohiko @@ -4010,7 +4089,7 @@ 1998-05-06 MORIOKA Tomohiko - * FLIM: Version 1.2.0 (J-Dþjò) was released.-A + * FLIM: Version 1.2.0 (JŽþjŽò) was released. * README.en (What's FLIM): Delete description about std11-parse.el; add description about mailcap.el. @@ -4061,7 +4140,7 @@ 1998-05-05 MORIOKA Tomohiko - * FLIM: Version 1.1.0 (T-Dòji) was released.-A + * FLIM: Version 1.1.0 (TŽòji) was released. 1998-05-04 MORIOKA Tomohiko @@ -4097,7 +4176,7 @@ 1998-04-17 MORIOKA Tomohiko - * FLIM: Version 1.0.1 (Ky-Dòto) was released.-A + * FLIM: Version 1.0.1 (KyŽòto) was released. * mime-def.el (mime-spadework-module-version-string): New constant. diff --git a/FLIM-ELS b/FLIM-ELS index 529c5dd..dbf9c6d 100644 --- 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 --- 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 () diff --git a/Makefile b/Makefile index 68ae4b1..3b0c7fb 100644 --- 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 --- a/VERSION +++ b/VERSION @@ -4,55 +4,62 @@ ;;------------------------------------------------------------------------- ;; Kinki Nippon Railway $(B6a5&F|K\E4F;(B http://www.kintetsu.co.jp/ -;; Ky-Dòto Line-A $(B5~ET@~(B +;; Ky.DŽòto Line $(B5~ET@~(B ;;------------------------------------------------------------------------- -1.0.1 Ky-Dòto-A $(B5~ET(B ; <=> JR, $(B5~ET;T8rDL6I(B -1.1.0 T-Dòji-A $(BEl;{(B -1.2.0 J-Dþjò-A $(B==>r(B +1.0.1 KyŽòto $(B5~ET(B ; <=> JR, $(B5~ET;T8rDL6I(B +1.1.0 TŽòji $(BEl;{(B +1.2.0 JŽþjŽò $(B==>r(B 1.2.1 Kamitobaguchi $(B>eD;1)8}(B 1.2.2 Takeda $(BC]ED(B ; = $(B5~ET;T8rDL6I(B $(B1(4]@~(B 1.3.0 Fushimi $(BIz8+(B 1.4.0 Kintetsu-Tambabashi $(B6aE4C0GH66(B ; <=> $(B5~:e(B $(BC0GH66(B -1.4.1 Momoyama-Gory-Dòmae-A $(BEm;38fNMA0(B +1.4.1 Momoyama-GoryŽòmae $(BEm;38fNMA0(B 1.5.0 Mukaijima $(B8~Eg(B 1.6.0 Ogura $(B>.AR(B 1.7.0 Iseda $(B0K@*ED(B -1.8.0 -DÒkubo-A $(BBg5WJ](B +1.8.0 ŽÒkubo $(BBg5WJ](B 1.8.1 Kutsukawa $(B5WDE@n(B 1.9.0 Terada $(B;{ED(B -1.9.1 Tonosh-Dò-A $(BIYLnAq(B +1.9.1 TonoshŽò $(BIYLnAq(B 1.9.2 Shin-Tanabe $(B?7EDJU(B -1.10.0 K-Dòdo-A $(B6=8M(B +1.10.0 KŽòdo $(B6=8M(B 1.10.1 Miyamaki $(B;0;3LZ(B 1.10.2 Kintetsu-Miyazu $(B6aE45\DE(B 1.10.3 Komada $(B9}ED(B -1.10.4 Shin-H-Dòsono-A $(B?7=K1`(B ; <=> JR $(BJRD.@~(B $(B=K1`(B +1.10.4 Shin-HŽòsono $(B?7=K1`(B ; <=> JR $(BJRD.@~(B $(B=K1`(B 1.10.5 Kizugawadai $(BLZDE@nBf(B 1.11.0 Yamadagawa $(B;3ED@n(B 1.11.1 Takanohara $(B9b$N86(B -1.11.2 Heij-Dò-A $(BJ?>k(B +1.11.2 HeijŽò $(BJ?>k(B 1.11.3 Saidaiji $(B@>Bg;{(B ; = $(B6aE4(B $(BF`NI@~(B ;;------------------------------------------------------------------------- ;; Kinki Nippon Railway $(B6a5&F|K\E4F;(B http://www.kintetsu.co.jp/ -;; Ky-Dòto Line-A $(B3`86@~(B +;; KyŽòto Line $(B3`86@~(B ;;------------------------------------------------------------------------- (Saidaiji) ($(B@>Bg;{(B) 1.12.0 Amagatsuji $(BFt%vDT(B -1.12.1 Nishinoky-Dò-A $(B@>$N5~(B -1.12.2 Kuj-Dò-A $(B6e>r(B -1.12.3 Kintetsu-K-Dòriyama-A $(B6aE474;3(B +1.12.1 NishinokyŽò $(B@>$N5~(B +1.12.2 KujŽò $(B6e>r(B +1.12.3 Kintetsu-KŽòriyama $(B6aE474;3(B 1.12.4 Tsutsui $(BE{0f(B 1.12.5 Hirahata $(BJ?C<(B ; = $(B6aE4(B $(BE7M}@~(B -1.12.6 Family-K-Dòenmae-A $(B%U%!%_%j!<8x1`A0(B -1.12.7 Y-Dþzaki-A $(B7k:j(B +1.12.6 Family-KŽòenmae $(B%U%!%_%j!<8x1`A0(B +1.12.7 YŽþzaki $(B7k:j(B 1.13.0 Iwami $(B@P8+(B 1.13.1 Tawaramoto $(BED86K\(B ; <=> $(B6aE4(B $(B@>ED86K\(B 1.13.2 Kasanui $(B3^K%(B 1.14.0 Ninokuchi $(B?7%N8}(B 1.14.1 Yagi $(BH,LZ(B ; = $(B6aE4(B $(BBg:e@~(B 1.14.2 Yagi-Nishiguchi $(BH,LZ@>8}(B -1.14.3 Unebigory-Dòmae-A $(B@&K58fNMA0(B -1.14.4 Kashiharajing-Dþ-mae-A $(B3`86?@5\A0(B ; = $(B6aE4(B $(BFnBg:e@~!"5HLn@~(B +1.14.3 UnebigoryŽòmae $(B@&K58fNMA0(B +1.14.4 KashiharajingŽþ-mae $(B3`86?@5\A0(B ; = $(B6aE4(B $(BFnBg:e@~!"5HLn@~(B + + +;;------------------------------------------------------------------------- +;; Keihan Electric Railway $(B5~:eEE5$E4F;(B http://www.keihan.co.jp/ +;; $(B3{El@~(B +;;------------------------------------------------------------------------- +1.14.5 Demachiyanagi $(B=PD.Lx(B ; <=> $(B1CEE(B [Chao Version names] @@ -65,16 +72,16 @@ ;;------------------------------------------------------------------------- 1.2.0 Takeda $(BC]ED(B ; = $(B6aE4(B $(B5~ET@~(B 1.3.0 Kuinabashi $(B$/$$$J66(B -1.4.0 J-Dþjò-A $(B==>r(B -1.6.0 Kuj-Dò-A $(B6e>r(B -1.6.1 Ky-Dòto-A $(B5~ET(B ; <=> JR, $(B6aE4(B -1.7.0 Goj-Dò-A $(B8^>r(B -1.8.0 Shij-Dò-A $(B;M>r(B ; <=> $(B:e5^(B $(B5~ET@~(B +1.4.0 JŽþjŽò $(B==>r(B +1.6.0 KujŽò $(B6e>r(B +1.6.1 KyŽòto $(B5~ET(B ; <=> JR, $(B6aE4(B +1.7.0 GojŽò $(B8^>r(B +1.8.0 ShijŽò $(B;M>r(B ; <=> $(B:e5^(B $(B5~ET@~(B 1.9.0 Karasuma Oike $(B1(4]8fCS(B ; = $(B5~ET;T8rDL6I(B $(BEl@>@~(B 1.10.0 Marutamach $(B4]B@D.(B 1.11.0 Imadegawa $(B:#=P@n(B 1.11.1 Kuramaguchi $(B0HGO8}(B -1.11.2 Kita-Dòji-A $(BKLBgO)(B +1.11.2 KitaŽòji $(BKLBgO)(B 1.11.3 Kitayama $(BKL;3(B 1.11.4 Matugasaki $(B>>%v:j(B 1.11.5 Kokusaikaikan $(B9q:]2q4[(B @@ -83,10 +90,10 @@ ;; West Japan Railway $(B@>F|K\N95RE4F;(B http://www.westjr.co.jp/ ;; Nara Line $(BF`NI@~(B ;;------------------------------------------------------------------------- -1.12.0 [JR] Ky-Dòto-A $(B5~ET(B ; <=> $(B6aE4(B, $(B5~ET;T8rDL6I(B -1.12.1 T-Dòfukuji-A $(BElJ!;{(B ; <=> $(B5~:e(B +1.12.0 [JR] KyŽòto $(B5~ET(B ; <=> $(B6aE4(B, $(B5~ET;T8rDL6I(B +1.12.1 TŽòfukuji $(BElJ!;{(B ; <=> $(B5~:e(B 1.12.2 Inari $(B0p2Y(B 1.13.0 JR Fujinomori JR $(BF#?9(B 1.14.0 Momoyama $(BEm;3(B -1.14.1 Rokujiz-Dò-A $(BO;COB"(B +1.14.1 RokujizŽò $(BO;COB"(B ------ Kohata $(BLZH((B diff --git a/eword-encode.el b/eword-encode.el index 694ed57..8d24b64 100644 --- a/eword-encode.el +++ b/eword-encode.el @@ -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 ;; 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 --- 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 --- 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)))) diff --git a/mime-def.el b/mime-def.el index 113c548..16fe95e 100644 --- a/mime-def.el +++ b/mime-def.el @@ -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) diff --git a/mime-en.sgml b/mime-en.sgml index 4e8dcad..50b57d0 100644 --- a/mime-en.sgml +++ b/mime-en.sgml @@ -1,6 +1,6 @@ -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 $B4XO"5!G=$K4X$9$k(B group. +The group associated with functions related to MIME. <p> -<code>mail</code> $B$H(B <code>news</code> $B$KB0$9$k!#(B +It belongs to <code>mail</code> and <code>news</code>. </define> -<defvar name="mime-temp-directory"> -<p> -MIME $B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k(B file $B$r:n@.$9$k(B directory. -<p> -$B4D6-JQ?t(B <code>MIME_TMP_DIR</code>, <code>TM_TMP_DIR</code>, -<code>TMPDIR</code>, <code>TMP</code> $B$b$7$/$O(B <code>TEMP</code> $B$,@_Dj(B -$B$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$FMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"(B -<code>"/tmp/"</code> $B$rMQ$$$k!#(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 $B$N(B file $B$O(B CVS $B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G(B -$B?7$N(B FLIM $B$rF~<j$9$k$3$H$,$G$-$^$9!'(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 $B$N(B file $B$O(B CVS $B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K </verb> <p> -CVS $B$rMQ$$$?3+H/$K;22C$7$?$$J}$O(B +If you would like to join CVS based development, please send mail to <ul> <li> <mail>cvs@cvs.m17n.org</mail> </ul> <noindent> -$B$^$G!"%"%+%&%s%HL>$H(B ssh $B$N8x3+80$rAw$C$F$/$@$5$$!#(Bssh $B7PM3$G$O!"(B -cvsroot $B$O(B :ext:cvs@cvs.m17n.org:/cvs/root $B$H$J$j$^$9!#(B +with your account name and your public key for ssh. +cvsroot is :ext:cvs@@cvs.m17n.org:/cvs/root. <p> -$B$I$&$7$F$b(B ssh $B$,;H$($J$$>l9g!"(Bpserver $B7PM3$G$b3+H/$K;22C$G$-$^$9!#(B -$B$3$N>l9g!"(BUNIX $B$N(B /etc/passwd $BMM<0$G0E9f2=$5$l$?%Q%9%o!<%I$rAw$C$F2<$5$$!#(B -$B$3$N>l9g(B cvsroot $B$O(B :pserver:<$B%"%+%&%s%HL>(B>@cvs.m17n.org:/cvs/root $B$H$J$j$^$9!#(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 diff --git a/mime-en.texi b/mime-en.texi index 9d27c0e..e04f744 100644 --- a/mime-en.texi +++ b/mime-en.texi @@ -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 $B4XO"5!G=$K4X$9$k(B group.@refill +The group associated with functions related to MIME.@refill -@code{mail} $B$H(B @code{news} $B$KB0$9$k!#(B +It belongs to @code{mail} and @code{news}. @end deffn -@defvar mime-temp-directory - -MIME $B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k(B file $B$r:n@.$9$k(B -directory.@refill - -$B4D6-JQ?t(B @code{MIME_TMP_DIR}, @code{TM_TMP_DIR}, @code{TMPDIR}, -@code{TMP} $B$b$7$/$O(B @code{TEMP} $B$,@_Dj$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$F(B -$BMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"(B@code{"/tmp/"} $B$rMQ$$$k!#(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 $B$N(B file $B$O(B CVS $B$r;H$C$F4IM}$5$l$F$$$^$9!#$3$N$?$a!"0J2<$NJ}K!$G:G(B -$B?7$N(B FLIM $B$rF~<j$9$k$3$H$,$G$-$^$9!'(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 $B$rMQ$$$?3+H/$K;22C$7$?$$J}$O(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 -$B$^$G!"(Baccount $BL>$H(B UNIX $B$N(B passwd $B$HF1$87A<0$N(B crypt $B2=$5$l$?(B password -$B$r1h$($F8fO"Mm$/$@$5$$!#(B +with your account name and your public key for ssh. +cvsroot is :ext:cvs@@cvs.m17n.org:/cvs/root. @node History, , CVS, Appendix diff --git a/mime-ja.sgml b/mime-ja.sgml index e4bc50b..e68a09e 100644 --- a/mime-ja.sgml +++ b/mime-ja.sgml @@ -1,6 +1,6 @@ <!doctype sinfo system> <head> -<title>FLIM 1.12 MIME $B5!G=@bL@=q(B +<title>FLIM 1.14 MIME $B5!G=@bL@=q(B <author>$B<i2,(B $BCNI'(B <mail>morioka@jaist.ac.jp</mail> <date>1999-01-27 @@ -900,11 +900,11 @@ header separator $B$H$7$FMQ$$$i$l$k!#(B <p> Header $B$r(B network $BI=8=$KId9f2=$9$k!#(B <p> -$B3F(B field $B$O(B <code>eword-field-encoding-method-alist</code> $B$G;XDj$5$l(B +$B3F(B field $B$O(B <code>mime-field-encoding-method-alist</code> $B$G;XDj$5$l(B $B$?J}<0$GId9f2=$5$l$k!#(B </defun> -<defvar name="eword-field-encoding-method-alist"> +<defvar name="mime-field-encoding-method-alist"> <p> Field $B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[(B list$B!#3F(B element $B$O(B (FIELD . METHOD) $B$NMM$K$J$C$F$$$k!#(B @@ -932,16 +932,6 @@ MIME $B4XO"5!G=$K4X$9$k(B group. <code>mail</code> $B$H(B <code>news</code> $B$KB0$9$k!#(B </define> -<defvar name="mime-temp-directory"> -<p> -MIME $B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k(B file $B$r:n@.$9$k(B directory. -<p> -$B4D6-JQ?t(B <code>MIME_TMP_DIR</code>, <code>TM_TMP_DIR</code>, -<code>TMPDIR</code>, <code>TMP</code> $B$b$7$/$O(B <code>TEMP</code> $B$,@_Dj(B -$B$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$FMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"(B -<code>"/tmp/"</code> $B$rMQ$$$k!#(B -</defvar> - <h1> $BIUO?(B <node> Appendix diff --git a/mime-ja.texi b/mime-ja.texi index 939e3a3..c7520bd 100644 --- a/mime-ja.texi +++ b/mime-ja.texi @@ -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 $B5!G=@bL@=q(B} +@settitle{FLIM 1.14 MIME $B5!G=@bL@=q(B} @titlepage -@title FLIM 1.12 MIME $B5!G=@bL@=q(B +@title FLIM 1.14 MIME $B5!G=@bL@=q(B @author $B<i2,(B $BCNI'(B <morioka@@jaist.ac.jp> @subtitle 1999-01-27 @end titlepage @node Top, Introduction, (dir), (dir) -@top FLIM 1.12 MIME $B5!G=@bL@=q(B +@top FLIM 1.14 MIME $B5!G=@bL@=q(B @ifinfo @@ -997,12 +997,12 @@ Header $BCf$N(B encoded-word $B$rI|9f$9$k!#(B@refill Header $B$r(B network $BI=8=$KId9f2=$9$k!#(B@refill -$B3F(B field $B$O(B @code{eword-field-encoding-method-alist} $B$G;XDj$5$l$?J}<0$G(B +$B3F(B field $B$O(B @code{mime-field-encoding-method-alist} $B$G;XDj$5$l$?J}<0$G(B $BId9f2=$5$l$k!#(B @end defun -@defvar eword-field-encoding-method-alist +@defvar mime-field-encoding-method-alist Field $B$rId9f2=$9$kJ}K!$r;XDj$9$kO"A[(B list$B!#3F(B element $B$O(B (FIELD . METHOD) $B$NMM$K$J$C$F$$$k!#(B@refill @@ -1032,18 +1032,6 @@ MIME $B4XO"5!G=$K4X$9$k(B group.@refill @end deffn -@defvar mime-temp-directory - -MIME $B5!G=$K4X$9$k<BAu$,0l;~E*$K;HMQ$9$k(B file $B$r:n@.$9$k(B -directory.@refill - -$B4D6-JQ?t(B @code{MIME_TMP_DIR}, @code{TM_TMP_DIR}, @code{TMPDIR}, -@code{TMP} $B$b$7$/$O(B @code{TEMP} $B$,@_Dj$5$l$F$$$?>l9g!"$=$l$r=i4|CM$H$7$F(B -$BMQ$$$k!#2?$b@_Dj$5$l$F$$$J$$>l9g!"(B@code{"/tmp/"} $B$rMQ$$$k!#(B -@end defvar - - - @node Appendix, Concept Index, custom, Top @chapter $BIUO?(B @@ -1541,13 +1529,13 @@ FLIM $B$N(B file $B$O(B CVS $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 $B$rMQ$$$?3+H/$K;22C$7$?$$J}$O(B @itemize @bullet @item - <cvs@cvs.m17n.org> + <cvs@@cvs.m17n.org> @end itemize @noindent -$B$^$G!"(Baccount $BL>$H(B UNIX $B$N(B passwd $B$HF1$87A<0$N(B crypt $B2=$5$l$?(B password -$B$r1h$($F8fO"Mm$/$@$5$$!#(B +$B$^$G!"%"%+%&%s%HL>$H(B ssh $B$N8x3+80$rAw$C$F$/$@$5$$!#(Bssh $B7PM3$G$O!"(B +cvsroot $B$O(B :ext:cvs@@cvs.m17n.org:/cvs/root $B$H$J$j$^$9!#(B @node History, , CVS, Appendix diff --git a/mime-parse.el b/mime-parse.el index 6f87d8f..57d2228 100644 --- a/mime-parse.el +++ b/mime-parse.el @@ -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 --- 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))) diff --git a/std11.el b/std11.el index 97f9359..6c83a72 100644 --- 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))