From 185eded8d29f2a268940128a11cae69d71a9b781 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Thu, 5 Sep 2013 12:11:15 +0100 Subject: [PATCH] ENH: doxygenXmlParser - replaced recursion --- .../doxygenXmlParser/doxygenXmlParser.C | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C index ac9c639c497..b3cc2da3e63 100644 --- a/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C +++ b/applications/utilities/miscellaneous/foamHelp/helpTypes/doxygenXmlParser/doxygenXmlParser.C @@ -213,25 +213,21 @@ void Foam::doxygenXmlParser::skipForward ) const { // recurse to move forward in 'is' until come across <blockName> - - // fast-forward until we reach a '<' - char c; - while (is.get(c) && c != '<') - {} - string entryName = ""; - while (is.get(c) && c != '>') - { - entryName = entryName + c; - } + char c; - if (entryName == blockName) - { - return; - } - else + while (is.good() && (entryName != blockName)) { - skipForward(is, blockName); + entryName = ""; + + // fast-forward until we reach a '<' + while (is.get(c) && c != '<') + {} + + while (is.get(c) && c != '>') + { + entryName = entryName + c; + } } } -- GitLab