#include "Graph.h"
#include "OutputParams.h"
+#include "support/trivstring.h"
#include <vector>
+#include <set>
#include <string>
///
void readFlags();
///
- std::string from;
+ std::string const from() const { return from_; }
///
- std::string to;
+ std::string const to() const { return to_; }
///
- std::string command;
+ std::string const command() const { return command_; }
///
- std::string flags;
+ void setCommand(std::string const & command) { command_ = command; }
///
- Format const * From;
+ std::string const flags() const { return flags_; }
///
- Format const * To;
+ void setFlags(std::string const & flags) { flags_ = flags; }
+ ///
+ Format const * From() const { return From_; }
+ ///
+ void setFrom(Format const * From) { From_ = From; }
+ ///
+ void setTo(Format const * To) { To_ = To; }
+ ///
+ Format const * To() const { return To_; }
+ ///
+ bool latex() const { return latex_; }
+ ///
+ std::string const latex_flavor() const { return latex_flavor_; }
+ ///
+ bool xml() const { return xml_; }
+ ///
+ bool need_aux() const { return need_aux_; }
+ ///
+ bool nice() const { return nice_; }
+ ///
+ std::string const result_dir() const { return result_dir_; }
+ ///
+ std::string const result_file() const { return result_file_; }
+ ///
+ std::string const parselog() const { return parselog_; }
+private:
+ ///
+ trivstring from_;
+ ///
+ trivstring to_;
+ ///
+ trivstring command_;
+ ///
+ trivstring flags_;
+ ///
+ Format const * From_;
+ ///
+ Format const * To_;
/// The converter is latex or its derivatives
- bool latex;
+ bool latex_;
+ /// The latex derivate
+ trivstring latex_flavor_;
/// The converter is xml
- bool xml;
+ bool xml_;
/// This converter needs the .aux files
- bool need_aux;
+ bool need_aux_;
+ /// we need a "nice" file from the backend, c.f. OutputParams.nice.
+ bool nice_;
/// If the converter put the result in a directory, then result_dir
/// is the name of the directory
- std::string result_dir;
+ trivstring result_dir_;
/// If the converter put the result in a directory, then result_file
/// is the name of the main file in that directory
- std::string result_file;
+ trivstring result_file_;
/// Command to convert the program output to a LaTeX log file format
- std::string parselog;
+ trivstring parselog_;
};
typedef std::vector<Converter> ConverterList;
///
typedef ConverterList::const_iterator const_iterator;
+
///
Converter const & get(int i) const { return converterlist_[i]; }
///
//
void erase(std::string const & from, std::string const & to);
///
- void sort();
- ///
std::vector<Format const *> const
getReachableTo(std::string const & target, bool clear_visited);
///
std::vector<Format const *> const
getReachable(std::string const & from, bool only_viewable,
- bool clear_visited);
+ bool clear_visited,
+ std::set<std::string> const & excludes = std::set<std::string>());
std::vector<Format const *> importableFormats();
std::vector<Format const *> exportableFormats(bool only_viewable);
///
Graph::EdgePath getPath(std::string const & from, std::string const & to);
///
- OutputParams::FLAVOR getFlavor(Graph::EdgePath const & path);
+ OutputParams::FLAVOR getFlavor(Graph::EdgePath const & path,
+ Buffer const * buffer = 0);
/// Flags for converting files
enum ConversionFlags {
/// No special flags
///
ConverterList converterlist_;
///
- std::string latex_command_;
+ trivstring latex_command_;
+ ///
+ trivstring dvilualatex_command_;
+ ///
+ trivstring lualatex_command_;
+ ///
+ trivstring pdflatex_command_;
+ ///
+ trivstring xelatex_command_;
/// If \p from = /path/file.ext and \p to = /path2/file2.ext2 then
/// this method moves each /path/file*.ext file to /path2/file2*.ext2
bool move(std::string const & fmt,