mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Fix infinite loop in compact reporter printer
Also simplify some variables with auto deduction.
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
	 Steven Franzen
					Steven Franzen