(provide 'wl) ; circular dependency
(require 'wl-folder)
(require 'wl-summary)
+(require 'wl-action)
(require 'wl-thread)
(require 'wl-address)
+(require 'wl-news)
(wl-draft-mode-setup)
(require 'wl-draft)
(require 'smtp)
(require 'wl-score)
(require 'wl-fldmgr)
- (require 'wl-mime))
+ (require 'wl-mime)
+ (require 'wl-spam))
(defun wl-plugged-init (&optional make-alist)
(setq elmo-plugged wl-plugged)
(wl-refile-alist-save)
(wl-folder-info-save)
(and (featurep 'wl-fldmgr) (wl-fldmgr-exit))
+ (and (featurep 'wl-spam) (wl-spam-save-status))
(elmo-crosspost-message-alist-save)
(message "Saving summary and folder status...done"))
(symbol-value 'wl-summary-subject-function))
(fset 'wl-summary-subject-filter-func-internal
(symbol-value 'wl-summary-subject-filter-function))
+ (wl-summary-define-mark-action)
+ (dolist (spec wl-summary-flag-alist)
+ (set-face-foreground
+ (make-face (intern
+ (format "wl-highlight-summary-%s-flag-face" (car spec))))
+ (nth 1 spec)))
(setq elmo-no-from wl-summary-no-from-message)
(setq elmo-no-subject wl-summary-no-subject-message)
+ (wl-news-check)
(setq wl-init t)
;; This hook may contain the functions `wl-plugged-init-icons' and
;; `wl-biff-init-icons' for reasons of system internal to accord
(run-hooks 'wl-init-hook)))
(defun wl-check-environment (no-check-folder)
- (unless wl-from (error "Please set `wl-from'"))
+ (unless wl-from (error "Please set `wl-from' to your mail address"))
;; Message-ID
- (let (from domain)
- (if wl-message-id-use-wl-from
- (if (and (setq from (wl-address-header-extract-address wl-from))
- (string-match "^\\(.*\\)@\\(.*\\)$" from))
- (setq domain (match-string 2 from))
- (error "Please set `wl-from' to get valid Message-ID string."))
- (setq domain
- (or wl-message-id-domain
- (if wl-local-domain
- (concat (system-name) "." wl-local-domain)
- (system-name)))))
- (unless (string-match "[^.]\\.[^.]" domain)
- (error "Please set `wl-local-domain' to get valid FQDN"))
- (if (string-match "@" domain)
- (error "Please remove `@' from `wl-message-id-domain'"))
- (if (string= wl-local-domain "localdomain")
- (error "Please set `wl-local-domain'"))
- (if (string= wl-message-id-domain "localhost.localdomain")
- (error "Please set `wl-message-id-domain'")))
+ (when wl-insert-message-id
+ (let ((message-id (funcall wl-message-id-function))
+ domain)
+ (unless (string-match "^<\\([^@]*\\)@\\([^@]*\\)>$" message-id)
+ (cond
+ ((string-match "@" wl-message-id-domain)
+ (error "Please remove `@' from `wl-message-id-domain'"))
+ (t
+ (error
+ "Check around `wl-message-id-function' to get valid Message-ID string"))))
+ (setq domain (match-string 2 message-id))
+ (if (or (not (string-match "[^.]\\.[^.]" domain))
+ (string= domain "localhost.localdomain"))
+ (elmo-warning
+ "Please set `wl-message-id-domain' to get valid Message-ID string."))))
;; folders
(when (not no-check-folder)
(let ((draft-folder (wl-folder-get-elmo-folder wl-draft-folder))
(queue-folder (wl-folder-get-elmo-folder wl-queue-folder))
- (trash-folder (wl-folder-get-elmo-folder wl-trash-folder))
(lost+found-folder (wl-folder-get-elmo-folder
elmo-lost+found-folder)))
- (if (not (elmo-folder-message-file-p draft-folder))
- (error "%s is not allowed for draft folder" wl-draft-folder))
(unless (elmo-folder-exists-p draft-folder)
(if (y-or-n-p
(format "Draft Folder %s does not exist, create it? "
(elmo-folder-create queue-folder)
(error "Queue Folder is not created")))
(when (not (eq no-check-folder 'wl-draft))
- (unless (elmo-folder-exists-p trash-folder)
- (if (y-or-n-p
- (format "Trash Folder %s does not exist, create it? "
- wl-trash-folder))
- (elmo-folder-create trash-folder)
- (error "Trash Folder is not created")))
(unless (elmo-folder-exists-p lost+found-folder)
(elmo-folder-create lost+found-folder)))
;; tmp dir
(defun wl-check-variables-2 ()
(if (< wl-message-buffer-cache-size 1)
- (error "`wl-message-buffer-cache-size' must be larger than 0."))
+ (error "`wl-message-buffer-cache-size' must be larger than 0"))
(when wl-message-buffer-prefetch-depth
(if (not (< wl-message-buffer-prefetch-depth
wl-message-buffer-cache-size))
(interactive "P")
(unless wl-init
(wl-load-profile)
- (wl-folder-init)
(elmo-init))
(let (demo-buf check)
(unless wl-init
(condition-case obj
(progn
(if check
- (condition-case nil
- (progn
- (message "Checking environment...")
- (wl-check-environment arg)
- (message "Checking environment...done"))
- ((error quit))))
- (message "Checking type of variables...")
- (wl-check-variables)
- (wl-check-variables-2)
- (message "Checking type of variables...done")
- (wl-plugged-init (wl-folder arg))
+ (progn
+ (message "Checking environment...")
+ (wl-check-environment arg)
+ (message "Checking environment...done")
+ (message "Checking type of variables...")
+ (wl-check-variables)
+ (wl-check-variables-2)
+ (message "Checking type of variables...done")))
+ (let ((inhibit-quit t))
+ (wl-plugged-init (wl-folder)))
(unless arg
(run-hooks 'wl-auto-check-folder-pre-hook)
(wl-folder-auto-check)
(error
(if (buffer-live-p demo-buf)
(kill-buffer demo-buf))
- (setq wl-init nil)
(signal (car obj)(cdr obj)))
(quit))
(if (buffer-live-p demo-buf)