]> git.lyx.org Git - lyx.git/blobdiff - src/ConverterCache.cpp
These insets are NOT_EDITABLE.
[lyx.git] / src / ConverterCache.cpp
index fe5e813fb5335ddbc201f2790c3773b8e7e27a69..813243f48b0ae47db60e43c92860f3fa3fe0b21b 100644 (file)
 #include "support/convert.h"
 #include "support/debug.h"
 #include "support/filetools.h"
-#include "support/lyxlib.h"
 #include "support/lyxtime.h"
 #include "support/Package.h"
 
-#include <boost/assert.hpp>
+#include "support/lassert.h"
 #include <boost/crc.hpp>
 
 #include <algorithm>
 #include <map>
 #include <sstream>
 
-using std::string;
+using namespace std;
+using namespace lyx::support;
 
 namespace lyx {
 
-using support::FileName;
-using support::addName;
-
 namespace {
 
 unsigned long do_crc(string const & s)
 {
        boost::crc_32_type crc;
-       crc = std::for_each(s.begin(), s.end(), crc);
+       crc = for_each(s.begin(), s.end(), crc);
        return crc.checksum();
 }
 
@@ -62,8 +59,8 @@ public:
                  time_t t, unsigned long c)
                : timestamp(t), checksum(c)
        {
-               std::ostringstream os;
-               os << std::setw(10) << std::setfill('0') << do_crc(orig_from.absFilename())
+               ostringstream os;
+               os << setw(10) << setfill('0') << do_crc(orig_from.absFilename())
                   << '-' << to_format;
                cache_name = FileName(addName(cache_dir.absFilename(), os.str()));
                LYXERR(Debug::FILES, "Add file cache item " << orig_from
@@ -82,7 +79,7 @@ public:
 /** The cache contains one item per orig file and target format, so use a
  *  nested map to find the cache item quickly by filename and format.
  */
-typedef std::map<string, CacheItem> FormatCacheType;
+typedef map<string, CacheItem> FormatCacheType;
 class FormatCache {
 public:
        /// Format of the source file
@@ -90,7 +87,7 @@ public:
        /// Cache target format -> item to quickly find the item by format
        FormatCacheType cache;
 };
-typedef std::map<FileName, FormatCache> CacheType;
+typedef map<FileName, FormatCache> CacheType;
 
 
 class ConverterCache::Impl {
@@ -109,8 +106,8 @@ void ConverterCache::Impl::readIndex()
 {
        time_t const now = current_time();
        FileName const index(addName(cache_dir.absFilename(), "index"));
-       std::ifstream is(index.toFilesystemEncoding().c_str());
-       Lexer lex(0, 0);
+       ifstream is(index.toFilesystemEncoding().c_str());
+       Lexer lex;
        lex.setStream(is);
        while (lex.isOK()) {
                if (!lex.next(true))
@@ -169,9 +166,9 @@ void ConverterCache::Impl::readIndex()
 void ConverterCache::Impl::writeIndex()
 {
        FileName const index(addName(cache_dir.absFilename(), "index"));
-       std::ofstream os(index.toFilesystemEncoding().c_str());
+       ofstream os(index.toFilesystemEncoding().c_str());
        os.close();
-       if (!lyx::support::chmod(index, 0600))
+       if (!index.changePermission(0600))
                return;
        os.open(index.toFilesystemEncoding().c_str());
        CacheType::iterator it1 = cache.begin();
@@ -240,11 +237,11 @@ 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(support::package().user_support().absFilename(), "cache"));
+       cache_dir = FileName(addName(package().user_support().absFilename(), "cache"));
        if (!cache_dir.exists())
-               if (support::mkdir(cache_dir, 0700) != 0) {
+               if (!cache_dir.createDirectory(0700)) {
                        lyxerr << "Could not create cache directory `"
-                              << cache_dir << "'." << std::endl;
+                              << cache_dir << "'." << endl;
                        exit(EXIT_FAILURE);
                }
        get().pimpl_->readIndex();
@@ -262,10 +259,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(support::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(support::changeExtension(converted_file.absFilename(), "pdf"));
+               FileName const converted_pdf(changeExtension(converted_file.absFilename(), "pdf"));
                add(orig_from, "pdf", converted_pdf);
        }
 
@@ -291,15 +288,22 @@ void ConverterCache::add(FileName const & orig_from, string const & to_format,
                }
                item->checksum = checksum;
                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.");
+                             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)) {
+                       LYXERR(Debug::FILES, "Could not change file mode"
+                               << item->cache_name);
                }
        } else {
                CacheItem new_item(orig_from, to_format, timestamp,
                                orig_from.checksum());
                if (mover.copy(converted_file, new_item.cache_name,
-                              support::onlyFilename(new_item.cache_name.absFilename()), 0600)) {
+                             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);
+                       }
                        FormatCache & format_cache = pimpl_->cache[orig_from];
                        if (format_cache.from_format.empty())
                                format_cache.from_format =
@@ -405,7 +409,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;
 }
 
@@ -419,20 +423,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(support::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(support::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,
-                         support::onlyFilename(dest.absFilename()));
+                         onlyFilename(dest.absFilename()));
 }
 
 } // namespace lyx