X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fconverter.C;h=8d2390c1fe838d4668727fd95bd46551f96e604b;hb=3ef684e752bb5afdbfdea51d4c3df4afe1461916;hp=ad54732087a3e66bce829c898f500bd9f1ef8df6;hpb=43b77ba2d722cdb8a9437926f839c1dcbf3c0b89;p=lyx.git diff --git a/src/converter.C b/src/converter.C index ad54732087..8d2390c1fe 100644 --- a/src/converter.C +++ b/src/converter.C @@ -30,25 +30,28 @@ #include "support/path.h" #include "support/systemcall.h" -using lyx::support::addName; -using lyx::support::bformat; -using lyx::support::changeExtension; -using lyx::support::compare_ascii_no_case; -using lyx::support::contains; -using lyx::support::dirList; -using lyx::support::getExtension; -using lyx::support::isFileReadable; -using lyx::support::libFileSearch; -using lyx::support::libScriptSearch; -using lyx::support::makeRelPath; -using lyx::support::onlyFilename; -using lyx::support::onlyPath; -using lyx::support::Path; -using lyx::support::prefixIs; -using lyx::support::quoteName; -using lyx::support::split; -using lyx::support::subst; -using lyx::support::Systemcall; + +namespace lyx { + +using support::addName; +using support::bformat; +using support::changeExtension; +using support::compare_ascii_no_case; +using support::contains; +using support::dirList; +using support::getExtension; +using support::isFileReadable; +using support::libFileSearch; +using support::libScriptSearch; +using support::makeRelPath; +using support::onlyFilename; +using support::onlyPath; +using support::Path; +using support::prefixIs; +using support::quoteName; +using support::split; +using support::subst; +using support::Systemcall; using std::endl; using std::find_if; @@ -56,6 +59,8 @@ using std::string; using std::vector; using std::distance; +namespace Alert = lyx::frontend::Alert; + namespace { @@ -299,7 +304,7 @@ bool Converters::convert(Buffer const * buffer, getExtension(from_file) : formats.extension(from_format); string const command = - lyx::support::os::python() + ' ' + + support::os::python() + ' ' + quoteName(libFileSearch("scripts", "convertDefault.py")) + ' ' + quoteName(from_ext + ':' + from_file) + @@ -315,17 +320,24 @@ bool Converters::convert(Buffer const * buffer, return true; } } - Alert::error(lyx::to_utf8(_("Cannot convert file")), - bformat(lyx::to_utf8(_("No information for converting %1$s " + Alert::error(_("Cannot convert file"), + bformat(_("No information for converting %1$s " "format files to %2$s.\n" - "Define a convertor in the preferences.")), - from_format, to_format)); + "Define a converter in the preferences."), + from_ascii(from_format), from_ascii(to_format))); return false; } OutputParams runparams; runparams.flavor = getFlavor(edgepath); + + // Some converters (e.g. lilypond) can only output files to the + // current directory, so we need to change the current directory. + // This has the added benefit that all other files that may be + // generated by the converter are deleted when LyX closes and do not + // clutter the real working directory. string path = onlyPath(from_file); Path p(path); + // empty the error list before any new conversion takes place. errorList.clear(); @@ -395,8 +407,8 @@ bool Converters::convert(Buffer const * buffer, lyxerr[Debug::FILES] << "Calling " << command << endl; if (buffer) - buffer->message(lyx::to_utf8(_("Executing command: ")) - + command); + buffer->message(_("Executing command: ") + + from_utf8(command)); Systemcall::Starttype const type = (dummy) ? Systemcall::DontWait : Systemcall::Wait; @@ -435,14 +447,14 @@ bool Converters::convert(Buffer const * buffer, if (res) { if (conv.to == "program") { - Alert::error(lyx::to_utf8(_("Build errors")), - lyx::to_utf8(_("There were errors during the build process."))); + Alert::error(_("Build errors"), + _("There were errors during the build process.")); } else { // FIXME: this should go out of here. For example, here we cannot say if // it is a document (.lyx) or something else. Same goes for elsewhere. - Alert::error(lyx::to_utf8(_("Cannot convert file")), - bformat(lyx::to_utf8(_("An error occurred whilst running %1$s")), - command.substr(0, 50))); + Alert::error(_("Cannot convert file"), + bformat(_("An error occurred whilst running %1$s"), + from_ascii(command.substr(0, 50)))); } return false; } @@ -464,9 +476,9 @@ bool Converters::convert(Buffer const * buffer, token_base, to_base); Mover const & mover = movers(conv.from); if (!mover.rename(from, to)) { - Alert::error(lyx::to_utf8(_("Cannot convert file")), - bformat(lyx::to_utf8(_("Could not move a temporary file from %1$s to %2$s.")), - from, to)); + Alert::error(_("Cannot convert file"), + bformat(_("Could not move a temporary file from %1$s to %2$s."), + from_ascii(from), from_ascii(to))); return false; } } @@ -503,11 +515,11 @@ bool Converters::move(string const & fmt, ? mover.copy(from2, to2) : mover.rename(from2, to2); if (!moved && no_errors) { - Alert::error(lyx::to_utf8(_("Cannot convert file")), + Alert::error(_("Cannot convert file"), bformat(copy ? - lyx::to_utf8(_("Could not copy a temporary file from %1$s to %2$s.")) : - lyx::to_utf8(_("Could not move a temporary file from %1$s to %2$s.")), - from2, to2)); + _("Could not copy a temporary file from %1$s to %2$s.") : + _("Could not move a temporary file from %1$s to %2$s."), + from_ascii(from2), from_ascii(to2))); no_errors = false; } } @@ -556,10 +568,10 @@ bool Converters::scanLog(Buffer const & buffer, string const & /*command*/, namespace { -class showMessage : public std::unary_function, public boost::signals::trackable { +class showMessage : public std::unary_function, public boost::signals::trackable { public: showMessage(Buffer const & b) : buffer_(b) {}; - void operator()(string const & m) const + void operator()(docstring const & m) const { buffer_.message(m); } @@ -574,7 +586,7 @@ bool Converters::runLaTeX(Buffer const & buffer, string const & command, OutputParams const & runparams, ErrorList & errorList) { buffer.busy(true); - buffer.message(lyx::to_utf8(_("Running LaTeX..."))); + buffer.message(_("Running LaTeX...")); runparams.document_language = buffer.params().language->babel(); @@ -591,14 +603,14 @@ bool Converters::runLaTeX(Buffer const & buffer, string const & command, // check return value from latex.run(). if ((result & LaTeX::NO_LOGFILE)) { - string const str = - bformat(lyx::to_utf8(_("LaTeX did not run successfully. " + docstring const str = + bformat(_("LaTeX did not run successfully. " "Additionally, LyX could not locate " - "the LaTeX log %1$s.")), name); - Alert::error(lyx::to_utf8(_("LaTeX failed")), str); + "the LaTeX log %1$s."), from_utf8(name)); + Alert::error(_("LaTeX failed"), str); } else if (result & LaTeX::NO_OUTPUT) { - Alert::warning(lyx::to_utf8(_("Output is empty")), - lyx::to_utf8(_("An empty output file was generated."))); + Alert::warning(_("Output is empty"), + _("An empty output file was generated.")); } @@ -686,3 +698,6 @@ Converters converters; // The global copy after reading lyxrc.defaults Converters system_converters; + + +} // namespace lyx