-;;; ELMO POP3 folder
-(eval-and-compile
- (luna-define-class elmo-pop3-folder (elmo-net-folder)
- (use-uidl location-alist))
- (luna-define-internal-accessors 'elmo-pop3-folder))
-
-(luna-define-method elmo-folder-initialize :around ((folder
- elmo-pop3-folder)
- name)
- (let ((elmo-network-stream-type-alist
- (if elmo-pop3-stream-type-alist
- (append elmo-pop3-stream-type-alist
- elmo-network-stream-type-alist)
- elmo-network-stream-type-alist)))
- (setq name (luna-call-next-method))
- ;; Setup slots for elmo-net-folder
- (when (string-match "^\\([^:/!]*\\)\\(/[^/:@!]+\\)?\\(:[^/:@!]+\\)?" name)
- (elmo-net-folder-set-user-internal folder
- (if (match-beginning 1)
- (elmo-match-string 1 name)))
- (if (eq (length (elmo-net-folder-user-internal folder)) 0)
- (elmo-net-folder-set-user-internal folder
- elmo-pop3-default-user))
- (elmo-net-folder-set-auth-internal
- folder
- (if (match-beginning 2)
- (intern (elmo-match-substring 2 name 1))
- elmo-pop3-default-authenticate-type))
- (elmo-pop3-folder-set-use-uidl-internal
- folder
- (if (match-beginning 3)
- (string= (elmo-match-substring 3 name 1) "uidl")
- elmo-pop3-default-use-uidl)))
- (unless (elmo-net-folder-server-internal folder)
- (elmo-net-folder-set-server-internal folder
- elmo-pop3-default-server))
- (unless (elmo-net-folder-port-internal folder)
- (elmo-net-folder-set-port-internal folder
- elmo-pop3-default-port))
- (unless (elmo-net-folder-stream-type-internal folder)
- (elmo-net-folder-set-stream-type-internal
- folder
- elmo-pop3-default-stream-type))
- folder))
-
-;;; POP3 session
-(luna-define-class elmo-pop3-session (elmo-network-session) ())
+(defvar elmo-pop3-total-size nil)
+
+;; For debugging.
+(defvar elmo-pop3-debug nil
+ "Non-nil forces POP3 folder as debug mode.
+Debug information is inserted in the buffer \"*POP3 DEBUG*\"")
+
+(defvar elmo-pop3-debug-inhibit-logging nil)
+
+;;; Debug
+(defsubst elmo-pop3-debug (message &rest args)
+ (if elmo-pop3-debug
+ (with-current-buffer (get-buffer-create "*POP3 DEBUG*")
+ (goto-char (point-max))
+ (if elmo-pop3-debug-inhibit-logging
+ (insert "NO LOGGING\n")
+ (insert (apply 'format message args) "\n")))))
+
+(luna-define-class elmo-pop3-session (elmo-network-session))