#include "Converter.h"
#include "Buffer.h"
-#include "buffer_funcs.h"
#include "BufferParams.h"
#include "ConverterCache.h"
#include "Encoding.h"
#include "LaTeX.h"
#include "LyXRC.h"
#include "Mover.h"
+#include "OutputParams.h"
#include "ParagraphList.h"
#include "Session.h"
Converter::Converter(string const & f, string const & t,
string const & c, string const & l)
: from_(f), to_(t), command_(c), flags_(l),
- From_(nullptr), To_(nullptr), latex_(false), xml_(false),
+ From_(nullptr), To_(nullptr), latex_(false), docbook_(false),
need_aux_(false), nice_(false), need_auth_(false)
{}
latex_flavor_ = flag_value.empty() ?
"latex" : flag_value;
} else if (flag_name == "xml")
- xml_ = true;
+ docbook_ = true;
else if (flag_name == "needaux") {
need_aux_ = true;
latex_flavor_ = flag_value.empty() ?
}
-OutputParams::FLAVOR Converters::getFlavor(Graph::EdgePath const & path,
- Buffer const * buffer)
+Flavor Converters::getFlavor(Graph::EdgePath const & path,
+ Buffer const * buffer) const
{
for (auto const & edge : path) {
Converter const & conv = converterlist_[edge];
if (conv.latex() || conv.need_aux()) {
if (conv.latex_flavor() == "latex")
- return OutputParams::LATEX;
+ return Flavor::LaTeX;
if (conv.latex_flavor() == "xelatex")
- return OutputParams::XETEX;
+ return Flavor::XeTeX;
if (conv.latex_flavor() == "lualatex")
- return OutputParams::LUATEX;
+ return Flavor::LuaTeX;
if (conv.latex_flavor() == "dvilualatex")
- return OutputParams::DVILUATEX;
+ return Flavor::DviLuaTeX;
if (conv.latex_flavor() == "pdflatex")
- return OutputParams::PDFLATEX;
+ return Flavor::PdfLaTeX;
}
- if (conv.xml())
- return OutputParams::XML;
+ if (conv.docbook())
+ return Flavor::DocBook5;
}
return buffer ? buffer->params().getOutputFlavor()
- : OutputParams::LATEX;
+ : Flavor::LaTeX;
}
-string Converters::getHyperrefDriver(Graph::EdgePath const & path)
+string Converters::getHyperrefDriver(Graph::EdgePath const & path) const
{
for (auto const & edge : path) {
Converter const & conv = converterlist_[edge];
|| suffixIs(bp.bufferFormat(), "-ja"))
&& bp.encoding().package() == Encoding::japanese;
runparams.use_indices = bp.use_indices;
- runparams.bibtex_command = bp.bibtexCommand();
+ runparams.bibtex_command = bp.bibtexCommand(true);
runparams.index_command = (bp.index_command == "default") ?
string() : bp.index_command;
- runparams.document_language = bp.language->babel();
- runparams.xindy_language = bp.language->xindy();
+ runparams.document_language = bp.language->lang();
// Some macros rely on font encoding
runparams.main_fontenc = bp.main_font_encoding();
runparams.only_childbibs = !bp.useBiblatex()
// FIXME KILLED
// Check changed return value here.
RetVal const retval = runLaTeX(*buffer, command, runparams, errorList);
- if (retval != SUCCESS)
- return retval;
+ if (retval != SUCCESS)
+ return retval;
} else {
if (conv.need_aux() && !run_latex) {
// We are not importing, we have a buffer
LASSERT(buffer, return FAILURE);
string command;
switch (runparams.flavor) {
- case OutputParams::DVILUATEX:
+ case Flavor::DviLuaTeX:
command = dvilualatex_command_;
break;
- case OutputParams::LUATEX:
+ case Flavor::LuaTeX:
command = lualatex_command_;
break;
- case OutputParams::PDFLATEX:
+ case Flavor::PdfLaTeX:
command = pdflatex_command_;
break;
- case OutputParams::XETEX:
+ case Flavor::XeTeX:
command = xelatex_command_;
break;
default:
}
-bool Converters::formatIsUsed(string const & format)
+bool Converters::formatIsUsed(string const & format) const
{
for (auto const & cvt : converterlist_) {
if (cvt.from() == format || cvt.to() == format)
FileName const & filename, ErrorList & errorList)
{
OutputParams runparams(nullptr);
- runparams.flavor = OutputParams::LATEX;
+ runparams.flavor = Flavor::LaTeX;
LaTeX latex("", runparams, filename);
TeXErrors terr;
int const result = latex.scanLogFile(terr);
// do the LaTeX run(s)
string const name = buffer.latexName();
- LaTeX latex(command, runparams, FileName(makeAbsPath(name)),
+ LaTeX latex(command, runparams, makeAbsPath(name),
buffer.filePath(), buffer.layoutPos(),
buffer.isClone(), buffer.freshStartRequired());
TeXErrors terr;
});
int const result = latex.run(terr);
- if (result == Systemcall::KILLED) {
+ if (result == Systemcall::KILLED || result == Systemcall::TIMEOUT) {
Alert::error(_("Export canceled"),
_("The export process was terminated by the user."));
return KILLED;
if (result & LaTeX::ERRORS)
buffer.bufferErrors(terr, errorList);
- if ((result & LaTeX::UNDEF_CIT) || (result & LaTeX::UNDEF_REF)) {
+ if ((result & LaTeX::UNDEF_CIT) || (result & LaTeX::UNDEF_UNKNOWN_REF)) {
buffer.bufferRefs(terr, errorList);
if (errorList.empty())
errorList.push_back(ErrorItem(_("Undefined reference"),
- _("Undefined reference or citation was found during the build, please check the Log."),
+ _("Undefined references or citations were found during the build.\n"
+ "Please check the warnings in the LaTeX log (Document > LaTeX Log)."),
&buffer));
}
LaTeX::NO_LOGFILE |
LaTeX::ERRORS |
LaTeX::UNDEF_CIT |
- LaTeX::UNDEF_REF |
+ LaTeX::UNDEF_UNKNOWN_REF |
LaTeX::NO_OUTPUT;
return (result & ERROR_MASK) == 0 ? SUCCESS : FAILURE;