# HG changeset patch # User Stefan Monnier # Date 1184903943 0 # Node ID cd7d70b6659e9d6128546ef3fa0a96fc7d33f275 # Parent f9f0d45ce5738dd8be73d9b8fe2874282f58bafd (vc-delistify): Use mapconcat. (vc-do-command): Minor simplification. (vc-expand-dirs): Use push. diff -r f9f0d45ce573 -r cd7d70b6659e lisp/ChangeLog --- a/lisp/ChangeLog Fri Jul 20 03:57:14 2007 +0000 +++ b/lisp/ChangeLog Fri Jul 20 03:59:03 2007 +0000 @@ -1,5 +1,9 @@ 2007-07-20 Stefan Monnier + * vc.el (vc-delistify): Use mapconcat. + (vc-do-command): Minor simplification. + (vc-expand-dirs): Use push. + * vc-mcvs.el (vc-mcvs-create-repo): * vc-cvs.el (vc-cvs-create-repo): Remove. diff -r f9f0d45ce573 -r cd7d70b6659e lisp/vc.el --- a/lisp/vc.el Fri Jul 20 03:57:14 2007 +0000 +++ b/lisp/vc.el Fri Jul 20 03:59:03 2007 +0000 @@ -998,9 +998,7 @@ (defun vc-delistify (filelist) "Smash a FILELIST into a file list string suitable for info messages." - (cond ((not filelist) ".") - ((= (length filelist) 1) (car filelist)) - (t (concat (car filelist) " " (vc-delistify (cdr filelist)))))) + (if (not filelist) "." (mapconcat 'identity filelist " "))) (defvar w32-quote-process-args) ;;;###autoload @@ -1019,12 +1017,10 @@ ;; FIXME: file-relative-name can return a bogus result because ;; it doesn't look at the actual file-system to see if symlinks ;; come into play. - (let* ((files - (mapcar 'file-relative-name - (cond ((not file-or-list) '()) - ((listp file-or-list) (mapcar 'expand-file-name file-or-list)) - (t (list (expand-file-name file-or-list)))))) - (full-command + (let* ((files + (mapcar (lambda (f) (file-relative-name (expand-file-name f))) + (if (listp file-or-list) file-or-list (list file-or-list)))) + (full-command (concat command " " (vc-delistify flags) " " (vc-delistify files)))) (if vc-command-messages (message "Running %s..." full-command)) @@ -1555,9 +1551,11 @@ (defun vc-expand-dirs (file-or-dir-list) "Expands directories in a file list specification. Only files already under version control are noticed." + ;; FIXME: Kill this function. (let ((flattened '())) (dolist (node file-or-dir-list) - (vc-file-tree-walk node (lambda (f) (if (vc-backend f) (setq flattened (cons f flattened)))))) + (vc-file-tree-walk + node (lambda (f) (if (vc-backend f) (push f flattened))))) (nreverse flattened))) (defun vc-resynch-window (file &optional keep noquery) @@ -3492,6 +3490,7 @@ (defun vc-file-tree-walk (dirname func &rest args) "Walk recursively through DIRNAME. Invoke FUNC f ARGS on each VC-managed file f underneath it." + ;; FIXME: Kill this function. (vc-file-tree-walk-internal (expand-file-name dirname) func args) (message "Traversing directory %s...done" dirname)) @@ -3502,13 +3501,13 @@ (let ((dir (file-name-as-directory file))) (mapcar (lambda (f) (or - (string-equal f ".") - (string-equal f "..") - (member f vc-directory-exclusion-list) - (let ((dirf (expand-file-name f dir))) - (or - (file-symlink-p dirf);; Avoid possible loops - (vc-file-tree-walk-internal dirf func args))))) + (string-equal f ".") + (string-equal f "..") + (member f vc-directory-exclusion-list) + (let ((dirf (expand-file-name f dir))) + (or + (file-symlink-p dirf) ;; Avoid possible loops. + (vc-file-tree-walk-internal dirf func args))))) (directory-files dir))))) (provide 'vc)