/* This file is part of
* ======================================================
- *
+ *
* LyX, The Document Processor
- *
+ *
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+ * Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
// We have to have dummy default commands for security reasons!
ExternalTemplate::ExternalTemplate()
- : viewCommand("true"), editCommand("true")
{}
ExternalTemplate::FormatTemplate::FormatTemplate()
- : updateCommand("true") {}
+{}
ExternalTemplateManager::ExternalTemplateManager()
class dumpTemplate {
public:
- dumpTemplate(std::ostream & o)
+ dumpTemplate(ostream & o)
: ost(o) {}
void operator()(ExternalTemplateManager::Templates::value_type const & vt) {
ExternalTemplate const & et = vt.second;
-
+
ost << "Template " << et.lyxName << "\n"
<< "\tGuiName " << et.guiName << "\n"
<< "\tHelpText\n"
<< "\tAutomaticProduction " << et.automaticProduction << "\n";
et.dumpFormats(ost);
ost << "TemplateEnd" << endl;
-
+
}
private:
class dumpFormat {
public:
- dumpFormat(ostream & o)
+ dumpFormat(ostream & o)
: ost(o) {}
void operator()(ExternalTemplate::Formats::value_type const & vt) const{
ExternalTemplate::FormatTemplate const & ft = vt.second;
ost << "\tFormat " << vt.first << "\n"
<< "\t\tProduct " << ft.product << "\n"
<< "\t\tUpdateCommand " << ft.updateCommand << "\n"
+ << "\t\tUpdateResult " << ft.updateResult << "\n"
<< "\t\tRequirement " << ft.requirement << "\n"
<< "\t\tPreamble\n"
<< ft.preamble
};
-void ExternalTemplate::dumpFormats(ostream & os) const
+void ExternalTemplate::dumpFormats(ostream & os) const
{
for_each(formats.begin(), formats.end(), dumpFormat(os));
}
-void ExternalTemplateManager::dumpTemplates() const
+void ExternalTemplateManager::dumpTemplates() const
{
for_each(templates.begin(), templates.end(), dumpTemplate(lyxerr));
}
return templates[name];
}
-
-void ExternalTemplateManager::readTemplates(string const & path)
+
+void ExternalTemplateManager::readTemplates(string const & path)
{
Path p(path);
TM_TEMPLATE = 1,
TM_END
};
-
+
keyword_item templatetags[] = {
{ "template", TM_TEMPLATE },
{ "templateend", TM_END }
"No template file" << endl;
return;
}
-
- while (lex.IsOK()) {
+
+ while (lex.isOK()) {
switch (lex.lex()) {
case TM_TEMPLATE: {
lex.next();
- string temp = lex.GetString();
+ string const temp = lex.getString();
ExternalTemplate & tmp = templates[temp];
tmp.lyxName = temp;
tmp.readTemplate(lex);
}
break;
-
+
case TM_END:
lex.printError("Warning: End outside Template.");
break;
};
pushpophelper pph(lex, templateoptiontags, TO_END);
-
- while (lex.IsOK()) {
+
+ while (lex.isOK()) {
switch (lex.lex()) {
case TO_GUINAME:
lex.next(true);
- guiName = lex.GetString();
+ guiName = lex.getString();
break;
-
+
case TO_HELPTEXT:
helpText = lex.getLongString("HelpTextEnd");
break;
-
+
case TO_FILTER:
lex.next(true);
- fileRegExp = lex.GetString();
+ fileRegExp = lex.getString();
break;
-
+
case TO_VIEWCMD:
lex.next(true);
- viewCommand = lex.GetString();
- // For security reasons, a command may not be empty!
- if (viewCommand.empty())
- viewCommand = "true";
+ viewCommand = lex.getString();
break;
-
+
case TO_EDITCMD:
lex.next(true);
- editCommand = lex.GetString();
- // For security reasons, a command may not be empty!
- if (editCommand.empty())
- editCommand = "true";
+ editCommand = lex.getString();
break;
-
+
case TO_AUTOMATIC:
lex.next();
- automaticProduction = lex.GetBool();
+ automaticProduction = lex.getBool();
break;
-
+
case TO_FORMAT:
lex.next(true);
- formats[lex.GetString()].readFormat(lex);
+ formats[lex.getString()].readFormat(lex);
break;
-
+
case TO_END:
return;
-
+
default:
lex.printError("ExternalTemplate::readTemplate: "
"Wrong tag: $$Token");
}
-void ExternalTemplate::FormatTemplate::readFormat(LyXLex & lex)
+void ExternalTemplate::FormatTemplate::readFormat(LyXLex & lex)
{
enum FormatTags {
FO_PRODUCT = 1,
FO_UPDATECMD,
+ FO_UPDATERESULT,
FO_REQUIREMENT,
FO_PREAMBLE,
FO_END
};
-
+
keyword_item formattags[] = {
{ "formatend", FO_END },
{ "preamble", FO_PREAMBLE },
{ "product", FO_PRODUCT },
{ "requirement", FO_REQUIREMENT },
- { "updatecommand", FO_UPDATECMD }
+ { "updatecommand", FO_UPDATECMD },
+ { "updateresult", FO_UPDATERESULT }
};
pushpophelper pph(lex, formattags, FO_END);
-
- while (lex.IsOK()) {
+
+ while (lex.isOK()) {
switch (lex.lex()) {
case FO_PRODUCT:
lex.next(true);
- product = lex.GetString();
+ product = lex.getString();
break;
-
+
case FO_UPDATECMD:
lex.next(true);
- updateCommand = lex.GetString();
- // For security reasons, a command may not be empty!
- if (updateCommand.empty())
- updateCommand = "true";
+ updateCommand = lex.getString();
break;
-
+
+ case FO_UPDATERESULT:
+ lex.next(true);
+ updateResult = lex.getString();
+ break;
+
case FO_REQUIREMENT:
lex.next(true);
- requirement = lex.GetString();
+ requirement = lex.getString();
break;
-
+
case FO_PREAMBLE:
preamble = lex.getLongString("preambleend");
break;
-
+
case FO_END:
if (lyxerr.debugging())
lex.printError("FormatEnd");
}
}
}
-