]> git.lyx.org Git - lyx.git/commitdiff
Fix some parsing glitches in Autonest and IsAutonestedBy
authorJuergen Spitzmueller <spitz@lyx.org>
Sat, 29 Dec 2018 12:36:39 +0000 (13:36 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Sat, 29 Dec 2018 12:36:39 +0000 (13:36 +0100)
Layouts can have spaces, underlines (that must be read as spaces, and
be enquoted)

Candidate for stable

src/Layout.cpp

index 4f3dc1426822a66f5a6b1fe06a9a2c8315761b04..a109c1d931af9bee160823fc23ffaa486a6dd059 100644 (file)
@@ -605,25 +605,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<docstring> 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<docstring> const autonests =
-                               getVectorFromString(autonest);
+                               getVectorFromString(autonest, from_ascii(","), false, true);
                        autonested_by_.insert(autonests.begin(), autonests.end());
                        break;
                }