X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.cpp;h=03a7624a9ac776f396f819859c39dc8cb646a64f;hb=bea9d2f3f774d62aa48fe83ebbefdd0e7d5f85b9;hp=eb92612d847b6d9bad0ead06aa018324b53164fe;hpb=fa38ae3fc0f6e957f9b7115d04e72c121b39cf92;p=lyx.git diff --git a/src/TextClass.cpp b/src/TextClass.cpp index eb92612d84..03a7624a9a 100644 --- a/src/TextClass.cpp +++ b/src/TextClass.cpp @@ -62,7 +62,7 @@ namespace lyx { // You should also run the development/tools/updatelayouts.py script, // to update the format of all of our layout files. // -int const LAYOUT_FORMAT = 82; // dourouc05: DocBook additions. +int const LAYOUT_FORMAT = 85; // tcuvelier: DocBookInnerTag. // Layout format for the current lyx file format. Controls which format is @@ -92,7 +92,7 @@ bool layout2layout(FileName const & filename, FileName const & tempfile, LYXERR(Debug::TCLASS, "Running `" << command_str << '\''); cmd_ret const ret = runCommand(command_str); - if (ret.first != 0) { + if (!ret.valid) { if (format == LAYOUT_FORMAT) LYXERR0("Conversion of layout with layout2layout.py has failed."); return false; @@ -148,10 +148,10 @@ TextClass::TextClass() } -bool TextClass::readStyle(Lexer & lexrc, Layout & lay) const +bool TextClass::readStyle(Lexer & lexrc, Layout & lay, ReadType rt) const { LYXERR(Debug::TCLASS, "Reading style " << to_utf8(lay.name())); - if (!lay.read(lexrc, *this)) { + if (!lay.read(lexrc, *this, rt == VALIDATION)) { LYXERR0("Error parsing style `" << to_utf8(lay.name()) << '\''); return false; } @@ -515,7 +515,7 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) Layout lay; // Since we couldn't read the name, we just scan the rest // of the style and discard it. - error = !readStyle(lexrc, lay); + error = !readStyle(lexrc, lay, rt); break; } @@ -526,14 +526,14 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) // block. if (have_layout && !providestyle) { Layout & lay = operator[](name); - error = !readStyle(lexrc, lay); + error = !readStyle(lexrc, lay, rt); } // If the layout does not exist, then we want to create a new // one, but not if we are in a ModifyStyle block. else if (!have_layout && !modifystyle) { Layout layout; layout.setName(name); - error = !readStyle(lexrc, layout); + error = !readStyle(lexrc, layout, rt); if (!error) layoutlist_.push_back(layout); @@ -551,7 +551,7 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) else { Layout lay; // signal to coverity that we do not care about the result - (void)readStyle(lexrc, lay); + (void)readStyle(lexrc, lay, rt); } break; } @@ -1378,6 +1378,7 @@ bool TextClass::readFloat(Lexer & lexrc) FT_HTMLTAG, FT_DOCBOOKATTR, FT_DOCBOOKTAG, + FT_DOCBOOKTAGTYPE, FT_LISTCOMMAND, FT_REFPREFIX, FT_ALLOWED_PLACEMENT, @@ -1393,6 +1394,7 @@ bool TextClass::readFloat(Lexer & lexrc) { "allowswide", FT_ALLOWS_WIDE }, { "docbookattr", FT_DOCBOOKATTR }, { "docbooktag", FT_DOCBOOKTAG }, + { "docbooktagtype", FT_DOCBOOKTAGTYPE }, { "end", FT_END }, { "extension", FT_EXT }, { "guiname", FT_NAME }, @@ -1419,6 +1421,7 @@ bool TextClass::readFloat(Lexer & lexrc) string htmltag; string docbookattr; string docbooktag; + string docbooktagtype; string listname; string listcommand; string name; @@ -1540,6 +1543,10 @@ bool TextClass::readFloat(Lexer & lexrc) lexrc.next(); docbooktag = lexrc.getString(); break; + case FT_DOCBOOKTAGTYPE: + lexrc.next(); + docbooktagtype = lexrc.getString(); + break; case FT_END: getout = true; break; @@ -1567,9 +1574,9 @@ bool TextClass::readFloat(Lexer & lexrc) } Floating fl(type, placement, ext, within, style, name, listname, listcommand, refprefix, allowed_placement, - htmltag, htmlattr, htmlstyle, docbooktag, docbookattr, - required, usesfloat, ispredefined, allowswide, - allowssideways); + htmltag, htmlattr, htmlstyle, docbookattr, + docbooktagtype, required, usesfloat, ispredefined, + allowswide, allowssideways); floatlist_.newFloat(fl); // each float has its own counter counters_.newCounter(from_ascii(type), from_ascii(within), @@ -1855,7 +1862,7 @@ Layout TextClass::createBasicLayout(docstring const & name, bool unknown) const defaultLayout = new Layout; defaultLayout->setUnknown(unknown); defaultLayout->setName(name); - if (!readStyle(lex, *defaultLayout)) { + if (!readStyle(lex, *defaultLayout, BASECLASS)) { // The only way this happens is because the hardcoded layout above // is wrong. LATTEST(false);