+} //namespace anon
+
+
+bool Exporter::Export(Buffer * buffer, string const & format,
+ bool put_in_tempdir, string & result_file)
+{
+ string backend_format;
+ OutputParams runparams;
+ runparams.flavor = OutputParams::LATEX;
+ runparams.linelen = lyxrc.ascii_linelen;
+ vector<string> backends = Backends(*buffer);
+ // FIXME: Without this test export to lyx13 would be through
+ // latex -> lyx -> lyx13, because the first backend below with a
+ // working conversion path is used. We should replace this test and
+ // the explicit loop below with a method
+ // getShortestPath(vector<string> const & from, string const & to)
+ // which returns the shortest path from one of the formats in 'from'
+ // to 'to'.
+ if (format == "lyx13x" && !converters.getPath("lyx", format).empty())
+ backend_format = "lyx";
+ else if (find(backends.begin(), backends.end(), format) == backends.end()) {
+ for (vector<string>::const_iterator it = backends.begin();
+ it != backends.end(); ++it) {
+ Graph::EdgePath p = converters.getPath(*it, format);
+ if (!p.empty()) {
+ runparams.flavor = converters.getFlavor(p);
+ backend_format = *it;
+ break;
+ }
+ }
+ if (backend_format.empty()) {
+ Alert::error(_("Couldn't export file"),
+ bformat(_("No information for exporting the format %1$s."),
+ formats.prettyName(format)));
+ return false;
+ }
+ } else {
+ backend_format = format;
+ // FIXME: Don't hardcode format names here, but use a flag
+ if (backend_format == "pdflatex")
+ runparams.flavor = OutputParams::PDFLATEX;
+ }