       (require 'cl-macs)))
 (if (not (fboundp 'puthash))
     (defalias 'puthash 'cl-puthash))
+
+; xemacs
+(if (fboundp 'match-string-no-properties)
+    nil ;; great
+  (defsubst match-string-no-properties (match)
+    (buffer-substring-no-properties (match-beginning match) (match-end match))))
 
 (defvar svn-status-display-new-status-buffer nil)
 ;;;###autoload

  (define-key svn-status-mode-property-map (kbd "k") 'svn-status-property-set-keyword-list)
  (define-key svn-status-mode-property-map (kbd "y") 'svn-status-property-set-eol-style)
  (define-key svn-status-mode-property-map (kbd "x") 'svn-status-property-set-executable)
  (define-key svn-status-mode-property-map (kbd "p") 'svn-status-property-parse)
  ;; TODO: Why is `svn-status-select-line' in `svn-status-mode-property-map'?
  (define-key svn-status-mode-property-map (kbd "RET") 'svn-status-select-line)
  (define-key svn-status-mode-map (kbd "P") svn-status-mode-property-map))

     )
    ["svn cat ..." svn-status-get-specific-revision t]
    ["svn add" svn-status-add-file t]
    ["svn add recursively" svn-status-add-file-recursively t]
    ["svn mkdir..." svn-status-make-directory t]
    ["svn mv..." svn-status-mv t]
    ["svn rm..." svn-status-rm t]
