X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-vars.el;h=188629140d9584ff235aa946cd7f7a03efbf8457;hb=98f38e5383840a86e4ebca5803d505110d0997f8;hp=2a37db4cdd3d1e2d81136d8ee933bae39f6df8b2;hpb=b682c4af26cb887d22c94b60bec0af2604c74580;p=elisp%2Fwanderlust.git diff --git a/wl/wl-vars.el b/wl/wl-vars.el index 2a37db4..1886291 100644 --- a/wl/wl-vars.el +++ b/wl/wl-vars.el @@ -1,7 +1,7 @@ -;;; wl-vars.el -- Variable definitions for Wanderlust. +;;; wl-vars.el --- Variable definitions for Wanderlust. -;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi -;; Copyright (C) 1998,1999,2000 Masahiro MURATA +;; Copyright (C) 1998,1999,2000,2001 Yuuichi Teranishi +;; Copyright (C) 1998,1999,2000,2001 Masahiro MURATA ;; Author: Yuuichi Teranishi ;; Masahiro MURATA @@ -32,16 +32,20 @@ ;; (require 'elmo-vars) - -(if (module-installed-p 'custom) - (require 'custom)) +(require 'elmo-util) +(require 'custom) ;;; Customizable Variables (defgroup wl nil "Wanderlust, a news and mail reading software." :tag "Wanderlust" - :link '(custom-manual "(wl-ja)Top") + :link (` (custom-manual + (, (if (and (boundp 'current-language-environment) + (string-equal "Japanese" + (symbol-value 'current-language-environment))) + "(wl-ja)Top" + "(wl)Top")))) :group 'news :group 'mail) @@ -85,53 +89,58 @@ :prefix "wl-" :group 'wl) +(defgroup wl-setting nil + "Wanderlust common settings." + :prefix "wl-" + :group 'wl) + ;;; Emacsen (defconst wl-on-xemacs (featurep 'xemacs)) (defconst wl-on-emacs21 (and (not wl-on-xemacs) (>= emacs-major-version 21))) -(defconst wl-on-nemacs (fboundp 'nemacs-version)) - (defconst wl-on-mule (featurep 'mule)) (defconst wl-on-mule3 (and wl-on-mule (or wl-on-xemacs (> emacs-major-version 19)))) -(require 'elmo-vars) +(defconst wl-on-nemacs nil) ; backward compatibility. (eval-when-compile (defun-maybe locate-data-directory (a))) (defvar wl-cs-noconv (cond (wl-on-mule3 'binary) - (wl-on-mule '*noconv*) - (wl-on-nemacs 0) - (t nil))) + (wl-on-mule '*noconv*) + (t nil))) (defvar wl-cs-autoconv (cond (wl-on-mule3 'undecided) - (wl-on-mule '*autoconv*) - (wl-on-nemacs 2) ; junet... - (t nil))) + (wl-on-mule '*autoconv*) + (t nil))) (defvar wl-cs-local (cond (wl-on-mule3 'junet) - (wl-on-mule '*junet*) - (wl-on-nemacs 2) - (t nil))) + (wl-on-mule '*junet*) + (t nil))) (defvar wl-cs-cache wl-cs-local) (defvar wl-use-semi (module-installed-p 'mime-view) ; If nil, use tm. "*Use SEMI or not.") -(defcustom wl-from (if (boundp 'user-mail-address) - user-mail-address) +(defcustom wl-from (and user-mail-address + (concat (and (user-full-name) + (concat (elmo-address-quote-specials + (user-full-name)) + " ")) + "<" user-mail-address ">")) "*From string used in draft." - :type 'string - :group 'wl) + :type 'string + :group 'wl + :group 'wl-setting) (defcustom wl-user-mail-address-list nil "*A list of user's mail addresses. @@ -139,56 +148,187 @@ This list is used to judge whether an address is user's or not. You should set this variable if you use multiple e-mail addresses. If you don't have multiple e-mail addresses, you don't have to set this." :type '(repeat string) - :group 'wl) + :group 'wl + :group 'wl-setting) -(defcustom wl-organization nil +(defcustom wl-organization (getenv "ORGANIZATION") "Organization name." :type '(choice (const :tag "none" nil) - string) - :group 'wl) + string) + :group 'wl + :group 'wl-setting) -(defcustom wl-tmp-dir "~/tmp/" +(defcustom wl-temporary-file-directory "~/tmp/" "*Default temporary directory to save message, part." :type 'directory :group 'wl) -(defcustom wl-icon-dir (if (fboundp 'locate-data-directory) - (locate-data-directory "wl") - (let ((icons (expand-file-name "wl/icons/" - data-directory))) - (if (file-directory-p icons) - icons))) - "*Icon directory (XEmacs or Emacs 21)." +(defcustom wl-icon-directory (if (fboundp 'locate-data-directory) + (locate-data-directory "wl") + (let ((icons (expand-file-name "wl/icons/" + data-directory))) + (if (file-directory-p icons) + icons))) + "*Directory to load the icon files from, or nil if none." :type '(choice (const :tag "none" nil) string) :group 'wl) -(defcustom wl-summary-from-func 'wl-summary-default-from +(defcustom wl-summary-default-view 'thread + "Default status of summary view, thread or sequential view." + :type '(choice (const :tag "Thread" thread) + (const :tag "Sequential" sequence)) + :group 'wl-summary) + +(defcustom wl-summary-default-view-alist nil + "An alist of folder name and summary default view. +If no match, `wl-summary-default-view' is used." + :type '(repeat (cons (regexp :tag "Folder Regexp") + (choice (const :tag "Thread" thread) + (const :tag "Sequential" sequence)))) + :group 'wl-summary) + +(defvar wl-summary-mode-line-format-spec-alist + '((?f (if (memq 'modeline wl-use-folder-petname) + (wl-folder-get-petname (elmo-folder-name-internal + wl-summary-buffer-elmo-folder)) + (elmo-folder-name-internal wl-summary-buffer-elmo-folder))) + (?t (if (eq wl-summary-buffer-view 'thread) "T" "S")) + (?n wl-summary-buffer-new-count) + (?u (+ wl-summary-buffer-new-count + wl-summary-buffer-unread-count)) + (?a (length wl-summary-buffer-number-list))) + "An alist of format specifications that can appear in summary mode-lines. +Each element is a list of following: +\(SPEC STRING-EXP\) +SPEC is a character for format specification. +STRING-EXP is an expression to get string to insert.") + +(defcustom wl-summary-mode-line-format "Wanderlust: %f {%t}(%n/%u/%a)" + "*A format string for summary mode-line of Wanderlust. +It may include any of the following format specifications +which are replaced by the given information: + +%f The folder name. +%t The thread status of the summary ('T' for thread, 'S' for sequential). +%n The number of new messages. +%u The number of unread messages (includes new messages). +%a The number of all messages." + :group 'wl-summary + :type 'string) + +(defvar wl-summary-line-format-spec-alist + '((?Y (wl-summary-line-year)) + (?M (wl-summary-line-month)) + (?D (wl-summary-line-day)) + (?W (wl-summary-line-day-of-week)) + (?h (wl-summary-line-hour)) + (?m (wl-summary-line-minute)) + (?\[ (if wl-thr-linked "<" "[")) + (?\] (if wl-thr-linked ">" "]")) + (?t (or wl-thr-indent-string "")) + (?s (wl-summary-line-subject)) + (?S (wl-summary-line-size)) + (?C (if wl-thr-children-number + (concat "[+" (number-to-string wl-thr-children-number) "] ") + (if wl-parent-message-entity + (if wl-thr-linked ">>" ">") + ""))) + (?~ (if (zerop (length wl-line-string)) "" " ")) + (?c (if wl-thr-children-number + (concat "+" (number-to-string wl-thr-children-number) ":") + "")) + (?f (wl-summary-line-from)) + (?# (wl-summary-line-list-info)) + (?l (wl-summary-line-list-count)) + (?T (or wl-temp-mark " ")) + (?P (or wl-persistent-mark " ")) + (?n (wl-summary-line-number)) + (?@ (wl-summary-line-attached))) + "An alist of format specifications that can appear in summary lines. +Each element is a list of following: +\(SPEC STRING-EXP\) +SPEC is a character for format specification. +STRING-EXP is an expression to get string to insert.") + +(defcustom wl-summary-line-format "%n%T%P%M/%D(%W)%h:%m %t%[%17(%c %f%) %] %s" + "*A default format string for summary line of Wanderlust. +It may include any of the following format specifications +which are replaced by the given information: + +%n The number of the message. + The width is decided using `wl-summary-default-number-column' and + `wl-summary-number-column-alist'. +%T The temporal mark (*, D, o, O). +%P The persistent mark (status of the message). +%Y The year of the date field of the message (zero padded). +%M The month of the date field of the message (zero padded). +%D The day of the date field of the message (zero padded). +%W The weekday name of the date field of the message (zero padded). +%h The hour of the date field of the message (zero padded). +%m The minute of the date field of the message (zero padded). +%[ An open bracket. If the message thread is linked, + it is replaced with '<'. +%] A close bracket. If the message thread is linked, + it is replaced with '>'. +%c The children number of the closed message thread. + Children number is printed like '+??:'. +%C The children number of the closed message thread. + Children number is printed like '[+??] '. + If the message is opened, '>' or '>>' (linked) is displayed. +%f The from: field string of the message. +%s The subject: field string of the message. +%S The size of the message (if available). +%~ If the previous spec is not zero-length, replaced with ' '. + +If the format string contains the specifiers %( and %), the text between +them will have the specified number of columns." + :group 'wl-summary + :type 'string) + +(defcustom wl-folder-summary-line-format-alist nil + "An alist of folder name and a summary line format. +If no match, `wl-summary-line-format' is used. +e.x. + '((\"^%\" . \"%n%T%P%M/%D(%W)%h:%m %t%[%14(%c %f%) %](%S) %s\") + (\"^@2ch\" . \"%n%T%P%M%/%D/%h:%m %t[%9(%c %f%) ]%s\")))" + :type '(repeat (cons (regexp :tag "Folder Regexp") + (string :tag "line format"))) + :group 'wl-summary) + +(defcustom wl-summary-check-line-format t + "*Check summary line format change if non-nil. +When summary line format is changed, current summary cache is discarded. +It is highly recommended to set this value to t." + :type 'boolean + :group 'wl-summary) + +(defcustom wl-summary-line-format-file ".wl-summary-line-format" + "*Cache file for summary line format." + :type 'file + :group 'wl-summary) + +(defcustom wl-summary-from-function 'wl-summary-default-from "*A function for displaying sender (From: field) information." :type 'function :group 'wl-summary) -(defcustom wl-summary-subject-func 'wl-summary-default-subject +(defcustom wl-summary-subject-function 'wl-summary-default-subject "*A function for displaying subject." :type 'function :group 'wl-summary) -(defcustom wl-summary-subject-filter-func 'wl-summary-default-subject-filter +(defcustom wl-summary-subject-filter-function 'wl-summary-default-subject-filter "*A filter function for comparing subjects." :type 'function :group 'wl-summary) -(defcustom wl-summary-search-parent-by-subject-regexp "^[ \t]*\\(\\[[^:]+[,: ][0-9]+\\]\\)?[ \t]*re[\\^[: ]" +(defcustom wl-summary-search-parent-by-subject-regexp "^[ \t]*\\(\\[[^:]+[,: ][0-9]+\\]\\)?[ \t]*re[\\^[:> ]" "*If message does not have in-reply-to field nor references field and subject matches this regexp, search parent message by subject matching." :type 'string :group 'wl-summary) -(defcustom wl-summary-update-confirm-threshold 500 - "*Confirm updating summary if message number is larger than this value." - :type 'integer - :group 'wl-summary) - ;; Important folders (defcustom wl-default-folder "%inbox" "*Default folder used in `wl-summary-goto-folder'." @@ -201,7 +341,8 @@ If you don't have multiple e-mail addresses, you don't have to set this." (defcustom wl-trash-folder "+trash" "*Trash folder" :type 'string - :group 'wl) + :group 'wl + :group 'wl-setting) (defcustom wl-queue-folder "+queue" "*Queue folder" :type 'string @@ -242,7 +383,8 @@ If file exists and `wl-auto-insert-x-face' is non-nil." "*Subscribed mailing list. You had better set this variable if you set 'wl-insert-mail-followup-to' as t." :type '(repeat string) - :group 'wl-pref) + :group 'wl-pref + :group 'wl-setting) (defcustom wl-demo t "*Display demo at start time." @@ -254,14 +396,38 @@ You had better set this variable if you set 'wl-insert-mail-followup-to' as t." If nil, `wl-from' is used." :type '(choice (const :tag "Same as 'From' field." nil) string) + :group 'wl + :group 'wl-setting) + +(defcustom wl-draft-additional-header-alist nil + "*Additional headers in the draft." + :type '(repeat (cons (symbol :tag "Field Name") + (choice (string :tag "String") + (function :tag "Function"))))) + +(defcustom wl-draft-add-in-reply-to t + "*If non-nil, message-id of the cited message is inserted to the +in-reply-to field of the current draft." + :type 'boolean :group 'wl) -(defcustom wl-draft-add-references t +(defcustom wl-draft-add-references nil "*If non-nil, message-id of the cited message is inserted to the references field of the current draft." :type 'boolean :group 'wl) +(defcustom wl-draft-cite-function 'wl-default-draft-cite + "*A function for citation." + :type 'function + :group 'wl-draft) + +(defcustom wl-default-draft-cite-decorate-author t + "*If non-nil, the author of cited message is arranged by +`wl-summary-from-func-internal' in `wl-default-draft-cite'." + :type 'boolean + :group 'wl-draft) + (defcustom wl-smtp-connection-type nil "*SMTP connection type. If nil, default smtp connection type is used." @@ -273,21 +439,24 @@ If nil, default smtp connection type is used." (defcustom wl-smtp-posting-user nil "*SMTP authentication user." :type '(choice (const :tag "none" nil) - string) - :group 'wl) + string) + :group 'wl + :group 'wl-setting) (defcustom wl-smtp-posting-server nil "*SMTP server name to send mail (wl-draft-send-mail-with-smtp)." :type '(choice (const :tag "none" nil) string) - :group 'wl) + :group 'wl + :group 'wl-setting) (defcustom wl-smtp-posting-port nil "*SMTP port number in `wl-smtp-posting-server'. If nil, default SMTP port number(25) is used." :type '(choice (const :tag "Default (25)" nil) - integer) - :group 'wl) + integer) + :group 'wl + :group 'wl-setting) (defcustom wl-smtp-authenticate-type nil "*SMTP Authentication type. @@ -297,74 +466,104 @@ If nil, don't authenticate." (const :tag "CRAM-MD5" "cram-md5") (const :tag "LOGIN" "login") (string :tag "Other")) - :group 'wl) + :group 'wl + :group 'wl-setting) (defcustom wl-pop-before-smtp-user nil "*POP3 user name to send mail using POP-before-SMTP. -If nil, `elmo-default-pop3-user' is used. +If nil, `elmo-pop3-default-user' is used. To use POP-before-SMTP, -(setq wl-draft-send-mail-func 'wl-draft-send-mail-with-pop-before-smtp)" +\(setq wl-draft-send-mail-function 'wl-draft-send-mail-with-pop-before-smtp\)" :type '(choice (const :tag "none" nil) - string) - :group 'wl) + string) + :group 'wl + :group 'wl-setting) (defcustom wl-pop-before-smtp-server nil "*POP3 server for POP-before-SMTP. -If nil, `elmo-default-pop3-server' is used." +If nil, `elmo-pop3-default-server' is used." :type '(choice (const :tag "none" nil) - string) - :group 'wl) + string) + :group 'wl + :group 'wl-setting) (defcustom wl-pop-before-smtp-port nil "*POP3 port for POP-before-SMTP. -If nil, `elmo-default-pop3-port' is used." +If nil, `elmo-pop3-default-port' is used." :type '(choice (const :tag "none" nil) integer string) - :group 'wl) + :group 'wl + :group 'wl-setting) (defcustom wl-pop-before-smtp-stream-type nil "*Stream type for POP-before-SMTP. -If nil, `elmo-default-pop3-stream-type' is used." +If nil, `elmo-pop3-default-stream-type' is used." :type 'boolean :group 'wl) (defcustom wl-pop-before-smtp-authenticate-type nil "*Default Authentication type for POP-before-SMTP. -If nil, `elmo-default-pop3-authenticate-type' is used." +If nil, `elmo-pop3-default-authenticate-type' is used." :type '(choice (const :tag "none" nil) - (const :tag "APOP" "apop") - (const :tag "POP3" "user")) - :group 'wl) + (const :tag "APOP" 'apop) + (const :tag "POP3" 'user)) + :group 'wl + :group 'wl-setting) (defcustom wl-nntp-posting-server nil "*NNTP server name to post news. -If nil, `elmo-default-nntp-server' is used." +If nil, `elmo-nntp-default-server' is used." :type '(choice (const :tag "none" nil) - string) - :group 'wl) + string) + :group 'wl + :group 'wl-setting) (defcustom wl-nntp-posting-user nil "*NNTP user name to post news for authinfo. -If nil, `elmo-default-nntp-user' is used. +If nil, `elmo-nntp-default-user' is used. If nil, don't authenticate." :type '(choice (const :tag "none" nil) - string) - :group 'wl) + string) + :group 'wl + :group 'wl-setting) (defcustom wl-nntp-posting-port nil "*NNTP port to post news. -If nil, `elmo-default-nntp-port' is used." +If nil, `elmo-nntp-default-port' is used." :type '(choice (const :tag "none" nil) integer string) - :group 'wl) + :group 'wl + :group 'wl-setting) (defcustom wl-nntp-posting-stream-type nil "*Stream type for posting Netnews. -If nil, `elmo-default-nntp-stream-type' is used." +If nil, `elmo-nntp-default-stream-type' is used." :type 'boolean :group 'wl) - -(defcustom wl-fetch-confirm-threshold 30000 - "*Confirm fetching if message size is larger than this value." - :type 'integer - :group 'wl-pref) +(defcustom wl-nntp-posting-function 'elmo-nntp-post + "A function to post news. +Prepared candidate is 'elmo-nntp-post." + :type '(radio (function-item elmo-nntp-post) + (function :tag "Other")) + :group 'wl-draft) +(defcustom wl-nntp-posting-config-alist nil + "*Alist of configuration on nntp posting. +ex. +'((\",?local.test\" . \"news.media.kyoto-u.ac.jp\") + (\",?ku\\.\" . + ((server . \"news.media.kyoto-u.ac.jp\") + (user . \"newsmaster\") + (port . 119) + (function . elmo-nntp-post)) + (\".*\" . \"newsfeed.kuee.kyoto-u.ac.jp\")))" + :type '(repeat (cons (sexp :tag "Match") + (choice (string :tag "Server") + (repeat :inlie t + (cons (choice (const server) + (const user) + (const port) + (const stream-type) + (const function)) + (sexp :tag "Value")))))) + :group 'wl-draft + :group 'wl-setting) (defcustom wl-prefetch-confirm t "*Confirm prefetching if message size is larger than `wl-prefetch-threshold'." @@ -378,17 +577,14 @@ If message size is larger than this value, confirm prefetching when `wl-prefetch-confirm' is non-nil." :type '(choice (integer :tag "Threshold (bytes)") (const :tag "No limitation" nil)) - :group 'wl-pref) - -(defcustom wl-cache-prefetch-threshold 30000 - "*Quit forward cache prefetching if message size is larger than this value." - :type 'integer - :group 'wl-pref) + :group 'wl-pref + :group 'wl-setting) (defcustom wl-thread-insert-opened nil "*Non-nil forces to insert thread as opened in updating." :type 'boolean - :group 'wl-summary) + :group 'wl-summary + :group 'wl-setting) (defcustom wl-thread-open-reading-thread t "*Non-nil forces to open reading thread." @@ -456,6 +652,8 @@ reasons of system internal to accord facilities for the Emacs variants.") "A hook called when Message is displayed.") (defvar wl-message-exit-hook nil "A hook called when quit message.") +(defvar wl-summary-exit-pre-hook nil + "A hook called before exit summary mode.") (defvar wl-summary-exit-hook nil "A hook called when exit summary mode.") (defvar wl-highlight-headers-hook nil @@ -468,6 +666,10 @@ reasons of system internal to accord facilities for the Emacs variants.") "A hook called when exit wanderlust.") (defvar wl-folder-suspend-hook nil "A hook called when suspend wanderlust.") +(defvar wl-biff-notify-hook '(ding) + "A hook called when a biff-notification is invoked.") +(defvar wl-biff-unnotify-hook nil + "A hook called when a biff-notification is removed.") (defvar wl-auto-check-folder-pre-hook nil "A hook called before auto check folders.") (defvar wl-auto-check-folder-hook nil @@ -490,6 +692,10 @@ reasons of system internal to accord facilities for the Emacs variants.") "A hook called when summary line is inserted.") (defvar wl-summary-insert-headers-hook nil "A hook called when insert header for search header.") +(defvar wl-message-display-internal-hook nil + "A hook called when message buffer is created and message is displayed. +This hook may contain the functions `wl-setup-message' for +reasons of system internal to accord facilities for the Emacs variants.") (defvar wl-thread-update-children-number-hook nil "A hook called when children number is updated.") (defvar wl-folder-update-access-group-hook nil @@ -509,17 +715,17 @@ reasons of system internal to accord facilities for the Emacs variants.") "A hook called when exit plugged mode.") ;;;; functions for draft -(defcustom wl-draft-send-func 'wl-draft-normal-send-func +(defcustom wl-draft-send-function 'wl-draft-normal-send-func "A function to send message." :type 'function :group 'wl-draft) -(defcustom wl-draft-send-news-func 'wl-draft-elmo-nntp-send +(defcustom wl-draft-send-news-function 'wl-draft-elmo-nntp-send "A function to send news." :type 'function :group 'wl-draft) -(defcustom wl-draft-send-mail-func 'wl-draft-send-mail-with-smtp +(defcustom wl-draft-send-mail-function 'wl-draft-send-mail-with-smtp "A function to send mail. Prepared candidates are 'wl-draft-send-mail-with-smtp, 'wl-draft-send-mail-with-qmail and 'wl-draft-send-mail-with-pop-before-smtp." @@ -607,6 +813,12 @@ Default is for 'followup-to-me'." :type 'boolean :group 'wl-draft) +(defcustom wl-draft-delete-myself-from-bcc-fcc nil + "*Do not insert bcc or fcc if To and Cc fields is a member of +`wl-subscribed-mailing-list'" + :type 'boolean + :group 'wl-draft) + (defcustom wl-draft-resume-folder-window t "*Resume folder window in `wl-draft-hide'." :type 'boolean @@ -648,25 +860,36 @@ Default is for 'followup-to-me'." :type 'file :group 'wl) -(defcustom wl-ldap-server "localhost" +(defcustom wl-ldap-server nil "*LDAP server." - :type '(string :tag "Server") - :group 'wl) + :type '(choice (const :tag "Default server(localhost)" nil) + (string :tag "Server")) + :group 'wl + :group 'wl-setting) (defcustom wl-ldap-port nil "*LDAP port." :type '(choice (const :tag "Default port" nil) integer) - :group 'wl) + :group 'wl + :group 'wl-setting) -(defcustom wl-ldap-base "c=US" +(defcustom wl-ldap-base nil "*LDAP base." - :type '(string :tag "Base") - :group 'wl) + :type '(choice (const :tag "Default base" nil) + (string :tag "Base")) + :group 'wl + :group 'wl-setting) (defcustom wl-use-ldap nil "*If non-nil, use LDAP for address completion." :type 'boolean + :group 'wl + :group 'wl-setting) + +(defcustom wl-use-acap nil + "*If non-nil, use ACAP for configuration." + :type 'boolean :group 'wl) (defcustom wl-folder-info-save t @@ -707,15 +930,17 @@ Default is for 'followup-to-me'." :type '(string :tag "Mark") :group 'wl-summary-marks) -(defcustom wl-summary-no-mime-folder-list - (list (concat "^" (regexp-quote wl-draft-folder) "$")) +(defcustom wl-summary-no-mime-folder-list nil "*All folders that match this list don't analysis mime." :type '(repeat string) :group 'wl-summary) -(defcustom wl-summary-fix-timezone "JST" - "Non-nil forces to fix timezone of summary date." - :type 'string +(defcustom wl-summary-fix-timezone nil + "*Time zone of the date string in summary mode. +If nil, it is adjust to the default time zone information +\(system's default time zone or environment variable TZ\)." + :type '(choice (const :tag "Default time zone" nil) + string) :group 'wl-summary) (defcustom wl-summary-default-score 0 @@ -760,7 +985,7 @@ This variable is local to the summary buffers." :type '(repeat (string :tag "Mark")) :group 'wl-score) -(defcustom wl-use-scoring (not wl-on-nemacs) +(defcustom wl-use-scoring t "*If non-nil, enable scoring." :type 'boolean :group 'wl-pref) @@ -771,7 +996,7 @@ In sync-all or rescan." :type 'integer :group 'wl-score) -(defcustom wl-score-files-dir (concat elmo-msgdb-dir elmo-path-sep) +(defcustom wl-score-files-directory (concat elmo-msgdb-directory elmo-path-sep) "*Name of the directory where score files will be stored. (default \"~/.elmo\")." :type 'directory @@ -865,32 +1090,73 @@ This can either be a regular expression or list of regular expressions." :group 'wl-score) (defcustom wl-draft-fields - '("To:" "Cc:" "Bcc:" "FCC:" "Distribution:" "Organization:" + '("To:" "Cc:" "Bcc:" "Fcc:" "Distribution:" "Organization:" "Newsgroups:" "Followup-To:" "Mail-Followup-To:" "From:" "Reply-To:") "Fields used in draft mode." :type '(repeat (string :tag "Field")) :group 'wl-draft) +;; MIME Bcc. +(defcustom wl-draft-mime-bcc-field-name "Ecc" + "Field name for MIME-encapsulated Bcc." + :type '(string :tag "Field Name") + :group 'wl-draft) + +(defcustom wl-draft-mime-bcc-body nil + "Body string for MIME-encapsulated Bcc. +If nil, a string `This is a blind carbon copy.' is used." + :type '(string :tag "Body") + :group 'wl-draft) + +(defcustom wl-draft-disable-bcc-for-mime-bcc t + "Disable Bcc while MIME-encapsulated Bcc." + :type 'boolean + :group 'wl-draft) + +(defcustom wl-draft-disable-fcc-for-mime-bcc t + "Disable Fcc while MIME-encapsulated Bcc." + :type 'boolean + :group 'wl-draft) + (defcustom wl-draft-config-alist nil - "Alist of configuration field on draft. + "Alist of condition and actions for dynamical draft modification. +First element of each list is some condition for the draft buffer (regular +expression for header or elisp expression) and remaining elements indicate +actions. +If the first element is `reply' keyword, the next element be the condition +for the message being replied, and remaining elements are actions. + +The configuration is applied when `wl-draft-config-exec' is called, or +applied automatically before sending message. + ex. '((\"^To: .*wl@lists.airs.net\" - (\"From\" . wl-from2) - (\"Organization\" . wl-organization2)) - (\"^To: .*hogehoge@\" - (\"From\" . \"Anonymous \") - wl-my-draft-config-func-hoge))" + (\"From\" . my-from-address-for-wl-list) + (\"Organization\" . my-organization-for-wl-list)) + (reply + \"^To: .*hogehoge@aaa.ne.jp\" + (\"From\" . \"Alternative Address \") + my-draft-config-function-hogehoge)) + +See also variable `wl-draft-parent-folder'." :type '(repeat (list (sexp :tag "Match") (repeat :inline t (choice (cons (sexp :tag "Field(Variable)") (sexp :tag "Value")) (sexp :tag "Function"))))) - :group 'wl-draft) + :group 'wl-draft + :group 'wl-setting) (defcustom wl-draft-config-matchone nil "*If non-nil, applied only one element of `wl-draft-config-alist'." :type 'boolean + :group 'wl-draft + :group 'wl-setting) + +(defcustom wl-draft-elide-ellipsis "\n[...]\n\n" + "*The string which is inserted for elided text." + :type 'string :group 'wl-draft) (defcustom wl-template-alist nil @@ -901,7 +1167,8 @@ ex. (choice (cons (sexp :tag "Field(Variable)") (sexp :tag "Value")) (sexp :tag "Function"))))) - :group 'wl-draft) + :group 'wl-draft + :group 'wl-setting) (defcustom wl-template-visible-select t "*If non-nil, select template with visible." @@ -925,6 +1192,24 @@ ex. :group 'wl-draft :group 'wl-pref) +(defcustom wl-draft-force-queuing nil + "*Non-nil forces queued sending for mail and news." + :type 'boolean + :group 'wl-draft + :group 'wl-pref) + +(defcustom wl-draft-force-queuing-mail nil + "*Non-nil forces queued sending for mail." + :type 'boolean + :group 'wl-draft + :group 'wl-pref) + +(defcustom wl-draft-force-queuing-news nil + "*Non-nil forces queued sending for news." + :type 'boolean + :group 'wl-draft + :group 'wl-pref) + (defcustom wl-draft-use-cache nil "*If non-nil, sending message is cached." :type 'boolean @@ -985,15 +1270,23 @@ ex. :group 'wl-summary :group 'wl-highlight) +(defcustom wl-summary-lazy-highlight (boundp 'window-scroll-functions) + "Non-nil forces lazy summary highlighting using `window-scroll-functions'." + :type 'boolean + :group 'wl-summary + :group 'wl-highlight) + (defcustom wl-summary-highlight-partial-threshold 1000 - "Summary is not highlighted entirely if there are lines more than this value." + "Summary is not highlighted entirely if there are lines more than this value. +Available if only `wl-summary-lazy-highlight' is nil." :type 'integer :group 'wl-summary :group 'wl-highlight) (defcustom wl-summary-partial-highlight-above-lines 30 "If Summary has lines more than `wl-summary-highlight-partial-threshold', -Summary lines are highlighted partialy above current position." +Summary lines are highlighted partialy above current position. +Available if only `wl-summary-lazy-highlight' is nil." :type 'integer :group 'wl-summary :group 'wl-highlight) @@ -1029,12 +1322,12 @@ Summary lines are highlighted partialy above current position." :type 'file :group 'wl-summary) -(defcustom wl-print-buffer-func 'lpr-buffer +(defcustom wl-print-buffer-function 'lpr-buffer "A function to print current buffer." :type 'function :group 'wl-pref) -(defcustom wl-ps-print-buffer-func +(defcustom wl-ps-print-buffer-function (if window-system 'ps-print-buffer-with-faces 'ps-print-buffer) "A function to print current buffer with ps-print." :type 'function @@ -1074,17 +1367,28 @@ Allowed situations are: :group 'wl-summary :group 'wl-pref) +(defcustom wl-message-id-use-wl-from nil + "*Use `wl-from' for domain part of Message-ID if non-nil." + :type 'boolean + :group 'wl-pref) + (defcustom wl-local-domain nil "*Domain part of this client (without hostname). Set this if (system-name) does not return FQDN." :type '(choice (const :tag "Use System Name" nil) - string) + string) :group 'wl-pref) (defcustom wl-message-id-domain nil "*Specific domain part of Message-ID." :type '(choice (const :tag "Use System Name" nil) - string) + string) + :group 'wl-pref) + +(defcustom wl-unique-id-suffix ".wl" + "*Specific string in generated Message-ID +which appear just before @." + :type 'string :group 'wl-pref) (defcustom wl-break-pages t @@ -1092,9 +1396,42 @@ Set this if (system-name) does not return FQDN." :type 'boolean :group 'wl-pref) -(defcustom wl-message-scroll-amount 5 +(defvar wl-message-mode-line-format-spec-alist + '((?f (if (memq 'modeline wl-use-folder-petname) + (wl-folder-get-petname wl-message-buffer-cur-folder) + wl-message-buffer-cur-folder)) + (?n wl-message-buffer-cur-number)) + "An alist of format specifications for message buffer's mode-lines. +Each element is a list of following: +\(SPEC STRING-EXP\) +SPEC is a character for format specification. +STRING-EXP is an expression to get string to insert.") + +(defcustom wl-message-mode-line-format "Wanderlust: << %f / %n >>" + "*A format string for message buffer's mode-line of Wanderlust. +It may include any of the following format specifications +which are replaced by the given information: + +%f The folder name. +%n The number of the message." + :group 'wl-pref + :type 'string) + +(defcustom wl-message-truncate-lines default-truncate-lines + "*Truncate lines in Message Buffer." + :type 'boolean + :group 'wl-pref) + +(defcustom wl-draft-truncate-lines default-truncate-lines + "*Truncate lines in Draft Buffer." + :type 'boolean + :group 'wl-draft + :group 'wl-pref) + +(defcustom wl-message-scroll-amount nil "*Scroll amount by SPC key." - :type 'integer + :type '(choice (const :tag "scrolling by screenfuls" nil) + integer) :group 'wl-pref) (defcustom wl-message-window-size '(1 . 4) @@ -1104,21 +1441,55 @@ Set this if (system-name) does not return FQDN." (defcustom wl-message-sort-field-list '("Return-Path" "Received" "^To" "^Cc" "Newsgroups" "Subject" "^From") - "*Sort order of header fields. Each elements are regexp of field name. -(Not valid on tm.)" + "*Sort order of header fields. Each elements are regexp of field name." :type '(repeat (string :tag "Field Regexp")) - :group 'wl-pref) + :group 'wl-pref + :group 'wl-setting) (defcustom wl-message-ignored-field-list nil "All fields that match this list will be hidden in message buffer. Each elements are regexp of field-name." :type '(repeat (string :tag "Field Regexp")) - :group 'wl-pref) + :group 'wl-pref + :group 'wl-setting) (defcustom wl-message-visible-field-list nil "All fields that match this list will be displayed in message buffer. Each elements are regexp of field-name." :type '(repeat (string :tag "Field Regexp")) + :group 'wl-pref + :group 'wl-setting) + +(defcustom wl-message-header-button-alist + (` (("^\\(References\\|Message-Id\\|In-Reply-To\\):" + "<[^>]+>" + 0 wl-message-button-refer-article 0) + ("^[^:]+:" + "\\(<\\(url: \\)?news:\\([^>\n ]*\\)>\\)" + 1 wl-message-button-refer-article 3))) + "Alist of headers and regexps to match buttons in message headers." + :type '(repeat + (list (regexp :tag "Header") + regexp + (integer :tag "Button") + (function :tag "Callback") + (repeat :tag "Data" + :inline t + (integer :tag "Regexp group")))) + :group 'wl-pref) + +(defcustom wl-message-body-button-alist + '(("]+>" 0 'ignore 0 1024) + ("<[^>]+@[^>]+>" 0 wl-message-button-refer-article 0 1024)) + "Alist of regexps to match buttons in message body." + :type '(repeat + (list regexp + (integer :tag "Button") + (function :tag "Callback") + (repeat :tag "Data" + :inline t + (integer :tag "Regexp group")) + (integer :tag "Max Length"))) :group 'wl-pref) (defcustom wl-folder-window-width 20 @@ -1133,6 +1504,16 @@ Each elements are regexp of field-name." :group 'wl-summary :group 'wl-pref) +(defcustom wl-folder-use-frame nil + "*Use dedicated frame for folder mode if non-nil." + :type 'boolean + :group 'wl-pref) + +(defcustom wl-summary-use-frame nil + "*Use dedicated frame for each folder summary if non-nil." + :type 'boolean + :group 'wl-pref) + (defcustom wl-stay-folder-window nil "*Stay folder window when folder is selected if non-nil." :type 'boolean @@ -1144,6 +1525,12 @@ Each elements are regexp of field-name." :group 'wl-draft :group 'wl-pref) +(defcustom wl-forward-subject-prefix "Forward: " + "*Prefix of the subject of the forwarded message." + :type 'string + :group 'wl-draft + :group 'wl-pref) + (defcustom wl-draft-reply-use-address-with-full-name t "*Use address with full-name in the draft of replied message." :type 'boolean @@ -1166,14 +1553,20 @@ with wl-highlight-folder-many-face." (defcustom wl-fcc nil "*Folder Carbon Copy." :type '(choice (const :tag "disable" nil) - string) + string function) + :group 'wl-draft + :group 'wl-pref) + +(defcustom wl-fcc-force-as-read nil + "*If non-nil, mark copied message as read." + :type 'boolean :group 'wl-draft :group 'wl-pref) (defcustom wl-bcc nil "*Blind Carbon Copy." :type '(choice (const :tag "disable" nil) - string) + string) :group 'wl-draft :group 'wl-pref) @@ -1184,8 +1577,9 @@ with wl-highlight-folder-many-face." :group 'wl-pref) (defcustom wl-summary-indent-length-limit 46 - "*Limit of indent length for thread." - :type 'integer + "*Limit of indent length for thread. Nil means unlimited" + :type '(choice (const :tag "Unlimited" nil) + integer) :group 'wl-summary :group 'wl-pref) @@ -1206,7 +1600,8 @@ with wl-highlight-folder-many-face." (defcustom wl-summary-width 80 "*Set summary line width if non nil." - :type 'integer + :type '(choice (const :tag "Don't truncate" nil) + integer) :group 'wl-summary :group 'wl-pref) @@ -1224,28 +1619,22 @@ with wl-highlight-folder-many-face." (string :tag "Other")) :group 'wl-summary) -(defcustom wl-from-width 17 - "*From width in summary." - :type 'integer - :group 'wl-summary - :group 'wl-pref) - -(defcustom wl-subject-length-limit 35 - "*Subject width in summary." - :type 'integer +(defcustom wl-summary-subject-length-limit nil + "*Set subject width in summary when wl-summary-width is nil. +Nil means unlimited" + :type '(choice (const :tag "Unlimited" nil) + integer) :group 'wl-summary :group 'wl-pref) -(defcustom wl-mime-charset (if wl-on-nemacs - 'iso-2022-jp - 'x-ctext) +(defcustom wl-mime-charset 'x-ctext "*MIME Charset for summary and message." :type 'symbol :group 'wl-summary :group 'wl-pref) -(defcustom wl-generate-mailer-string-func 'wl-generate-user-agent-string - "A function to create X-Mailer field string ." +(defcustom wl-generate-mailer-string-function 'wl-generate-user-agent-string + "A function for creating User-Agent field string." :type 'function :group 'wl-draft) @@ -1257,7 +1646,7 @@ with wl-highlight-folder-many-face." (const light)) :group 'wl-highlight) -(defcustom wl-highlight-x-face-func nil +(defcustom wl-highlight-x-face-function nil "A function to display X-Face." :type 'function :group 'wl-highlight) @@ -1278,7 +1667,7 @@ might set this variable to '(\"-f\" \"you@some.where\")." :group 'wl-draft) (defcustom wl-rejected-letter-start - "^[\t ]*-+[\t ]+\\(original\\|\\(\\(the \\)?unsent\\)\\) message\\( follows\\)?[\t ]+-+[\t ]*$" + "^[\t ]*-+[\t ]+\\(\\(original\\|\\(\\(the \\)?unsent\\)\\) message\\( follows\\)?[\t ]+-+[\t ]*\\|Below this line is a copy of the message\\..*\\)$" "Regexp specifying the beginning of the wrapper around a returned letter. This wrapper is generated by the mail system when rejecting a letter." :type 'regexp @@ -1363,25 +1752,26 @@ Only IMAP4 folders have an effect." :group 'wl-folder) (defcustom wl-auto-check-folder-name nil - "*The folder specified by this variable will be automatically checked -at start time." + "*A folder, a group or a list of folders and groups specified which +will be automatically checked at the startup time." :type '(choice (string :tag "Folder") (repeat (string :tag "Folder")) (const none)) :group 'wl-folder) (defcustom wl-auto-uncheck-folder-list '("\\$.*") - "All folders that match this list won't be checked when group is -automatically checked (or desktop is checked). + "All folders that match this list won't be checked at the startup +time even if they are embedded in some groups specified by +wl-auto-check-folder-name. +Those folders are also skipped when you check on the Desktop. This value is preceded by wl-auto-check-folder-list. Each elements are regexp of folder name." :type '(repeat (regexp :tag "Folder Regexp")) :group 'wl-folder) (defcustom wl-auto-check-folder-list nil - "All folders that match this list are checked when group is -automatically checked (or desktop is checked). -This value precedes wl-auto-uncheck-folder-list. + "A list of patterns for exceptional folders against +wl-auto-uncheck-folder-list. Each elements are regexp of folder name." :type '(repeat (regexp :tag "Folder Regexp")) :group 'wl-folder) @@ -1412,12 +1802,24 @@ every intervals specified by wl-biff-check-interval." :type 'integer :group 'wl-highlight) -(defcustom wl-biff-state-indicator-on "[〒]" +(defcustom wl-biff-state-indicator-on (if (and (featurep 'xemacs) + (not (featurep 'mule))) + "[Mail]" + (decode-coding-string + ;; Youbin mark + (read "\"[\e$B\\\")\e(B]\"") + (if (boundp 'MULE) + '*iso-2022-jp* + 'iso-2022-jp))) "String used to show biff status ON." :type 'string :group 'wl-highlight) -(defcustom wl-biff-state-indicator-off "[‐]" +(defcustom wl-biff-state-indicator-off (if (and (featurep 'xemacs) + (not (featurep 'mule))) + "[--]" + ;; Japanese short hyphen + "[‐]") "String used to show biff status OFF." :type 'string :group 'wl-highlight) @@ -1441,10 +1843,11 @@ even if the value of this option is set to nil. Here are some samples: (sexp :tag "Other" :value title))) :group 'wl-highlight) -(defcustom wl-interactive-send nil +(defcustom wl-interactive-send t "*If non-nil, require your confirmation when sending draft message." :type 'boolean - :group 'wl-pref) + :group 'wl-pref + :group 'wl-setting) (defcustom wl-interactive-exit t "*If non-nil, require your confirmation when exiting WL." @@ -1457,7 +1860,8 @@ If this variable is `unread', precede \"U\", \"!\", \"N\" mark. If this variable is `new', precede \"N\" mark." :type '(radio (const new) (const unread)) - :group 'wl-summary) + :group 'wl-summary + :group 'wl-setting) (defvar wl-summary-move-direction-downward t) @@ -1471,7 +1875,14 @@ It uses wl-summary-move-direction-downward as a direction flag." (defcustom wl-auto-select-first nil "*If non-nil, display selected first message when enter summary." :type 'boolean - :group 'wl-pref) + :group 'wl-pref + :group 'wl-setting) + +(defcustom wl-auto-prefetch-first nil + "*If non-nil, prefetch selected first message when enter summary." + :type 'boolean + :group 'wl-pref + :group 'wl-setting) (defcustom wl-auto-select-next nil "*If non-nil, offer to go to the next folder from the end of the previous. @@ -1484,21 +1895,33 @@ See also variable `wl-summary-next-no-unread-command'." (const :tag "on" t) (const unread) (const skip-no-unread)) - :group 'wl-pref) + :group 'wl-pref + :group 'wl-setting) + +(defcustom wl-message-buffer-name " *WL:Message*" + "*Buffer name for message buffers." + :group 'wl-pref + :group 'wl-setting) -(defcustom wl-cache-prefetch-folder-type-list '(imap4 nntp) +(defcustom wl-message-buffer-prefetch-folder-type-list t "*All folder types that match this list prefetch next message, and reserved buffer cache." - :type '(set (const localdir) - (const localnews) - (const imap4) - (const nntp) - (const pop3) - (const archive) - (const internal)) + :type `(choice (const :tag "all" t) + (const :tag "never" nil) + (set (const localdir) + (const localnews) + (const maildir) + (const imap4) + (const nntp) + (const pop3) + (const shimbun) + (const nmz) + (const archive) + (const mark) + (const cache))) :group 'wl-pref) -(defcustom wl-cache-prefetch-folder-list nil +(defcustom wl-message-buffer-prefetch-folder-list nil "*All folders that match this list prefetch next message, and reserved buffer cache. e.x. @@ -1506,15 +1929,20 @@ e.x. :type '(repeat (regexp :tag "Folder Regexp")) :group 'wl-pref) -(defcustom wl-cache-prefetch-get-next-func 'wl-summary-default-get-next-msg - "*A function to get message number when prefetch next message." - :type 'function +(defcustom wl-message-buffer-prefetch-depth 3 + "*Depth of buffer prefetch in summary mode." + :type 'integer + :group 'wl-pref) + +(defcustom wl-message-buffer-prefetch-idle-time 0.2 + "*Idle time of buffer prefetch." + :type 'number :group 'wl-pref) -;; obsolete -;(defvar wl-no-cache-folder-list '("^\\$.*") -; "All folders that match this list won't be cached when reading messages. -;Each elements are regexp of folder name.") +(defcustom wl-message-buffer-prefetch-threshold 30000 + "*Quit forward cache prefetching if message size is larger than this value." + :type 'integer + :group 'wl-pref) (defcustom wl-summary-always-sticky-folder-list nil "All folders that match this list has sticky summary. @@ -1524,7 +1952,7 @@ Each elements are regexp of folder name." (repeat (regexp :tag "Folder Regexp"))) :group 'wl-pref) -(defcustom wl-no-save-folder-list '("^/.*$") +(defcustom wl-no-save-folder-list '("^/.*$" "^\\[.*$") "All folders that match this list won't save its msgdb. Each elements are regexp of folder name." :type '(repeat (regexp :tag "Folder Regexp")) @@ -1540,7 +1968,9 @@ Each elements are regexp of folder name." '(("^-alt\\.chinese" . big5) ("^-relcom\\." . koi8-r) ("^-tw\\." . big5) - ("^-han\\." . euc-kr)) + ("^-han\\." . euc-kr) + ("@sponichi" . shift_jis) + ("@2ch" . shift_jis)) "Charset alist. If no match, `wl-mime-charset' is used." :type '(repeat (cons (regexp :tag "Folder Regexp") (symbol :tag "Charset"))) :group 'wl-summary @@ -1620,12 +2050,25 @@ If nil, always use default." :type 'boolean :group 'wl-pref) +(defcustom wl-folder-process-duplicates-alist nil + "Specify process type of duplicated messages. +It should be a list of cons cell like: (REGEXP . TYPE) +REGEXP is a regular expression string of folder name. +TYPE is one of the symbols `hide' or `read'. +`hide' means hide duplicated messages. +`read' means mark as read duplicated messages. +If TYPE is nil, do nothing for duplicated messages." + :type '(repeat (cons (regexp :tag "Folder regexp") + (choice (const :tag "Hide" hide) + (const :tag "Mark as read" read)))) + :group 'wl-folder) + (defcustom wl-folder-move-cur-folder nil "*Non-nil, move to current folder on folder-mode when goto folder." :type 'boolean :group 'wl-folder) -(defcustom wl-folder-check-async (not wl-on-nemacs) +(defcustom wl-folder-check-async t "*Check the folder asynchronous." :type 'boolean :group 'wl-folder) @@ -1712,8 +2155,8 @@ POLICY is copy or move." :group 'wl-summary :group 'wl-pref) -(defcustom wl-folder-hierarchy-access-folders '("-" "-alt") - "*Access group folders to make hierarchy structure." +(defcustom wl-folder-hierarchy-access-folders '("^-$" "^-alt$") + "*Access group REGEXPs to make hierarchy structure." :type '(repeat (string :tag "Folder")) :group 'wl-folder) @@ -1752,7 +2195,8 @@ ex. (defcustom wl-interactive-save-folders t "*Non-nil require your confirmation when save folders." :type 'boolean - :group 'wl-folder) + :group 'wl-folder + :group 'wl-setting) (defcustom wl-fldmgr-make-backup t "*Non-nil make backup file when save folders." @@ -1764,7 +2208,7 @@ ex. :type 'string :group 'wl-folder) -(defcustom wl-fldmgr-sort-func 'wl-fldmgr-sort-standard +(defcustom wl-fldmgr-sort-function 'wl-fldmgr-sort-standard "*A function to sort folder." :type 'function :group 'wl-folder) @@ -1793,6 +2237,11 @@ ex. (string :tag "Other")) :group 'wl-folder) +(defcustom wl-fldmgr-allow-rename-access-group nil + "*If non-nil, allow to rename folder in access group." + :type 'boolean + :group 'wl-folder) + ;;; For Expire and Archive (defcustom wl-expire-alist nil @@ -1890,7 +2339,7 @@ list : reserved specified permanent marks." :group 'wl-expire) ;; for wl-expire-archive-{number1|number2|date} -(defcustom wl-expire-archive-get-folder-func +(defcustom wl-expire-archive-get-folder-function 'wl-expire-archive-get-folder "*A function to get archive folder name." :type 'function @@ -1963,22 +2412,6 @@ list : reserved specified permanent marks." :type '(repeat (cons regexp face)) :group 'wl-highlight) -(defcustom wl-highlight-message-header-button-alist - (` (("^\\(References\\|Message-Id\\|In-Reply-To\\):" "<[^>]+>" - 0 wl-message-button-refer-article 0) - ("^[^:]+:" "\\(<\\(url: \\)?news:\\([^>\n ]*\\)>\\)" - 1 wl-message-button-refer-article 3))) - "Alist of headers and regexps to match buttons in message headers." - :type '(repeat - (list (regexp :tag "Header") - regexp - (integer :tag "Button") - (function :tag "Callback") - (repeat :tag "Data" - :inline t - (integer :tag "Regexp group")))) - :group 'wl-highlight) - (defcustom wl-highlight-citation-prefix-regexp "^[>|:} ]*[>|:}]\\([^ \n>]*>\\)?\\|^[^ <\n>]*>" "All lines that match this regexp will be highlighted with @@ -2067,7 +2500,7 @@ If it is a number, only numbers will be highlighted." (const :tag "don't highlight" nil)) :group 'wl-highlight) -(defcustom wl-highlight-signature-search-func 'wl-highlight-signature-search +(defcustom wl-highlight-signature-search-function 'wl-highlight-signature-search "Function to search signature area in the message body." :type 'function :group 'wl-highlight) @@ -2083,20 +2516,22 @@ If it is a number, only numbers will be highlighted." :type 'boolean :group 'wl-pref) -(defcustom wl-demo-display-logo (or (and (featurep 'xemacs) - (if (featurep 'xpm) - 'xpm 'xbm)) - (and (module-installed-p 'image) - (if (image-type-available-p 'xpm) - 'xpm 'xbm)) - (and (module-installed-p 'bitmap) - 'xbm)) - "If non-nil, show graphic logo in the startup screen. -You can set it to a symbol `xbm' to limit the image format to -XBM even if XPM can be shown." - :type '(radio (const :tag "OFF" nil) - (const :tag "XBM (possibly BITMAP-MULE)" xbm) - (sexp :format "ON (any format)" :value t)) +(defcustom wl-demo-display-logo (if (or (featurep 'xemacs) + (module-installed-p 'image) + (module-installed-p 'bitmap)) + t) + "If it is T, show graphic logo in the startup screen. You can set it to +a symbol `bitmap', `xbm' or `xpm' in order to force the image format." + :type '(radio (const :tag "Off" nil) + (const :tag "On (any format)" t) + (const xpm) + (const xbm) + (const :tag "bitmap (using BITMAP-MULE)" bitmap)) + :group 'wl-pref) + +(defcustom wl-invalid-character-message "(WL:Invalid characters.)" + "*A string displayed when invalid character exists." + :type 'string :group 'wl-pref) ;;; Internal variables @@ -2105,7 +2540,11 @@ XBM even if XPM can be shown." ;; For disconnected operations. (defvar wl-plugged-hook nil) (defvar wl-unplugged-hook nil) -(defvar wl-plugged t) +(defcustom wl-plugged t + "*Plugged state at the startup. Nil means off-line." + :type 'boolean + :group 'wl + :group 'wl-setting) ;; Internal variables used to modeline identifiers. (defvar wl-modeline-plug-status nil) @@ -2132,7 +2571,7 @@ XBM even if XPM can be shown." (defvar wl-highlight-thread-indent-string-regexp "[^[<]*" "* A regexp string for thread indent...for highlight.") -;; folder icons. filename relative to wl-icon-dir +;; folder icons. filename relative to wl-icon-directory (defvar wl-opened-group-folder-icon "opened.xpm" "*Icon file for opened group folder.") (defvar wl-closed-group-folder-icon "closed.xpm" @@ -2157,6 +2596,10 @@ XBM even if XPM can be shown." "*Icon file for archive folder.") (defvar wl-pipe-folder-icon "pipe.xpm" "*Icon file for pipe folder.") +(defvar wl-nmz-folder-icon "nmz.xpm" + "*Icon file for namazu folder.") +(defvar wl-shimbun-folder-icon "shimbun.xpm" + "*Icon file for shimbun folder.") (defvar wl-maildir-folder-icon "maildir.xpm" "*Icon file for maildir folder.") (defvar wl-empty-trash-folder-icon "trash-e.xpm" @@ -2182,18 +2625,6 @@ XBM even if XPM can be shown." (defvar wl-prog-uudecode-no-stdout-option t "*If non-nil, uudecode program don't have option for output to stdout.") -;; Obsolete variables. for compatibility. -(defvar wl-address-filename wl-address-file) -(make-obsolete-variable 'wl-address-filename 'wl-address-file) -(defvar wl-score-default-file-name wl-score-default-file) -(make-obsolete-variable 'wl-score-default-file-name 'wl-score-default-file) -(defvar wl-draft-prepared-config-alist nil) -(make-obsolete-variable 'wl-draft-prepared-config-alist 'wl-draft-config-alist) -(defvar wl-score-files-directory wl-score-files-dir) -(make-obsolete-variable 'wl-score-files-directory 'wl-score-files-dir) -(defvar wl-summary-temp-above wl-summary-target-above) -(make-obsolete-variable 'wl-summary-temp-above 'wl-summary-target-above) - ;; plug (defvar wl-plugged-plug-on "ON") (defvar wl-plugged-plug-off "--") @@ -2202,6 +2633,77 @@ XBM even if XPM can be shown." (defvar wl-plugged-port-indent 4) (defvar wl-plugged-queue-status-column 25) +;;;; Obsolete variables. + +;; 2001-12-11: *-dir -> *-directory +(elmo-define-obsolete-variable 'wl-icon-dir + 'wl-icon-directory) +(elmo-define-obsolete-variable 'wl-mime-save-dir + 'wl-mime-save-directory) +(elmo-define-obsolete-variable 'wl-score-files-dir + 'wl-score-files-directory) +(elmo-define-obsolete-variable 'wl-tmp-dir + 'wl-temporary-file-directory) + +;; 2001-12-07 +(elmo-define-obsolete-variable 'wl-subject-length-limit + 'wl-summary-subject-length-limit) + +;; 2001-12-10 +(elmo-define-obsolete-variable 'wl-summary-update-confirm-threshold + 'elmo-folder-update-threshold) +(elmo-define-obsolete-variable 'wl-fetch-confirm-threshold + 'elmo-message-fetch-threshold) + +(elmo-define-obsolete-variable 'wl-cache-prefetch-folder-type-list + 'wl-message-buffer-prefetch-folder-type-list) +(elmo-define-obsolete-variable 'wl-cache-prefetch-folder-list + 'wl-message-buffer-prefetch-folder-list) + +;; 2001-02-27: *-func -> *-function +(elmo-define-obsolete-variable 'wl-summary-from-func + 'wl-summary-from-function) +(elmo-define-obsolete-variable 'wl-summary-subject-func + 'wl-summary-subject-function) +(elmo-define-obsolete-variable 'wl-summary-subject-filter-func + 'wl-summary-subject-filter-function) +(elmo-define-obsolete-variable 'wl-draft-send-func + 'wl-draft-send-function) +(elmo-define-obsolete-variable 'wl-draft-send-news-func + 'wl-draft-send-news-function) +(elmo-define-obsolete-variable 'wl-draft-send-mail-func + 'wl-draft-send-mail-function) +(elmo-define-obsolete-variable 'wl-print-buffer-func + 'wl-print-buffer-function) +(elmo-define-obsolete-variable 'wl-ps-print-buffer-func + 'wl-ps-print-buffer-function) +(elmo-define-obsolete-variable 'wl-generate-mailer-string-func + 'wl-generate-mailer-string-function) +(elmo-define-obsolete-variable 'wl-highlight-x-face-func + 'wl-highlight-x-face-function) +(elmo-define-obsolete-variable 'wl-fldmgr-sort-func + 'wl-fldmgr-sort-function) +(elmo-define-obsolete-variable 'wl-expire-archive-get-folder-func + 'wl-expire-archive-get-folder-function) +(elmo-define-obsolete-variable 'wl-highlight-signature-search-func + 'wl-highlight-signature-search-function) + +;; 2000-01-25: temp mark -> target mark +(elmo-define-obsolete-variable 'wl-summary-temp-above + 'wl-summary-target-above) + +;; 1999-11-07: Unified with `wl-draft-config-alist'. +(defvar wl-draft-prepared-config-alist nil) +(make-obsolete-variable 'wl-draft-prepared-config-alist + 'wl-draft-config-alist) + +;; 1999-10-10 +(elmo-define-obsolete-variable 'wl-address-filename + 'wl-address-file) +(elmo-define-obsolete-variable 'wl-score-default-file-name + 'wl-score-default-file) + + (require 'product) (product-provide (provide 'wl-vars) (require 'wl-version))