mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-03 21:49:32 +01:00 
			
		
		
		
	Merge pull request #1715 from sfranzen/fix-compact-reporter
Fix infinite loop in compact reporter printer
This commit is contained in:
		@@ -209,24 +209,25 @@ private:
 | 
			
		||||
        if (itMessage == messages.end())
 | 
			
		||||
            return;
 | 
			
		||||
 | 
			
		||||
        // using messages.end() directly yields (or auto) compilation error:
 | 
			
		||||
        std::vector<MessageInfo>::const_iterator itEnd = messages.end();
 | 
			
		||||
        const std::size_t N = static_cast<std::size_t>(std::distance(itMessage, itEnd));
 | 
			
		||||
        const auto itEnd = messages.cend();
 | 
			
		||||
        const auto N = static_cast<std::size_t>(std::distance(itMessage, itEnd));
 | 
			
		||||
 | 
			
		||||
        {
 | 
			
		||||
            Colour colourGuard(colour);
 | 
			
		||||
            stream << " with " << pluralise(N, "message") << ':';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        for (; itMessage != itEnd; ) {
 | 
			
		||||
        while (itMessage != itEnd) {
 | 
			
		||||
            // If this assertion is a warning ignore any INFO messages
 | 
			
		||||
            if (printInfoMessages || itMessage->type != ResultWas::Info) {
 | 
			
		||||
                stream << " '" << itMessage->message << '\'';
 | 
			
		||||
                if (++itMessage != itEnd) {
 | 
			
		||||
                printMessage();
 | 
			
		||||
                if (itMessage != itEnd) {
 | 
			
		||||
                    Colour colourGuard(dimColour());
 | 
			
		||||
                    stream << " and";
 | 
			
		||||
                }
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            ++itMessage;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user