// You should also run the development/tools/updatelayouts.py script,
// to update the format of all of our layout files.
//
-int const LAYOUT_FORMAT = 63; //spitz: new tags CiteFramework, MaxCiteNames, extended InsetCite syntax.
+int const LAYOUT_FORMAT = 65; //spitz: Color collapsable -> collapsible.
// Layout format for the current lyx file format. Controls which format is
return string();
}
-} // namespace anon
+} // namespace
// This string should not be translated here,
opt_enginetype_("authoryear|numerical"), opt_fontsize_("10|11|12"),
opt_pagestyle_("empty|plain|headings|fancy"), pagestyle_("default"),
columns_(1), sides_(OneSide), secnumdepth_(3), tocdepth_(3),
- outputType_(LATEX), outputFormat_("latex"),
+ outputType_(LATEX), outputFormat_("latex"), has_output_format_(false),
defaultfont_(sane_font),
titletype_(TITLE_COMMAND_AFTER), titlename_("maketitle"),
min_toclevel_(0), max_toclevel_(0), maxcitenames_(2),
{ "tocdepth", TC_TOCDEPTH }
};
-} //namespace anon
+} // namespace
bool TextClass::convertLayoutFormat(support::FileName const & filename, ReadType rt)
if (!lexrc.isOK())
return ERROR;
- // Format of files before the 'Format' tag was introduced
- int format = 1;
- bool error = false;
+ // The first usable line should be
+ // Format LAYOUT_FORMAT
+ if (lexrc.lex() != TC_FORMAT || !lexrc.next()
+ || lexrc.getInteger() != LAYOUT_FORMAT)
+ return FORMAT_MISMATCH;
// parsing
+ bool error = false;
while (lexrc.isOK() && !error) {
int le = lexrc.lex();
switch (static_cast<TextClassTags>(le)) {
case TC_FORMAT:
- if (lexrc.next())
- format = lexrc.getInteger();
+ lexrc.next();
+ lexrc.printError("Duplicate Format directive");
break;
case TC_OUTPUTFORMAT:
- if (lexrc.next())
+ if (lexrc.next()) {
outputFormat_ = lexrc.getString();
+ has_output_format_ = true;
+ }
break;
case TC_OUTPUTTYPE:
case TC_INPUT: // Include file
if (lexrc.next()) {
+ FileName tmp;
string const inc = lexrc.getString();
- FileName tmp = libFileSearch("layouts", inc,
+ if (!path().empty() && (prefixIs(inc, "./") ||
+ prefixIs(inc, "../")))
+ tmp = fileSearch(path(), inc, "layout");
+ else
+ tmp = libFileSearch("layouts", inc,
"layout");
if (tmp.empty()) {
error = !readStyle(lexrc, lay);
break;
}
-
+
bool const have_layout = hasLayout(name);
-
+
// If the layout already exists, then we want to add it to
// the existing layout, as long as we are not in an ProvideStyle
// block.
// Either way, we just scan the rest and discard it
else {
Layout lay;
- // false positive from coverity
- // coverity[CHECKED_RETURN]
- readStyle(lexrc, lay);
+ // signal to coverity that we do not care about the result
+ (void)readStyle(lexrc, lay);
}
break;
}
error = !readOutlinerName(lexrc);
break;
} // end of switch
-
- // Note that this is triggered the first time through the loop unless
- // we hit a format tag.
- if (format != LAYOUT_FORMAT)
- return FORMAT_MISMATCH;
}
// at present, we abort if we encounter an error,
latex_cmd += ichar;
else if (mode == StarDesc)
stardesc += ichar;
+ else if (ichar == '$')
+ cs.hasQualifiedList = true;
else if (ichar == '*')
cs.hasStarredVersion = true;
else if (ichar == '[' && cs.textAfter)
int TextClass::readCiteEngineType(Lexer & lexrc) const
{
- LATTEST(ENGINE_TYPE_DEFAULT ==
- (ENGINE_TYPE_AUTHORYEAR | ENGINE_TYPE_NUMERICAL));
+ static_assert(ENGINE_TYPE_DEFAULT ==
+ (ENGINE_TYPE_AUTHORYEAR | ENGINE_TYPE_NUMERICAL),
+ "Incorrect default engine type");
if (!lexrc.next()) {
lexrc.printError("No cite engine type given for token: `$$Token'.");
return ENGINE_TYPE_DEFAULT;
}
-docstring TextClass::outlinerName(std::string const & type) const
-{
- std::map<std::string,docstring>::const_iterator const it
- = outliner_names_.find(type);
- if (it == outliner_names_.end()) {
- LYXERR0("Missing OutlinerName for " << type << "!");
- return from_utf8(type);
- } else
- return it->second;
-}
-
-
string const & TextClass::prerequisites(string const & sep) const
{
if (contains(prerequisites_, ',')) {
for (; lit != len; ++lit) {
int const level = lit->toclevel;
// we don't want Part or unnumbered sections
- if (level == Layout::NOT_IN_TOC || level < 0
+ if (level == Layout::NOT_IN_TOC || level < 0
|| level >= minlevel || lit->counter.empty())
continue;
lay = &*lit;