]> git.lyx.org Git - lyx.git/blobdiff - src/exporter.C
hopefully fix tex2lyx linking.
[lyx.git] / src / exporter.C
index 70f90317a74bb3692d608861b09a9b5e858260a8..eff1172ae893d0100c3922928fae39103d2191ec 100644 (file)
 
 #include <boost/filesystem/operations.hpp>
 
-using lyx::support::addName;
-using lyx::support::bformat;
-using lyx::support::changeExtension;
-using lyx::support::contains;
-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 lyx::docstring;
+
+namespace lyx {
+
+using support::addName;
+using support::bformat;
+using support::changeExtension;
+using support::contains;
+using support::makeAbsPath;
+using support::makeDisplayPath;
+using support::onlyFilename;
+using support::onlyPath;
+using support::package;
+using support::prefixIs;
 
 using std::find;
 using std::string;
 using std::vector;
 
-namespace Alert = lyx::frontend::Alert;
+namespace Alert = frontend::Alert;
 namespace fs = boost::filesystem;
 
 namespace {
@@ -202,7 +203,8 @@ bool Exporter::Export(Buffer * buffer, string const & format,
        // LaTeX backend
        else if (backend_format == format) {
                runparams.nice = true;
-               buffer->makeLaTeXFile(filename, string(), runparams);
+               if (!buffer->makeLaTeXFile(filename, string(), runparams))
+                       return false;
        } else if (!lyxrc.tex_allows_spaces
                   && contains(buffer->filePath(), ' ')) {
                Alert::error(_("File name error"),
@@ -210,22 +212,25 @@ bool Exporter::Export(Buffer * buffer, string const & format,
                return false;
        } else {
                runparams.nice = false;
-               buffer->makeLaTeXFile(filename, buffer->filePath(), runparams);
+               if (!buffer->makeLaTeXFile(filename, buffer->filePath(), runparams))
+                       return false;
        }
 
        string const error_type = (format == "program")? "Build" : bufferFormat(*buffer);
-       bool const success = converters.convert(buffer, filename, filename,
-               backend_format, format, result_file,
+       string const ext = formats.extension(format);
+       string const tmp_result_file = changeExtension(filename, ext);
+       bool const success = converters.convert(buffer, filename,
+               tmp_result_file, buffer->fileName(), backend_format, format,
                buffer->errorList(error_type));
        // Emit the signal to show the error list.
        buffer->errors(error_type);
        if (!success)
                return false;
 
-       if (!put_in_tempdir) {
-               string const tmp_result_file = result_file;
-               result_file = changeExtension(buffer->fileName(),
-                                             formats.extension(format));
+       if (put_in_tempdir)
+               result_file = tmp_result_file;
+       else {
+               result_file = changeExtension(buffer->fileName(), ext);
                // We need to copy referenced files (e. g. included graphics
                // if format == "dvi") to the result dir.
                vector<ExportedFile> const files =
@@ -322,7 +327,7 @@ void ExportData::addExternalFile(string const & format,
                                 string const & sourceName,
                                 string const & exportName)
 {
-       BOOST_ASSERT(lyx::support::absolutePath(sourceName));
+       BOOST_ASSERT(support::absolutePath(sourceName));
 
        // Make sure that we have every file only once, otherwise copyFile()
        // would ask several times if it should overwrite a file.
@@ -348,3 +353,6 @@ ExportData::externalFiles(string const & format) const
                return cit->second;
        return vector<ExportedFile>();
 }
+
+
+} // namespace lyx