CacheItem item(orig_from_name, to_format, timestamp, checksum);
// Don't cache files that do not exist anymore
- if (!fs::exists(orig_from_name.toFilesystemEncoding())) {
+ if (!orig_from_name.exists()) {
LYXERR(Debug::FILES) << "Not caching file `"
<< orig_from << "' (does not exist anymore)."
<< std::endl;
// Don't add items that are not in the cache anymore
// This can happen if two instances of LyX are running
// at the same time and update the index file independantly.
- if (!fs::exists(item.cache_name.toFilesystemEncoding())) {
+ if (!item.cache_name.exists()) {
LYXERR(Debug::FILES) << "Not caching file `"
<< orig_from
<< "' (cached copy does not exist anymore)."
}
// Delete the cached file if it is too old
- if (difftime(now, fs::last_write_time(item.cache_name.toFilesystemEncoding())) >
- lyxrc.converter_cache_maxage) {
+ if (difftime(now, item.cache_name.lastModified())
+ > lyxrc.converter_cache_maxage) {
LYXERR(Debug::FILES) << "Not caching file `"
<< orig_from << "' (too old)." << std::endl;
support::unlink(item.cache_name);
// 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"));
- if (!fs::exists(cache_dir.toFilesystemEncoding()))
+ if (!cache_dir.exists())
if (support::mkdir(cache_dir, 0700) != 0) {
lyxerr << "Could not create cache directory `"
<< cache_dir << "'." << std::endl;
<< ' ' << to_format << ' ' << converted_file
<< std::endl;
+ // FIXME: Should not hardcode this (see bug 3819 for details)
+ if (to_format == "pstex") {
+ FileName const converted_eps(support::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"));
+ add(orig_from, "pdf", converted_pdf);
+ }
+
// Is the file in the cache already?
CacheItem * item = pimpl_->find(orig_from, to_format);
- time_t const timestamp = fs::last_write_time(orig_from.toFilesystemEncoding());
+ time_t const timestamp = orig_from.lastModified();
Mover const & mover = getMover(to_format);
if (item) {
LYXERR(Debug::FILES) << "ConverterCache::add(" << orig_from << "):\n"
}
item->checksum = checksum;
}
- if (!mover.copy(converted_file, item->cache_name, 0600))
+ 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."
<< std::endl;
+ }
} else {
CacheItem new_item(orig_from, to_format, timestamp,
support::sum(orig_from));
- if (mover.copy(converted_file, new_item.cache_name, 0600)) {
+ if (mover.copy(converted_file, new_item.cache_name,
+ support::onlyFilename(new_item.cache_name.absFilename()), 0600)) {
FormatCache & format_cache = pimpl_->cache[orig_from];
if (format_cache.from_format.empty())
format_cache.from_format =
LYXERR(Debug::FILES) << BOOST_CURRENT_FUNCTION << ' ' << orig_from
<< ' ' << to_format << ' ' << dest << std::endl;
+ // FIXME: Should not hardcode this (see bug 3819 for details)
+ if (to_format == "pstex") {
+ FileName const dest_eps(support::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"));
+ if (!copy(orig_from, "pdf", dest_pdf))
+ return false;
+ }
+
CacheItem * const item = pimpl_->find(orig_from, to_format);
BOOST_ASSERT(item);
Mover const & mover = getMover(to_format);
- return mover.copy(item->cache_name, dest);
+ return mover.copy(item->cache_name, dest,
+ support::onlyFilename(dest.absFilename()));
}
} // namespace lyx