X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FConverterCache.cpp;h=56a39c775d76da772180919699623742d7a34c99;hb=2098f1d8c20d51e63e670bcdc9da8996068975bf;hp=ea3bfc70f3f4115bd16ec925f8641f0e45bba8d9;hpb=9abb7db46800e554f57e865a3e768602ffd9d6f1;p=lyx.git diff --git a/src/ConverterCache.cpp b/src/ConverterCache.cpp index ea3bfc70f3..56a39c775d 100644 --- a/src/ConverterCache.cpp +++ b/src/ConverterCache.cpp @@ -22,11 +22,10 @@ #include "support/convert.h" #include "support/debug.h" #include "support/filetools.h" -#include "support/lyxlib.h" #include "support/lyxtime.h" #include "support/Package.h" -#include +#include "support/lassert.h" #include #include @@ -108,7 +107,7 @@ void ConverterCache::Impl::readIndex() time_t const now = current_time(); FileName const index(addName(cache_dir.absFilename(), "index")); ifstream is(index.toFilesystemEncoding().c_str()); - Lexer lex(0, 0); + Lexer lex; lex.setStream(is); while (lex.isOK()) { if (!lex.next(true)) @@ -169,7 +168,7 @@ void ConverterCache::Impl::writeIndex() FileName const index(addName(cache_dir.absFilename(), "index")); ofstream os(index.toFilesystemEncoding().c_str()); os.close(); - if (!lyx::support::chmod(index, 0600)) + if (!index.changePermission(0600)) return; os.open(index.toFilesystemEncoding().c_str()); CacheType::iterator it1 = cache.begin(); @@ -217,9 +216,6 @@ ConverterCache::ConverterCache() ConverterCache::~ConverterCache() { - if (!lyxrc.use_converter_cache) - return; - pimpl_->writeIndex(); delete pimpl_; } @@ -238,9 +234,9 @@ void ConverterCache::init() return; // We do this here and not in the constructor because package() gets // initialized after all static variables. - cache_dir = FileName(addName(support::package().user_support().absFilename(), "cache")); + cache_dir = FileName(addName(package().user_support().absFilename(), "cache")); if (!cache_dir.exists()) - if (support::mkdir(cache_dir, 0700) != 0) { + if (!cache_dir.createDirectory(0700)) { lyxerr << "Could not create cache directory `" << cache_dir << "'." << endl; exit(EXIT_FAILURE); @@ -249,6 +245,12 @@ void ConverterCache::init() } +void ConverterCache::writeIndex() const +{ + pimpl_->writeIndex(); +} + + void ConverterCache::add(FileName const & orig_from, string const & to_format, FileName const & converted_file) const { @@ -260,10 +262,10 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, // FIXME: Should not hardcode this (see bug 3819 for details) if (to_format == "pstex") { - FileName const converted_eps(support::changeExtension(converted_file.absFilename(), "eps")); + FileName const converted_eps(changeExtension(converted_file.absFilename(), "eps")); add(orig_from, "eps", converted_eps); } else if (to_format == "pdftex") { - FileName const converted_pdf(support::changeExtension(converted_file.absFilename(), "pdf")); + FileName const converted_pdf(changeExtension(converted_file.absFilename(), "pdf")); add(orig_from, "pdf", converted_pdf); } @@ -289,15 +291,22 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, } item->checksum = checksum; if (!mover.copy(converted_file, item->cache_name, - support::onlyFilename(item->cache_name.absFilename()), 0600)) { - LYXERR(Debug::FILES, "ConverterCache::add(" << orig_from << "):\n" - "Could not copy file."); + onlyFilename(item->cache_name.absFilename()))) { + LYXERR(Debug::FILES, "Could not copy file " << orig_from << " to " + << item->cache_name); + } else if (!item->cache_name.changePermission(0600)) { + LYXERR(Debug::FILES, "Could not change file mode" + << item->cache_name); } } else { CacheItem new_item(orig_from, to_format, timestamp, orig_from.checksum()); if (mover.copy(converted_file, new_item.cache_name, - support::onlyFilename(new_item.cache_name.absFilename()), 0600)) { + onlyFilename(new_item.cache_name.absFilename()))) { + if (!new_item.cache_name.changePermission(0600)) { + LYXERR(Debug::FILES, "Could not change file mode" + << new_item.cache_name); + } FormatCache & format_cache = pimpl_->cache[orig_from]; if (format_cache.from_format.empty()) format_cache.from_format = @@ -403,7 +412,7 @@ FileName const & ConverterCache::cacheName(FileName const & orig_from, LYXERR(Debug::FILES, orig_from << ' ' << to_format); CacheItem * const item = pimpl_->find(orig_from, to_format); - BOOST_ASSERT(item); + LASSERT(item, /**/); return item->cache_name; } @@ -417,20 +426,20 @@ bool ConverterCache::copy(FileName const & orig_from, string const & to_format, // FIXME: Should not hardcode this (see bug 3819 for details) if (to_format == "pstex") { - FileName const dest_eps(support::changeExtension(dest.absFilename(), "eps")); + FileName const dest_eps(changeExtension(dest.absFilename(), "eps")); if (!copy(orig_from, "eps", dest_eps)) return false; } else if (to_format == "pdftex") { - FileName const dest_pdf(support::changeExtension(dest.absFilename(), "pdf")); + FileName const dest_pdf(changeExtension(dest.absFilename(), "pdf")); if (!copy(orig_from, "pdf", dest_pdf)) return false; } CacheItem * const item = pimpl_->find(orig_from, to_format); - BOOST_ASSERT(item); + LASSERT(item, /**/); Mover const & mover = getMover(to_format); return mover.copy(item->cache_name, dest, - support::onlyFilename(dest.absFilename())); + onlyFilename(dest.absFilename())); } } // namespace lyx