* wl-vars.el (toplevel): Require elmo-util.
[elisp/wanderlust.git] / wl / wl-vars.el
index ce892a5..b7169f0 100644 (file)
@@ -1,8 +1,10 @@
 ;;; wl-vars.el -- Variable definitions for Wanderlust.
 
-;; Copyright 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000,2001 Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000,2001 Masahiro MURATA <muse@ba2.so-net.ne.jp>
 
 ;; Author: Yuuichi Teranishi <teranisi@gohome.org>
+;;     Masahiro MURATA <muse@ba2.so-net.ne.jp>
 ;; Keywords: mail, net news
 
 ;; This file is part of Wanderlust (Yet Another Message Interface on Emacsen).
@@ -30,6 +32,7 @@
 ;;
 
 (require 'elmo-vars)
+(require 'elmo-util)
 
 (if (module-installed-p 'custom)
     (require 'custom))
 (defgroup wl nil
   "Wanderlust, a news and mail reading software."
   :tag "Wanderlust"
-  :link '(custom-manual "(wl-ja)Top")
+  :link (` (custom-manual
+           (, (if (and (boundp 'current-language-environment)
+                       (string-equal "Japanese"
+                                     (symbol-value 'current-language-environment)))
+                  "(wl-ja)Top"
+                "(wl)Top"))))
   :group 'news
   :group 'mail)
 
   (and wl-on-mule (or wl-on-xemacs
                      (> emacs-major-version 19))))
 
-(require 'elmo-vars)
-
 (eval-when-compile
   (defun-maybe locate-data-directory (a)))
 
 (defvar wl-use-semi (module-installed-p 'mime-view) ; If nil, use tm.
   "*Use SEMI or not.")
 
-(defcustom wl-from (if (boundp 'user-mail-address)
-                      user-mail-address)
+(defcustom wl-from (and user-mail-address
+                       (concat (and user-full-name
+                                    (concat (elmo-address-quote-specials
+                                             user-full-name)
+                                            " "))
+                               "<" user-mail-address ">"))
   "*From string used in draft."
-  :type 'string
+  :type  'string
   :group 'wl)
 
 (defcustom wl-user-mail-address-list nil
@@ -139,7 +149,7 @@ If you don't have multiple e-mail addresses, you don't have to set this."
   :type '(repeat string)
   :group 'wl)
 
-(defcustom wl-organization nil
+(defcustom wl-organization (getenv "ORGANIZATION")
   "Organization name."
   :type '(choice (const :tag "none" nil)
                  string)
@@ -176,7 +186,7 @@ If you don't have multiple e-mail addresses, you don't have to set this."
   :type 'function
   :group 'wl-summary)
 
-(defcustom wl-summary-search-parent-by-subject-regexp "^[ \t]*\\(\\[[^:]+[,: ][0-9]+\\]\\)?[ \t]*re[\\^[: ]"
+(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
@@ -431,7 +441,9 @@ system internal to accord facilities for the Emacs variants.")
 (defvar wl-summary-divide-thread-when-subject-changed nil
   "Divide thread when subject is changed.")
 (defvar wl-init-hook nil
-  "A hook called when initialization is finished.")
+  "A hook called when initialization is finished.  This hook may contain
+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
@@ -440,7 +452,7 @@ system internal to accord facilities for the Emacs variants.")
   "A hook called when Draft is prepared.")
 (defvar wl-draft-reedit-hook nil
   "A hook called when Draft is re-edited.")
-(defvar wl-draft-send-hook nil
+(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
   "A hook called just before the mail sending process starts.")
@@ -458,10 +470,16 @@ system internal to accord facilities for the Emacs variants.")
   "A hook called when header is highlighted.")
 (defvar wl-highlight-message-hook nil
   "A hook called when message is highlighted.")
+(defvar wl-save-hook nil
+  "A hook called when save summary and folder status.")
 (defvar wl-exit-hook nil
   "A hook called when exit wanderlust.")
 (defvar wl-folder-suspend-hook nil
   "A hook called when suspend wanderlust.")
+(defvar wl-biff-notify-hook '(beep)
+  "A hook called when a biff-notification is invoked.")
+(defvar wl-biff-unnotify-hook nil
+  "A hook called when a biff-notification is removed.")
 (defvar wl-auto-check-folder-pre-hook nil
   "A hook called before auto check folders.")
 (defvar wl-auto-check-folder-hook nil
@@ -497,10 +515,7 @@ system internal to accord facilities for the Emacs variants.")
 (defvar wl-score-mode-hook nil
   "A hook called when score mode is started.")
 (defvar wl-make-plugged-hook nil
-  "A hook called when make plugged alist.
-This hook may contain the functions `wl-plugged-init-icons' and
-`wl-biff-init-icons' for reasons of system internal to accord
-facilities for the Emacs variants.")
+  "A hook called when make plugged alist.")
 
 (defvar wl-plugged-exit-hook nil
   "A hook called when exit plugged mode.")
@@ -604,6 +619,12 @@ Default is for 'followup-to-me'."
   :type 'boolean
   :group 'wl-draft)
 
+(defcustom wl-draft-delete-myself-from-bcc-fcc nil
+  "*Do not insert bcc or fcc if To and Cc fields is a member of
+`wl-subscribed-mailing-list'"
+  :type 'boolean
+  :group 'wl-draft)
+
 (defcustom wl-draft-resume-folder-window t
   "*Resume folder window in `wl-draft-hide'."
   :type 'boolean
@@ -661,6 +682,11 @@ Default is for 'followup-to-me'."
   :type '(string :tag "Base")
   :group 'wl)
 
+(defcustom wl-ldap-objectclass "person"
+  "*LDAP objectclass."
+  :type 'string
+  :group 'wl)
+
 (defcustom wl-use-ldap nil
   "*If non-nil, use LDAP for address completion."
   :type 'boolean
@@ -710,9 +736,12 @@ Default is for 'followup-to-me'."
   :type '(repeat string)
   :group 'wl-summary)
 
-(defcustom wl-summary-fix-timezone "JST"
-  "Non-nil forces to fix timezone of summary date."
-  :type 'string
+(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\)."
+  :type '(choice (const :tag "Default time zone" nil)
+                string)
   :group 'wl-summary)
 
 (defcustom wl-summary-default-score 0
@@ -982,15 +1011,24 @@ ex.
   :group 'wl-summary
   :group 'wl-highlight)
 
+(defcustom wl-summary-lazy-highlight (and (boundp 'window-scroll-functions)
+                                         (not wl-on-xemacs))
+  "Non-nil forces lazy summary highlighting using `window-scroll-functions'."
+  :type 'boolean
+  :group 'wl-summary
+  :group 'wl-highlight)
+
 (defcustom wl-summary-highlight-partial-threshold 1000
-  "Summary is not highlighted entirely if there are lines more than this value."
+  "Summary is not highlighted entirely if there are lines more than this value.
+Available if only `wl-summary-lazy-highlight' is nil."
   :type 'integer
   :group 'wl-summary
   :group 'wl-highlight)
 
 (defcustom wl-summary-partial-highlight-above-lines 30
   "If Summary has lines more than `wl-summary-highlight-partial-threshold',
-Summary lines are highlighted partialy above current position."
+Summary lines are highlighted partialy above current position.
+Available if only `wl-summary-lazy-highlight' is nil."
   :type 'integer
   :group 'wl-summary
   :group 'wl-highlight)
@@ -1130,6 +1168,16 @@ Each elements are regexp of field-name."
   :group 'wl-summary
   :group 'wl-pref)
 
+(defcustom wl-folder-use-frame nil
+  "*Use dedicated frame for folder mode if non-nil."
+  :type 'boolean
+  :group 'wl-pref)
+
+(defcustom wl-summary-use-frame nil
+  "*Use dedicated frame for each folder summary if non-nil."
+  :type 'boolean
+  :group 'wl-pref)
+
 (defcustom wl-stay-folder-window nil
   "*Stay folder window when folder is selected if non-nil."
   :type 'boolean
@@ -1163,7 +1211,7 @@ with wl-highlight-folder-many-face."
 (defcustom wl-fcc nil
   "*Folder Carbon Copy."
   :type '(choice (const :tag "disable" nil)
-                 string)
+                 string function)
   :group 'wl-draft
   :group 'wl-pref)
 
@@ -1203,7 +1251,8 @@ with wl-highlight-folder-many-face."
 
 (defcustom wl-summary-width 80
   "*Set summary line width if non nil."
-  :type 'integer
+  :type '(choice (const :tag "Don't truncate" nil)
+                integer)
   :group 'wl-summary
   :group 'wl-pref)
 
@@ -1409,12 +1458,28 @@ every intervals specified by wl-biff-check-interval."
   :type 'integer
   :group 'wl-highlight)
 
-(defcustom wl-biff-state-indicator-on "[\e$B")\e(B]"
+(defcustom wl-biff-state-indicator-on (if (and (featurep 'xemacs)
+                                              (not (featurep 'mule)))
+                                         "[Mail]"
+                                       (decode-coding-string
+                                        ;; Youbin mark
+                                        (read "\"[\e$B\\\")\e(B]\"")
+                                        (if (boundp 'MULE)
+                                            '*iso-2022-jp*
+                                          'iso-2022-jp)))
   "String used to show biff status ON."
   :type 'string
   :group 'wl-highlight)
 
-(defcustom wl-biff-state-indicator-off "[\e$B!>\e(B]"
+(defcustom wl-biff-state-indicator-off (if (and (featurep 'xemacs)
+                                               (not (featurep 'mule)))
+                                          "[--]"
+                                        (decode-coding-string
+                                         ;; Japanese short hyphen
+                                         (read "\"[\e$B!>\e(B]\"")
+                                         (if (boundp 'MULE)
+                                             '*iso-2022-jp*
+                                           'iso-2022-jp)))
   "String used to show biff status OFF."
   :type 'string
   :group 'wl-highlight)
@@ -1438,7 +1503,7 @@ even if the value of this option is set to nil.  Here are some samples:
                        (sexp :tag "Other" :value title)))
   :group 'wl-highlight)
 
-(defcustom wl-interactive-send nil
+(defcustom wl-interactive-send t
   "*If non-nil, require your confirmation when sending draft message."
   :type 'boolean
   :group 'wl-pref)
@@ -2080,20 +2145,17 @@ If it is a number, only numbers will be highlighted."
   :type 'boolean
   :group 'wl-pref)
 
-(defcustom wl-demo-display-logo (or (and (featurep 'xemacs)
-                                        (if (featurep 'xpm)
-                                            'xpm 'xbm))
-                                   (and (module-installed-p 'image)
-                                        (if (image-type-available-p 'xpm)
-                                            'xpm 'xbm))
-                                   (and (module-installed-p 'bitmap)
-                                        'xbm))
-  "If non-nil, show graphic logo in the startup screen.
-You can set it to a symbol `xbm' to limit the image format to
-XBM even if XPM can be shown."
-  :type '(radio (const :tag "OFF" nil)
-               (const :tag "XBM (possibly BITMAP-MULE)" xbm)
-               (sexp :format "ON  (any format)" :value t))
+(defcustom wl-demo-display-logo (if (or (featurep 'xemacs)
+                                       (module-installed-p 'image)
+                                       (module-installed-p 'bitmap))
+                                   t)
+  "If it is T, show graphic logo in the startup screen.  You can set it to
+a symbol `bitmap', `xbm' or `xpm' in order to force the image format."
+  :type '(radio (const :tag "Off" nil)
+               (const :tag "On (any format)" t)
+               (const xpm)
+               (const xbm)
+               (const :tag "bitmap (using BITMAP-MULE)" bitmap))
   :group 'wl-pref)
 
 ;;; Internal variables
@@ -2174,9 +2236,9 @@ XBM even if XPM can be shown."
   "*Icon file for no mail existed state.")
 (defvar wl-prog-uudecode "uudecode"
   "*uudecode program name.")
-(defvar wl-prog-uudecode-arg '("-p") ;; outout is stdout.
+(defvar wl-prog-uudecode-arg nil
   "*Arguments for uudecode program.")
-(defvar wl-prog-uudecode-no-stdout-option nil
+(defvar wl-prog-uudecode-no-stdout-option t
   "*If non-nil, uudecode program don't have option for output to stdout.")
 
 ;; Obsolete variables. for compatibility.