#include "Buffer.h"
#include "BufferParams.h"
#include "ConverterCache.h"
+#include "TextClass.h"
#include "Encoding.h"
#include "ErrorList.h"
#include "Format.h"
string const token_path("$$p");
string const token_orig_path("$$r");
string const token_orig_from("$$f");
+string const token_textclass("$$c");
+string const token_modules("$$m");
string const token_encoding("$$e");
string const token_latex_encoding("$$E");
-
+string const token_python("$${python}");
string const add_options(string const & command, string const & options)
{
}
+void Converter::setCommand(std::string const & command)
+{
+ command_ = subst(command, token_python, os::python());
+}
+
+
Converter const * Converters::getConverter(string const & from,
string const & to) const
{
return FAILURE;
}
- // buffer is only invalid for importing, and then runparams is not
+ // buffer can only be null for importing, and then runparams is not
// used anyway.
OutputParams runparams(buffer ? &buffer->params().encoding() : nullptr);
runparams.flavor = getFlavor(edgepath, buffer);
command = subst(command, token_path, quoteName(onlyPath(infile.absFileName())));
command = subst(command, token_orig_path, quoteName(onlyPath(orig_from.absFileName())));
command = subst(command, token_orig_from, quoteName(onlyFileName(orig_from.absFileName())));
- command = subst(command, token_encoding, buffer ? buffer->params().encoding().iconvName() : string());
+ command = subst(command, token_textclass,
+ buffer ? quoteName(buffer->params().documentClass().name())
+ : string());
+ command = subst(command, token_modules,
+ buffer ? quoteName(buffer->params().getModules().asString())
+ : string());
+ command = subst(command, token_encoding,
+ buffer ? quoteName(buffer->params().encoding().iconvName())
+ : string());
+ command = subst(command, token_python, os::python());
if (!conv.parselog().empty())
command += " 2> " + quoteName(infile2 + ".out");
if (res == Systemcall::KILLED) {
frontend::Alert::warning(
_("Converter killed"),
- bformat(_("The following converter was killed by the user.\n %1$s\n"),
+ bformat(_("The following converter was killed by the user.\n %1$s\n"),
from_utf8(command)));
return KILLED;
}
-
+
if (!real_outfile.empty()) {
Mover const & mover = getMover(conv.to());
if (!mover.rename(outfile, real_outfile))
if (res == Systemcall::KILLED) {
frontend::Alert::warning(
_("Converter killed"),
- bformat(_("The following converter was killed by the user.\n %1$s\n"),
+ bformat(_("The following converter was killed by the user.\n %1$s\n"),
from_utf8(command)));
return KILLED;
}
bformat(_("The conversion process was killed while running:\n%1$s"),
wrapParas(from_utf8(command))));
return KILLED;
- }
+ }
if (res == Systemcall::TIMEOUT) {
Alert::information(_("Process Timed Out"),
bformat(_("The conversion process:\n%1$s\ntimed out before completing."),
wrapParas(from_utf8(command))));
return KILLED;
- }
+ }
if (conv.to() == "program") {
Alert::error(_("Build errors"),
_("There were errors during the build process."));