]> git.lyx.org Git - lyx.git/blobdiff - src/exporter.C
hopefully fix tex2lyx linking.
[lyx.git] / src / exporter.C
index a60fee117c2f08f2770a0429ab22c60775f1c211..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;
+
+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 = frontend::Alert;
 namespace fs = boost::filesystem;
 
 namespace {
@@ -74,8 +78,8 @@ vector<string> const Backends(Buffer const & buffer)
 int checkOverwrite(string const & filename)
 {
        if (fs::exists(filename)) {
-               string text = bformat(_("The file %1$s already exists.\n\n"
-                                       "Do you want to over-write that file?"),
+               docstring text = bformat(_("The file %1$s already exists.\n\n"
+                                                    "Do you want to over-write that file?"),
                                      makeDisplayPath(filename));
                return Alert::prompt(_("Over-write file?"),
                                     text, 0, 2,
@@ -191,11 +195,6 @@ bool Exporter::Export(Buffer * buffer, string const & format,
        // no backend
        else if (backend_format == "lyx")
                buffer->writeFile(filename);
-       // Linuxdoc backend
-       else if (buffer->isLinuxDoc()) {
-               runparams.nice = !put_in_tempdir;
-               buffer->makeLinuxDocFile(filename, runparams);
-       }
        // Docbook backend
        else if (buffer->isDocBook()) {
                runparams.nice = !put_in_tempdir;
@@ -204,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"),
@@ -212,17 +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;
        }
 
-       if (!converters.convert(buffer, filename, filename,
-                               backend_format, format, result_file))
+       string const error_type = (format == "program")? "Build" : bufferFormat(*buffer);
+       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 =
@@ -245,7 +253,7 @@ bool Exporter::Export(Buffer * buffer, string const & format,
                                          result_file, result_file,
                                          status == FORCE);
                        buffer->message(bformat(_("Document exported as %1$s "
-                                                 "to file `%2$s'"),
+                                                              "to file `%2$s'"),
                                                formats.prettyName(format),
                                                makeDisplayPath(result_file)));
                } else {
@@ -319,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.
@@ -345,3 +353,6 @@ ExportData::externalFiles(string const & format) const
                return cit->second;
        return vector<ExportedFile>();
 }
+
+
+} // namespace lyx