[Mew-dist 16163] Re: 巨大メイルの送信
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
2001年 2月 5日 (月) 14:47:20 JST
From: KOIE Hidetaka (鯉江英隆) <hide at example.com>
Subject: [Mew-dist 16151] Re: 巨大メイルの送信
> なんとなく形になりました。添削していただけると幸いです。
鯉江さん、流石です。目から鱗が落ちました。ちょっとコードスタイルをいじっ
てみました。あと、1K ぐらいずつ書いてはどうでしょう? Ethernet が主流
なんだし。
というわけで、以下のようなパッチを作りました。今他のこともやっているの
で、僕は試していません。これでよいなら、b103 (b102 ではない) あたりで
マージします。
--かず
-------------- next part --------------
*** mew-smtp.el.orig Mon Feb 5 12:08:31 2001
--- mew-smtp.el Mon Feb 5 12:19:20 2001
***************
*** 17,23 ****
(defvar mew-smtp-info-list
'("status" "recipients" "messages" "error" "lock" "ssh-process" "auth"
! "string"))
(mew-info-defun "mew-smtp-" mew-smtp-info-list)
--- 17,23 ----
(defvar mew-smtp-info-list
'("status" "recipients" "messages" "error" "lock" "ssh-process" "auth"
! "string" "cont" "timer"))
(mew-info-defun "mew-smtp-" mew-smtp-info-list)
***************
*** 374,382 ****
(process-send-string pro (format "RCPT TO:<%s>%s" recipient mew-cs-eol))))
(defun mew-smtp-command-data (pro pnm)
- (process-send-string pro (format "DATA%s" mew-cs-eol)))
-
- (defun mew-smtp-command-content (pro pnm)
(widen)
(clear-visited-file-modtime)
(goto-char (point-max))
--- 374,379 ----
***************
*** 390,397 ****
(goto-char (point-min))
(while (search-forward "\n" nil t) (replace-match "\r\n" nil t))))
(set-buffer-modified-p nil)
! (process-send-region pro (point-min) (point-max))
! (process-send-string pro (format ".%s" mew-cs-eol)))
(defun mew-queue-backup (orig)
(let* ((norg (file-name-sans-extension orig))
--- 387,417 ----
(goto-char (point-min))
(while (search-forward "\n" nil t) (replace-match "\r\n" nil t))))
(set-buffer-modified-p nil)
! (mew-smtp-set-cont pnm (point-min))
! (mew-smtp-set-timer pnm nil)
! (process-send-string pro (format "DATA%s" mew-cs-eol)))
!
! (defun mew-smtp-command-content (pro pnm)
! (save-excursion
! (let ((cont (mew-smtp-get-cont pnm))
! (inc 1000) (i 0) (N 10))
! (set-buffer (process-buffer pro))
! (while (and (< cont (point-max)) (not (input-pending-p)) (< i N))
! (let ((next (min (point-max) (+ cont inc))))
! (process-send-region pro cont next)
! (setq cont next)
! (setq i (1+ i))))
! (mew-smtp-set-cont pnm cont)
! (if (< cont (point-max))
! (let ((timer
! (if (input-pending-p)
! (run-with-idle-timer 0.01 nil
! 'mew-smtp-command-content pro pnm)
! (run-at-time 0.01 nil 'mew-smtp-command-content pro pnm))))
! (mew-smtp-set-timer pnm timer))
! (mew-smtp-set-cont pnm nil)
! (mew-smtp-set-timer pnm nil)
! (process-send-string pro (format ".%s" mew-cs-eol))))))
(defun mew-queue-backup (orig)
(let* ((norg (file-name-sans-extension orig))
Mew-dist メーリングリストの案内