-;;; wl-vars.el -- Variable definitions for Wanderlust.
+;;; wl-vars.el --- Variable definitions for Wanderlust.
;; 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>
"*Use SEMI or not.")
(defcustom wl-from (and user-mail-address
- (concat (and user-full-name
+ (concat (and (user-full-name)
(concat (elmo-address-quote-specials
- user-full-name)
+ (user-full-name))
" "))
"<" user-mail-address ">"))
"*From string used in draft."
: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)
+(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))
+ (?\[ (wl-summary-line-open-bracket))
+ (?\] (wl-summary-line-close-bracket))
+ (?t (wl-summary-line-thread-indent))
+ (?s (wl-summary-line-subject))
+ (?S (wl-summary-line-size))
+ (?c (wl-summary-line-children-number))
+ (?f (wl-summary-line-from))
+ (?F (wl-summary-line-children-and-from)))
+ "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 is an expression to get string to insert.")
+
+(defcustom wl-summary-line-format "%M/%D(%W)%h:%m %t%[%17F %] %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:
+
+%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.
+%f The from: field string of the message.
+%F The children number of the closed message thread and
+ the from: field string of the message are concatenated.
+%s The subject: field string of the message.
+%S the size of the message (if available)."
+ :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.
+ '((\"^%\" . \"%M/%D(%W)%h:%m %t%[%14F %](%S) %s\")
+ (\"^@2ch\" . \"%M%/%D/%h:%m %t[%9F ]%s\")))"
+ :type '(repeat (cons (regexp :tag "Folder Regexp")
+ (string :tag "line format")))
+ :group 'wl-summary)
+
(defcustom wl-summary-from-function 'wl-summary-default-from
"*A function for displaying sender (From: field) information."
:type 'function
: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'."
:group 'wl
:group 'wl-setting)
-(defcustom wl-draft-add-references t
+(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 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."
"*Default Authentication type for POP-before-SMTP.
If nil, `elmo-pop3-default-authenticate-type' is used."
:type '(choice (const :tag "none" nil)
- (const :tag "APOP" "apop")
- (const :tag "POP3" "user"))
+ (const :tag "APOP" 'apop)
+ (const :tag "POP3" 'user))
:group 'wl
:group 'wl-setting)
: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
- :group 'wl-setting)
-
(defcustom wl-prefetch-confirm t
"*Confirm prefetching if message size is larger than `wl-prefetch-threshold'."
:type 'boolean
:group 'wl-pref
:group 'wl-setting)
-(defcustom wl-cache-prefetch-threshold 30000
- "*Quit forward cache prefetching if message size is larger than this value."
- :type 'integer
- :group 'wl-pref)
-
(defcustom wl-thread-insert-opened nil
"*Non-nil forces to insert thread as opened in updating."
:type 'boolean
"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
: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)
: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
: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
: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
"Alist of template."
:type '(repeat (list (string :tag "Name")
: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
: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."
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
"*Break Pages at ^L."
:type 'boolean
: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
+ '(("<mailto:[^>]+>" 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
"*Width of folder window."
:type 'integer
: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)
: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)
(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)
:group 'wl-pref)
(defcustom wl-generate-mailer-string-function 'wl-generate-user-agent-string
- "A function to create X-Mailer field string ."
+ "A function for creating User-Agent field string."
:type 'function
:group 'wl-draft)
: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)
(defcustom wl-biff-state-indicator-off (if (and (featurep 'xemacs)
(not (featurep 'mule)))
"[--]"
- (decode-coding-string
;; Japanese short hyphen
- (read "\"[\e$B!>\e(B]\"")
- (if (boundp 'MULE)
- '*iso-2022-jp*
- 'iso-2022-jp)))
+ "[\e$B!>\e(B]")
"String used to show biff status OFF."
:type 'string
:group 'wl-highlight)
: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.
If the value is the symbol `unread', go to the next folder
: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.
:type '(repeat (regexp :tag "Folder Regexp"))
:group 'wl-pref)
+(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)
+
+(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.
Each elements are regexp of folder name."
("^-relcom\\." . koi8-r)
("^-tw\\." . big5)
("^-han\\." . euc-kr)
- ("@sponichi" . shift_jis))
+ ("@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
`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" kill)
+ (choice (const :tag "Hide" hide)
(const :tag "Mark as read" read))))
:group 'wl-folder)
: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)
(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
: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
;; 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)
(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"
(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 "--")
(defvar wl-plugged-port-indent 4)
(defvar wl-plugged-queue-status-column 25)
-;; Obsolete variables.
+;;;; 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
(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))