string)
:group 'wl)
+(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 regexp for 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
(?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 STRING-EXP)
SPEC is a character for format specification.
STRING-EXP is an expression to get string to insert.")
(?@ (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 STRING-EXP)
SPEC is a character for format specification.
STRING-EXP is an expression to get string to insert.")
(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
+subject matches this regexp, search parent message by subject matching.
+If nil, never search search parent by subject."
+ :type '(choice string
+ (const :tag "Don't search parent" nil))
:group 'wl-summary)
;; Important folders
:type 'file
:group 'wl-draft)
+(defcustom wl-draft-write-file-function 'wl-draft-save
+ "Save function for draft message."
+ :type 'function
+ :group 'wl-draft)
+
(defcustom wl-subscribed-mailing-list nil
"*Subscribed mailing list.
You had better set this variable if you set 'wl-insert-mail-followup-to' as t."
"*POP3 user name to send mail using POP-before-SMTP.
If nil, `elmo-pop3-default-user' is used.
To use POP-before-SMTP,
-\(setq wl-draft-send-mail-function '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
"A hook called when replied.")
(defvar wl-mail-setup-hook nil
"A hook called when Draft is prepared.")
-(defvar wl-draft-reedit-hook nil
- "A hook called when Draft is re-edited.")
+(defvar wl-draft-reedit-hook '(wl-draft-remove-text-plain-tag)
+ "A hook called when Draft is re-edited.
+The cursor point is located at top of the body.")
(defvar wl-draft-send-hook '(wl-draft-config-exec)
"A hook called on the draft editing buffer before sending process starts.")
(defvar wl-mail-send-pre-hook nil
:group 'wl-draft)
(defcustom wl-draft-reply-with-argument-list
- '(("Reply-To" . (("Reply-To") nil nil))
- ("Mail-Reply-To" . (("Mail-Reply-To") nil nil))
- ("From" . (("From") nil nil)))
- "Alist of cons cell of
-('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
-'field-name' is a string.
-'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.
-Default is for 'reply-to-author'."
- :type '(repeat (cons (choice (string :tag "Field Name")
- (repeat (string :tag "Field Name")))
- (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-reply-without-argument-list
- '(("Followup-To" . (nil nil ("Followup-To")))
- ("Mail-Followup-To" . (("Mail-Followup-To") nil ("Newsgroups")))
- ("Reply-To" . (("Reply-To") ("To" "Cc" "From") ("Newsgroups")))
- ("From" . (("From") ("To" "Cc") ("Newsgroups"))))
+ '(("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' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
'field-name' is a string.
'fields for ***' is a list of strings.
If car of each cons cell exists in original message,
(repeat :tag "Fields For Newsgroups" string))))
:group 'wl-draft)
-(defcustom wl-draft-reply-myself-with-argument-list
- '(("Followup-To" . (("To") ("Cc") ("Followup-To")))
- ("Newsgroups" . (("To") ("Cc") ("Newsgroups")))
- ("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.
-'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.
-Default is for 'reply-to-me'."
- :type '(repeat (cons (choice (string :tag "Field Name")
- (repeat (string :tag "Field Name")))
- (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-reply-myself-without-argument-list
- '(("Followup-To" . (("To") ("Cc") ("Followup-To")))
- ("Newsgroups" . (("To") ("Cc") ("Newsgroups")))
- ("From" . (("To") ("Cc") nil)))
+(defcustom wl-draft-reply-without-argument-list
+ '(("Followup-To" . (("Mail-Followup-To" "Mail-Reply-To" "Reply-To") nil ("Followup-To")))
+ ("Mail-Followup-To" . (("Mail-Followup-To") nil nil))
+ ("Newsgroups" . (("Mail-Reply-To" "Reply-To" "To") ("Cc") ("Newsgroups")))
+ ("Mail-Reply-To" . (("Mail-Reply-To" "Reply-To") ("To" "Cc") nil))
+ ("Reply-To" . (("Reply-To") ("To" "Cc") nil))
+ (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' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
'field-name' is a string.
'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.
-Default is for 'followup-to-me'."
+cdr of each cons cell is used for draft message."
:type '(repeat (cons (choice (string :tag "Field Name")
(repeat (string :tag "Field Name")))
(list (repeat :tag "Fields For To" string)
:type 'file
:group 'wl)
-(defcustom wl-ldap-server "localhost"
+(defcustom wl-ldap-server nil
"*LDAP server."
- :type '(string :tag "Server")
+ :type '(choice (const :tag "Default server(localhost)" nil)
+ (string :tag "Server"))
:group 'wl
:group 'wl-setting)
:group 'wl
:group 'wl-setting)
-(defcustom wl-ldap-base "c=US"
+(defcustom wl-ldap-base nil
"*LDAP base."
- :type '(string :tag "Base")
- :group 'wl
- :group 'wl-setting)
-
-(defcustom wl-ldap-objectclass "person"
- "*LDAP objectclass."
- :type 'string
+ :type '(choice (const :tag "Default base" nil)
+ (string :tag "Base"))
:group 'wl
:group 'wl-setting)
(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\)."
+\(system's default time zone or environment variable TZ)."
:type '(choice (const :tag "Default time zone" nil)
string)
:group 'wl-summary)
: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 <hogehoge@aaa.ne.jp>\")
- 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 <hogehoge@aaa.ne.jp>\")
+ my-draft-config-function-hogehoge))
+
+See also variable `wl-draft-parent-folder'."
:type '(repeat (list (sexp :tag "Match")
(repeat
:inline t
:group 'wl-draft
:group 'wl-pref)
+(defcustom wl-draft-buffer-style 'full
+ "Style of draft buffer except for `wl-summary-reply' and `wl-summary-forward'
+'keep is to use current window, 'full is to use full frame window and
+'split is to split current window.
+If it is a function, it is called with the draft buffer as an argument."
+ :type '(choice (const :tag "Keep window" keep)
+ (const :tag "Split window" split)
+ (const :tag "Full window" full)
+ (sexp :tag "Use Function"))
+ :group 'wl-draft)
+
(defcustom wl-draft-reply-buffer-style 'split
- "'split or 'full."
- :type '(radio (const split)
- (const full))
+ "Style of draft buffer for `wl-summary-reply' and `wl-summary-forward'
+'keep is to use message buffer window, 'full is to use full frame window and
+'split is to split message buffer window.
+If it is a function, it is called with the draft buffer as an argument."
+ :type '(choice (const :tag "Keep window" keep)
+ (const :tag "Split window" split)
+ (const :tag "Full window" full)
+ (sexp :tag "Use Function"))
+ :group 'wl-draft)
+
+(defcustom wl-draft-reply-default-position 'body
+ "Begining position of reply buffer.
+'body means the top of body.
+'bottom means the bottom of body.
+'top means the top of header.
+\"To\", \"Newsgroups\", \"Subject\" means the position of the header field.
+You can also set it to a list of setting.
+"
+ :type '(choice (repeat
+ (choice
+ (const :tag "Top of body" body)
+ (const :tag "Bottom of body" bottom)
+ (const :tag "Top of header" top)
+ (const "To")
+ (const "Newsgroups")
+ (const "Subject")
+ (string :tag "Header Name")))
+ (const "To")
+ (const "Newsgroups")
+ (const "Subject")
+ (string :tag "Header Name"))
:group 'wl-draft)
(defcustom wl-draft-queue-save-variables
:type '(repeat (cons (string :tag "Realname") (string :tag "Petname")))
:group 'wl-folder)
-(defcustom wl-summary-weekday-name-lang "ja"
+(defcustom wl-summary-weekday-name-lang
+ (if (and (boundp 'current-language-environment)
+ (string-equal "Japanese"
+ (symbol-value 'current-language-environment)))
+ "ja" "en")
"*Language to display week day."
:type '(choice (const "ja")
(const "en")
:group 'wl-summary
:group 'wl-pref)
-(defcustom wl-message-id-use-wl-from nil
+(defcustom wl-message-id-use-wl-from t
"*Use `wl-from' for domain part of Message-ID if non-nil."
:type 'boolean
:group 'wl-pref)
:type 'boolean
: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))
+ (?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-summary
:group 'wl-pref)
+(defcustom wl-summary-max-thread-depth 30
+ "*If thread depth of the message is larger than this value, divide it."
+ :type '(choice (const :tag "Unlimited" nil)
+ integer)
+ :group 'wl-summary
+ :group 'wl-pref)
+
(defcustom wl-summary-no-from-message "nobody@nowhere?"
"*A string displayed in summary when no from field exists."
:type 'string
(string :tag "Other"))
:group 'wl-summary)
-(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 'x-ctext
"*MIME Charset for summary and message."
:type 'symbol
:group 'wl-pref
:group 'wl-setting)
-(defcustom wl-message-buffer-prefetch-folder-type-list t
+(defcustom wl-message-buffer-name " *WL:Message*"
+ "*Buffer name for message buffers."
+ :group 'wl-pref
+ :group 'wl-setting)
+
+(defcustom wl-message-buffer-prefetch-folder-type-list '(imap4 nntp)
"*All folder types that match this list prefetch next message,
and reserved buffer cache."
:type `(choice (const :tag "all" t)
:type '(repeat (regexp :tag "Folder Regexp"))
:group 'wl-pref)
-(defcustom wl-message-buffer-prefetch-depth 3
+(defcustom wl-message-buffer-prefetch-depth 1
"*Depth of buffer prefetch in summary mode."
:type 'integer
:group 'wl-pref)
-(defcustom wl-message-buffer-prefetch-idle-time 0.2
+(defcustom wl-message-buffer-prefetch-idle-time 1
"*Idle time of buffer prefetch."
:type 'number
:group 'wl-pref)
("^-han\\." . (2 "+" "+" "|" "-" " ")))
"Thread indent set alist.
If no match, following indent set is used.
-(wl-thread-indent-level
+\(wl-thread-indent-level
wl-thread-have-younger-brother-str
wl-thread-youngest-child-str
wl-thread-vertical-str
:group 'wl-folder)
(defcustom wl-folder-move-cur-folder nil
- "*Non-nil, move to current folder on folder-mode when goto folder."
+ "*Non-nil, move cursor to current folder on folder buffer when goto folder."
:type 'boolean
:group 'wl-folder)
:group 'wl-summary)
(defcustom wl-summary-search-via-nntp 'confirm
- "*Non-nil, search message via nntp after `wl-summary-jump-to-msg-by-message-id'. If the value is 'confirm, confirm before search."
- :type 'boolean
+ "*Non-nil, search message via nntp after `wl-summary-jump-to-msg-by-message-id'.
+If the value is 'confirm, confirm before search, 'force to search via nntp
+regardless of current folder type."
+ :type '(choice (const :tag "confirm" confirm)
+ (const :tag "always" force)
+ (const :tag "in nntp folder" t)
+ (const :tag "never" nil))
:group 'wl-summary)
(defcustom wl-summary-keep-cursor-command
:type 'string
:group 'wl-folder)
-(defcustom wl-delete-folder-alist '(("^-" . remove))
+(defcustom wl-delete-folder-alist '(("^-" . remove)
+ ("^@" . remove))
"*Alist of folder and delete policy.
Each element is (folder-regexp . policy).
:group 'wl-summary
:group 'wl-pref)
-(defcustom wl-folder-hierarchy-access-folders '("^-$" "^-alt$")
+(defcustom wl-folder-hierarchy-access-folders '("^-[^\\.]*\\(:\\|@\\|$\\)"
+ "^@$")
"*Access group REGEXPs to make hierarchy structure."
- :type '(repeat (string :tag "Folder"))
+ :type '(repeat (string :tag "Regexp"))
:group 'wl-folder)
(defcustom wl-folder-init-load-access-folders nil
;;;; Obsolete variables.
+;; 2002-12-25
+(elmo-define-obsolete-variable 'wl-draft-reply-myself-with-argument-list
+ 'wl-draft-reply-with-argument-list)
+(elmo-define-obsolete-variable 'wl-draft-reply-myself-without-argument-list
+ 'wl-draft-reply-without-argument-list)
+
;; 2001-12-11: *-dir -> *-directory
(elmo-define-obsolete-variable 'wl-icon-dir
'wl-icon-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)