(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
;; 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))
(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)
(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))
(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)