changeset 47842:f7c7cc74fde2

(vc-dired-reformat-line): As a temporary fix, remove all text properties from the reformatted line.
author André Spiegel <spiegel@gnu.org>
date Fri, 11 Oct 2002 09:36:00 +0000
parents 923a9008aba3
children 5b72c640e8d7
files lisp/vc.el
diffstat 1 files changed, 14 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/vc.el	Fri Oct 11 06:49:49 2002 +0000
+++ b/lisp/vc.el	Fri Oct 11 09:36:00 2002 +0000
@@ -6,7 +6,7 @@
 ;; Maintainer: Andre Spiegel <spiegel@gnu.org>
 ;; Keywords: tools
 
-;; $Id: vc.el,v 1.341 2002/10/07 16:50:43 monnier Exp $
+;; $Id: vc.el,v 1.342 2002/10/08 15:31:43 monnier Exp $
 
 ;; This file is part of GNU Emacs.
 
@@ -2171,12 +2171,12 @@
      ((eq state 'needs-patch) "(patch)")
      ((eq state 'unlocked-changes) "(stale)"))))
 
-(defun vc-dired-reformat-line (x)
+(defun vc-dired-reformat-line (vc-info)
   "Reformat a directory-listing line.
-Replace various columns with version control information.
+Replace various columns with version control information, VC-INFO.
 This code, like dired, assumes UNIX -l format."
   (beginning-of-line)
-  (let ((pos (point)) limit perm date-and-file)
+  (let ((pos (point)) limit)
     (end-of-line)
     (setq limit (point))
     (goto-char pos)
@@ -2191,10 +2191,16 @@
          (re-search-forward  ;; OS/2 -l format, no links, owner, group
           "^\\(..[drwxlts-]+ \\) *[0-9]+\\( .*\\)"
           limit t))
-      (setq perm          (match-string 1)
-	    date-and-file (match-string 2))
-      (setq x (substring (concat x "          ") 0 10))
-      (replace-match (concat perm x date-and-file)))))
+      (let ((replacement (concat (match-string 1)
+                                 (substring (concat vc-info "          ")
+                                            0 10)
+                                 (match-string 2))))
+        ;; FIXME: Clear the text properties to make it work, because with
+        ;; a straightforward replacement, they will get messed up.
+        ;; Eventually, the text properties should be transformed correctly,
+        ;; not removed.
+        (set-text-properties 0 (length replacement) nil replacement)
+        (replace-match replacement)))))
 
 (defun vc-dired-hook ()
   "Reformat the listing according to version control.