         if (listp item) nconc (svn-status-flatten-list item)
         else collect item))
 
+(defun svn-status-completion-function ()
+  (if svn-status-use-ido-completion 'ido-completing-read 'completing-read))
+
 (defun svn-status-window-line-position (w)
   "Return the window line at point for window W, or nil if W is nil."
   (svn-status-message 3 "About to count lines; selected window is %s" (selected-window))

(defvar svn-status-track-user-input nil "Track user/password queries.
This feature is implemented via a process filter.
It is an experimental feature.")

;;; Customize group
(defgroup psvn nil

  (interactive)
  (require 'mailcap nil t)
  (let ((completion-ignore-case t)
        (mime-types (when (fboundp 'mailcap-mime-types)
                      (mailcap-mime-types))))
    (svn-status-property-set-property
     (svn-status-marked-files) "svn:mime-type"
     (funcall (svn-status-completion-function) "Set svn:mime-type for the marked files: "
              (mapcar (lambda (x) (cons x x)) ; for Emacs 21
                      (sort mime-types 'string<))))))

