Mercurial > emacs
changeset 33369:a92924d06d5b
2000-11-10 Dave Love <fx@gnu.org>
* pop3.el (pop3-version): Deleted.
(pop3-make-date): New function, avoiding message-make-date.
(pop3-munge-message-separator): Use it.
2000-11-10 ShengHuo ZHU <zsh@cs.rochester.edu>
* pop3.el (pop3-munge-message-separator): A message may have an
empty body.
author | Dave Love <fx@gnu.org> |
---|---|
date | Fri, 10 Nov 2000 11:56:06 +0000 |
parents | e2dab599ef4a |
children | 7203e43ca59f |
files | lisp/gnus/pop3.el |
diffstat | 1 files changed, 42 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/pop3.el Fri Nov 10 11:55:06 2000 +0000 +++ b/lisp/gnus/pop3.el Fri Nov 10 11:56:06 2000 +0000 @@ -6,7 +6,6 @@ ;; Author: Richard L. Pieri <ratinox@peorth.gweep.net> ;; Maintainer: FSF ;; Keywords: mail -;; Version: 1.3s ;; This file is part of GNU Emacs. @@ -38,8 +37,6 @@ (require 'mail-utils) -(defconst pop3-version "1.3s") - (defvar pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER") nil) "*POP3 maildrop.") (defvar pop3-mailhost (or (getenv "MAILHOST") nil) @@ -195,9 +192,31 @@ (forward-char))) (set-marker end nil)) +(eval-when-compile (defvar parse-time-months)) + +;; Copied from message-make-date. +(defun pop3-make-date (&optional now) + "Make a valid date header. +If NOW, use that time instead." + (require 'parse-time) + (let* ((now (or now (current-time))) + (zone (nth 8 (decode-time now))) + (sign "+")) + (when (< zone 0) + (setq sign "-") + (setq zone (- zone))) + (concat + (format-time-string "%d" now) + ;; The month name of the %b spec is locale-specific. Pfff. + (format " %s " + (capitalize (car (rassoc (nth 4 (decode-time now)) + parse-time-months)))) + (format-time-string "%Y %H:%M:%S " now) + ;; We do all of this because XEmacs doesn't have the %z spec. + (format "%s%02d%02d" sign (/ zone 3600) (/ (% zone 3600) 60))))) + (defun pop3-munge-message-separator (start end) "Check to see if a message separator exists. If not, generate one." - (if (not (fboundp 'message-make-date)) (autoload 'message-make-date "message")) (save-excursion (save-restriction (narrow-to-region start end) @@ -208,7 +227,7 @@ )) (let ((from (mail-strip-quoted-names (mail-fetch-field "From"))) (date (split-string (or (mail-fetch-field "Date") - (message-make-date)) + (pop3-make-date)) " ")) (From_)) ;; sample date formats I have seen @@ -234,7 +253,10 @@ (substring From_ (match-end 0))))) (goto-char (point-min)) (insert From_) - (re-search-forward "\n\n") + (if (search-forward "\n\n" nil t) + nil + (goto-char (point-max)) + (insert "\n")) (narrow-to-region (point) (point-max)) (let ((size (- (point-max) (point-min)))) (goto-char (point-min)) @@ -277,19 +299,21 @@ ;; TRANSACTION STATE -(defvar pop3-md5-program "md5" - "*Program to encode its input in MD5.") +(eval-and-compile + (if (fboundp 'md5) + (defalias 'pop3-md5 'md5) + (defvar pop3-md5-program "md5" + "*Program to encode its input in MD5.") -(defun pop3-md5 (string) - (with-temp-buffer - (insert string) - (call-process-region (point-min) (point-max) - (or shell-file-name "/bin/sh") - t (current-buffer) nil - "-c" pop3-md5-program) - ;; The meaningful output is the first 32 characters. - ;; Don't return the newline that follows them! - (buffer-substring (point-min) (+ (point-min) 32)))) + (defun pop3-md5 (string) + (with-temp-buffer + (insert string) + (call-process-region (point-min) (point-max) + pop3-md5-program + t (current-buffer) nil) + ;; The meaningful output is the first 32 characters. + ;; Don't return the newline that follows them! + (buffer-substring 1 33))))) (defun pop3-stat (process) "Return the number of messages in the maildrop and the maildrop's size."