X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-vars.el;h=f00b8dd9ba6f045683fa6e8bb7fac39f6b4ffbd5;hb=611bdeb2f343b37fae32a9c8cacadc9d35c793c4;hp=2c8dc1838de296d2994f6441083a003474cde75a;hpb=6db1adb1e5bb5405e23f59c239796e86e4e9d6dc;p=elisp%2Fwanderlust.git diff --git a/wl/wl-vars.el b/wl/wl-vars.el index 2c8dc18..f00b8dd 100644 --- a/wl/wl-vars.el +++ b/wl/wl-vars.el @@ -129,9 +129,6 @@ (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 @@ -147,11 +144,20 @@ "*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) @@ -195,9 +201,9 @@ If no match, `wl-summary-default-view' is used." 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: @@ -212,6 +218,7 @@ which are replaced by the given information: %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." @@ -283,7 +290,9 @@ which are replaced by the given information: %~ 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) @@ -409,11 +418,14 @@ EXEC-FUNCTION is a function called to execute the action. 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 @@ -436,7 +448,7 @@ FACE is a face for highlighting." :group 'wl) (defcustom wl-default-spec "%" - "*Default spec" + "*Default prefix for folder name initially added in minibuffer" :type 'string :group 'wl) @@ -483,6 +495,23 @@ You had better set this variable if you set 'wl-insert-mail-followup-to' as t." :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." @@ -495,19 +524,22 @@ 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." @@ -525,6 +557,7 @@ references field of the current draft." 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) @@ -556,11 +589,20 @@ If nil, don't authenticate." :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. @@ -590,7 +632,8 @@ If nil, `elmo-pop3-default-port' 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 @@ -627,7 +670,8 @@ If nil, `elmo-nntp-default-port' is used." (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. @@ -683,6 +727,12 @@ when `wl-prefetch-confirm' is non-nil." :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. @@ -726,8 +776,31 @@ 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 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) @@ -828,19 +901,36 @@ Prepared candidates are 'wl-draft-send-mail-with-smtp, (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)))) @@ -855,20 +945,27 @@ Default is for 'reply-to-all'." (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) @@ -956,46 +1053,76 @@ cdr of each cons cell is used for draft message." :type 'boolean :group 'wl-folder) -(defcustom wl-summary-flag-priority-list '(new important answered unread) - "List of flags reflected with the priority to a persistent mark." - :type '(repeat (radio (const :format "%v " new) - (const :format "%v " important) - (const :format "%v " answered) - (const :format "%v " unread))) +(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-new-mark "N" - "Mark for new message." +(defcustom wl-summary-killed-mark "X" + "Mark for killed message." :type '(string :tag "Mark") :group 'wl-summary-marks) -(defcustom wl-summary-unread-uncached-mark "U" - "Mark for unread and uncached message." +(defcustom wl-summary-uncached-mark "!" + "Mark for uncached message with no flag." :type '(string :tag "Mark") :group 'wl-summary-marks) -(defcustom wl-summary-unread-cached-mark "!" - "Mark for unread but already cached message." +(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-read-uncached-mark "u" - "Mark for read but uncached message." +(defcustom wl-summary-unread-uncached-mark "U" + "Mark for unread and uncached message." :type '(string :tag "Mark") :group 'wl-summary-marks) -(defcustom wl-summary-answered-cached-mark "&" +(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 cached message." + "Mark for answered but uncached message." :type '(string :tag "Mark") :group 'wl-summary-marks) -(defcustom wl-summary-important-mark "$" - "Mark for important message." +(defcustom wl-summary-flag-mark "$" + "Mark for the messages which have tags." :type '(string :tag "Mark") :group 'wl-summary-marks) @@ -1010,10 +1137,21 @@ cdr of each cons cell is used for draft message." :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 @@ -1022,6 +1160,12 @@ 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. @@ -1059,7 +1203,7 @@ This variable is local to the summary buffers." :group 'wl-score) (defcustom wl-summary-score-marks - (list wl-summary-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) @@ -1077,7 +1221,7 @@ In sync-all or rescan." (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) @@ -1184,7 +1328,8 @@ This can either be a regular expression or list of regular expressions." (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 @@ -1239,7 +1384,10 @@ See also variable `wl-draft-parent-folder'." :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 @@ -1340,6 +1488,9 @@ You can also set it to a list of setting. (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") @@ -1365,7 +1516,8 @@ You can also set it to a list of setting. (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 @@ -1409,6 +1561,11 @@ Available if only `wl-summary-lazy-highlight' is nil." :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 @@ -1518,10 +1675,40 @@ which appear just before @." :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: @@ -1529,13 +1716,15 @@ 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) @@ -1570,21 +1759,23 @@ which are replaced by the given information: (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 ]*\\)>\\)" @@ -1602,7 +1793,7 @@ Each elements are regexp of field-name." (defcustom wl-message-body-button-alist '(("]+>" 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 @@ -1642,14 +1833,18 @@ Each elements are regexp of field-name." :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) @@ -1659,12 +1854,18 @@ Each elements are regexp of field-name." :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." @@ -1673,7 +1874,7 @@ 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 @@ -1686,7 +1887,7 @@ with wl-highlight-folder-many-face." :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 @@ -1754,7 +1955,7 @@ with wl-highlight-folder-many-face." (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 @@ -1810,13 +2011,61 @@ This wrapper is generated by the mail system when rejecting a letter." :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 wl-summary-new-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." @@ -1838,7 +2087,7 @@ the message is skipped at cursor move." :group 'wl-summary) (defcustom wl-summary-incorporate-marks - (list wl-summary-new-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")) @@ -1847,8 +2096,7 @@ the message is skipped at cursor move." (defcustom wl-refile-rule-alist nil "Refile rule alist. e.x. -'( - (\"From\" +'((\"From\" (\"teranisi@isl.ntt.co.jp\" . \"+teranisi\")) (\"x-ml-name\" (\"^Wanderlust\" . \"+wl\") @@ -1906,28 +2154,33 @@ Each elements are regexp of folder name." (defcustom wl-show-plug-status-on-modeline t "If it is non-nil, show plugged status in modeline." :type 'boolean - :group 'wl-highlight) + :group 'wl-setting) (defcustom wl-plug-state-indicator-on " [ON] " "String used to show plugged status ON." :type 'string - :group 'wl-highlight) + :group 'wl-setting) (defcustom wl-plug-state-indicator-off " [--] " "String used to show plugged status OFF." :type 'string - :group 'wl-highlight) + :group 'wl-setting) (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")) - :group 'wl-highlight) + "All folders that include this list are automatically checked +every intervals specified by `wl-biff-check-interval'." + :type '(repeat (string :tag "Folder")) + :group 'wl-setting) (defcustom wl-biff-check-interval 40 "Number of seconds between updates of new mails in the mode line." :type 'integer - :group 'wl-highlight) + :group 'wl-setting) + +(defcustom wl-biff-use-idle-timer nil + "Non-nil to use idle timer instead of strict timer for wl-biff" + :type 'boolean + :group 'wl-setting) (defcustom wl-biff-state-indicator-on (if (and (featurep 'xemacs) (not (featurep 'mule))) @@ -1940,7 +2193,7 @@ every intervals specified by wl-biff-check-interval." 'iso-2022-jp))) "String used to show biff status ON." :type 'string - :group 'wl-highlight) + :group 'wl-setting) (defcustom wl-biff-state-indicator-off (if (and (featurep 'xemacs) (not (featurep 'mule))) @@ -1949,7 +2202,7 @@ every intervals specified by wl-biff-check-interval." "[‐]") "String used to show biff status OFF." :type 'string - :group 'wl-highlight) + :group 'wl-setting) (defcustom wl-mode-line-display-priority-list '(biff plug title) "Displaying order of items to be shown in modeline. The first item will @@ -1968,7 +2221,7 @@ even if the value of this option is set to nil. Here are some samples: :type '(repeat (radio (const :format "%v " biff) (const :format "%v " plug) (sexp :tag "Other" :value title))) - :group 'wl-highlight) + :group 'wl-setting) (defcustom wl-interactive-send t "*If non-nil, require your confirmation when sending draft message." @@ -1983,8 +2236,8 @@ even if the value of this option is set to nil. Here are some samples: (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 @@ -2025,6 +2278,12 @@ See also variable `wl-summary-next-no-unread-command'." :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 @@ -2042,7 +2301,7 @@ and reserved buffer cache." (const nntp) (const pop3) (const shimbun) - (const nmz) + (const search) (const archive) (const mark) (const cache))) @@ -2079,6 +2338,14 @@ Each elements are regexp of folder name." (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." @@ -2146,11 +2413,10 @@ e.x. :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") @@ -2235,11 +2501,23 @@ already existing summary." (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 "#" "Mark for removed folder." :type 'string @@ -2274,18 +2552,8 @@ ex. (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) @@ -2427,8 +2695,9 @@ ex. :group 'wl-expire) (defcustom wl-summary-expire-reserve-marks - (list wl-summary-important-mark - wl-summary-new-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. @@ -2609,7 +2878,16 @@ This variable can also be a regex." ;; 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) @@ -2621,6 +2899,7 @@ This variable can also be a regex." "*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." @@ -2663,6 +2942,41 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." :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) @@ -2722,12 +3036,16 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." "*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" @@ -2761,6 +3079,14 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." ;;;; 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)