X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-vars.el;h=0bb77b80bab143785151c74368068cd423482d85;hb=709366cf00291239e4287abb0b2105ad47fdbf59;hp=f9a3eba38bc3181372eb670287dde1bcd69189e1;hpb=527a3bfc7a6e9f06009e56546b5972d042bcd8f2;p=elisp%2Fwanderlust.git diff --git a/wl/wl-vars.el b/wl/wl-vars.el index f9a3eba..0bb77b8 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 @@ -174,6 +175,49 @@ 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 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)) @@ -191,28 +235,33 @@ If you don't have multiple e-mail addresses, you don't have to set this." (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 (concat - (if wl-thr-children-number - (concat "+" (number-to-string wl-thr-children-number) ":") - "") - " " - (wl-summary-line-from))) + "")) (?f (wl-summary-line-from)) - (?# (wl-summary-line-list-count))) + (?# (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 is an expression to get string to insert.") +STRING-EXP is an expression to get string to insert.") -(defcustom wl-summary-line-format "%M/%D(%W)%h:%m %t%[%17(%c %f%) %] %s" +(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). @@ -224,11 +273,17 @@ which are replaced by the given information: %] 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. -%F The children number of the closed message thread and - the from: field string of the message are concatenated. %s The subject: field string of the message. -%S the size of the message (if available)." +%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) @@ -236,12 +291,24 @@ which are replaced by the given information: "An alist of folder name and a summary line format. If no match, `wl-summary-line-format' is used. e.x. - '((\"^%\" . \"%M/%D(%W)%h:%m %t%[%14F %](%S) %s\") - (\"^@2ch\" . \"%M%/%D/%h:%m %t[%9F ]%s\")))" + '((\"^%\" . \"%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 @@ -471,6 +538,33 @@ If nil, `elmo-nntp-default-port' is used." If nil, `elmo-nntp-default-stream-type' is used." :type 'boolean :group 'wl) +(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 "*Confirm prefetching if message size is larger than `wl-prefetch-threshold'." @@ -767,9 +861,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) @@ -780,15 +875,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) @@ -808,34 +898,11 @@ 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." - :type '(string :tag "Mark") - :group 'wl-summary-marks) -(defcustom wl-summary-new-mark "N" - "Mark for new 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-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") @@ -891,7 +958,7 @@ This variable is local to the summary buffers." :group 'wl-score) (defcustom wl-summary-score-marks - (list wl-summary-new-mark) + (list elmo-msgdb-new-mark) "Persistent marks to scoring." :type '(repeat (string :tag "Mark")) :group 'wl-score) @@ -1007,15 +1074,49 @@ 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 '(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 @@ -1147,8 +1248,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 @@ -1274,6 +1374,27 @@ which appear just before @." :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 @@ -1285,9 +1406,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) @@ -1381,6 +1503,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 @@ -1517,7 +1645,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 @@ -1539,9 +1667,9 @@ This wrapper is generated by the mail system when rejecting a letter." :group 'wl-pref) (defcustom wl-summary-auto-refile-skip-marks - (list wl-summary-new-mark - wl-summary-unread-uncached-mark - wl-summary-unread-cached-mark) + (list elmo-msgdb-new-mark + elmo-msgdb-unread-uncached-mark + elmo-msgdb-unread-cached-mark) "Persistent marks to skip auto-refiling." :type '(repeat (string :tag "Mark")) :group 'wl-summary) @@ -1561,8 +1689,8 @@ the message is skipped at cursor move." :group 'wl-summary) (defcustom wl-summary-incorporate-marks - (list wl-summary-new-mark - wl-summary-unread-uncached-mark) + (list elmo-msgdb-new-mark + elmo-msgdb-unread-uncached-mark) "Persistent marks to prefetch at `wl-summary-incorporate'." :type '(repeat (string :tag "Mark")) :group 'wl-summary) @@ -1748,6 +1876,11 @@ See also variable `wl-summary-next-no-unread-command'." :group 'wl-pref :group 'wl-setting) +(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." @@ -2142,11 +2275,10 @@ ex. :group 'wl-expire) (defcustom wl-summary-expire-reserve-marks - (list wl-summary-important-mark - wl-summary-new-mark - wl-summary-unread-mark - wl-summary-unread-uncached-mark - wl-summary-unread-cached-mark) + (list elmo-msgdb-important-mark + elmo-msgdb-new-mark + elmo-msgdb-unread-uncached-mark + elmo-msgdb-unread-cached-mark) "Permanent marks of reserved message when expire. Don't reserve temporary mark message. @@ -2374,6 +2506,11 @@ 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)