]> git.lyx.org Git - lyx.git/blobdiff - src/exporter.C
hopefully fix tex2lyx linking.
[lyx.git] / src / exporter.C
index 73e257be524ee9a681f20d42c45e14721f1e9e2f..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,13 +78,13 @@ vector<string> const Backends(Buffer const & buffer)
 int checkOverwrite(string const & filename)
 {
        if (fs::exists(filename)) {
-               string text = bformat(lyx::to_utf8(_("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(lyx::to_utf8(_("Over-write file?")),
+               return Alert::prompt(_("Over-write file?"),
                                     text, 0, 2,
-                                    lyx::to_utf8(_("&Over-write")), lyx::to_utf8(_("Over-write &all")),
-                                    lyx::to_utf8(_("&Cancel export")));
+                                    _("&Over-write"), _("Over-write &all"),
+                                    _("&Cancel export"));
        }
        return 0;
 }
@@ -129,8 +133,8 @@ CopyStatus copyFile(string const & format,
 
        Mover const & mover = movers(format);
        if (!mover.copy(sourceFile, destFile, latexFile))
-               Alert::error(lyx::to_utf8(_("Couldn't copy file")),
-                            bformat(lyx::to_utf8(_("Copying %1$s to %2$s failed.")),
+               Alert::error(_("Couldn't copy file"),
+                            bformat(_("Copying %1$s to %2$s failed."),
                                     makeDisplayPath(sourceFile),
                                     makeDisplayPath(destFile)));
 
@@ -168,8 +172,8 @@ bool Exporter::Export(Buffer * buffer, string const & format,
                        }
                }
                if (backend_format.empty()) {
-                       Alert::error(lyx::to_utf8(_("Couldn't export file")),
-                               bformat(lyx::to_utf8(_("No information for exporting the format %1$s.")),
+                       Alert::error(_("Couldn't export file"),
+                               bformat(_("No information for exporting the format %1$s."),
                                   formats.prettyName(format)));
                        return false;
                }
@@ -199,30 +203,34 @@ 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(lyx::to_utf8(_("File name error")),
-                          lyx::to_utf8(_("The directory path to the document cannot contain spaces.")));
+               Alert::error(_("File name error"),
+                          _("The directory path to the document cannot contain spaces."));
                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 =
@@ -238,19 +246,19 @@ bool Exporter::Export(Buffer * buffer, string const & format,
                                          it->exportName, status == FORCE);
                }
                if (status == CANCEL) {
-                       buffer->message(lyx::to_utf8(_("Document export cancelled.")));
+                       buffer->message(_("Document export cancelled."));
                } else if (fs::exists(tmp_result_file)) {
                        // Finally copy the main file
                        status = copyFile(format, tmp_result_file,
                                          result_file, result_file,
                                          status == FORCE);
-                       buffer->message(bformat(lyx::to_utf8(_("Document exported as %1$s "
-                                                              "to file `%2$s'")),
+                       buffer->message(bformat(_("Document exported as %1$s "
+                                                              "to file `%2$s'"),
                                                formats.prettyName(format),
                                                makeDisplayPath(result_file)));
                } else {
                        // This must be a dummy converter like fax (bug 1888)
-                       buffer->message(bformat(lyx::to_utf8(_("Document exported as %1$s")),
+                       buffer->message(bformat(_("Document exported as %1$s"),
                                                formats.prettyName(format)));
                }
        }
@@ -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