aboutsummaryrefslogtreecommitdiffstats
path: root/dirs.scm
diff options
context:
space:
mode:
Diffstat (limited to 'dirs.scm')
-rwxr-xr-x[-rw-r--r--]dirs.scm17
1 files changed, 17 insertions, 0 deletions
diff --git a/dirs.scm b/dirs.scm
index 15d1ffd..0d1212d 100644..100755
--- a/dirs.scm
+++ b/dirs.scm
@@ -96,3 +96,20 @@
(do ((filename (read-line port) (read-line port)))
((or (eof-object? filename) (equal? "" filename)))
(and (selector filename) (proc filename)))))))))
+
+;;@body
+;;@2 is a pathname whose last component is a (wildcard) pattern
+;;(@pxref{Filenames, , , slib, SLIB}).
+;;@1 must be a procedure taking one argument.
+;;@samp{directory*-for-each} applies @var{proc} to the (string) name of
+;;each file in the current directory. The dynamic order in which @var{proc} is
+;;applied to the filenames is unspecified. The value returned by
+;;@samp{directory*-for-each} is unspecified.
+(define (directory*-for-each proc path-glob)
+ (define dir (pathname->vicinity path-glob))
+ (let ((glob (substring path-glob
+ (string-length dir)
+ (string-length path-glob))))
+ (directory-for-each proc
+ (if (equal? "" dir) "." dir)
+ glob)))