Mercurial > emacs
changeset 106888:70822719735d
(with-vc-properties): Deal with directory arguments. (Bug#5298)
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Sun, 17 Jan 2010 13:31:25 -0800 |
parents | b9c9ec129ae5 |
children | 516a1600b276 d8549f97592e |
files | lisp/ChangeLog lisp/vc.el |
diffstat | 2 files changed, 14 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sun Jan 17 12:36:21 2010 -0800 +++ b/lisp/ChangeLog Sun Jan 17 13:31:25 2010 -0800 @@ -1,5 +1,7 @@ 2010-01-17 Dan Nicolaescu <dann@ics.uci.edu> + * vc.el (with-vc-properties): Deal with directory arguments. (Bug#5298) + * vc-dir.el (vc-dir-resynch-file): Update the vc-dir header when resyncing a directory.
--- a/lisp/vc.el Sun Jan 17 12:36:21 2010 -0800 +++ b/lisp/vc.el Sun Jan 17 13:31:25 2010 -0800 @@ -791,13 +791,23 @@ (defmacro with-vc-properties (files form settings) "Execute FORM, then maybe set per-file properties for FILES. +If any of FILES is actually a directory, then do the same for all +buffers for files in that directory. SETTINGS is an association list of property/value pairs. After executing FORM, set those properties from SETTINGS that have not yet been updated to their corresponding values." (declare (debug t)) - `(let ((vc-touched-properties (list t))) + `(let ((vc-touched-properties (list t)) + (flist nil)) + (dolist (file ,files) + (if (file-directory-p file) + (dolist (buffer (buffer-list)) + (let ((fname (buffer-file-name buffer))) + (when (and fname (vc-string-prefix-p file fname)) + (push fname flist)))) + (push file flist))) ,form - (dolist (file ,files) + (dolist (file flist) (dolist (setting ,settings) (let ((property (car setting))) (unless (memq property vc-touched-properties)