X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-vars.el;h=d1f1b3c6d8917da76d33786f135efcea44dd5dec;hb=9ddac14c0b5daa5f6226bb422c36d16b2ccac5e9;hp=1603f4610b78dbd0d0aff331687a99fc636c4140;hpb=98931d109a7da71597644e1dc7960d644a699701;p=elisp%2Fwanderlust.git diff --git a/wl/wl-vars.el b/wl/wl-vars.el index 1603f46..d1f1b3c 100644 --- a/wl/wl-vars.el +++ b/wl/wl-vars.el @@ -1,4 +1,4 @@ -;;; wl-vars.el -- Variable definitions for Wanderlust. +;;; wl-vars.el --- Variable definitions for Wanderlust. ;; Copyright (C) 1998,1999,2000,2001 Yuuichi Teranishi ;; Copyright (C) 1998,1999,2000,2001 Masahiro MURATA @@ -132,9 +132,9 @@ "*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." @@ -158,22 +158,156 @@ If you don't have multiple e-mail addresses, you don't have to set this." :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-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 @@ -191,13 +325,10 @@ If you don't have multiple e-mail addresses, you don't have to set this." (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 +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 @@ -250,6 +381,11 @@ If file exists and `wl-auto-insert-x-face' is non-nil." :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." @@ -270,12 +406,35 @@ If nil, `wl-from' is used." :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." @@ -353,8 +512,8 @@ If nil, `elmo-pop3-default-stream-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) @@ -385,11 +544,32 @@ If nil, `elmo-nntp-default-port' 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 @@ -407,11 +587,6 @@ when `wl-prefetch-confirm' is non-nil." :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 @@ -470,8 +645,9 @@ reasons of system internal to accord facilities for the Emacs variants.") "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 @@ -524,6 +700,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 @@ -688,9 +868,10 @@ 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") + :type '(choice (const :tag "Default server(localhost)" nil) + (string :tag "Server")) :group 'wl :group 'wl-setting) @@ -701,15 +882,10 @@ Default is for 'followup-to-me'." :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) @@ -762,8 +938,7 @@ 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) @@ -829,7 +1004,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 @@ -923,21 +1098,55 @@ 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 @@ -953,6 +1162,11 @@ ex. :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") @@ -986,6 +1200,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 @@ -998,10 +1230,26 @@ ex. :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-queue-save-variables @@ -1046,8 +1294,7 @@ ex. :group 'wl-summary :group 'wl-highlight) -(defcustom wl-summary-lazy-highlight (and (boundp 'window-scroll-functions) - (not wl-on-xemacs)) +(defcustom wl-summary-lazy-highlight (boundp 'window-scroll-functions) "Non-nil forces lazy summary highlighting using `window-scroll-functions'." :type 'boolean :group 'wl-summary @@ -1144,6 +1391,11 @@ 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." @@ -1157,11 +1409,38 @@ 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) +(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 @@ -1173,9 +1452,10 @@ Set this if (system-name) does not return FQDN." :group 'wl-draft :group 'wl-pref) -(defcustom wl-message-scroll-amount 5 +(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) @@ -1204,6 +1484,38 @@ Each elements are regexp of field-name." :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 "*Width of folder window." :type 'integer @@ -1237,6 +1549,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 @@ -1263,6 +1581,12 @@ with wl-highlight-folder-many-face." :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) @@ -1277,8 +1601,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) @@ -1318,18 +1643,6 @@ 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 - :group 'wl-summary - :group 'wl-pref) - (defcustom wl-mime-charset 'x-ctext "*MIME Charset for summary and message." :type 'symbol @@ -1337,7 +1650,7 @@ with wl-highlight-folder-many-face." :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) @@ -1370,7 +1683,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 @@ -1455,25 +1768,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) @@ -1580,6 +1894,12 @@ It uses wl-summary-move-direction-downward as a direction flag." :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 @@ -1594,19 +1914,30 @@ See also variable `wl-summary-next-no-unread-command'." :group 'wl-pref :group 'wl-setting) -(defcustom wl-cache-prefetch-folder-type-list '(imap4 nntp) +(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 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. @@ -1614,6 +1945,21 @@ 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." @@ -1639,7 +1985,8 @@ 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 @@ -1728,7 +2075,7 @@ TYPE is one of the symbols `hide' or `read'. `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) @@ -1824,8 +2171,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) @@ -1906,6 +2253,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 @@ -2076,22 +2428,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 @@ -2209,13 +2545,22 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." (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 (defvar wl-init nil) ;; 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) @@ -2242,7 +2587,7 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." (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" @@ -2296,18 +2641,6 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." (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 "--") @@ -2316,7 +2649,30 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." (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-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 @@ -2344,6 +2700,22 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." (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))