Any interest in a boost::glob() function?

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
participants (1)
-
Angus Leeming