Function: pop3-retr

pop3-retr is a byte-compiled function defined in pop3.el.gz.

Signature

(pop3-retr PROCESS MSG CRASHBUF)

Documentation

Retrieve message-id MSG to buffer CRASHBUF.

Source Code

;; Defined in /usr/src/emacs/lisp/net/pop3.el.gz
(defun pop3-retr (process msg crashbuf)
  "Retrieve message-id MSG to buffer CRASHBUF."
  (pop3-send-command process (format "RETR %s" msg))
  (pop3-read-response process)
  (let ((start pop3-read-point) end)
    (with-current-buffer (process-buffer process)
      (while (not (re-search-forward "^\\.\r\n" nil t))
	(unless (memq (process-status process) '(open run))
	  (error "pop3 server closed the connection"))
	(pop3-accept-process-output process)
	(goto-char start))
      (setq pop3-read-point (point-marker))
      ;; this code does not seem to work for some POP servers...
      ;; and I cannot figure out why not.
      ;;      (goto-char (match-beginning 0))
      ;;      (backward-char 2)
      ;;      (if (not (looking-at "\r\n"))
      ;;	  (insert "\r\n"))
      ;;      (re-search-forward "\\.\r\n")
      (goto-char (match-beginning 0))
      (setq end (point-marker))
      (pop3-clean-region start end)
      (pop3-munge-message-separator start end)
      (with-current-buffer crashbuf
	(erase-buffer))
      (copy-to-buffer crashbuf start end)
      (delete-region start end)
      )))