+2005-04-05 Martin Vermeer <martin.vermeer@hut.fi>
+
+ * insetexternal.C (validate):
+ * ExternalTemplate.[Ch] (dumpFormat, readFormat): allow
+ multiple Requirements in external material template
2005-04-03 Alfredo Braunstein <abraunst@lyx.org>
ost << "\tFormat " << vt.first << '\n'
<< "\t\tProduct " << ft.product << '\n'
<< "\t\tUpdateFormat " << ft.updateFormat << '\n'
- << "\t\tUpdateResult " << ft.updateResult << '\n'
- << "\t\tRequirement " << ft.requirement << '\n';
+ << "\t\tUpdateResult " << ft.updateResult << '\n';
+
+ vector<string>::const_iterator qit = ft.requirements.begin();
+ vector<string>::const_iterator qend = ft.requirements.end();
+ for (; qit != qend; ++qit) {
+ lyxerr << "req:" << *qit << std::endl;
+ ost << "\t\tRequirement " << *qit << '\n';
+ }
typedef vector<Template::Option> Options;
Options::const_iterator oit = ft.options.begin();
case FO_REQUIREMENT:
lex.next(true);
- requirement = lex.getString();
+ requirements.push_back(lex.getString());
break;
case FO_PREAMBLE:
/// The format of this file.
std::string updateFormat;
/// What features does this external inset require?
- std::string requirement;
+ std::vector<std::string> requirements;
/// A collection of preamble snippets identified by name.
std::vector<std::string> preambleNames;
/// A list of options to the basic command.
if (cit == et.formats.end())
return;
- if (!cit->second.requirement.empty())
- features.require(cit->second.requirement);
+ vector<string>::const_iterator it = cit->second.requirements.begin();
+ vector<string>::const_iterator end = cit->second.requirements.end();
+ for (; it != end; ++it)
+ features.require(*it);
external::TemplateManager & etm = external::TemplateManager::get();
- vector<string>::const_iterator it = cit->second.preambleNames.begin();
- vector<string>::const_iterator end = cit->second.preambleNames.end();
+ it = cit->second.preambleNames.begin();
+ end = cit->second.preambleNames.end();
for (; it != end; ++it) {
string const preamble = etm.getPreambleDefByName(*it);
if (!preamble.empty())