diff --git a/basis/io/directories/search/search.factor b/basis/io/directories/search/search.factor index 5462795448..22442fe337 100644 --- a/basis/io/directories/search/search.factor +++ b/basis/io/directories/search/search.factor @@ -63,25 +63,24 @@ TUPLE: directory-iterator PRIVATE> -: each-file ( path bfs? quot -- ) +: each-file ( path bfs? quot: ( ... name -- ... ) -- ) setup-traversal iterate-directory drop ; inline -: each-directory-entry ( path bfs? quot -- ) +: each-directory-entry ( path bfs? quot: ( ... entry -- ... ) -- ) setup-traversal iterate-directory-entries drop ; inline : recursive-directory-files ( path bfs? -- paths ) - [ ] collector [ each-file ] dip ; inline + [ ] collector [ each-file ] dip ; : recursive-directory-entries ( path bfs? -- directory-entries ) - [ ] collector [ each-directory-entry ] dip ; inline + [ ] collector [ each-directory-entry ] dip ; -: find-file ( path bfs? quot -- path/f ) +: find-file ( path bfs? quot: ( ... name -- ... ? ) -- path/f ) [ ] dip [ keep and ] curry iterate-directory ; inline -: find-all-files ( path quot -- paths/f ) - [ f ] dip selector - [ [ f ] compose iterate-directory drop ] dip ; inline +: find-all-files ( path quot: ( ... name -- ... ? ) -- paths ) + f swap selector [ each-file ] dip ; inline ERROR: file-not-found path bfs? quot ;