$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Stewart, Robert (stewart_at_[hidden])
Date: 2002-03-21 14:26:37
From: Beman Dawes [mailto:bdawes_at_[hidden]]
> 
> At 03:01 AM 3/21/2002, Dylan Nicholson wrote:
> 
> But with remove/prune, there end up being something like 7 
> names, and many 
> of those have several overloads.  Minimum 13 signatures in 
> all, and that 
> doesn't even cover a few of the behavior corner cases.
> 
> An alternative would be to have a single name ("remove") with four 
> signatures (unfiltered, filtered by name, filtered by regex, 
> filtered by 
> Predicate).  All would take an options argument, which would 
> be a bitmask 
> type (17.3.2.1.2) with the following entries (I haven't tried 
> to pick names 
> yet):
> 
>     *  OK if !exist(path) [otherwise throw if !exist(path)]
>     *  recurse into subdirectories [otherwise don't recurse]
>     *  error if !is_directory(path), or,
This should be handled by a predicate.
>        error if !is_file(path),
This should be handled by a predicate.
>     *  remove path itself if filter results in 
> is_empty_directory(path)
I think this is reasonably handled with other means.  For example, never
remove the directory itself; just its contents.  Or, always try to remove
the directory and throw an exception.  Finally, you could add an overload
that handles this case separately.
> Dropping from 7 names to 1, and 13 signatures to 4 is 
> certainly attractive.
Agreed.
I'll suggest names for the options I left: must_exist, recurse (or
recurse_directories).  That was easy since I only kept two options!
Rob
Susquehanna International Group, LLP
http://www.sig.com