   (define-key svn-status-mode-map (kbd "~") 'svn-status-get-specific-revision)
   (define-key svn-status-mode-map (kbd "E") 'svn-status-ediff-with-revision)
 
+  (define-key svn-status-mode-map (kbd "S g") 'svn-status-grep-files)
+  (define-key svn-status-mode-map (kbd "S s") 'svn-status-search-files)
+
   (define-key svn-status-mode-map (kbd "n") 'svn-status-next-line)
   (define-key svn-status-mode-map (kbd "p") 'svn-status-previous-line)
   (define-key svn-status-mode-map (kbd "<down>") 'svn-status-next-line)

;; ~     - svn-status-get-specific-revision
;; E     - svn-status-ediff-with-revision
;; X X   - svn-status-resolve-conflicts
;; s     - svn-status-show-process-buffer
;; h     - svn-status-pop-to-partner-buffer
;; e     - svn-status-toggle-edit-cmd-flag

  (svn-process-send-string (concat string "\n") send-passwd))

;; --------------------------------------------------------------------------------
;; Search interface
;; --------------------------------------------------------------------------------

(defun svn-status-grep-files (regexp)
  "Run grep on selected file(s).
See `svn-status-marked-files' for what counts as selected."
  (interactive "sGrep files for: ")
  (unless grep-command
    (grep-compute-defaults))
  (let ((default-directory (svn-status-base-dir)))
    (grep (format "%s %s %s" grep-command (shell-quote-argument regexp)
                  (mapconcat 'identity (svn-status-marked-file-names) " ")))))

(defun svn-status-search-files (search-string)
  "Search selected file(s) for a fixed SEARCH-STRING.
See `svn-status-marked-files' for what counts as selected."
  (interactive "sSearch files for: ")
  (svn-status-grep-files (regexp-quote search-string)))

;; --------------------------------------------------------------------------------
;; Property List stuff
;; --------------------------------------------------------------------------------

