]> git.eshelyaron.com Git - emacs.git/commitdiff
* vc/vc-hg.el (vc-hg-state): Make FILE absolute. Handle the case
authorMichael Albinus <michael.albinus@gmx.de>
Thu, 11 Dec 2014 10:12:13 +0000 (11:12 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Thu, 11 Dec 2014 10:12:13 +0000 (11:12 +0100)
that there is empty output.

lisp/ChangeLog
lisp/vc/vc-hg.el

index 2ed1f083976331ac7a64774103a1d4e988402b58..452f4c3e4a9dffcbd49bbeedc9a77dbe4ccc4473 100644 (file)
@@ -1,3 +1,8 @@
+2014-12-11  Michael Albinus  <michael.albinus@gmx.de>
+
+       * vc/vc-hg.el (vc-hg-state): Make FILE absolute.  Handle the case
+       that there is empty output.
+
 2014-12-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * emacs-lisp/eldoc.el (eldoc-documentation-function): Change default.
index a56ed672828b2709c0c8144593bda096e0cefa2d..e049aab43162ea3085910b51a69333b95a72e5c3 100644 (file)
@@ -188,6 +188,7 @@ highlighting the Log View buffer."
 
 (defun vc-hg-state (file)
   "Hg-specific version of `vc-state'."
+  (setq file (expand-file-name file))
   (let*
       ((status nil)
        (default-directory (file-name-directory file))
@@ -212,19 +213,20 @@ highlighting the Log View buffer."
                     ;; Some problem happened.  E.g. We can't find an `hg'
                     ;; executable.
                     (error nil)))))))
-    (when (eq 0 status)
-        (when (null (string-match ".*: No such file or directory$" out))
-          (let ((state (aref out 0)))
-            (cond
-             ((eq state ?=) 'up-to-date)
-             ((eq state ?A) 'added)
-             ((eq state ?M) 'edited)
-             ((eq state ?I) 'ignored)
-             ((eq state ?R) 'removed)
-             ((eq state ?!) 'missing)
-             ((eq state ??) 'unregistered)
-             ((eq state ?C) 'up-to-date) ;; Older mercurial versions use this.
-             (t 'up-to-date)))))))
+    (when (and (eq 0 status)
+              (> (length out) 0)
+              (null (string-match ".*: No such file or directory$" out)))
+      (let ((state (aref out 0)))
+       (cond
+        ((eq state ?=) 'up-to-date)
+        ((eq state ?A) 'added)
+        ((eq state ?M) 'edited)
+        ((eq state ?I) 'ignored)
+        ((eq state ?R) 'removed)
+        ((eq state ?!) 'missing)
+        ((eq state ??) 'unregistered)
+        ((eq state ?C) 'up-to-date) ;; Older mercurial versions use this.
+        (t 'up-to-date))))))
 
 (defun vc-hg-working-revision (file)
   "Hg-specific version of `vc-working-revision'."