X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl.el;h=bc6af1c18a3fd9f6f63eae9bd0ac8d771fe22571;hb=c50cc4923f2b8db952b90cba5534e12a436b1a5a;hp=5575d7f9fd0b667e7b149f2ee0084c12f86bd6f4;hpb=ea969af868fd37c69e9151d73076a781825eff28;p=elisp%2Fwanderlust.git diff --git a/wl/wl.el b/wl/wl.el index 5575d7f..bc6af1c 100644 --- a/wl/wl.el +++ b/wl/wl.el @@ -703,29 +703,23 @@ Entering Plugged mode calls the value of `wl-plugged-mode-hook'." (run-hooks 'wl-init-hook))) (defun wl-check-environment (no-check-folder) - (unless wl-from (elmo-warning "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)) + (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-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) - (elmo-warning "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") - (elmo-warning "Please set `wl-local-domain' properly.")) - (if (string= domain "localhost.localdomain") - (elmo-warning - "Please set `wl-message-id-domain' to get valid Message-ID string."))) + "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)) @@ -782,13 +776,23 @@ Entering Plugged mode calls the value of `wl-plugged-mode-hook'." (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)) (error (concat "`wl-message-buffer-prefetch-depth' must be smaller than " - "`wl-message-buffer-cache-size' - 1."))))) + "`wl-message-buffer-cache-size' - 1.")))) + (let (case-fold-search) + (unless (string-match "%T" wl-summary-line-format) + (error "`wl-summary-line-format' must contain %%T and %%P")) + (unless (string-match "%P" wl-summary-line-format) + (error "`wl-summary-line-format' must contain %%T and %%P")) + (dolist (pair wl-folder-summary-line-format-alist) + (unless (string-match "%T" (cdr pair)) + (error "Format `%s' must contain %%T and %%P" (cdr pair))) + (unless (string-match "%P" (cdr pair)) + (error "Format `%s' must contain %%T and %%P" (cdr pair)))))) ;;;###autoload (defun wl (&optional arg) @@ -810,12 +814,13 @@ If ARG (prefix argument) is specified, folder checkings are skipped." (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") - (wl-plugged-init (wl-folder 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 arg))) (unless arg (run-hooks 'wl-auto-check-folder-pre-hook) (wl-folder-auto-check) @@ -824,7 +829,6 @@ If ARG (prefix argument) is specified, folder checkings are skipped." (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)