|
Boost : |
From: Angus Leeming (angus.leeming_at_[hidden])
Date: 2004-09-27 09:10:28
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 a few "issues" that I don't know how to resolve. Any
pointers would be most welcome.
DOCS
====
* It would be nice to insert a table inside an itemized list item, but
quickbook doesn't like doing that. I need to add a separate paragraph.
* boostbook/doxygen fails to document the glob_flags enum.
* I generate a BOOST_LIB_NAME.html page and would like not to.
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?
REGEX
=====
One test is failing on Windows "foo[[:alpha:]]bar". It works when compiled
under Linux. Is there anything I should be aware of about Boost.Regex
under MinGW/MinSYS?
Regards,
Angus
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk