From b524fa7cd8d0350c5dd647795d0772f6e12def97 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Wed, 1 Feb 2017 14:13:10 +0000 Subject: [PATCH] Fixed bugs in escape char handling in test names 1. If escape char is first char, sets start of range 2. Multiple escape chars are handled (offsets chars to remove) --- include/internal/catch_test_spec_parser.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/internal/catch_test_spec_parser.hpp b/include/internal/catch_test_spec_parser.hpp index efe3a63c..0c328365 100644 --- a/include/internal/catch_test_spec_parser.hpp +++ b/include/internal/catch_test_spec_parser.hpp @@ -87,6 +87,8 @@ namespace Catch { m_start = start; } void escape() { + if( m_mode == None ) + m_start = m_pos; m_mode = EscapedName; m_escapeChars.push_back( m_pos ); } @@ -95,7 +97,7 @@ namespace Catch { void addPattern() { std::string token = subString(); for( size_t i = 0; i < m_escapeChars.size(); ++i ) - token = token.substr( 0, m_escapeChars[i] ) + token.substr( m_escapeChars[i]+1 ); + token = token.substr( 0, m_escapeChars[i]-i ) + token.substr( m_escapeChars[i]+1-i ); m_escapeChars.clear(); if( startsWith( token, "exclude:" ) ) { m_exclusion = true;