From: Angus Leeming (angus.leeming_at_[hidden])
Date: 2004-09-27 09:16:17


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