emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v


From: Dan Nicolaescu
Subject: [Emacs-diffs] Changes to emacs/lisp/vc-bzr.el,v
Date: Thu, 10 Apr 2008 15:03:31 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Dan Nicolaescu <dann>   08/04/10 15:03:31

Index: vc-bzr.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-bzr.el,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- vc-bzr.el   5 Apr 2008 23:01:25 -0000       1.44
+++ vc-bzr.el   10 Apr 2008 15:03:27 -0000      1.45
@@ -657,7 +657,6 @@
     ;; else fall back to default vc.el representation
     (vc-default-dired-state-info 'Bzr file)))
 
-;; XXX Experimental function for the vc-dired replacement.
 ;; XXX: this needs testing, it's probably incomplete. 
 (defun vc-bzr-after-dir-status (update-function status-buffer)
   (let ((status-str nil)
@@ -667,6 +666,7 @@
                       (" M" . edited)
                       ;; XXX: what about ignored files?
                       (" D" . missing)
+                      ("C " . conflict)
                       ("? " . unregistered)))
        (translated nil)
        (result nil))
@@ -674,11 +674,24 @@
       (while (not (eobp))
        (setq status-str
              (buffer-substring-no-properties (point) (+ (point) 2)))
-       (setq file
-             (buffer-substring-no-properties (+ (point) 4)
-                                             (line-end-position)))
-       (setq translated (assoc status-str translation))
-       (push (list file (cdr translated)) result)
+       (setq translated (cdr (assoc status-str translation)))
+       ;; For conflicts the file appears twice in the listing: once
+       ;; with the M flag and once with the C flag, so take care not
+       ;; to add it twice to `result'.  Ugly.
+       (if (eq translated 'conflict)
+           (let* ((file
+                   (buffer-substring-no-properties
+                    ;;For files with conflicts the format is:
+                    ;;C   Text conflict in FILENAME
+                    ;; Bah.
+                    (+ (point) 21) (line-end-position)))
+                  (entry (assoc file result)))
+             (when entry
+               (setf (nth 1 entry) 'conflict)))
+         (push (list (buffer-substring-no-properties
+                      (+ (point) 4)
+                      (line-end-position)) 
+                     translated) result))
        (forward-line))
       (funcall update-function result status-buffer)))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]