X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLayout.cpp;h=be31ccb5a1ad8753143721a081ba53d590171e64;hb=4da19ef8330fc90e712308d63aa7ddc0abfaef7b;hp=4f3dc1426822a66f5a6b1fe06a9a2c8315761b04;hpb=b124adbd3837b2e413e3f859e631e7c689a2cf1d;p=lyx.git diff --git a/src/Layout.cpp b/src/Layout.cpp index 4f3dc14268..be31ccb5a1 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -75,6 +75,7 @@ enum LayoutTags { LT_LEFTDELIM, LT_LEFTMARGIN, LT_NEED_CPROTECT, + LT_NEED_MBOXPROTECT, LT_NEED_PROTECT, LT_NEWLINE, LT_NEXTNOINDENT, @@ -132,6 +133,7 @@ Layout::Layout() inpreamble = false; needprotect = false; needcprotect = false; + needmboxprotect = false; keepempty = false; font = inherit_font; labelfont = inherit_font; @@ -245,6 +247,7 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) { "leftmargin", LT_LEFTMARGIN }, { "margin", LT_MARGIN }, { "needcprotect", LT_NEED_CPROTECT }, + { "needmboxprotect", LT_NEED_MBOXPROTECT }, { "needprotect", LT_NEED_PROTECT }, { "newline", LT_NEWLINE }, { "nextnoindent", LT_NEXTNOINDENT }, @@ -401,6 +404,10 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) lex >> needcprotect; break; + case LT_NEED_MBOXPROTECT: + lex >> needmboxprotect; + break; + case LT_KEEPEMPTY: lex >> keepempty; break; @@ -605,25 +612,25 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) } case LT_AUTONESTS: { - docstring const autonest = - subst(subst(subst(lex.getLongString(from_ascii("EndAutoNests")), - from_ascii("\n"), docstring()), - from_ascii(" "), docstring()), - from_ascii("\t"), docstring()); + docstring autonest = lex.getLongString(from_ascii("EndAutoNests")); + autonest = subst(autonest, from_ascii("\n"), docstring()); + autonest = subst(autonest, from_ascii("\t"), docstring()); + autonest = subst(autonest, from_ascii("\""), docstring()); + autonest = subst(autonest, '_', ' '); vector const autonests = - getVectorFromString(autonest); + getVectorFromString(autonest, from_ascii(","), false, true); autonests_.insert(autonests.begin(), autonests.end()); break; } case LT_AUTONESTEDBY: { - docstring const autonest = - subst(subst(subst(lex.getLongString(from_ascii("EndIsAutoNestedBy")), - from_ascii("\n"), docstring()), - from_ascii(" "), docstring()), - from_ascii("\t"), docstring()); + docstring autonest = lex.getLongString(from_ascii("EndIsAutoNestedBy")); + autonest = subst(autonest, from_ascii("\n"), docstring()); + autonest = subst(autonest, from_ascii("\t"), docstring()); + autonest = subst(autonest, from_ascii("\""), docstring()); + autonest = subst(autonest, '_', ' '); vector const autonests = - getVectorFromString(autonest); + getVectorFromString(autonest, from_ascii(","), false, true); autonested_by_.insert(autonests.begin(), autonests.end()); break; } @@ -1069,6 +1076,9 @@ void Layout::readArgument(Lexer & lex) } else if (tok == "decoration") { lex.next(); arg.decoration = lex.getString(); + } else if (tok == "newlinecmd") { + lex.next(); + arg.newlinecmd = lex.getString(); } else if (tok == "font") { arg.font = lyxRead(lex, arg.font); } else if (tok == "labelfont") { @@ -1139,6 +1149,8 @@ void writeArgument(ostream & os, string const & id, Layout::latexarg const & arg os << "\t\tRequires \"" << arg.requires << "\"\n"; if (!arg.decoration.empty()) os << "\t\tDecoration \"" << arg.decoration << "\"\n"; + if (!arg.newlinecmd.empty()) + os << "\t\tNewlineCmd \"" << arg.newlinecmd << "\"\n"; if (arg.font != inherit_font) lyxWrite(os, arg.font, "Font", 2); if (arg.labelfont != inherit_font) @@ -1230,6 +1242,7 @@ void Layout::write(ostream & os) const writeArgument(os, it->first, it->second); os << "\tNeedProtect " << needprotect << "\n" "\tNeedCProtect " << needcprotect << "\n" + "\tNeedMBoxProtect " << needmboxprotect << "\n" "\tKeepEmpty " << keepempty << '\n'; if (labelfont == font) lyxWrite(os, font, "Font", 1);