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

     ["svn diff marked files" svn-status-show-svn-diff-for-marked-files t]
     ["svn ediff current file" svn-status-ediff-with-revision t]
     ["svn resolve conflicts" svn-status-resolve-conflicts]
     )
    ["svn cat ..." svn-status-get-specific-revision t]
    ["svn add" svn-status-add-file t]

  (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
;; --------------------------------------------------------------------------------

