+(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)
+