summaryrefslogtreecommitdiff
path: root/lisp/vc-arch.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2008-07-22 17:16:52 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2008-07-22 17:16:52 +0000
commite87c4c6e9a3844c7e9490b617e5c6b33036e9eda (patch)
tree6ffd99db9b3c4ab10b99adf97b87b749acc02c1e /lisp/vc-arch.el
parent02d8b017d882331b7ae40b1c869fe04d84e0c235 (diff)
downloademacs-e87c4c6e9a3844c7e9490b617e5c6b33036e9eda.tar.gz
(vc-arch-trim-make-sentinel): Use a closure.
(vc-arch-trim-one-revlib): Delete temp directories as well.
Diffstat (limited to 'lisp/vc-arch.el')
-rw-r--r--lisp/vc-arch.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el
index 5aeeaf5e864..cc8c8ae3c1e 100644
--- a/lisp/vc-arch.el
+++ b/lisp/vc-arch.el
@@ -488,16 +488,20 @@ Return non-nil if FILE is unchanged."
(defun vc-arch-trim-make-sentinel (revs)
(if (null revs) (lambda (proc msg) (message "VC-Arch trimming ... done"))
- `(lambda (proc msg)
- (message "VC-Arch trimming %s..." ',(file-name-nondirectory (car revs)))
- (rename-file ,(car revs) ,(concat (car revs) "*rm*"))
+ (lexical-let ((revs revs))
+ (lambda (proc msg)
+ (message "VC-Arch trimming %s..." (file-name-nondirectory (car revs)))
+ (rename-file (car revs) (concat (car revs) "*rm*"))
(setq proc (start-process "vc-arch-trim" nil
- "rm" "-rf" ',(concat (car revs) "*rm*")))
- (set-process-sentinel proc (vc-arch-trim-make-sentinel ',(cdr revs))))))
+ "rm" "-rf" (concat (car revs) "*rm*")))
+ (set-process-sentinel proc (vc-arch-trim-make-sentinel (cdr revs)))))))
(defun vc-arch-trim-one-revlib (dir)
"Delete half of the revisions in the revision library."
(interactive "Ddirectory: ")
+ (let ((garbage (directory-files dir 'full "\\`,," 'nosort)))
+ (when garbage
+ (funcall (vc-arch-trim-make-sentinel garbage) nil nil)))
(let ((revs
(sort (delq nil
(mapcar