From 82252f68686641739ba9fb28ea8e7a2f4e47da54 Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sat, 13 Mar 2010 23:10:49 +0100 Subject: [PATCH] The recursive implementation of DIRECTORY with wildcard inferiors forget all inner directories in (DIRECTORY "/foo/**/"). --- src/CHANGELOG | 3 +++ src/c/unixfsys.d | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/CHANGELOG b/src/CHANGELOG index 1f217e29a..0546a95c8 100755 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -11,6 +11,9 @@ ECL 10.3.2: - The tool 'ecl-config' contained unsubstituted values, such as @LDRPATH@ because these variablesls had been renamed in the autoconf file. + - The reimplementation of DIRECTORY introduced a bug in pathnames with ending + double wildcars, such as "/foo/**/". + * Visible changes: - The source location annotator records the original pathnames, not the diff --git a/src/c/unixfsys.d b/src/c/unixfsys.d index 4deff6a1c..7d1bc5b46 100644 --- a/src/c/unixfsys.d +++ b/src/c/unixfsys.d @@ -830,7 +830,7 @@ dir_recursive(cl_object base_dir, cl_object directory, cl_object filemask) * we have to find a file which corresponds to the description. */ if (directory == Cnil) { - return dir_files(base_dir, filemask); + return ecl_nconc(dir_files(base_dir, filemask), output); } /* * 2) We have not yet exhausted the DIRECTORY component of the