From c1bbe62b53f39645d7c1acbe935ef78f92dac052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Tue, 10 Jul 2007 09:13:21 +0000 Subject: [PATCH] fix bug 3819 (patch from Georg Baum): * src/ConverterCache: - fix handling of movers - handle pstex/pdftex files git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19023 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/ConverterCache.cpp | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/ConverterCache.cpp b/src/ConverterCache.cpp index 16e0c7f747..6bcaa60f25 100644 --- a/src/ConverterCache.cpp +++ b/src/ConverterCache.cpp @@ -261,6 +261,15 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, << ' ' << 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); @@ -286,7 +295,8 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, } 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." @@ -294,7 +304,8 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format, } 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 = @@ -418,10 +429,22 @@ bool ConverterCache::copy(FileName const & orig_from, string const & to_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