 ;; * ?   - svn-status-mark-unknown
 ;; * A   - svn-status-mark-added
 ;; * M   - svn-status-mark-modified
+;; * P   - svn-status-mark-modified-properties
 ;; * D   - svn-status-mark-deleted
 ;; * *   - svn-status-mark-changed
 ;; * .   - svn-status-mark-by-file-ext

     ["Unmark all" svn-status-unset-all-usermarks t]
     "---"
     ["Mark/Unmark unknown" svn-status-mark-unknown t]
     ["Mark/Unmark added" svn-status-mark-added t]
     ["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]

(defun svn-status-mark-modified (arg)
  "Mark all modified files.
These are the files marked with 'M' in the `svn-status-buffer-name' buffer.
Changed properties are considered.
If the function is called with a prefix ARG, unmark all these files."
  (interactive "P")
  (svn-status-apply-usermark-checked
   '(lambda (info) (or (eq (svn-status-line-info->filemark info) ?M)
                       (eq (svn-status-line-info->filemark info)
                           svn-status-file-modified-after-save-flag)
                       (eq (svn-status-line-info->propmark info) ?M)))
   (not arg)))

(defun svn-status-mark-modified-properties (arg)
  "Mark all files and directories with modified properties.
If the function is called with a prefix ARG, unmark all these entries."
  (interactive "P")
  (svn-status-apply-usermark-checked
   '(lambda (info) (or (eq (svn-status-line-info->propmark info) ?M)))
   (not arg)))

(defun svn-status-mark-deleted (arg)
