}
+// FIXME THREAD
+// This should be OK because it is only assigned during init()
static FileName cache_dir;
class CacheItem {
public:
- CacheItem() {}
+ CacheItem() : timestamp(0), checksum(0) {}
CacheItem(FileName const & orig_from, string const & to_format,
time_t t, unsigned long c)
: timestamp(t), checksum(c)
<< ' ' << to_format << ' ' << cache_name
<< ' ' << long(timestamp) << ' ' << checksum << '.');
}
- ~CacheItem() {}
+ ~CacheItem()
+ {}
FileName cache_name;
time_t timestamp;
unsigned long checksum;
}
+// FIXME THREAD
ConverterCache & ConverterCache::get()
{
// Now return the cache
add(orig_from, "eps", converted_eps);
} else if (to_format == "pdftex") {
FileName const converted_pdf(changeExtension(converted_file.absFileName(), "pdf"));
- add(orig_from, "pdf", converted_pdf);
+ add(orig_from, "pdf6", converted_pdf);
}
// Is the file in the cache already?
LYXERR(Debug::FILES, "not in cache.");
return false;
}
+
+ // Special handling of pstex and pdftex formats: These are only
+ // considered to be in the cache if the corresponding graphics
+ // fiels are there as well. Otherwise copy() of the graphics below
+ // would fail.
+ // FIXME: Should not hardcode this (see bug 3819 for details)
+ if (to_format == "pstex") {
+ if (!inCache(orig_from, "eps"))
+ return false;
+ } else if (to_format == "pdftex") {
+ if (!inCache(orig_from, "pdf6"))
+ return false;
+ }
+
time_t const timestamp = orig_from.lastModified();
if (item->timestamp == timestamp) {
LYXERR(Debug::FILES, "identical timestamp.");
LYXERR(Debug::FILES, orig_from << ' ' << to_format);
CacheItem * const item = pimpl_->find(orig_from, to_format);
- LASSERT(item, /**/);
+ LASSERT(item, { static const FileName fn; return fn; });
return item->cache_name;
}
return false;
} else if (to_format == "pdftex") {
FileName const dest_pdf(changeExtension(dest.absFileName(), "pdf"));
- if (!copy(orig_from, "pdf", dest_pdf))
+ if (!copy(orig_from, "pdf6", dest_pdf))
return false;
}
CacheItem * const item = pimpl_->find(orig_from, to_format);
- LASSERT(item, /**/);
+ LASSERT(item, return false);
Mover const & mover = getMover(to_format);
return mover.copy(item->cache_name, dest,
onlyFileName(dest.absFileName()));