X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FConverterCache.cpp;h=0f4d03efb9d42b9b1df356d9d8793cdf09df041c;hb=3b30dbfca4936adac9a6eb94fced33d36e617734;hp=3842ebb419d23075580abf37e62d7b3a418571e7;hpb=50060053e36b3e9dfe03bc33ed3abac1eacc54b0;p=features.git diff --git a/src/ConverterCache.cpp b/src/ConverterCache.cpp index 3842ebb419..0f4d03efb9 100644 --- a/src/ConverterCache.cpp +++ b/src/ConverterCache.cpp @@ -25,8 +25,8 @@ #include "support/lyxtime.h" #include "support/Package.h" +#include "support/checksum.h" #include "support/lassert.h" -#include #include #include @@ -41,14 +41,6 @@ namespace lyx { namespace { -unsigned long do_crc(string const & s) -{ - boost::crc_32_type crc; - crc = for_each(s.begin(), s.end(), crc); - return crc.checksum(); -} - - // FIXME THREAD // This should be OK because it is only assigned during init() static FileName cache_dir; @@ -62,7 +54,8 @@ public: : timestamp(t), checksum(c) { ostringstream os; - os << setw(10) << setfill('0') << do_crc(orig_from.absFileName()) + os << setw(10) << setfill('0') + << support::checksum(orig_from.absFileName()) << '-' << to_format; cache_name = FileName(addName(cache_dir.absFileName(), os.str())); LYXERR(Debug::FILES, "Add file cache item " << orig_from @@ -76,7 +69,7 @@ public: unsigned long checksum; }; -} +} // namespace /** The cache contains one item per orig file and target format, so use a @@ -198,14 +191,14 @@ CacheItem * ConverterCache::Impl::find(FileName const & from, string const & format) { if (!lyxrc.use_converter_cache) - return 0; + return nullptr; CacheType::iterator const it1 = cache.find(from); if (it1 == cache.end()) - return 0; + return nullptr; FormatCacheType & format_cache = it1->second.cache; FormatCacheType::iterator const it2 = format_cache.find(format); if (it2 == format_cache.end()) - return 0; + return nullptr; return &(it2->second); } @@ -244,6 +237,8 @@ void ConverterCache::init() cache_dir = FileName(addName(package().user_support().absFileName(), "cache")); if (!cache_dir.exists()) if (!cache_dir.createDirectory(0700)) { + // FIXME This should really be displayed as a message. But the GUI + // does not exist yet. lyxerr << "Could not create cache directory `" << cache_dir << "'." << endl; exit(EXIT_FAILURE); @@ -254,7 +249,7 @@ void ConverterCache::init() void ConverterCache::writeIndex() const { - if (!lyxrc.use_converter_cache + if (!lyxrc.use_converter_cache || cache_dir.empty()) return; pimpl_->writeIndex();