summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-05-27 01:13:25 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-05-27 01:13:25 +0000
commit08b95b1f43603ec1fdc63cfe9ac79e41cdaca6ae (patch)
tree538592da55004d40400c1afc1c27e5642f0801a9
parent022ce115496134dedb625d0fe2c3a53c9eb0b3d6 (diff)
downloademacs-08b95b1f43603ec1fdc63cfe9ac79e41cdaca6ae.tar.gz
(vc-string-prefix-p): New function.
(vc-dir-parent-marked-p): Use it.
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/vc-dispatcher.el6
2 files changed, 14 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bacac4da4c1..072c3833a7f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * vc-dispatcher.el (vc-string-prefix-p): New function.
+ (vc-dir-parent-marked-p): Use it.
+
2008-05-27 Dan Nicolaescu <dann@ics.uci.edu>
* vc.el (Problems): Remove fixed issues.
@@ -6,14 +11,14 @@
(vc-make-backend-object): Fix name.
(vc-dir-show-fileentry): Fix docstring.
(vc-dir-refresh): Use vc-dir-backend. Fix docstring.
- (vc-dir-refresh-files): Use vc-dir-backend. Fix docstring. Reset
- the state for directories.
+ (vc-dir-refresh-files): Use vc-dir-backend. Fix docstring.
+ Reset the state for directories.
(vc-dir-headers): Align labels.
(vc-default-status-printer): Do no call prettify-state-info.
(vc-deduce-fileset): Replace implementation with one based on a
working older version.
- (vc-next-action): Use the new form of vc-deduce-fileset. Fix
- dealing with unregistered files.
+ (vc-next-action): Use the new form of vc-deduce-fileset.
+ Fix dealing with unregistered files.
* vc-dispatcher.el (vc-resynch-window): Fix mode-line updating.
(vc-dir-menu-map): Fix menu title for the menu bar and the popup menu.
diff --git a/lisp/vc-dispatcher.el b/lisp/vc-dispatcher.el
index 8e9cf21d3c7..116e9476bf3 100644
--- a/lisp/vc-dispatcher.el
+++ b/lisp/vc-dispatcher.el
@@ -1024,6 +1024,10 @@ If a prefix argument is given, move by that many lines."
(funcall mark-unmark-function))))
(funcall mark-unmark-function)))
+(defun vc-string-prefix-p (prefix string)
+ (and (>= (length string) (length prefix))
+ (eq t (compare-strings prefix nil nil string nil (length prefix)))))
+
(defun vc-dir-parent-marked-p (arg)
;; Return nil if none of the parent directories of arg is marked.
(let* ((argdir (vc-dir-node-directory arg))
@@ -1036,7 +1040,7 @@ If a prefix argument is given, move by that many lines."
(setq data (ewoc-data crt))
(setq dir (vc-dir-node-directory crt))
(when (and (vc-dir-fileinfo->directory data)
- (string-equal (substring argdir 0 (length dir)) dir))
+ (vc-string-prefix-p dir argdir))
(when (vc-dir-fileinfo->marked data)
(error "Cannot mark `%s', parent directory `%s' marked"
(vc-dir-fileinfo->name (ewoc-data arg))