 (defvar svn-status-mode-line-process-status "")
 (defvar svn-status-mode-line-process-edit-flag "")
 (defvar svn-status-edit-svn-command nil)
+(defvar svn-status-update-previous-process-output nil)
 (defvar svn-status-temp-dir
   (or
    (when (boundp 'temporary-file-directory) temporary-file-directory) ;emacs

  (svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
  (svn-run-svn t t 'info "info" "--targets" svn-status-temp-arg-file))

(defun svn-status-show-svn-diff (arg)
  "Run `svn diff' on all selected files.
See `svn-status-marked-files' for what counts as selected.
If ARG then prompt for revision to diff against, else compare working copy with BASE."
  (interactive "P")
  (svn-status-show-svn-diff-internal arg nil))

(defun svn-status-show-svn-diff-for-marked-files (arg)
  (interactive "P")
  (svn-status-show-svn-diff-internal arg t))

(defun svn-status-show-svn-diff-internal (arg &optional use-all-marked-files)
  (let ((fl (if use-all-marked-files
                (svn-status-marked-files)
              (list (svn-status-get-line-information))))
        (clear-buf t)
        (revision (if arg (svn-status-read-revision-string "Diff with files for version: " "PREV") "BASE")))
    (while fl
      (svn-run-svn nil clear-buf 'diff "diff" "-r" revision (svn-status-line-info->filename (car fl)))
      (setq clear-buf nil)

;;; Commentary

;; psvn.el is tested with GNU Emacs 21.3 on windows, debian linux
;; with svn 0.33

;; psvn.el is an interface for the revision control tool subversion
;; (see http://subversion.tigris.org)
