00001
00002
00003
00004
00005
00006
00007
00008
00009 #include "wvglobdiriter.h"
00010 #include "wvglob.h"
00011
00012 WvGlobDirIter::WvGlobDirIter( WvStringParm dirname, WvStringParm glob_str,
00013 bool _recurse, bool _skip_mounts, size_t sizeof_stat )
00014 : WvDirIter(dirname, _recurse, _skip_mounts, sizeof_stat), glob(NULL)
00015 {
00016 if (!glob_str.isnull())
00017 {
00018 glob = new WvGlob(glob_str);
00019 if (!glob->isok())
00020 {
00021 delete glob;
00022 glob = NULL;
00023 }
00024 }
00025 }
00026
00027 WvGlobDirIter::~WvGlobDirIter()
00028 {
00029 if (glob) delete glob;
00030 }
00031
00032 bool WvGlobDirIter::next()
00033 {
00034 bool result;
00035
00036 do
00037 {
00038 result = WvDirIter::next();
00039 } while (result && glob && !glob->match(ptr()->relname));
00040
00041 return result;
00042 }