X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fpop3.el;h=a07b80573b016346a8ab982f096a77ce0eb14e56;hb=HEAD;hp=944e2f11d6661f1113de17c390009ba28d882367;hpb=45f225ef9c444d29bef83d2b63c8cbd9746d8aaa;p=elisp%2Fgnus.git- diff --git a/lisp/pop3.el b/lisp/pop3.el index 944e2f1..a07b805 100644 --- a/lisp/pop3.el +++ b/lisp/pop3.el @@ -1,10 +1,10 @@ ;;; pop3.el --- Post Office Protocol (RFC 1460) interface -;; Copyright (C) 1996,1997 Free Software Foundation, Inc. +;; Copyright (C) 1996,1997,1998 Free Software Foundation, Inc. ;; Author: Richard L. Pieri ;; Keywords: mail, pop3 -;; Version: 1.3h +;; Version: 1.3m+ ;; This file is part of GNU Emacs. @@ -37,9 +37,9 @@ (require 'mail-utils) (provide 'pop3) -(defconst pop3-version "1.3h") +(defconst pop3-version "1.3m+") -(defvar pop3-maildrop (or user-login-name (getenv "LOGNAME") (getenv "USER") nil) +(defvar pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER") nil) "*POP3 maildrop.") (defvar pop3-mailhost (or (getenv "MAILHOST") nil) "*POP3 mailhost.") @@ -60,9 +60,6 @@ values are 'apop.") "Timestamp returned when initially connected to the POP server. Used for APOP authentication.") -(defvar pop3-movemail-file-coding-system nil - "Crashbox made by pop3-movemail with this coding system.") - (defvar pop3-read-point nil) (defvar pop3-debug nil) @@ -94,8 +91,7 @@ Used for APOP authentication.") (pop3-retr process n crashbuf) (save-excursion (set-buffer crashbuf) - (let ((coding-system-for-write pop3-movemail-file-coding-system)) - (append-to-file (point-min) (point-max) crashbox)) + (write-region-as-binary (point-min) (point-max) crashbox 'append) (set-buffer (process-buffer process)) (while (> (buffer-size) 5000) (goto-char (point-min)) @@ -118,16 +114,16 @@ Returns the process associated with the connection." (process)) (save-excursion (set-buffer process-buffer) - (erase-buffer)) + (erase-buffer) + (setq pop3-read-point (point-min)) + ) (setq process - (open-network-stream "POP" process-buffer mailhost port)) - (setq pop3-read-point (point-min)) + (open-network-stream-as-binary "POP" process-buffer mailhost port)) (let ((response (pop3-read-response process t))) (setq pop3-timestamp (substring response (or (string-match "<" response) 0) (+ 1 (or (string-match ">" response) -1))))) - process - )) + process)) ;; Support functions @@ -191,10 +187,12 @@ Return the response string if optional second argument is non-nil." (defvar pop3-read-passwd nil) (defun pop3-read-passwd (prompt) (if (not pop3-read-passwd) - (if (load "passwd" t) + (if (functionp 'read-passwd) (setq pop3-read-passwd 'read-passwd) - (autoload 'ange-ftp-read-passwd "ange-ftp") - (setq pop3-read-passwd 'ange-ftp-read-passwd))) + (if (load "passwd" t) + (setq pop3-read-passwd 'read-passwd) + (autoload 'ange-ftp-read-passwd "ange-ftp") + (setq pop3-read-passwd 'ange-ftp-read-passwd)))) (funcall pop3-read-passwd prompt)) (defun pop3-clean-region (start end) @@ -299,12 +297,17 @@ This function currently does nothing.") (while (not (re-search-forward "^\\.\r\n" nil t)) (accept-process-output process 3) ;; bill@att.com ... to save wear and tear on the heap + ;; uncommented because the condensed version below is a problem for + ;; some. (if (> (buffer-size) 20000) (sleep-for 1)) (if (> (buffer-size) 50000) (sleep-for 1)) (if (> (buffer-size) 100000) (sleep-for 1)) (if (> (buffer-size) 200000) (sleep-for 1)) (if (> (buffer-size) 500000) (sleep-for 1)) ;; bill@att.com + ;; condensed into: + ;; (sometimes causes problems for really large messages.) +; (if (> (buffer-size) 20000) (sleep-for (/ (buffer-size) 20000))) (goto-char start)) (setq pop3-read-point (point-marker)) ;; this code does not seem to work for some POP servers...