FileName::FileName(string const & abs_filename, bool save_abs)
- : name_(abs_filename), save_abs_path_(save_abs)
+ : name_(abs_filename), save_abs_path_(save_abs), zipped_valid_(false)
{
BOOST_ASSERT(absolutePath(name_));
}
{
save_abs_path_ = absolutePath(name);
name_ = save_abs_path_ ? name : makeAbsPath(name, buffer_path);
+ zipped_valid_ = false;
}
void FileName::erase()
{
name_.erase();
+ zipped_valid_ = false;
}
bool FileName::isZipped() const
{
- return zippedFile(name_);
+ if (!zipped_valid_) {
+ zipped_ = zippedFile(name_);
+ zipped_valid_ = true;
+ }
+ return zipped_;
}