From 5b81eff34f0e8448fe0a3ffb9b82cbadcd78416a Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Tue, 17 Feb 2015 21:50:37 +0100 Subject: Fix for issue #79 -- do not create implicit default fields for invalid commands --- src/core/parser/stack/Stack.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core/parser/stack/Stack.cpp b/src/core/parser/stack/Stack.cpp index 07f7d8c..08f86e5 100644 --- a/src/core/parser/stack/Stack.cpp +++ b/src/core/parser/stack/Stack.cpp @@ -276,7 +276,7 @@ void Stack::endOverdueHandlers() HandlerInfo &info = stack.back(); // Abort if this handler currently is inside a field - if (info.inField || !info.hadDefaultField) { + if (info.inField || (!info.hadDefaultField && info.valid)) { return; } @@ -291,8 +291,9 @@ bool Stack::ensureHandlerIsInField() // try to start a default field HandlerInfo &info = currentInfo(); if (!info.inField && info.handler != nullptr) { - // Abort if the element already had a default field - if (info.hadDefaultField) { + // Abort if the element already had a default field or the handler is + // not valid + if (info.hadDefaultField || !info.valid) { return false; } -- cgit v1.2.3