                     ;; run on a TTY without $DISPLAY, this will fail; in
                     ;; such cases, the user should start ssh-agent and
                     ;; then run ssh-add explicitly.
-                    (setq svn-proc (apply 'start-process "svn" proc-buf svn-exe arglist)))
+                    (setq svn-proc (apply svn-start-process-function "svn" proc-buf svn-exe arglist)))
                   (when svn-status-svn-process-coding-system
                     (set-process-coding-system svn-proc svn-status-svn-process-coding-system
                                                svn-status-svn-process-coding-system))

              (let ((process-environment (svn-process-environment)))
                ;; `call-process' ignores `process-connection-type' and
                ;; never opens a pseudoterminal.
                (apply 'call-process svn-exe nil proc-buf nil arglist))
              (setq svn-status-last-output-buffer-name svn-process-buffer-name)
              (run-hooks 'svn-post-process-svn-output-hook)
              (setq svn-status-mode-line-process-status "")

                                         ,value-type)))))
    widget))

;; process launch functions
(defvar svn-call-process-function (if (fboundp 'process-file) 'process-file 'call-process))
(defvar svn-start-process-function (if (fboundp 'start-file-process) 'start-file-process 'start-process))


;;; keymaps

