      ["Mark/Unmark modified" svn-status-mark-modified t]
      ["Mark/Unmark deleted" svn-status-mark-deleted t]
      ["Mark/Unmark modified/added/deleted" svn-status-mark-changed t]
+     ["Mark/Unmark filename by extension" svn-status-mark-by-file-ext t]
      ["Mark/Unmark filename by regexp" svn-status-mark-filename-regexp t]
      )
     ["Hide Unknown" svn-status-toggle-hide-unknown

;; * M   - svn-status-mark-modified
;; * D   - svn-status-mark-deleted
;; * *   - svn-status-mark-changed
;; * %   - svn-status-mark-filename-regexp
;; .     - svn-status-goto-root-or-return
;; f     - svn-status-find-file

  (svn-status-apply-usermark-checked
   '(lambda (info) (string-match regexp (svn-status-line-info->filename-nondirectory info))) (not unmark)))

(defun svn-status-mark-by-file-ext (ext &optional unmark)
  "Mark all files matching the given file extension EXT.
If the function is called with a prefix arg, unmark all these files."
  (interactive
   (list (read-string (concat (if current-prefix-arg "Unmark" "Mark")
                                         " files with extensions: "))
         (if current-prefix-arg t nil)))
  (svn-status-apply-usermark-checked
   '(lambda (info) (let ((case-fold-search nil))
                     (string-match (concat "\\." ext "$") (svn-status-line-info->filename-nondirectory info)))) (not unmark)))

(defun svn-status-toggle-hide-unknown ()
  (interactive)
  (setq svn-status-hide-unknown (not svn-status-hide-unknown))
