(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 (and user-mail-address
(concat (and (user-full-name)
(concat (elmo-address-quote-specials
"*A list of user's mail addresses.
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."
+If you don't have multiple e-mail addresses, you don't have to set this.
+NOTE: Non-nil value of `wl-user-mail-address-regexp' supersede this."
:type '(repeat string)
:group 'wl
:group 'wl-setting)
+(defcustom wl-user-mail-address-regexp nil
+ "*A regexp for user's mail addresses.
+Supersede `wl-user-mail-address-list'."
+ :type '(choice (const :tag "Use wl-user-mail-address-list" nil)
+ string)
+ :group 'wl
+ :group 'wl-setting)
+
(defcustom wl-organization (getenv "ORGANIZATION")
"Organization name."
:type '(choice (const :tag "none" nil)
wl-summary-buffer-elmo-folder))
(elmo-folder-name-internal wl-summary-buffer-elmo-folder)))
(?t (if (eq wl-summary-buffer-view 'thread) "T" "S"))
+ (?m (upcase (symbol-name wl-summary-buffer-display-mime-mode)))
(?n wl-summary-buffer-new-count)
- (?u (+ wl-summary-buffer-new-count
- wl-summary-buffer-unread-count))
+ (?u 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:
%f The folder name.
%t The thread status of the summary ('T' for thread, 'S' for sequential).
+%m The mime analysis status of the summary ('MIME' for MIME ON)
%n The number of new messages.
%u The number of unread messages (includes new messages).
%a The number of all messages."
%~ 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."
+them will have the specified number of columns.
+
+See also variable `wl-summary-width'."
:group 'wl-summary
:type 'string)
Its argument is a list of MARK-INFO.
MARK-INFO is a list of (NUMBER MARK DATA).
FACE is a face for highlighting."
- :type '(repeat (string :tag "Temporary mark")
- (symbol :tag "Set mark function")
- (symbol :tag "Unset mark function")
- (symbol :tag "Exec function")
- (symbol :tag "Face symbol"))
+ :type '(repeat (list
+ (string :tag "Temporary mark")
+ (symbol :tag "Action name")
+ (symbol :tag "Argument function")
+ (symbol :tag "Set mark function")
+ (symbol :tag "Exec function")
+ (symbol :tag "Face symbol")
+ (string :tag "Document string")))
:group 'wl-summary)
;; Important folders
:group 'wl)
(defcustom wl-default-spec "%"
- "*Default spec"
+ "*Default prefix for folder name initially added in minibuffer"
:type 'string
:group 'wl)
:type 'boolean
:group 'wl-pref)
+(defcustom wl-demo-icon-name-alist
+ '(((string-match "^... Dec \\([ 01][0-9]\\|2[0-5]\\)" (current-time-string))
+ .
+ (concat "wl-" (wl-version-status) "-xmas-logo"))
+ (t
+ .
+ (concat "wl-" (wl-version-status) "-logo")))
+ "An alist to determine the basename of the logo file."
+ :type '(repeat (cons (symbol :tag "condition")
+ (symbol :tag "file name")))
+ :group 'wl-pref)
+
+(defcustom wl-demo-image-filter-alist nil
+ "An alist of image type and filter function."
+ :type '(repeat (cons symbol function))
+ :group 'wl-pref)
+
(defcustom wl-envelope-from nil
"*Envelope From used in SMTP.
If nil, `wl-from' is used."
"*Additional headers in the draft."
:type '(repeat (cons (symbol :tag "Field Name")
(choice (string :tag "String")
- (function :tag "Function")))))
+ (function :tag "Function"))))
+ :group 'wl-draft)
(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."
+in-reply-to field of the current draft.
+Note: default value follows RFC2822."
:type 'boolean
- :group 'wl)
+ :group 'wl-draft)
(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."
+references field of the current draft.
+Note: default value follows RFC2822."
:type 'boolean
- :group 'wl)
+ :group 'wl-draft)
(defcustom wl-draft-cite-function 'wl-default-draft-cite
"*A function for citation."
If nil, default smtp connection type is used."
:type '(choice (const :tag "default" nil)
(const :tag "Use STARTTLS" starttls)
+ (const :tag "SMTP over SSL" ssl)
symbol)
:group 'wl)
:type '(choice (const :tag "none" nil)
(const :tag "PLAIN" "plain")
(const :tag "CRAM-MD5" "cram-md5")
+ (const :tag "DIGEST-MD5" "digest-md5")
(const :tag "LOGIN" "login")
(string :tag "Other"))
:group 'wl
:group 'wl-setting)
+(defcustom wl-smtp-authenticate-realm nil
+ "*SMTP Authentication realm.
+If you don't need to specify realm, set as nil."
+ :type '(choice (const :tag "none" nil)
+ string)
+ :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-pop3-default-user' is used.
(defcustom wl-pop-before-smtp-stream-type nil
"*Stream type for POP-before-SMTP.
If nil, `elmo-pop3-default-stream-type' is used."
- :type 'boolean
+ :type '(choice (const :tag "Use `elmo-pop3-default-stream-type'" nil)
+ symbol)
:group 'wl)
(defcustom wl-pop-before-smtp-authenticate-type nil
(defcustom wl-nntp-posting-stream-type nil
"*Stream type for posting Netnews.
If nil, `elmo-nntp-default-stream-type' is used."
- :type 'boolean
+ :type '(choice (const :tag "Use `elmo-nntp-default-stream-type'" nil)
+ symbol)
:group 'wl)
(defcustom wl-nntp-posting-function 'elmo-nntp-post
"A function to post news.
:type 'boolean
:group 'wl-summary)
+(defcustom wl-additional-search-condition-fields nil
+ "*A list of field name which is used for candidates of search condition."
+ :type '(repeat (string :tag "Field name"))
+ :group 'wl-pref
+ :group 'wl-setting)
+
;;;; Hooks
(defvar wl-folder-mode-hook nil
"A hook called when wanderlust folder mode is started.
reasons of system internal to accord facilities for the Emacs variants.")
(defvar wl-hook nil
"A hook called when Wanderlust is invoked.")
-(defvar wl-reply-hook nil
- "A hook called when replied.")
+
+(defvar wl-draft-reply-hook
+ '((lambda () (wl-draft-setup-parent-flag 'answered)))
+ "A hook called when replied.
+This hook runs on the draft buffer.")
+
+(defvar wl-draft-forward-hook
+ '((lambda () (wl-draft-setup-parent-flag 'forwarded)))
+ "A hook called when forwarded.
+This hook runs on the draft buffer.")
+
+(defvar wl-draft-kill-pre-hook nil
+ "A hook called just before the draft buffer is killed.")
+
+(defvar wl-summary-reply-hook nil
+ "A hook called when `wl-summary-reply' is called.
+This hook runs on the summary buffer.")
+
+(defvar wl-summary-forward-hook nil
+ "A hook called when `wl-summary-forward' is called.
+This hook runs on the summary buffer.")
+
+(defvar wl-summary-resend-hook nil
+ "A hook runs on the resent message buffer before sending process starts.")
+
(defvar wl-mail-setup-hook nil
"A hook called when Draft is prepared.")
(defvar wl-draft-reedit-hook '(wl-draft-remove-text-plain-tag)
(function :tag "Other"))
:group 'wl-draft)
+(defcustom wl-draft-send-confirm-type 'y-or-n-p
+ "*Confirmation type or function to use when send a message."
+ :type '(choice
+ (const :tag "y or n with scroll (j/k)" scroll-by-j/k)
+ (const :tag "y or n with scroll (SPC/BS)" scroll-by-SPC/BS)
+ (function-item y-or-n-p)
+ (function-item yes-or-no-p)
+ (function :tag "Other function"))
+ :group 'wl-draft)
+
(defcustom wl-draft-reply-with-argument-list
'(("From" . (("Reply-To" "Mail-Reply-To" "From")
("Mail-Followup-To" "To" "Cc")
("Followup-To" "Newsgroups"))))
"Alist of cons cell of
-\('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
-'field-name' is a string.
+\('condition' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
+'condition' is a header name string (non-nil if the header exists in original
+message), a function (evaluated in original message buffer) or a list of those
+\(means 'AND' condition).
'fields for ***' is a list of strings.
-If car of each cons cell exists in original message,
-cdr of each cons cell is used for draft message.
+If car of each cons cell returns non-nil value,
+cdr of each cons cell is used for preparing headers of draft message.
Default is for 'reply-to-all'."
:type '(repeat (cons (choice (string :tag "Field Name")
- (repeat (string :tag "Field Name")))
+ (symbol :tag "Function")
+ (const :tag "Replying to self" wl-draft-self-reply-p)
+ (repeat :tag "AND"
+ (choice (string :tag "Field Name")
+ (symbol :tag "Function")
+ (const :tag "Replying to self" wl-draft-self-reply-p))))
(list (repeat :tag "Fields For To" string)
(repeat :tag "Fields For Cc" string)
(repeat :tag "Fields For Newsgroups" string))))
(wl-draft-self-reply-p . (("To") ("Cc") nil))
("From" . (("From") ("To" "Cc") nil)))
"Alist of cons cell of
-\('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
-'field-name' is a string.
+\('condition' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
+'condition' is a header name string (non-nil if the header exists in original
+message), a function (evaluated in original message buffer) or a list of those
+\(means 'AND' condition).
'fields for ***' is a list of strings.
-If car of each cons cell exists in original message,
-cdr of each cons cell is used for draft message."
+If car of each cons cell returns non-nil value,
+cdr of each cons cell is used for preparing headers of draft message."
:type '(repeat (cons (choice (string :tag "Field Name")
- (repeat (string :tag "Field Name")))
+ (symbol :tag "Function")
+ (const :tag "Replying to self" wl-draft-self-reply-p)
+ (repeat :tag "AND"
+ (choice (string :tag "Field Name")
+ (symbol :tag "Function")
+ (const :tag "Replying to self" wl-draft-self-reply-p))))
(list (repeat :tag "Fields For To" string)
(repeat :tag "Fields For Cc" string)
(repeat :tag "Fields For Newsgroups" string))))
:group 'wl-draft)
(defcustom wl-draft-always-delete-myself nil
- "*Always delete myself from reciepient if non-nil."
+ "*Always delete myself from recipient if non-nil."
:type 'boolean
:group 'wl-draft)
:type 'boolean
:group 'wl-folder)
+(defcustom wl-summary-persistent-mark-priority-list '(killed
+ flag
+ new
+ answered
+ forwarded
+ unread)
+ "List of preserved flag symbols to define the priority to map \
+to the persistent mark.
+Special symbol `flag' means the user defined flag."
+ :type '(repeat (symbol :tag "preserved flag"))
+ :group 'wl-summary)
+
+(defcustom wl-summary-flag-alist
+ '((important "orange"))
+ "An alist to define the global flags for the summary mode.
+Each element is a form like:
+\(SYMBOL-OF-FLAG COLOR [MARK]\)
+Example:
+\((important \"orange\"\)
+ \(todo \"red\" \"T\"\)
+ \(business \"green\" \"B\"\)
+ \(private \"blue\"\)\)"
+ :type '(repeat (list (symbol :tag "flag")
+ (string :tag "color")
+ (choice (string :tag "mark")
+ (const :tag "Default mark" nil))))
+ :group 'wl-summary)
+
+(defcustom wl-summary-killed-mark "X"
+ "Mark for killed message."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-uncached-mark "!"
+ "Mark for uncached message with no flag."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-new-uncached-mark "N"
+ "Mark for new and uncached message."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-new-cached-mark "n"
+ "Mark for new but already cached message."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-unread-uncached-mark "U"
+ "Mark for unread and uncached message."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-unread-cached-mark "u"
+ "Mark for unread but already cached message."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-answered-cached-mark "a"
+ "Mark for answered and cached message."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-answered-uncached-mark "A"
+ "Mark for answered but uncached message."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
+(defcustom wl-summary-flag-mark "$"
+ "Mark for the messages which have tags."
+ :type '(string :tag "Mark")
+ :group 'wl-summary-marks)
+
(defcustom wl-summary-score-over-mark "+"
"Score mark used for messages with high scores."
:type '(string :tag "Mark")
:group 'wl-summary-marks)
(defcustom wl-summary-no-mime-folder-list nil
- "*All folders that match this list don't analysis mime."
+ "*All folders that match this list don't analyze mime."
:type '(repeat string)
:group 'wl-summary)
+(defcustom wl-summary-display-mime-mode-list '(mime as-is)
+ "*Display mime mode list toggled by `wl-summary-toggle-mime'.
+Candidates are following:
+`mime' ... header and body are decoded
+`header-only' ... only header is decoded
+`as-is' ... header and body are not decoded"
+ :type '(repeat (choice (const :tag "MIME" mime)
+ (const :tag "HEADER-ONLY" header-only)
+ (const :tag "AS-IS" as-is)))
+ :group 'wl-summary)
+
(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
string)
:group 'wl-summary)
+(defcustom wl-summary-message-ring-max 16
+ "*Maximum size of message ring on summary buffer.
+Start discarding off end if gets this big."
+ :type 'integer
+ :group 'wl-summary)
+
(defcustom wl-summary-default-score 0
"*Default message score level.
All scores generated by the score files will be added to this score.
:group 'wl-score)
(defcustom wl-summary-score-marks
- (list elmo-msgdb-new-mark)
+ (list wl-summary-new-uncached-mark wl-summary-new-cached-mark)
"Persistent marks to scoring."
:type '(repeat (string :tag "Mark"))
:group 'wl-score)
(defcustom wl-score-files-directory (concat elmo-msgdb-directory elmo-path-sep)
"*Name of the directory where score files will be stored.
-(default \"~/.elmo\")."
+\(default \"~/.elmo\")."
:type 'directory
:group 'wl)
(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")
+ :type '(choice (const :tag "default" nil)
+ (string :tag "Body"))
:group 'wl-draft)
(defcustom wl-draft-disable-bcc-for-mime-bcc t
:group 'wl-draft)
(defcustom wl-template-alist nil
- "Alist of template."
+ "Alist of template.
+First element of each list is a string specifies the name of the template.
+Remaining elements indicate actions. The format of actions is same as that
+of `wl-draft-config-alist'."
:type '(repeat (list (string :tag "Name")
(repeat
:inline t
(const "Newsgroups")
(const "Subject")
(string :tag "Header Name")))
+ (const :tag "Top of body" body)
+ (const :tag "Bottom of body" bottom)
+ (const :tag "Top of header" top)
(const "To")
(const "Newsgroups")
(const "Subject")
(defcustom wl-draft-sendlog-max-size 20000
"*Max file size of sendlog."
- :type 'integer
+ :type '(choice (const :tag "Unlimited" nil)
+ integer)
:group 'wl-draft)
(defcustom wl-summary-default-number-column 5
:group 'wl-summary
:group 'wl-highlight)
+(defcustom wl-summary-lazy-update-mark (boundp 'window-scroll-functions)
+ "Non-nil forces lazy update mark using `window-scroll-functions'."
+ :type 'boolean
+ :group 'wl-summary)
+
(defcustom wl-summary-cache-use t
"Non-nil forces wl-summary to use cache file."
:type 'boolean
:type 'boolean
:group 'wl-pref)
+(defcustom wl-message-auto-reassemble-message/partial nil
+ "*Reassemble message/partial messages automatically on show when non-nil."
+ :type 'boolean
+ :group 'wl-pref)
+
+(defcustom wl-message-use-header-narrowing t
+ "Use header narrowing when non-nil."
+ :type 'boolean
+ :group 'wl-pref)
+
+(defcustom wl-message-header-narrowing-fields '("to" "cc")
+ "A list of field name to enable header narrowing."
+ :type '(repeat string)
+ :group 'wl-pref)
+
+(defcustom wl-message-header-narrowing-lines 4
+ "Line number to enable the header narrowing."
+ :type 'integer
+ :group 'wl-pref)
+
+(defcustom wl-message-header-narrowing-string "..."
+ "A string used for header narrowing truncation."
+ :type 'string
+ :group 'wl-pref)
+
(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))
+ (?m (upcase (symbol-name
+ (wl-message-display-type-property
+ wl-message-buffer-cur-display-type
+ :mime))))
+ (?F wl-message-buffer-flag-indicator)
(?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 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 >>"
+(defcustom wl-message-mode-line-format "Wanderlust: << %f / %n %F>> [%m]"
"*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."
+%n The number of the message.
+%m The MIME analysis status.
+%F The global flag indicator."
:group 'wl-pref
:type 'string)
(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."
+Each elements are regexp of field-name.
+You can specify exceptions by `wl-message-visible-field-list'."
:type '(repeat (string :tag "Field Regexp"))
: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."
+Each elements are regexp of field-name.
+This variable overwhelm `wl-message-ignored-field-list' settings."
:type '(repeat (string :tag "Field Regexp"))
:group 'wl-pref
:group 'wl-setting)
(defcustom wl-message-header-button-alist
(` (("^\\(References\\|Message-Id\\|In-Reply-To\\):"
- "<[^>]+>"
+ "<[^>\n ]+>"
0 wl-message-button-refer-article 0)
("^[^:]+:"
"\\(<\\(url: \\)?news:\\([^>\n ]*\\)>\\)"
(defcustom wl-message-body-button-alist
'(("<mailto:[^>]+>" 0 'ignore 0 1024)
- ("<[^>]+@[^>]+>" 0 wl-message-button-refer-article 0 1024))
+ ("<[^>\n ]+@[^>\n ]+>" 0 wl-message-button-refer-article 0 1024))
"Alist of regexps to match buttons in message body."
:type '(repeat
(list regexp
:group 'wl-pref)
(defcustom wl-reply-subject-prefix "Re: "
- "*Prefix of the subject of the replied message."
- :type 'string
+ "*Prefix of the subject of the replied message.
+The value is string or string valued function to be evalueted in the target
+message buffer."
+ :type '(choice string function)
:group 'wl-draft
:group 'wl-pref)
(defcustom wl-forward-subject-prefix "Forward: "
- "*Prefix of the subject of the forwarded message."
- :type 'string
+ "*Prefix of the subject of the forwarded message.
+The value is string or string valued function to be evalueted in the target
+message buffer."
+ :type '(choice string function)
:group 'wl-draft
:group 'wl-pref)
:group 'wl-pref
:group 'wl-draft)
-(defcustom wl-subject-prefix-regexp "^[ \t]*\\([Rr][Ee][:>][ \t]*\\)*[ \t]*"
+(defcustom wl-subject-re-prefix-regexp "^[ \t]*\\([Rr][Ee][:>][ \t]*\\)*[ \t]*"
"*Regexp matching \"Re: \" in the subject line."
:type 'regexp
:group 'wl-draft
:group 'wl-pref)
+(defcustom wl-subject-forward-prefix-regexp "^[ \t]*\\(\\([Ff][Oo][Rr][Ww][Aa][Rr][Dd]\\|[Ff][Ww][Dd]\\|[Ff][Ww]\\)[:>][ \t]*\\)*[ \t]*"
+ "*Regexp matching \"Forward: \", \"Fwd: \", or \"Fw: \" in the subject line."
+ :type 'regexp
+ :group 'wl-draft
+ :group 'wl-pref)
+
(defcustom wl-folder-many-unsync-threshold 70
"*Folders which contains messages more than this number are highlighted
with wl-highlight-folder-many-face."
:group 'wl-pref)
(defcustom wl-fcc nil
- "*Folder Carbon Copy."
+ "*Folder Carbon Copy target initially added at creating draft buffer."
:type '(choice (const :tag "disable" nil)
string function)
:group 'wl-draft
:group 'wl-pref)
(defcustom wl-bcc nil
- "*Blind Carbon Copy."
+ "*Blind Carbon Copy target initially added at creating draft buffer."
:type '(choice (const :tag "disable" nil)
string)
:group 'wl-draft
:group 'wl-summary
:group 'wl-pref)
+(defcustom wl-summary-print-argument-within-window nil
+ "*If non-nil, always print argument right side of window."
+ :type 'boolean
+ :group 'wl-summary
+ :group 'wl-pref)
+
(defcustom wl-summary-pick-field-default "Body"
"*Default field for pick."
:type '(radio (const "From")
(string :tag "Other"))
:group 'wl-summary)
-(defcustom wl-mime-charset 'x-ctext
+(defcustom wl-mime-charset (if wl-on-mule 'x-ctext 'iso-8859-1)
"*MIME Charset for summary and message."
:type 'symbol
:group 'wl-summary
:type 'regexp
:group 'wl-draft)
+(defcustom wl-auto-save-drafts-interval 1
+ "Idle interval in seconds to save draft buffers automatically.
+If you don't want to use this feature, set this to nil."
+ :type '(choice (const :tag "Don't use this feature" nil)
+ (number :tag "Secs"))
+ :group 'wl-draft)
+
+(defcustom wl-draft-preview-attributes t
+ "Non-nil forces to preview the attributes in the `wl-draft-preview-message'.
+Attributes specified in the `wl-draft-preview-attributes-list' are displayed."
+ :type 'boolean
+ :group 'wl-draft)
+
+(defcustom wl-draft-preview-attributes-list '((mail recipients
+ envelope-from
+ smtp-posting-server
+ smtp-posting-port)
+ (news newsgroups
+ nntp-posting-server
+ nntp-posting-port))
+ "*Attribute symbols to display in the draft preview.
+Candidates are following:
+`recipients'
+`envelope-from'
+`smtp-posting-server'
+`smtp-posting-port'
+`newsgroups'
+`nntp-posting-server'
+`nntp-posting-port'
+Also variables which begin with `wl-' can be specified
+\(`wl-' have to be removed\)"
+ :type '(choice (repeat (cons (choice (const :tag "Mail" mail)
+ (const :tag "News" news))
+ (repeat symbol)))
+ (repeat symbol))
+ :group 'wl-draft)
+
+(defcustom wl-draft-preview-attributes-buffer-lines 5
+ "*Buffer height for the draft attribute preview."
+ :type 'integer
+ :group 'wl-draft)
+
+(defcustom wl-draft-preview-attributes-buffer-name "*Preview Attributes*"
+ "*Buffer name for the draft attribute preview."
+ :type 'string
+ :group 'wl-draft)
+
(defcustom wl-refile-default-from-folder "+from"
"*Folder name to refile by `wl-refile-guess-by-from'."
:type '(string :tag "Folder")
:group 'wl-pref)
(defcustom wl-summary-auto-refile-skip-marks
- (list elmo-msgdb-new-mark
- elmo-msgdb-unread-uncached-mark
- elmo-msgdb-unread-cached-mark)
+ (list wl-summary-new-uncached-mark
+ wl-summary-new-cached-mark
+ wl-summary-unread-uncached-mark
+ wl-summary-unread-cached-mark)
"Persistent marks to skip auto-refiling."
:type '(repeat (string :tag "Mark"))
:group 'wl-summary)
:group 'wl-summary)
(defcustom wl-summary-incorporate-marks
- (list elmo-msgdb-new-mark
- elmo-msgdb-unread-uncached-mark)
+ (list wl-summary-new-uncached-mark
+ wl-summary-unread-uncached-mark)
"Persistent marks to prefetch at `wl-summary-incorporate'."
:type '(repeat (string :tag "Mark"))
:group 'wl-summary)
(defcustom wl-refile-rule-alist nil
"Refile rule alist.
e.x.
-'(
- (\"From\"
+'((\"From\"
(\"teranisi@isl.ntt.co.jp\" . \"+teranisi\"))
(\"x-ml-name\"
(\"^Wanderlust\" . \"+wl\")
(defcustom wl-biff-check-folder-list nil
"All folders that match this list are automatically checked
every intervals specified by wl-biff-check-interval."
- :type '(repeat (regexp :tag "Folder Regexp"))
+ :type '(repeat (regexp :tag "Folder"))
:group 'wl-highlight)
(defcustom wl-biff-check-interval 40
:type 'integer
:group 'wl-highlight)
+(defcustom wl-biff-use-idle-timer nil
+ "Non-nil to use idle timer instead of strict timer for wl-biff"
+ :type 'boolean
+ :group 'wl-highlight)
+
(defcustom wl-biff-state-indicator-on (if (and (featurep 'xemacs)
(not (featurep 'mule)))
"[Mail]"
(defcustom wl-summary-move-order 'unread
"*The order of priority when move in summary mode.
-If this variable is `unread', precede \"U\", \"!\", \"N\" mark.
-If this variable is `new', precede \"N\" mark."
+If this variable is `unread', precede \"U\", \"u\", \"N\", \"n\" mark.
+If this variable is `new', precede \"N\", \"n\" mark."
:type '(radio (const new)
(const unread))
:group 'wl-summary
:group 'wl-pref
:group 'wl-setting)
+(defcustom wl-message-popup-buffers '(mime-echo-buffer-name epa-info-buffer)
+ "*List of buffer or name which is popped up with message buffer."
+ :type '(repeat (choice (symbol :tag "Variable")
+ (string :tag "Buffer name")))
+ :group 'wl-setting)
+
(defcustom wl-message-buffer-name " *WL:Message*"
"*Buffer name for message buffers."
:group 'wl-pref
(const nntp)
(const pop3)
(const shimbun)
- (const nmz)
+ (const search)
(const archive)
(const mark)
(const cache)))
(repeat (regexp :tag "Folder Regexp")))
:group 'wl-pref)
+(defcustom wl-summary-force-prefetch-folder-list nil
+ "All folders that match this list are prefetched.
+Each elements are regexp of folder name."
+ :type '(radio (const :tag "none" nil)
+ (const :tag "all" t)
+ (repeat (regexp :tag "Folder Regexp")))
+ :group 'wl-pref)
+
(defcustom wl-no-save-folder-list '("^/.*$" "^\\[.*$")
"All folders that match this list won't save its msgdb.
Each elements are regexp of folder name."
:group 'wl-pref)
(defcustom wl-folder-sync-range-alist
- (list (cons (concat "^" (regexp-quote wl-draft-folder) "$\\|^"
- (regexp-quote wl-queue-folder) "$")
- "all"))
+ (list (cons 'wl-require-update-all-folder-p "all"))
"*Default sync range alist. If no matches, `wl-default-sync-range' is used."
- :type '(repeat (cons (regexp :tag "Folder Regexp")
+ :type '(repeat (cons (choice (regexp :tag "Folder Regexp")
+ (symbol :tag "A function"))
(choice (const "update")
(const "all")
(const "rescan")
- (const "first:")
- (const "last:")
(const "no-sync")
(const :tag "none" nil))))
:group 'wl-pref)
:type '(choice (const "update")
(const "all")
(const "rescan")
- (const "first:")
- (const "last:")
(const "no-sync")
(const :tag "none" nil))
:group 'wl-pref)
(defcustom wl-summary-showto-folder-regexp nil
"Regexp specifying the folder that shows the To (or Newsgroups) field as
-Sender information in summary mode."
+Sender information in summary mode. It is effective when the value of
+`wl-summary-from-function' is `wl-summary-default-from'"
:type '(choice (const :tag "none" nil)
regexp)
:group 'wl-summary)
+(defcustom wl-summary-save-file-suffix ".eml"
+ "Suffix for the saved file name."
+ :type 'string
+ :group 'wl-summary)
+
+(defcustom wl-summary-resend-use-cache nil
+ "*Non-nil to enable offline resending by using file cache.
+Note that strict message identity is not guaranteed when cache is used."
+ :type 'boolean
+ :group 'wl-summary)
+
(defcustom wl-folder-removed-mark "#<removed>"
"Mark for removed folder."
:type 'string
(string :tag "Folder"))))
:group 'wl-folder)
-(defcustom wl-refile-policy-alist '(("^[-=']" . copy)
- (".*" . move))
- "*List of refile policy. Each element is (FOLDER-REGEXP . POLICY).
-POLICY is copy or move."
- :type '(repeat (cons (regexp :tag "Folder Regexp")
- (choice (const copy)
- (const move))))
- :group 'wl-summary
- :group 'wl-pref)
-
-(defcustom wl-folder-hierarchy-access-folders '("^-[^\\.]*\\(:\\|@\\|$\\)"
- "^@$")
+(defcustom wl-folder-hierarchy-access-folders '("^-[^.]*\\(:\\|@\\|$\\)"
+ "^@$" "^'$")
"*Access group REGEXPs to make hierarchy structure."
:type '(repeat (string :tag "Regexp"))
:group 'wl-folder)
:group 'wl-expire)
(defcustom wl-summary-expire-reserve-marks
- (list elmo-msgdb-important-mark
- elmo-msgdb-new-mark
- elmo-msgdb-unread-uncached-mark
- elmo-msgdb-unread-cached-mark)
+ (list wl-summary-flag-mark
+ wl-summary-new-uncached-mark
+ wl-summary-new-cached-mark
+ wl-summary-unread-uncached-mark
+ wl-summary-unread-cached-mark)
"Permanent marks of reserved message when expire.
Don't reserve temporary mark message.
;; highilght about mouse
(defcustom wl-use-highlight-mouse-line (and window-system
(>= emacs-major-version 19))
- "*Highlight mouse line, if non nil."
+ "*Highlight mouse line, if non-nil."
+ :type 'boolean
+ :group 'wl-highlight)
+
+(defcustom wl-highlight-summary-line-help-echo-alist
+ '((flag wl-highlight-flag-folder-help-echo)
+ (search elmo-message-file-name))
+ "*Alist to display help-echo in summary buffer.
+Each element is (folder-type handler(function)).
+Handler take two arguments elmo-folder and message number and return string."
:type 'boolean
:group 'wl-highlight)
"*Highlight folder with icon(XEmacs or Emacs 21)."
:type 'boolean
:group 'wl-highlight)
+
(defcustom wl-highlight-folder-by-numbers t
"Highlight folder lines by numbers.
If it is a number, only numbers will be highlighted."
:type 'string
:group 'wl-pref)
+(defcustom wl-use-pgp-module
+ (condition-case nil
+ (progn
+ (require 'epg-config)
+ (epg-check-configuration (epg-configuration))
+ 'epg)
+ (error 'pgg))
+ "*Which PGG library to be used."
+ :type '(choice (const :tag "EasyPG Library" epg)
+ (const :tag "PGG Library" pgg)
+ (const :tag "Don't use PGP" nil))
+ :group 'wl-pref)
+
+(defcustom wl-display-progress-threshold
+ '((wl-folder-insert-entity . 100)
+ (elmo-retrieve-message . 3000)
+ (t . 20))
+ "*Displaying progress message if number of total are more than this value."
+ :type '(choice (const :tag "No display" nil)
+ (const :tag "No limitation" 0)
+ (integer :tag "For all")
+ (repeat :tag "Each label"
+ (cons (choice (const :tag "Default" t)
+ (symbol :tag "Label"))
+ (choice (const :tag "No display" nil)
+ (const :tag "No limitation" 0)
+ (integer :tag "Threshold")))))
+ :group 'wl-pref)
+
+(defcustom wl-display-progress-function #'wl-simple-display-progress
+ "*A function to display progress message"
+ :type '(choice (const :tag "No display" nil)
+ (function :tag "Function"))
+ :group 'wl-pref)
+
;;; Internal variables
(defvar wl-init nil)
"*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-search-folder-icon "nmz.xpm"
+ "*Icon file for search folder.")
(defvar wl-shimbun-folder-icon "shimbun.xpm"
"*Icon file for shimbun folder.")
+(defvar wl-file-folder-icon "file.xpm"
+ "*Icon file for file folder.")
(defvar wl-maildir-folder-icon "maildir.xpm"
"*Icon file for maildir folder.")
+(defvar wl-access-folder-icon "access.xpm"
+ "*Icon file for access folder.")
(defvar wl-empty-trash-folder-icon "trash-e.xpm"
"*Icon file for emptied trash folder.")
(defvar wl-trash-folder-icon "trash.xpm"
;;;; Obsolete variables.
+;; 2005-01-23
+(elmo-define-obsolete-variable 'wl-nmz-folder-icon
+ 'wl-search-folder-icon)
+
+;; 2003-11-05
+(elmo-define-obsolete-variable 'wl-summary-new-mark
+ 'wl-summary-new-uncached-mark)
+
;; 2003-07-15 delete -> dispose
(elmo-define-obsolete-variable 'wl-delete-folder-alist
'wl-dispose-folder-alist)