#include "ExternalTemplate.h"
#include "lyxlex.h"
+#include "debug.h"
#include "support/path.h"
+#include "support/LAssert.h"
+#include "support/filetools.h"
using std::endl;
using std::ostream;
+using std::for_each;
extern string user_lyxdir;
: viewCommand("true"), editCommand("true")
{}
+
ExternalTemplate::FormatTemplate::FormatTemplate()
: updateCommand("true") {}
{
// gimp gnuchess gnuplot ical netscape tetris xpaint
readTemplates(user_lyxdir);
- dumpTemplates();
+ if (lyxerr.debugging())
+ dumpTemplates();
}
for_each(formats.begin(), formats.end(), dumpFormat(os));
}
+
void ExternalTemplateManager::dumpTemplates() const
{
for_each(templates.begin(), templates.end(), dumpTemplate(lyxerr));
}
+ExternalTemplate const & ExternalTemplateManager::getTemplateByName(string const & name)
+{
+ return templates[name];
+}
+
+
void ExternalTemplateManager::readTemplates(string const & path)
{
Path p(path);
{ "templateend", TM_END }
};
+ string filename = LibFileSearch("", "external_templates");
+ if (filename.empty()) {
+ lyxerr << "ExternalTemplateManager::readTemplates: "
+ "No template file" << endl;
+ return;
+ }
+
LyXLex lex(templatetags, TM_END);
- if (!lex.setFile("external_templates")) {
- lyxerr << "No template file" << endl;
+ if (!lex.setFile(filename)) {
+ lyxerr << "ExternalTemplateManager::readTemplates: "
+ "No template file" << endl;
return;
}
while (lex.IsOK()) {
- switch(lex.lex()) {
+ switch (lex.lex()) {
case TM_TEMPLATE: {
lex.next();
string temp = lex.GetString();
break;
case TM_END:
- lyxerr << "TemplateEnd: " << lex.GetString() << endl;
- lyxerr << "Warning: End outside Template." << endl;
+ lex.printError("Warning: End outside Template.");
break;
}
}
return;
default:
- lyxerr << "Default: " << lex.GetString() << endl;
- Assert(false);
+ lex.printError("ExternalTemplate::readTemplate: "
+ "Wrong tag: $$Token");
+ lyx::Assert(false);
break;
}
}
pushpophelper pph(lex, formattags, FO_END);
while (lex.IsOK()) {
- switch(lex.lex()) {
+ switch (lex.lex()) {
case FO_PRODUCT:
lex.next(true);
product = lex.GetString();
break;
case FO_END:
- lyxerr << "FormatEnd: " << lex.GetString() << endl;
+ if (lyxerr.debugging())
+ lex.printError("FormatEnd");
return;
}
}