     (set-marker (process-mark (get-process "svn")) (point)))
   (process-send-string "svn" string))
 
+(defun svn-process-send-string-and-newline (string &optional send-passwd)
+  "Send a string to the running svn process.
+Just call `svn-process-send-string' with STRING and an end of line termination.
+When called with a prefix argument, read the data from user as password."
+  (interactive (let* ((use-passwd current-prefix-arg)
+                      (s (if use-passwd
+                             (read-passwd "Send secret line to svn process: ")
+                           (read-string "Send line to svn process: "))))
+                 (list s use-passwd)))
+  (svn-process-send-string (concat string "\n") send-passwd))
+
 ;; --------------------------------------------------------------------------------
 ;; Property List stuff
 ;; --------------------------------------------------------------------------------


(when (not svn-process-mode-map)
  (setq svn-process-mode-map (make-sparse-keymap))
  (define-key svn-process-mode-map [?q] 'bury-buffer))

(defun svn-process-mode ()
  "Major Mode to view process output from svn."
  (interactive)
  (kill-all-local-variables)
  (use-local-map svn-process-mode-map)
  (setq major-mode 'svn-process-mode)
  (setq mode-name "svn-process"))


        ;(svn-status-show-process-buffer)
        (let ((passwd (read-passwd
                       (format "Enter svn password for %s: " (match-string 1)))))
          (svn-process-send-string-and-newline passwd t)))
      (when (looking-at "Username: ")
        (let ((user-name (read-string "Username for svn operation: ")))
          (svn-process-send-string-and-newline user-name))))))

(defun svn-parse-rev-num (str)
  (if (and str (stringp str)
