From: Stefan Monnier Date: Tue, 27 May 2008 01:13:25 +0000 (+0000) Subject: (vc-string-prefix-p): New function. X-Git-Tag: emacs-pretest-23.0.90~5274 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=35611703323d2eb4db7db059c1899b5e1ea83576;p=emacs.git (vc-string-prefix-p): New function. (vc-dir-parent-marked-p): Use it. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5b097d2d851..9965fa6a27f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2008-05-27 Stefan Monnier + + * vc-dispatcher.el (vc-string-prefix-p): New function. + (vc-dir-parent-marked-p): Use it. + 2008-05-27 Dan Nicolaescu * 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))