X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=wl%2Fwl-vars.el;h=6e8ecc6813242b04828eecc18a32875fbf8b3bb6;hb=4c3f56d75a954e8a1904bd767f2b544f5de57684;hp=5e113e35ac7f0c0a65da602da39690e7c2439760;hpb=d4d69afc0436a28cbf8be99a00f5c651d34b96c3;p=elisp%2Fwanderlust.git diff --git a/wl/wl-vars.el b/wl/wl-vars.el index 5e113e3..6e8ecc6 100644 --- a/wl/wl-vars.el +++ b/wl/wl-vars.el @@ -33,6 +33,7 @@ (require 'elmo-vars) (require 'elmo-util) +(require 'elmo-msgdb) (require 'custom) ;;; Customizable Variables @@ -128,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 @@ -174,6 +172,20 @@ If you don't have multiple e-mail addresses, you don't have to set this." string) :group 'wl) +(defcustom wl-summary-default-view 'thread + "Default status of summary view, thread or sequential view." + :type '(choice (const :tag "Thread" thread) + (const :tag "Sequential" sequence)) + :group 'wl-summary) + +(defcustom wl-summary-default-view-alist nil + "An alist of regexp for folder name and summary default view. +If no match, `wl-summary-default-view' is used." + :type '(repeat (cons (regexp :tag "Folder Regexp") + (choice (const :tag "Thread" thread) + (const :tag "Sequential" sequence)))) + :group 'wl-summary) + (defvar wl-summary-mode-line-format-spec-alist '((?f (if (memq 'modeline wl-use-folder-petname) (wl-folder-get-petname (elmo-folder-name-internal @@ -186,7 +198,7 @@ If you don't have multiple e-mail addresses, you don't have to set this." (?a (length wl-summary-buffer-number-list))) "An alist of format specifications that can appear in summary mode-lines. Each element is a list of following: -\(SPEC STRING-EXP\) +\(SPEC STRING-EXP) SPEC is a character for format specification. STRING-EXP is an expression to get string to insert.") @@ -233,7 +245,7 @@ which are replaced by the given information: (?@ (wl-summary-line-attached))) "An alist of format specifications that can appear in summary lines. Each element is a list of following: -\(SPEC STRING-EXP\) +\(SPEC STRING-EXP) SPEC is a character for format specification. STRING-EXP is an expression to get string to insert.") @@ -311,8 +323,95 @@ It is highly recommended to set this value to t." (defcustom wl-summary-search-parent-by-subject-regexp "^[ \t]*\\(\\[[^:]+[,: ][0-9]+\\]\\)?[ \t]*re[\\^[:> ]" "*If message does not have in-reply-to field nor references field and - subject matches this regexp, search parent message by subject matching." - :type 'string +subject matches this regexp, search parent message by subject matching. +If nil, never search search parent by subject." + :type '(choice string + (const :tag "Don't search parent" nil)) + :group 'wl-summary) + +;;; Mark & Action +(defcustom wl-summary-mark-action-list + '(("*" + target-mark + nil + wl-summary-register-target-mark + nil + wl-highlight-summary-temp-face + "Put target mark.") + ("d" + dispose + nil + wl-summary-register-temp-mark + wl-summary-exec-action-dispose + wl-highlight-summary-disposed-face + "Dispose messages according to `wl-dispose-folder-alist'.") + ("D" + delete + nil + wl-summary-register-temp-mark + wl-summary-exec-action-delete + wl-highlight-summary-deleted-face + "Delete messages immediately.") + ("o" + refile + wl-summary-get-refile-destination + wl-summary-set-action-refile + wl-summary-exec-action-refile + wl-highlight-summary-refiled-face + "Refile messages to the other folder.") + ("O" + copy + wl-summary-get-copy-destination + wl-summary-register-temp-mark + wl-summary-exec-action-copy + wl-highlight-summary-copied-face + "Copy messages to the other folder.") + ("i" + prefetch + nil + wl-summary-register-temp-mark + wl-summary-exec-action-prefetch + wl-highlight-summary-prefetch-face + "Prefetch messages.") + ("~" + resend + wl-summary-get-resend-address + wl-summary-register-temp-mark + wl-summary-exec-action-resend + wl-highlight-summary-resend-face + "Resend messages.")) + "A variable to define Mark & Action. +Each element of the list should be a list of +\(MARK + SYMBOL + ARGUMENT-FUNCTION + SET-MARK-FUNCTION + EXEC-FUNCTION + FACE + DOC-STRING) + +MARK is a temporal mark string to define. +SYMBOL is an action name to define. +ARGUMENT-FUNCTION is a function called to set the argument data for +SET-MARK-FUNCTION. +Its argument is (ACTION NUMBER). +ACTION is same as the SYMBOL. +NUMBER is the message number to determine the argument data. +SET-MARK-FUNCTION is a function called to set the mark. +Its argument is (NUMBER MARK DATA). +NUMBER is the target message number. +MARK is the temporary mark string. +DATA is given by ARGUMENT-FUNCTION. +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") + (string :tag "Document string")) :group 'wl-summary) ;; Important folders @@ -335,7 +434,7 @@ It is highly recommended to set this value to t." :group 'wl) (defcustom wl-default-spec "%" - "*Default spec" + "*Default prefix for folder name initially added in minibuffer" :type 'string :group 'wl) @@ -365,6 +464,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." @@ -377,6 +481,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." @@ -459,7 +580,7 @@ If nil, don't authenticate." "*POP3 user name to send mail using POP-before-SMTP. If nil, `elmo-pop3-default-user' is used. To use POP-before-SMTP, -\(setq wl-draft-send-mail-function 'wl-draft-send-mail-with-pop-before-smtp\)" +\(setq wl-draft-send-mail-function 'wl-draft-send-mail-with-pop-before-smtp)" :type '(choice (const :tag "none" nil) string) :group 'wl @@ -624,8 +745,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 @@ -722,30 +844,11 @@ Prepared candidates are 'wl-draft-send-mail-with-smtp, :group 'wl-draft) (defcustom wl-draft-reply-with-argument-list - '(("Reply-To" . (("Reply-To") nil nil)) - ("Mail-Reply-To" . (("Mail-Reply-To") nil nil)) - ("From" . (("From") nil nil))) + '(("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. -'fields for ***' is a list of strings. -If car of each cons cell exists in original message, -cdr of each cons cell is used for draft message. -Default is for 'reply-to-author'." - :type '(repeat (cons (choice (string :tag "Field Name") - (repeat (string :tag "Field Name"))) - (list (repeat :tag "Fields For To" string) - (repeat :tag "Fields For Cc" string) - (repeat :tag "Fields For Newsgroups" string)))) - :group 'wl-draft) - -(defcustom wl-draft-reply-without-argument-list - '(("Followup-To" . (nil nil ("Followup-To"))) - ("Mail-Followup-To" . (("Mail-Followup-To") nil ("Newsgroups"))) - ("Reply-To" . (("Reply-To") ("To" "Cc" "From") ("Newsgroups"))) - ("From" . (("From") ("To" "Cc") ("Newsgroups")))) - "Alist of cons cell of -('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups')) +\('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups')) 'field-name' is a string. 'fields for ***' is a list of strings. If car of each cons cell exists in original message, @@ -758,35 +861,20 @@ Default is for 'reply-to-all'." (repeat :tag "Fields For Newsgroups" string)))) :group 'wl-draft) -(defcustom wl-draft-reply-myself-with-argument-list - '(("Followup-To" . (("To") ("Cc") ("Followup-To"))) - ("Newsgroups" . (("To") ("Cc") ("Newsgroups"))) - ("From" . (("To") ("Cc") nil))) - "Alist of cons cell of -('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups')) -'field-name' is a string. -'fields for ***' is a list of strings. -If car of each cons cell exists in original message, -cdr of each cons cell is used for draft message. -Default is for 'reply-to-me'." - :type '(repeat (cons (choice (string :tag "Field Name") - (repeat (string :tag "Field Name"))) - (list (repeat :tag "Fields For To" string) - (repeat :tag "Fields For Cc" string) - (repeat :tag "Fields For Newsgroups" string)))) - :group 'wl-draft) - -(defcustom wl-draft-reply-myself-without-argument-list - '(("Followup-To" . (("To") ("Cc") ("Followup-To"))) - ("Newsgroups" . (("To") ("Cc") ("Newsgroups"))) - ("From" . (("To") ("Cc") nil))) +(defcustom wl-draft-reply-without-argument-list + '(("Followup-To" . (("Mail-Followup-To" "Mail-Reply-To" "Reply-To") nil ("Followup-To"))) + ("Mail-Followup-To" . (("Mail-Followup-To") nil nil)) + ("Newsgroups" . (("Mail-Reply-To" "Reply-To" "To") ("Cc") ("Newsgroups"))) + ("Mail-Reply-To" . (("Mail-Reply-To" "Reply-To") ("To" "Cc") nil)) + ("Reply-To" . (("Reply-To") ("To" "Cc") nil)) + (wl-draft-self-reply-p . (("To") ("Cc") nil)) + ("From" . (("From") ("To" "Cc") nil))) "Alist of cons cell of -('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups')) +\('field-name' . ('fields for To' 'fields for Cc' 'fields for Newsgroups')) 'field-name' is a string. 'fields for ***' is a list of strings. If car of each cons cell exists in original message, -cdr of each cons cell is used for draft message. -Default is for 'followup-to-me'." +cdr of each cons cell is used for draft message." :type '(repeat (cons (choice (string :tag "Field Name") (repeat (string :tag "Field Name"))) (list (repeat :tag "Fields For To" string) @@ -795,7 +883,7 @@ Default is for 'followup-to-me'." :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) @@ -846,9 +934,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) @@ -859,15 +948,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) @@ -887,34 +971,76 @@ Default is for 'followup-to-me'." :type 'boolean :group 'wl-folder) -(defcustom wl-summary-unread-mark "!" - "Mark for unread message." - :type '(string :tag "Mark") - :group 'wl-summary-marks) -(defcustom wl-summary-important-mark "$" - "Mark for important message." +(defcustom wl-summary-persistent-mark-priority-list '(new + flag + answered + unread) + "List of flags reflected with the priority to persistent marks and faces." + :type '(repeat (radio (const :format "%v " new) + (const :format "%v " flag) + (const :format "%v " answered) + (const :format "%v " unread))) + :group 'wl-summary) + +(defcustom wl-summary-flag-alist + '((important "orange")) + "An alist to define the flags for the summary mode. +Each element is a form like: +\(SYMBOL-OF-FLAG COLOR\) +Example: +\((important \"orange\"\) + \(todo \"red\"\) + \(business \"green\"\) + \(private \"blue\"\)\)" + :type '(repeat (list (symbol :tag "flag") + (string :tag "color"))) + :group 'wl-summary) + +(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-mark "N" - "Mark for new message." + +(defcustom wl-summary-new-cached-mark "?" + "Mark for new but already cached message." :type '(string :tag "Mark") :group 'wl-summary-marks) + (defcustom wl-summary-unread-uncached-mark "U" "Mark for unread and uncached message." :type '(string :tag "Mark") :group 'wl-summary-marks) + (defcustom wl-summary-unread-cached-mark "!" "Mark for unread 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." :type '(string :tag "Mark") :group 'wl-summary-marks) + +(defcustom wl-summary-answered-cached-mark "&" + "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." + :type '(string :tag "Mark") + :group 'wl-summary-marks) + +(defcustom wl-summary-flag-mark "$" + "Mark for the messages which have tags." + :type '(string :tag "Mark") + :group 'wl-summary-marks) + (defcustom wl-summary-score-over-mark "+" "Score mark used for messages with high scores." :type '(string :tag "Mark") :group 'wl-summary-marks) + (defcustom wl-summary-score-below-mark "-" "Score mark used for messages with low scores." :type '(string :tag "Mark") @@ -928,7 +1054,7 @@ Default is for 'followup-to-me'." (defcustom wl-summary-fix-timezone nil "*Time zone of the date string in summary mode. If nil, it is adjust to the default time zone information -\(system's default time zone or environment variable TZ\)." +\(system's default time zone or environment variable TZ)." :type '(choice (const :tag "Default time zone" nil) string) :group 'wl-summary) @@ -970,7 +1096,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) @@ -1086,15 +1212,50 @@ This can either be a regular expression or list of regular expressions." :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 '(choice (const :tag "default" nil) + (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 @@ -1178,10 +1339,49 @@ 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-reply-default-position 'body + "Begining position of reply buffer. +'body means the top of body. +'bottom means the bottom of body. +'top means the top of header. +\"To\", \"Newsgroups\", \"Subject\" means the position of the header field. +You can also set it to a list of setting. +" + :type '(choice (repeat + (choice + (const :tag "Top of body" body) + (const :tag "Bottom of body" bottom) + (const :tag "Top of header" top) + (const "To") + (const "Newsgroups") + (const "Subject") + (string :tag "Header Name"))) + (const "To") + (const "Newsgroups") + (const "Subject") + (string :tag "Header Name")) :group 'wl-draft) (defcustom wl-draft-queue-save-variables @@ -1247,6 +1447,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 @@ -1313,7 +1518,11 @@ Allowed situations are: :type '(repeat (cons (string :tag "Realname") (string :tag "Petname"))) :group 'wl-folder) -(defcustom wl-summary-weekday-name-lang "ja" +(defcustom wl-summary-weekday-name-lang + (if (and (boundp 'current-language-environment) + (string-equal "Japanese" + (symbol-value 'current-language-environment))) + "ja" "en") "*Language to display week day." :type '(choice (const "ja") (const "en") @@ -1323,7 +1532,7 @@ Allowed situations are: :group 'wl-summary :group 'wl-pref) -(defcustom wl-message-id-use-wl-from nil +(defcustom wl-message-id-use-wl-from t "*Use `wl-from' for domain part of Message-ID if non-nil." :type 'boolean :group 'wl-pref) @@ -1352,6 +1561,49 @@ which appear just before @." :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)) + (?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: +\(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 %F>>" + "*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. +%F The global flag indicator." + :group 'wl-pref + :type 'string) + (defcustom wl-message-truncate-lines default-truncate-lines "*Truncate lines in Message Buffer." :type 'boolean @@ -1363,9 +1615,10 @@ which appear just before @." :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) @@ -1459,6 +1712,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 @@ -1479,7 +1738,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 @@ -1492,7 +1751,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 @@ -1511,6 +1770,13 @@ with wl-highlight-folder-many-face." :group 'wl-summary :group 'wl-pref) +(defcustom wl-summary-max-thread-depth 30 + "*If thread depth of the message is larger than this value, divide it." + :type '(choice (const :tag "Unlimited" nil) + integer) + :group 'wl-summary + :group 'wl-pref) + (defcustom wl-summary-no-from-message "nobody@nowhere?" "*A string displayed in summary when no from field exists." :type 'string @@ -1533,6 +1799,12 @@ with wl-highlight-folder-many-face." :group 'wl-summary :group 'wl-pref) +(defcustom wl-summary-print-argument-within-window nil + "*If non-nil, always print argument right side of window." + :type 'boolean + :group 'wl-summary + :group 'wl-pref) + (defcustom wl-summary-pick-field-default "Body" "*Default field for pick." :type '(radio (const "From") @@ -1547,14 +1819,6 @@ with wl-highlight-folder-many-face." (string :tag "Other")) :group 'wl-summary) -(defcustom wl-summary-subject-length-limit nil - "*Set subject width in summary when wl-summary-width is nil. -Nil means unlimited" - :type '(choice (const :tag "Unlimited" nil) - integer) - :group 'wl-summary - :group 'wl-pref) - (defcustom wl-mime-charset 'x-ctext "*MIME Charset for summary and message." :type 'symbol @@ -1595,7 +1859,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 @@ -1611,13 +1875,47 @@ This wrapper is generated by the mail system when rejecting a letter." :type 'regexp :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 '(recipients + envelope-from + smtp-posting-server + smtp-posting-port) + "*Attribute symbols to display in the draft preview. +Candidates are following: +`recipients' +`envelope-from' +`smtp-posting-server' +`smtp-posting-port' +`nntp-posting-server' +`nntp-posting-port' +Also variables which begin with `wl-' can be specified +\(`wl-' have to be removed\)" + :type '(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." @@ -1625,21 +1923,21 @@ This wrapper is generated by the mail system when rejecting a letter." :group 'wl-summary) (defcustom wl-summary-reserve-mark-list - (list "o" "O" "D") + (list "o" "O" "D" "d" "i") "If a message is already marked as temporal marks in this list, the message is not marked by any mark command." :type '(repeat (string :tag "Temp-Mark")) :group 'wl-summary) (defcustom wl-summary-skip-mark-list - (list "D") + (list "D" "d") "If a message is already marked as temporal marks in this list, the message is skipped at cursor move." :type '(repeat (string :tag "Temp-Mark")) :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")) @@ -1826,7 +2124,12 @@ See also variable `wl-summary-next-no-unread-command'." :group 'wl-pref :group 'wl-setting) -(defcustom wl-message-buffer-prefetch-folder-type-list t +(defcustom wl-message-buffer-name " *WL:Message*" + "*Buffer name for message buffers." + :group 'wl-pref + :group 'wl-setting) + +(defcustom wl-message-buffer-prefetch-folder-type-list '(imap4 nntp) "*All folder types that match this list prefetch next message, and reserved buffer cache." :type `(choice (const :tag "all" t) @@ -1852,12 +2155,12 @@ e.x. :type '(repeat (regexp :tag "Folder Regexp")) :group 'wl-pref) -(defcustom wl-message-buffer-prefetch-depth 3 +(defcustom wl-message-buffer-prefetch-depth 1 "*Depth of buffer prefetch in summary mode." :type 'integer :group 'wl-pref) -(defcustom wl-message-buffer-prefetch-idle-time 0.2 +(defcustom wl-message-buffer-prefetch-idle-time 1 "*Idle time of buffer prefetch." :type 'number :group 'wl-pref) @@ -1924,7 +2227,7 @@ e.x. ("^-han\\." . (2 "+" "+" "|" "-" " "))) "Thread indent set alist. If no match, following indent set is used. -(wl-thread-indent-level +\(wl-thread-indent-level wl-thread-have-younger-brother-str wl-thread-youngest-child-str wl-thread-vertical-str @@ -1942,16 +2245,14 @@ 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") + (cons "^'flag" "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") - (const "first:") - (const "last:") (const "no-sync") (const :tag "none" nil)))) :group 'wl-pref) @@ -1961,8 +2262,6 @@ e.x. :type '(choice (const "update") (const "all") (const "rescan") - (const "first:") - (const "last:") (const "no-sync") (const :tag "none" nil)) :group 'wl-pref) @@ -1987,7 +2286,7 @@ If TYPE is nil, do nothing for duplicated messages." :group 'wl-folder) (defcustom wl-folder-move-cur-folder nil - "*Non-nil, move to current folder on folder-mode when goto folder." + "*Non-nil, move cursor to current folder on folder buffer when goto folder." :type 'boolean :group 'wl-folder) @@ -2017,8 +2316,13 @@ or 'skip-no-unread." :group 'wl-summary) (defcustom wl-summary-search-via-nntp 'confirm - "*Non-nil, search message via nntp after `wl-summary-jump-to-msg-by-message-id'. If the value is 'confirm, confirm before search." - :type 'boolean + "*Non-nil, search message via nntp after `wl-summary-jump-to-msg-by-message-id'. +If the value is 'confirm, confirm before search, 'force to search via nntp +regardless of current folder type." + :type '(choice (const :tag "confirm" confirm) + (const :tag "always" force) + (const :tag "in nntp folder" t) + (const :tag "never" nil)) :group 'wl-summary) (defcustom wl-summary-keep-cursor-command @@ -2035,6 +2339,11 @@ Sender information in summary mode." regexp) :group 'wl-summary) +(defcustom wl-summary-save-file-suffix ".eml" + "Suffix for the saved file name." + :type 'string + :group 'wl-summary) + (defcustom wl-folder-removed-mark "#" "Mark for removed folder." :type 'string @@ -2045,8 +2354,9 @@ Sender information in summary mode." :type 'string :group 'wl-folder) -(defcustom wl-delete-folder-alist '(("^-" . remove)) - "*Alist of folder and delete policy. +(defcustom wl-dispose-folder-alist '(("^-" . remove) + ("^@" . remove)) + "*Alist of folder and dispose policy. Each element is (folder-regexp . policy). The policy is one of the followings: @@ -2078,9 +2388,10 @@ POLICY is copy or move." :group 'wl-summary :group 'wl-pref) -(defcustom wl-folder-hierarchy-access-folders '("^-$" "^-alt$") +(defcustom wl-folder-hierarchy-access-folders '("^-[^\\.]*\\(:\\|@\\|$\\)" + "^@$" "^'$") "*Access group REGEXPs to make hierarchy structure." - :type '(repeat (string :tag "Folder")) + :type '(repeat (string :tag "Regexp")) :group 'wl-folder) (defcustom wl-folder-init-load-access-folders nil @@ -2220,9 +2531,9 @@ ex. :group 'wl-expire) (defcustom wl-summary-expire-reserve-marks - (list wl-summary-important-mark - wl-summary-new-mark - wl-summary-unread-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. @@ -2403,7 +2714,12 @@ 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-use-flag-folder-help-echo nil + "*Display help-echo in the flag folder if non-nil." :type 'boolean :group 'wl-highlight) @@ -2478,22 +2794,19 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." (defvar wl-modeline-biff-state-off wl-biff-state-indicator-off) ;; Advanced thread view. -(defvar wl-thread-indent-level 1 +(defvar wl-thread-indent-level (if wl-on-mule 1 2) "*Indent level for thread.") -(defvar wl-thread-have-younger-brother-str "┣" +(defvar wl-thread-have-younger-brother-str (if wl-on-mule "┣" "+") "*A string for thread branch line. It should contain one character.") -(defvar wl-thread-youngest-child-str "┗" +(defvar wl-thread-youngest-child-str (if wl-on-mule "┗" "+") "*A string for thread branch line. It should contain one character.") -(defvar wl-thread-vertical-str "┃" +(defvar wl-thread-vertical-str (if wl-on-mule "┃" "|") "*A string for thread branch line. It should contain one character.") -(defvar wl-thread-horizontal-str "━" +(defvar wl-thread-horizontal-str (if wl-on-mule "━" "-") "*A string for thread branch line. It should contain one character.") -(defvar wl-thread-space-str " " +(defvar wl-thread-space-str (if wl-on-mule " " " ") "*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.") - ;; folder icons. filename relative to wl-icon-directory (defvar wl-opened-group-folder-icon "opened.xpm" "*Icon file for opened group folder.") @@ -2523,6 +2836,8 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." "*Icon file for namazu 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-empty-trash-folder-icon "trash-e.xpm" @@ -2558,6 +2873,20 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." ;;;; Obsolete variables. +;; 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) + +;; 2002-12-25 +(elmo-define-obsolete-variable 'wl-draft-reply-myself-with-argument-list + 'wl-draft-reply-with-argument-list) +(elmo-define-obsolete-variable 'wl-draft-reply-myself-without-argument-list + 'wl-draft-reply-without-argument-list) + ;; 2001-12-11: *-dir -> *-directory (elmo-define-obsolete-variable 'wl-icon-dir 'wl-icon-directory) @@ -2568,10 +2897,6 @@ a symbol `bitmap', `xbm' or `xpm' in order to force the image format." (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)