X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FTextClass.cpp;h=03a7624a9ac776f396f819859c39dc8cb646a64f;hb=bea9d2f3f774d62aa48fe83ebbefdd0e7d5f85b9;hp=a39ab34f2aacc7b5ae39ac0311894485bb3eeb88;hpb=3883b85f49054c109cb8a9a293721a5e41edb68d;p=lyx.git diff --git a/src/TextClass.cpp b/src/TextClass.cpp index a39ab34f2a..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; @@ -139,19 +139,19 @@ TextClass::TextClass() opt_pagesize_("default|a4|a5|b5|letter|legal|executive"), opt_pagestyle_("empty|plain|headings|fancy"), fontsize_format_("$$spt"), pagesize_("default"), pagesize_format_("$$spaper"), pagestyle_("default"), tablestyle_("default"), + docbookroot_("article"), docbookforceabstract_(false), columns_(1), sides_(OneSide), secnumdepth_(3), tocdepth_(3), 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), - cite_full_author_list_(true), bibintoc_(false), docbookroot_("article"), docbookforceabstract_(false) -{ + cite_full_author_list_(true), bibintoc_(false) { } -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; } @@ -456,9 +456,6 @@ TextClass::ReturnValues TextClass::read(Lexer & lexrc, ReadType rt) case LATEX: outputFormat_ = "latex"; break; - case DOCBOOK: - outputFormat_ = "docbook"; - break; case LITERATE: outputFormat_ = "literate"; break; @@ -518,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; } @@ -529,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); @@ -554,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; } @@ -975,7 +972,6 @@ void TextClass::readTitleType(Lexer & lexrc) void TextClass::readOutputType(Lexer & lexrc) { LexerKeyword outputTypeTags[] = { - { "docbook", DOCBOOK }, { "latex", LATEX }, { "literate", LITERATE } }; @@ -988,7 +984,6 @@ void TextClass::readOutputType(Lexer & lexrc) lexrc.printError("Unknown output type `$$Token'"); return; case LATEX: - case DOCBOOK: case LITERATE: outputType_ = static_cast(le); break; @@ -1383,6 +1378,7 @@ bool TextClass::readFloat(Lexer & lexrc) FT_HTMLTAG, FT_DOCBOOKATTR, FT_DOCBOOKTAG, + FT_DOCBOOKTAGTYPE, FT_LISTCOMMAND, FT_REFPREFIX, FT_ALLOWED_PLACEMENT, @@ -1398,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 }, @@ -1424,6 +1421,7 @@ bool TextClass::readFloat(Lexer & lexrc) string htmltag; string docbookattr; string docbooktag; + string docbooktagtype; string listname; string listcommand; string name; @@ -1545,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; @@ -1572,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), @@ -1860,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);