;;; wl-vars.el -- Variable definitions for Wanderlust.
-;; Copyright 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000,2001 Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000,2001 Masahiro MURATA <muse@ba2.so-net.ne.jp>
;; Author: Yuuichi Teranishi <teranisi@gohome.org>
+;; Masahiro MURATA <muse@ba2.so-net.ne.jp>
;; Keywords: mail, net news
;; This file is part of Wanderlust (Yet Another Message Interface on Emacsen).
(defvar wl-cs-cache wl-cs-local)
(defvar wl-use-semi (module-installed-p 'mime-view) ; If nil, use tm.
- "*Use SEMI or not")
+ "*Use SEMI or not.")
(defcustom wl-from (if (boundp 'user-mail-address)
user-mail-address)
;; Important folders
(defcustom wl-default-folder "%inbox"
- "*Default folder used in wl-summary-goto-folder."
+ "*Default folder used in `wl-summary-goto-folder'."
:type 'string
:group 'wl)
(defcustom wl-draft-folder "+draft"
:group 'wl-draft)
(defcustom wl-auto-insert-x-face t
- "*Insert X-Face: field automatically"
+ "*Insert X-Face: field automatically."
:type 'boolean
:group 'wl-draft)
(defcustom wl-x-face-file "~/.xface"
- "*If file exists and `wl-auto-insert-x-face' is non-nil,
-X-Face field is inserted using its contents."
+ "*X-Face field is inserted using its contents.
+If file exists and `wl-auto-insert-x-face' is non-nil."
:type 'file
: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."
+ "*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)
(defcustom wl-envelope-from nil
"*Envelope From used in SMTP.
-If nil, wl-from is used."
+If nil, `wl-from' is used."
:type '(choice (const :tag "Same as 'From' field." nil)
string)
:group 'wl)
:group 'wl)
(defcustom wl-smtp-posting-user nil
- "*SMTP authentication user. "
+ "*SMTP authentication user."
:type '(choice (const :tag "none" nil)
string)
:group 'wl)
(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-default-pop3-user' is used.
To use POP-before-SMTP,
(setq wl-draft-send-mail-func 'wl-draft-send-mail-with-pop-before-smtp)"
:type '(choice (const :tag "none" nil)
(defcustom wl-pop-before-smtp-server nil
"*POP3 server for POP-before-SMTP.
-If nil, elmo-default-pop3-server is used."
+If nil, `elmo-default-pop3-server' is used."
:type '(choice (const :tag "none" nil)
string)
:group 'wl)
(defcustom wl-pop-before-smtp-port nil
"*POP3 port for POP-before-SMTP.
-If nil, elmo-default-pop3-port is used."
+If nil, `elmo-default-pop3-port' is used."
:type '(choice (const :tag "none" nil)
integer string)
:group 'wl)
(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-default-pop3-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."
+ "*Default Authentication type for POP-before-SMTP.
+If nil, `elmo-default-pop3-authenticate-type' is used."
:type '(choice (const :tag "none" nil)
(const :tag "APOP" "apop")
(const :tag "POP3" "user"))
(defcustom wl-nntp-posting-server nil
"*NNTP server name to post news.
-If nil, elmo-default-nntp-server is used."
+If nil, `elmo-default-nntp-server' is used."
:type '(choice (const :tag "none" nil)
string)
:group 'wl)
(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-default-nntp-user' is used.
If nil, don't authenticate."
:type '(choice (const :tag "none" nil)
string)
:group 'wl)
(defcustom wl-nntp-posting-port nil
"*NNTP port to post news.
-If nil, elmo-default-nntp-port is used."
+If nil, `elmo-default-nntp-port' is used."
:type '(choice (const :tag "none" nil)
integer string)
:group 'wl)
(defcustom wl-nntp-posting-stream-type nil
"*Stream type for posting Netnews.
-If nil, elmo-default-nntp-stream-type is used."
+If nil, `elmo-default-nntp-stream-type' is used."
:type 'boolean
:group 'wl)
;;;; Hooks
(defvar wl-folder-mode-hook nil
- "A hook called when wanderlust folder mode is started. This hook may
-contain the functions `wl-folder-init-icons' and `wl-setup-folder' for
-reasons of system internal to accord facilities for the Emacs variants.")
+ "A hook called when wanderlust folder mode is started.
+This hook may contain the functions `wl-folder-init-icons' and
+`wl-setup-folder' for reasons of system internal to accord facilities
+for the Emacs variants.")
(defvar wl-summary-toggle-disp-on-hook nil
"A hook called when message is toggled.")
(defvar wl-summary-toggle-disp-off-hook nil
(defvar wl-summary-toggle-disp-folder-message-resumed-hook nil
"A hook called when message window is resumed when folder is toggled.")
(defvar wl-summary-mode-hook nil
- "A hook called when summary mode is started. This hook may contain
-the function `wl-setup-summary' for reasons of system internal to
-accord facilities for the Emacs variants.")
+ "A hook called when summary mode is started.
+This hook may contain the function `wl-setup-summary' for reasons of
+system internal to accord facilities for the Emacs variants.")
(defvar wl-summary-prepared-pre-hook nil
"A hook called before the summary buffer has been generated.")
(defvar wl-summary-divide-thread-when-subject-changed nil
"Divide thread when subject is changed.")
(defvar wl-init-hook nil
- "A hook called when initialization is finished.")
+ "A hook called when initialization is finished. This hook may contain
+the functions `wl-plugged-init-icons' and `wl-biff-init-icons' for
+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 Draft is prepared.")
(defvar wl-draft-reedit-hook nil
"A hook called when Draft is re-edited.")
-(defvar wl-draft-send-hook nil
+(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
"A hook called just before the mail sending process starts.")
"A hook called when header is highlighted.")
(defvar wl-highlight-message-hook nil
"A hook called when message is highlighted.")
+(defvar wl-save-hook nil
+ "A hook called when save summary and folder status.")
(defvar wl-exit-hook nil
"A hook called when exit wanderlust.")
(defvar wl-folder-suspend-hook nil
"A hook called when suspend wanderlust.")
+(defvar wl-biff-notify-hook nil
+ "A hook called when a biff-notification is invoked.")
(defvar wl-auto-check-folder-pre-hook nil
"A hook called before auto check folders.")
(defvar wl-auto-check-folder-hook nil
(defvar wl-score-mode-hook nil
"A hook called when score mode is started.")
(defvar wl-make-plugged-hook nil
- "A hook called when make plugged alist. This hook may contain the
-functions `wl-plugged-init-icons' and `wl-biff-init-icons' for reasons
-of system internal to accord facilities for the Emacs variants.")
+ "A hook called when make plugged alist.")
(defvar wl-plugged-exit-hook nil
"A hook called when exit plugged mode.")
(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") ("Newsgroups")))
+ ("Reply-To" . (("Reply-To") ("To" "Cc" "From") ("Newsgroups")))
("From" . (("From") ("To" "Cc") ("Newsgroups"))))
"Alist of cons cell of
('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups'))
: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"
+ "*Resume folder window in `wl-draft-hide'."
:type 'boolean
:group 'wl-draft)
:group 'wl-draft)
(defcustom wl-draft-remove-group-list-contents t
- "*If non-nil, remove group list contents in `wl-draft-send-mail-with-smtp'"
+ "*If non-nil, remove group list contents in `wl-draft-send-mail-with-smtp'."
:type 'boolean
:group 'wl-draft)
:group 'wl)
(defcustom wl-folders-file "~/.folders"
- "*Folders file"
+ "*Folders file."
:type 'file
:group 'wl)
(defcustom wl-address-file "~/.addresses"
- "*Addresses file"
+ "*Addresses file."
:type 'file
:group 'wl)
(defcustom wl-alias-file "~/.im/Aliases"
- "*Alias file for completion"
+ "*Alias file for completion."
:type 'file
:group 'wl)
:group 'wl-pref)
(defcustom wl-summary-rescore-partial-threshold 200
- "*Summary is not scored entirely if there are messages more than this value
-in sync-all or rescan."
+ "*Summary is not scored entirely if there are messages more than this value.
+In sync-all or rescan."
:type 'integer
:group 'wl-score)
(defcustom wl-score-files-dir (concat elmo-msgdb-dir elmo-path-sep)
- "*Name of the directory where score files will be stored (default \"~/.elmo\")."
+ "*Name of the directory where score files will be stored.
+(default \"~/.elmo\")."
:type 'directory
:group 'wl)
:group 'wl-draft
:group 'wl-pref)
-(defcustom wl-draft-use-cache t
+(defcustom wl-draft-use-cache nil
"*If non-nil, sending message is cached."
:type 'boolean
:group 'wl-draft
:group 'wl-pref)
(defcustom wl-draft-reply-buffer-style 'split
- "'split or 'full"
+ "'split or 'full."
:type '(radio (const split)
(const full))
:group 'wl-draft)
(defcustom wl-draft-queue-save-variables
'(wl-envelope-from wl-from
wl-smtp-posting-server wl-smtp-posting-user wl-smtp-posting-port
- wl-smtp-authenticate-type wl-smtp-connection-type
+ wl-smtp-authenticate-type wl-smtp-connection-type
wl-pop-before-smtp-server wl-pop-before-smtp-user wl-pop-before-smtp-port
wl-pop-before-smtp-stream-type wl-pop-before-smtp-authenticate-type
wl-nntp-posting-server wl-nntp-posting-server
:group 'wl-draft)
(defcustom wl-summary-default-number-column 5
- "number of columns in summary buffer."
+ "Number of columns in summary buffer."
:type 'integer
:group 'wl-summary)
:group 'wl-summary
:group 'wl-highlight)
+(defcustom wl-summary-lazy-highlight (and (boundp 'window-scroll-functions)
+ (not wl-on-xemacs))
+ "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."
+ "If Summary has lines more than `wl-summary-highlight-partial-threshold',
+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)
:type 'file
:group 'wl-summary)
(defcustom wl-summary-view-file ".wl-summary-view"
- "*current summary view."
+ "*Current summary view."
:type 'file
:group 'wl-summary)
(defcustom wl-thread-top-file ".wl-thread-top"
- "*current thread top entity... obsolete."
+ "*Current thread top entity... obsolete."
:type 'file
:group 'wl-summary)
(defcustom wl-thread-entity-file ".wl-thread-entity"
- "*thread entities."
+ "*Thread entities."
:type 'file
:group 'wl-summary)
(defcustom wl-thread-entity-list-file ".wl-thread-entity-list"
- "*thread top entity list."
+ "*Thread top entity list."
:type 'file
:group 'wl-summary)
(defcustom wl-use-folder-petname
'(modeline)
- "*List of situation using folder petname. Allowed situations are:
-
+ "*List of situation using folder petname.
+Allowed situations are:
modeline : displayed on modeline.
ask-folder : displayed on minibuffer when ask folder.
read-folder : can used for completion at `wl-summary-read-folder'."
:group 'wl-pref)
(defcustom wl-folder-petname-alist nil
- "A list of (realname . petname)"
+ "A list of (realname . petname)."
:type '(repeat (cons (string :tag "Realname") (string :tag "Petname")))
:group 'wl-folder)
:group 'wl-pref)
(defcustom wl-message-window-size '(1 . 4)
- "*Size of summary and message window. cons cell of (Summary : Message)."
+ "*Size of summary and message window. cons cell of (Summary : Message)."
:type '(cons integer integer)
:group 'wl-pref)
(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.
+ "*Sort order of header fields. Each elements are regexp of field name.
(Not valid on tm.)"
:type '(repeat (string :tag "Field Regexp"))
:group 'wl-pref)
:group 'wl-pref)
(defcustom wl-summary-recenter t
- "*Recenter on redisplay"
+ "*Recenter on redisplay."
:type 'boolean
:group 'wl-summary
:group 'wl-pref)
:group 'wl-pref
:group 'wl-draft)
+(defcustom wl-subject-prefix-regexp "^[ \t]*\\([Rr][Ee][:>][ \t]*\\)*[ \t]*"
+ "*Regexp matching \"Re: \" 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."
(defcustom wl-highlight-background-mode (if (boundp 'hilit-background-mode)
(or hilit-background-mode 'dark)
'dark)
- "*Background mode of highlight (for Old Emacsen). 'dark or 'light"
+ "*Background mode of highlight (for Old Emacsen). 'dark or 'light."
:type '(radio (const dark)
(const light))
:group 'wl-highlight)
(defcustom wl-rejected-letter-start
"^[\t ]*-+[\t ]+\\(original\\|\\(\\(the \\)?unsent\\)\\) message\\( follows\\)?[\t ]+-+[\t ]*$"
"Regexp specifying the beginning of the wrapper around a returned letter.
- This wrapper is generated by the mail system when rejecting a letter."
+This wrapper is generated by the mail system when rejecting a letter."
:type 'regexp
:group 'wl-draft)
(defcustom wl-summary-incorporate-marks
(list wl-summary-new-mark
wl-summary-unread-uncached-mark)
- "Persistent marks to prefetch at `wl-summary-incorporate'"
+ "Persistent marks to prefetch at `wl-summary-incorporate'."
:type '(repeat (string :tag "Mark"))
:group 'wl-summary)
(defcustom wl-biff-check-folder-list nil
"All folders that match this list are automatically checked
-every intervals specified by wl-biff-check-interval. "
+every intervals specified by wl-biff-check-interval."
:type '(repeat (regexp :tag "Folder Regexp"))
:group 'wl-highlight)
(defcustom wl-auto-select-next nil
"*If non-nil, offer to go to the next folder from the end of the previous.
If the value is the symbol `unread', go to the next folder
-that no unread message exists. If the value is the symbol `skip-no-unread',
+that no unread message exists. If the value is the symbol `skip-no-unread',
skip the folder that no unread message exists.
See also variable `wl-summary-next-no-unread-command'."
("^-relcom\\." . koi8-r)
("^-tw\\." . big5)
("^-han\\." . euc-kr))
- "Charset alist. If no match, wl-mime-charset is used."
+ "Charset alist. If no match, `wl-mime-charset' is used."
:type '(repeat (cons (regexp :tag "Folder Regexp") (symbol :tag "Charset")))
:group 'wl-summary
:group 'wl-pref)
("^-relcom\\." . "en")
("^-tw\\." . "en")
("^-han\\." . "en"))
- "Weekday name lang alist. If no match, wl-summary-weekday-name-lang
-is used.
+ "Weekday name lang alist.
+If no match, `wl-summary-weekday-name-lang' is used.
e.x.
'((\"xemacs-beta$\" . \"en\")
(\"^-fj\" . \"ja\"))"
(list (cons (concat "^" (regexp-quote wl-draft-folder) "$\\|^"
(regexp-quote wl-queue-folder) "$")
"all"))
- "*Default sync range alist. If no matches, `wl-default-sync-range' is used."
+ "*Default sync range alist. If no matches, `wl-default-sync-range' is used."
:type '(repeat (cons (regexp :tag "Folder Regexp")
(choice (const "update")
(const "all")
: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."
+ "*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
:group 'wl-summary)
(defcustom wl-refile-policy-alist '(("^[-=']" . copy)
(".*" . move))
- "*List of refile policy. Each element is (FOLDER-REGEXP . POLICY).
+ "*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)
The policy is one of the followings:
'remove : remove messsage.
-'trash : refile wl-trash-folder.
+'trash : refile `wl-trash-folder'.
string : refile string folder.
function : call function.
;; highilght about draft and message
(defcustom wl-highlight-body-too t
- "*In addition to header, highlight the body too. if non nil."
+ "*In addition to header, highlight the body too. if non nil."
:type 'boolean
:group 'wl-highlight)
(defcustom wl-highlight-highlight-citation-too nil
"*Whether the whole citation line should go in the
- `wl-highlight-citation-face' face.
+`wl-highlight-citation-face' face.
If nil, the text matched by `wl-highlight-citation-prefix-regexp' is in the
default face, and the remainder of the line is in the
wl-highlight-message-cited-text face."
:type 'regexp
:group 'wl-highlight)
+(defcustom wl-highlight-max-header-size nil
+ "*If the message header is larger than this many chars, don't highlight it.
+If this is nil, all headers will be highlighted."
+ :type 'integer
+ :group 'wl-highlight)
+
(defcustom wl-highlight-max-message-size 10000
"*If the message body is larger than this many chars, don't highlight it.
This is to prevent us from wasting time trying to fontify things like
Verification will be done from the end of the buffer.
No need to specify \"^-- $\" in this list,
because it is verified by default.
-This variable can also be a regex. "
+This variable can also be a regex."
:type '(repeat regexp)
:group 'wl-highlight)
: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."
+ "Highlight folder lines by numbers.
+If it is a number, only numbers will be highlighted."
:type '(choice (const :tag "whole line" t)
(const :tag "only numbers" 1)
(const :tag "don't highlight" nil))
: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)
;;; Internal variables
(defvar wl-thread-indent-level 1
"*Indent level for thread.")
(defvar wl-thread-have-younger-brother-str "\e$B(2\e(B"
- "*A string for thread branch line. It should contain one character.")
+ "*A string for thread branch line. It should contain one character.")
(defvar wl-thread-youngest-child-str "\e$B(1\e(B"
- "*A string for thread branch line. It should contain one character.")
+ "*A string for thread branch line. It should contain one character.")
(defvar wl-thread-vertical-str "\e$B(-\e(B"
- "*A string for thread branch line. It should contain one character.")
+ "*A string for thread branch line. It should contain one character.")
(defvar wl-thread-horizontal-str "\e$B(,\e(B"
- "*A string for thread branch line. It should contain one character.")
+ "*A string for thread branch line. It should contain one character.")
(defvar wl-thread-space-str "\e$B!!\e(B"
- "*A string for thread branch line. It should contain one character.")
+ "*A string for thread branch line. It should contain one character.")
(defvar wl-highlight-thread-indent-string-regexp "[^[<]*"
"* A regexp string for thread indent...for highlight.")
(defvar wl-biff-nomail-icon "no-letter.xpm"
"*Icon file for no mail existed state.")
(defvar wl-prog-uudecode "uudecode"
- "*uudecode program name")
-(defvar wl-prog-uudecode-arg '("-p") ;; outout is stdout.
- "*arguments for uudecode program")
-(defvar wl-prog-uudecode-no-stdout-option nil
+ "*uudecode program name.")
+(defvar wl-prog-uudecode-arg nil
+ "*Arguments for uudecode program.")
+(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.