]> git.lyx.org Git - lyx.git/blobdiff - src/exporter.C
Fix bug 2029 (RtL space width)
[lyx.git] / src / exporter.C
index 1c12aa2d2fd723ace7bbdba4828bd9f537a48ebc..bbeaba0343f8987f1cdf8fdebf45fc5be78184dd 100644 (file)
 #include "outputparams.h"
 #include "frontends/Alert.h"
 
-#include "support/FileInfo.h"
 #include "support/filetools.h"
 #include "support/lyxlib.h"
-#include "support/os.h"
+#include "support/package.h"
+
+#include <boost/filesystem/operations.hpp>
 
 using lyx::support::AddName;
 using lyx::support::bformat;
 using lyx::support::ChangeExtension;
 using lyx::support::contains;
-using lyx::support::getFormatFromContents;
 using lyx::support::MakeAbsPath;
 using lyx::support::MakeDisplayPath;
 using lyx::support::OnlyFilename;
 using lyx::support::OnlyPath;
+using lyx::support::package;
 using lyx::support::prefixIs;
 
 using std::find;
 using std::string;
 using std::vector;
 
+namespace fs = boost::filesystem;
 
 namespace {
 
@@ -66,7 +68,7 @@ vector<string> const Backends(Buffer const & buffer)
 /// ask the user what to do if a file already exists
 int checkOverwrite(string const & filename)
 {
-       if (lyx::support::FileInfo(filename, true).exist()) {
+       if (fs::exists(filename)) {
                string text = bformat(_("The file %1$s already exists.\n\n"
                                        "Do you want to over-write that file?"),
                                      MakeDisplayPath(filename));
@@ -104,7 +106,7 @@ CopyStatus copyFile(string const & format,
        // overwrite themselves. This check could be changed to
        // boost::filesystem::equivalent(sourceFile, destFile) if export to
        // other directories than the document directory is desired.
-       if (!prefixIs(OnlyPath(sourceFile), lyx::support::os::getTmpDir()))
+       if (!prefixIs(OnlyPath(sourceFile), package().temp_dir()))
                return ret;
 
        if (!force) {
@@ -183,7 +185,8 @@ bool Exporter::Export(Buffer * buffer, string const & format,
        else if (backend_format == format) {
                runparams.nice = true;
                buffer->makeLaTeXFile(filename, string(), runparams);
-       } else if (contains(buffer->filePath(), ' ')) {
+       } else if (!lyxrc.tex_allows_spaces
+                  && contains(buffer->filePath(), ' ')) {
                Alert::error(_("File name error"),
                           _("The directory path to the document cannot contain spaces."));
                return false;
@@ -208,7 +211,8 @@ bool Exporter::Export(Buffer * buffer, string const & format,
                CopyStatus status = SUCCESS;
                for (vector<ExportedFile>::const_iterator it = files.begin();
                                it != files.end() && status != CANCEL; ++it) {
-                       string const fmt = getFormatFromContents(it->sourceName);
+                       string const fmt =
+                               formats.getFormatFromFile(it->sourceName);
                        status = copyFile(fmt, it->sourceName,
                                          MakeAbsPath(it->exportName, dest),
                                          it->exportName, status == FORCE);