string const token_base("$$b");
string const token_to("$$o");
string const token_path("$$p");
+string const token_orig_path("$$r");
cit != path.end(); ++cit) {
Converter const & conv = converterlist_[*cit];
if (conv.latex)
+ if (contains(conv.from, "xetex"))
+ return OutputParams::XETEX;
if (contains(conv.to, "pdf"))
return OutputParams::PDFLATEX;
if (conv.xml)
return true;
}
}
+
+ // only warn once per session and per file type
+ static std::map<string, string> warned;
+ if (warned.find(from_format) != warned.end() && warned.find(from_format)->second == to_format) {
+ return false;
+ }
+ warned.insert(make_pair(from_format, to_format));
+
Alert::error(_("Cannot convert file"),
bformat(_("No information for converting %1$s "
"format files to %2$s.\n"
// if input and output files are equal, we use a
// temporary file as intermediary (JMarc)
FileName real_outfile;
- if (outfile.absFilename() == infile.absFilename()) {
+ if (outfile == infile) {
real_outfile = infile;
// when importing, a buffer does not necessarily exist
if (buffer)
command = subst(command, token_from, quoteName(infile2));
command = subst(command, token_base, quoteName(from_base));
command = subst(command, token_to, quoteName(outfile2));
+ command = subst(command, token_path, quoteName(infile.onlyPath().absFilename()));
+ command = subst(command, token_orig_path, quoteName(orig_from.onlyPath().absFilename()));
command = libScriptSearch(command);
if (!conv.parselog.empty())