Mercurial > emacs
comparison lisp/vc-dispatcher.el @ 95329:3bf215f97a31
(vc-string-prefix-p): New function.
(vc-dir-parent-marked-p): Use it.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 27 May 2008 01:13:25 +0000 |
parents | 51b445e6b312 |
children | b4a9f05bf87b |
comparison
equal
deleted
inserted
replaced
95328:44c693827736 | 95329:3bf215f97a31 |
---|---|
1022 (goto-char (region-beginning)) | 1022 (goto-char (region-beginning)) |
1023 (while (<= (line-number-at-pos) lastl) | 1023 (while (<= (line-number-at-pos) lastl) |
1024 (funcall mark-unmark-function)))) | 1024 (funcall mark-unmark-function)))) |
1025 (funcall mark-unmark-function))) | 1025 (funcall mark-unmark-function))) |
1026 | 1026 |
1027 (defun vc-string-prefix-p (prefix string) | |
1028 (and (>= (length string) (length prefix)) | |
1029 (eq t (compare-strings prefix nil nil string nil (length prefix))))) | |
1030 | |
1027 (defun vc-dir-parent-marked-p (arg) | 1031 (defun vc-dir-parent-marked-p (arg) |
1028 ;; Return nil if none of the parent directories of arg is marked. | 1032 ;; Return nil if none of the parent directories of arg is marked. |
1029 (let* ((argdir (vc-dir-node-directory arg)) | 1033 (let* ((argdir (vc-dir-node-directory arg)) |
1030 (arglen (length argdir)) | 1034 (arglen (length argdir)) |
1031 (crt arg) | 1035 (crt arg) |
1034 ;; a parent is marked. | 1038 ;; a parent is marked. |
1035 (while (setq crt (ewoc-prev vc-ewoc crt)) | 1039 (while (setq crt (ewoc-prev vc-ewoc crt)) |
1036 (setq data (ewoc-data crt)) | 1040 (setq data (ewoc-data crt)) |
1037 (setq dir (vc-dir-node-directory crt)) | 1041 (setq dir (vc-dir-node-directory crt)) |
1038 (when (and (vc-dir-fileinfo->directory data) | 1042 (when (and (vc-dir-fileinfo->directory data) |
1039 (string-equal (substring argdir 0 (length dir)) dir)) | 1043 (vc-string-prefix-p dir argdir)) |
1040 (when (vc-dir-fileinfo->marked data) | 1044 (when (vc-dir-fileinfo->marked data) |
1041 (error "Cannot mark `%s', parent directory `%s' marked" | 1045 (error "Cannot mark `%s', parent directory `%s' marked" |
1042 (vc-dir-fileinfo->name (ewoc-data arg)) | 1046 (vc-dir-fileinfo->name (ewoc-data arg)) |
1043 (vc-dir-fileinfo->name data))))) | 1047 (vc-dir-fileinfo->name data))))) |
1044 nil)) | 1048 nil)) |