]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetLayout.cpp
requires is a keyword in C++2a
[lyx.git] / src / insets / InsetLayout.cpp
index b523457c6017235932bf8feda6873287668dda8d..8df2ca5e8b7805a4473f7baccb283721c4aef345 100644 (file)
@@ -78,7 +78,8 @@ InsetLayout::InsetLaTeXType translateLaTeXType(std::string const & str)
 } // namespace
 
 
-bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
+bool InsetLayout::read(Lexer & lex, TextClass const & tclass,
+       bool validating)
 {
        enum {
                IL_ADDTOTOC,
@@ -216,6 +217,8 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
                switch (le) {
                case Lexer::LEX_UNDEF:
                        lex.printError("Unknown InsetLayout tag");
+                       if (validating)
+                               return false;
                        continue;
                default:
                        break;
@@ -232,13 +235,20 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
                                LYXERR0("Flex insets must have names of the form `Flex:<name>'.\n"
                                        "This one has the name `" << to_utf8(name_) << "'\n"
                                        "Ignoring LyXType declaration.");
+                               // this is not really a reason to abort
+                               if (validating)
+                                       return false;
                                break;
                        }
                        string lt;
                        lex >> lt;
                        lyxtype_ = translateLyXType(lt);
-                       if (lyxtype_  == NOLYXTYPE)
+                       if (lyxtype_  == NOLYXTYPE) {
                                LYXERR0("Unknown LyXType `" << lt << "'.");
+                               // this is not really a reason to abort
+                               if (validating)
+                                       return false;
+                       }
                        if (lyxtype_ == CHARSTYLE) {
                                // by default, charstyles force the plain layout
                                multipar_ = false;
@@ -250,8 +260,12 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
                        string lt;
                        lex >> lt;
                        latextype_ = translateLaTeXType(lt);
-                       if (latextype_  == ILT_ERROR)
+                       if (latextype_  == ILT_ERROR) {
                                LYXERR0("Unknown LaTeXType `" << lt << "'.");
+                               // this is not really a reason to abort
+                               if (validating)
+                                       return false;
+                       }
                        break;
                }
                case IL_LABELSTRING:
@@ -378,6 +392,9 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
                                                tclass.insetLayouts().end();
                                for (; lit != len; ++lit)
                                        lyxerr << lit->second.name() << "\n";
+                               // this is not really a reason to abort
+                               if (validating)
+                                       return false;
                        }
                        break;
                }
@@ -408,6 +425,9 @@ bool InsetLayout::read(Lexer & lex, TextClass const & tclass)
                                                tclass.insetLayouts().end();
                                for (; lit != len; ++lit)
                                        lyxerr << lit->second.name() << "\n";
+                               // this is not really a reason to abort
+                               if (validating)
+                                       return false;
                        }
                        break;
                }
@@ -669,7 +689,7 @@ void InsetLayout::readArgument(Lexer & lex)
                        arg.tooltip = lex.getDocString();
                } else if (tok == "requires") {
                        lex.next();
-                       arg.requires = lex.getString();
+                       arg.required = lex.getString();
                } else if (tok == "decoration") {
                        lex.next();
                        arg.decoration = lex.getString();