 nil       ... show in *svn-process* buffer
 t         ... show in dedicated *svn-info* buffer
 invisible ... don't show the buffer (eventually useful for update)
-a string  ... show in a buffer named string")
-
-(defvar svn-status-short-mod-flag-p t
+a string  ... show in a buffer named string"
+  :type '(svn-alist
+          :key-type symbol
+          :value-type (group
+                       (choice
+                        (const :tag "Show in *svn-process* buffer" nil)
+                        (const :tag "Show in dedicated *svn-info* buffer" t)
+                        (const :tag "Don't show the output" invisible)
+                        (string :tag "Show in a buffer named"))))
+  :options '(diff log info blame proplist update)
+  :group 'psvn)
+
+(defcustom svn-status-short-mod-flag-p t
   "*Whether the mark for out of date files is short or long.
 
 If this variable is is t, and a file is out of date (i.e., there is a newer

(require 'easymenu)

;;; user setable variables
(defvar svn-status-verbose t
  "*Add '-v' to svn status call.")
(defvar svn-log-edit-file-name "++svn-log++"
  "*Name of a saved log file.
This can be either absolute, or relative to the default directory
of the *svn-log-edit* buffer.")
(defvar svn-log-edit-insert-files-to-commit t
  "*Insert the filelist to commit in the *svn-log* buffer")
(defvar svn-log-edit-use-log-edit-mode
  (and (condition-case nil (require 'log-edit) (error nil)) t)
  "*Use log-edit-mode as base for svn-log-edit-mode
This variable takes effect only when psvn.el is being loaded.")
(defvar svn-status-hide-unknown nil
  "*Hide unknown files in `svn-status-buffer-name' buffer.
This can be toggled with \\[svn-status-toggle-hide-unknown].")
(defvar svn-status-hide-unmodified nil
  "*Hide unmodified files in `svn-status-buffer-name' buffer.
This can be toggled with \\[svn-status-toggle-hide-unmodified].")
(defvar svn-status-sort-status-buffer t
  "Sort the `svn-status-buffer-name' buffer.
Setting this variable to nil speeds up M-x svn-status.
However, it is possible, that the sorting is wrong in this case.
This can be toggled with \\[svn-status-toggle-sort-status-buffer].")

(defvar svn-status-unmark-files-after-list '(commit revert)
  "*List of operations after which all user marks will be removed.
Possible values are: commit, revert.")

(defvar svn-status-negate-meaning-of-arg-commands '()
  "*List of operations that should use a negated meaning of the prefix argument.
The supported functions are `svn-status' and `svn-status-set-user-mark'.")

(defvar svn-status-svn-executable "svn"
  "*The name of the svn executable.
This can be either absolute or looked up on `exec-path'.")

;; TODO: bind `process-environment' instead of running env?
;; That would probably work more reliably in Windows.
(defvar svn-status-svn-environment-var-list '()
  "*A list of environment variables that should be set for that svn process.
If you set that variable, svn is called with that environment variables set.
That is done via the env program.

You could set it for example to '(\"LANG=C\")")

(defvar svn-browse-url-function nil
  ;; If the user hasn't changed `svn-browse-url-function', then changing
  ;; `browse-url-browser-function' should affect psvn even after it has
  ;; been loaded.
  "Function to display a Subversion related WWW page in a browser.
So far, this is used only for \"trac\" issue tracker integration.
By default, this is nil, which means use `browse-url-browser-function'.
Any non-nil value overrides that variable, with the same syntax.")

(defvar svn-status-window-alist
  '((diff "*svn-diff*") (log "*svn-log*") (info t) (blame t) (proplist t) (update t))
  "An alist to specify which windows should be used for svn command outputs.
The following keys are supported: diff, log, info, blame, proplist, update.

  "A special coding system is needed for the output of svn.
svn-status-coding-system is used in svn-run-svn, if it is not nil.")

(defcustom svn-status-wash-control-M-in-process-buffers
  (eq system-type 'windows-nt)
  "*Remove any trailing ^M from the *svn-process* buffer."
  :type 'boolean
  :group 'psvn)

;;; experimental features
(defvar svn-status-track-user-input nil "Track user/password queries.
