
Dear all, I've taken Richard Johnson's glob_iterator that he posted to the list back in January and re-written it completely, using Boost.Spirit to transform the input 'glob' into an equivalent regex. The result is a 'boost::glob' function that I believe is fully POSIX-conformant. Example usage: fs::path const starting_directory("."); std::list<fs::path> const matches = boost::glob("../te?t/foo*bar", starting_directory); The docs can be browsed online at http://www.devel.lyx.org/~leeming/globbing/index.html The library can be found at http://www.devel.lyx.org/~leeming/globbing.zip It should unzip to give: boost/glob.hpp boost/detail/glob.hpp libs/glob + ensuing sub directories and files. The code has been tested on Linux (g++ 3.3.2) and on Windows using MinGW/MinSys. There are still some "issues" that I don't know how to resolve. Any pointers would be most welcome: REGEX ===== A single test "foo[[:alpha:]]bar" is failing under Windows. It succeeds under Linux. Is there anything about Boost.Regex with MinGW/MinSys that I should be aware of? DOCS ==== * It would be nice to insert a table inside an itemized list item, but quickbook doesn't like doing that. Instead I must add the table in a separate paragraph which messes up the look a little. * boostbook/doxygen fails to document the glob_flags enum. * I generate a BOOST_LIB_NAME.html page and would like to supress it. * The bottom of the first page has this "Last revised: September 13, 2004 at 04:56:20 GMT" I don't know where it comes from, but it's just not true ;-) BUILD ===== I have a couple of targets, lib/glob/example/real_glob.cpp and lib/glob/test/test_real_glob.cpp that I'd like to build only on POSIX machines. (They're wrappers for the system glob function.) Any pointers on how to instruct bjam to do that? Regards, Angus