X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FConverterCache.cpp;h=61df9d062dbb8e136d1154cb7b2e4d592c264100;hb=2e72a0af48023956ae6ce3285b47168c2fed5099;hp=972746df162fb6a433f12a3d7fe0bd05080e88b0;hpb=e7bb71ff4ebf16351ab238b5cb7514173dd4f84d;p=lyx.git diff --git a/src/ConverterCache.cpp b/src/ConverterCache.cpp index 972746df16..61df9d062d 100644 --- a/src/ConverterCache.cpp +++ b/src/ConverterCache.cpp @@ -25,7 +25,7 @@ #include "support/lyxtime.h" #include "support/Package.h" -#include +#include "support/lassert.h" #include #include @@ -54,20 +54,22 @@ static FileName cache_dir; class CacheItem { public: - CacheItem() {} + CacheItem() + {} CacheItem(FileName const & orig_from, string const & to_format, time_t t, unsigned long c) : timestamp(t), checksum(c) { ostringstream os; - os << setw(10) << setfill('0') << do_crc(orig_from.absFilename()) + os << setw(10) << setfill('0') << do_crc(orig_from.absFileName()) << '-' << to_format; - cache_name = FileName(addName(cache_dir.absFilename(), os.str())); + cache_name = FileName(addName(cache_dir.absFileName(), os.str())); LYXERR(Debug::FILES, "Add file cache item " << orig_from << ' ' << to_format << ' ' << cache_name << ' ' << long(timestamp) << ' ' << checksum << '.'); } - ~CacheItem() {} + ~CacheItem() + {} FileName cache_name; time_t timestamp; unsigned long checksum; @@ -105,9 +107,9 @@ public: void ConverterCache::Impl::readIndex() { time_t const now = current_time(); - FileName const index(addName(cache_dir.absFilename(), "index")); + 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)) @@ -165,7 +167,7 @@ void ConverterCache::Impl::readIndex() void ConverterCache::Impl::writeIndex() { - FileName const index(addName(cache_dir.absFilename(), "index")); + FileName const index(addName(cache_dir.absFileName(), "index")); ofstream os(index.toFilesystemEncoding().c_str()); os.close(); if (!index.changePermission(0600)) @@ -178,7 +180,7 @@ void ConverterCache::Impl::writeIndex() FormatCacheType::const_iterator it2 = format_cache.begin(); FormatCacheType::const_iterator const end2 = format_cache.end(); for (; it2 != end2; ++it2) - os << Lexer::quoteString(it1->first.absFilename()) + os << Lexer::quoteString(it1->first.absFileName()) << ' ' << it2->first << ' ' << it2->second.timestamp << ' ' << it2->second.checksum << '\n'; @@ -216,9 +218,6 @@ ConverterCache::ConverterCache() ConverterCache::~ConverterCache() { - if (!lyxrc.use_converter_cache) - return; - pimpl_->writeIndex(); delete pimpl_; } @@ -237,7 +236,7 @@ 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(package().user_support().absFilename(), "cache")); + cache_dir = FileName(addName(package().user_support().absFileName(), "cache")); if (!cache_dir.exists()) if (!cache_dir.createDirectory(0700)) { lyxerr << "Could not create cache directory `" @@ -248,6 +247,15 @@ void ConverterCache::init() } +void ConverterCache::writeIndex() const +{ + if (!lyxrc.use_converter_cache + || cache_dir.empty()) + return; + pimpl_->writeIndex(); +} + + void ConverterCache::add(FileName const & orig_from, string const & to_format, FileName const & converted_file) const { @@ -259,10 +267,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(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(changeExtension(converted_file.absFilename(), "pdf")); + FileName const converted_pdf(changeExtension(converted_file.absFileName(), "pdf")); add(orig_from, "pdf", converted_pdf); } @@ -288,7 +296,7 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, } item->checksum = checksum; if (!mover.copy(converted_file, item->cache_name, - onlyFilename(item->cache_name.absFilename()))) { + 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)) { @@ -299,7 +307,7 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, CacheItem new_item(orig_from, to_format, timestamp, orig_from.checksum()); if (mover.copy(converted_file, new_item.cache_name, - onlyFilename(new_item.cache_name.absFilename()))) { + 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); @@ -409,7 +417,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; } @@ -423,20 +431,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(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(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, - onlyFilename(dest.absFilename())); + onlyFileName(dest.absFileName())); } } // namespace lyx