(delete-process (elmo-network-session-process-internal session))))
(defun elmo-pop3-get-session (folder &optional if-exists)
+ "Get POP3 session for FOLDER.
+If IF-EXISTS is non-nil, don't get new session.
+If IF-EXISTS is `any-exists', get BIFF session or normal session if exists."
(let ((elmo-pop3-use-uidl-internal (if elmo-inhibit-number-mapping
nil
(elmo-pop3-folder-use-uidl-internal
folder))))
- (elmo-network-get-session 'elmo-pop3-session
- (concat
- (if (elmo-folder-biff-internal folder)
- "BIFF-")
- "POP3")
- folder if-exists)))
+ (if (eq if-exists 'any-exists)
+ (or (elmo-network-get-session 'elmo-pop3-session
+ "POP3"
+ folder if-exists)
+ (elmo-network-get-session 'elmo-pop3-session
+ "BIFF-POP3"
+ folder if-exists))
+ (elmo-network-get-session 'elmo-pop3-session
+ (concat
+ (if (elmo-folder-biff-internal folder)
+ "BIFF-")
+ "POP3")
+ folder if-exists))))
(defun elmo-pop3-send-command (process command &optional no-erase no-log)
(with-current-buffer (process-buffer process)
(setq session (elmo-pop3-get-session folder))
(if session
(elmo-network-close-session session)))))
- t))
+ (file-directory-p (elmo-folder-msgdb-path folder))))
(defun elmo-pop3-parse-uidl-response (string)
(let ((buffer (current-buffer))
(elmo-pop3-list-by-uidl-subr folder)
(elmo-pop3-list-by-list folder)))
-(luna-define-method elmo-folder-list-messages-internal
+(luna-define-method elmo-folder-list-messages-plugged
((folder elmo-pop3-folder) &optional nohide)
(elmo-pop3-folder-list-messages folder))
(setq end (point))
(with-current-buffer outbuf
(erase-buffer)
- (insert-buffer-substring (process-buffer process) start (- end 3))))))
+ (insert-buffer-substring (process-buffer process) start (- end 3)))
+ t)))
(luna-define-method elmo-folder-open-internal ((folder elmo-pop3-folder))
(if (and (not elmo-inhibit-number-mapping)
(when (null (setq response (elmo-pop3-read-response
process t)))
(error "Fetching message failed"))
- (setq response (elmo-pop3-read-body process outbuf)))
+ (setq response (elmo-pop3-read-body process outbuf)))
(setq elmo-pop3-total-size nil))
(unless elmo-inhibit-display-retrieval-progress
(elmo-display-progress
- 'elmo-display-retrieval-progress "" 100) ; remove progress bar.
- (message "Retrieving...done."))
+ 'elmo-display-retrieval-progress
+ "Retrieving..." 100) ; remove progress bar.
+ (message "Retrieving...done"))
(set-buffer outbuf)
(goto-char (point-min))
(while (re-search-forward "^\\." nil t)