mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-03 21:49:32 +01:00 
			
		
		
		
	Regenerated single include
(forgot for previously tagged release)
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 *  Catch v1.4.0
 | 
					 *  Catch v1.5.0
 | 
				
			||||||
 *  Generated: 2016-03-15 07:23:12.623111
 | 
					 *  Generated: 2016-04-25 18:56:14.308559
 | 
				
			||||||
 *  ----------------------------------------------------------
 | 
					 *  ----------------------------------------------------------
 | 
				
			||||||
 *  This file has been merged from multiple headers. Please don't edit it directly
 | 
					 *  This file has been merged from multiple headers. Please don't edit it directly
 | 
				
			||||||
 *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
 | 
					 *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
 | 
				
			||||||
@@ -3618,7 +3618,7 @@ namespace Catch {
 | 
				
			|||||||
#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
 | 
					#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
 | 
				
			||||||
// #included from: ../external/clara.h
 | 
					// #included from: ../external/clara.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Version 0.0.1.1
 | 
					// Version 0.0.2.3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Only use header guard if we are not using an outer namespace
 | 
					// Only use header guard if we are not using an outer namespace
 | 
				
			||||||
#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
 | 
					#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
 | 
				
			||||||
@@ -3934,6 +3934,10 @@ namespace Tbc {
 | 
				
			|||||||
#include <stdexcept>
 | 
					#include <stdexcept>
 | 
				
			||||||
#include <memory>
 | 
					#include <memory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
 | 
				
			||||||
 | 
					#define CLARA_PLATFORM_WINDOWS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Use optional outer namespace
 | 
					// Use optional outer namespace
 | 
				
			||||||
#ifdef STITCH_CLARA_OPEN_NAMESPACE
 | 
					#ifdef STITCH_CLARA_OPEN_NAMESPACE
 | 
				
			||||||
STITCH_CLARA_OPEN_NAMESPACE
 | 
					STITCH_CLARA_OPEN_NAMESPACE
 | 
				
			||||||
@@ -3957,9 +3961,6 @@ namespace Clara {
 | 
				
			|||||||
    const unsigned int consoleWidth = 80;
 | 
					    const unsigned int consoleWidth = 80;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Use this to try and stop compiler from warning about unreachable code
 | 
					 | 
				
			||||||
        inline bool isTrue( bool value ) { return value; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        using namespace Tbc;
 | 
					        using namespace Tbc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        inline bool startsWith( std::string const& str, std::string const& prefix ) {
 | 
					        inline bool startsWith( std::string const& str, std::string const& prefix ) {
 | 
				
			||||||
@@ -3995,14 +3996,6 @@ namespace Clara {
 | 
				
			|||||||
            else
 | 
					            else
 | 
				
			||||||
                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
 | 
					                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        inline void convertInto( bool _source, bool& _dest ) {
 | 
					 | 
				
			||||||
            _dest = _source;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        template<typename T>
 | 
					 | 
				
			||||||
        inline void convertInto( bool, T& ) {
 | 
					 | 
				
			||||||
            if( isTrue( true ) )
 | 
					 | 
				
			||||||
                throw std::runtime_error( "Invalid conversion" );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        template<typename ConfigT>
 | 
					        template<typename ConfigT>
 | 
				
			||||||
        struct IArgFunction {
 | 
					        struct IArgFunction {
 | 
				
			||||||
@@ -4012,7 +4005,6 @@ namespace Clara {
 | 
				
			|||||||
            IArgFunction( IArgFunction const& ) = default;
 | 
					            IArgFunction( IArgFunction const& ) = default;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
            virtual void set( ConfigT& config, std::string const& value ) const = 0;
 | 
					            virtual void set( ConfigT& config, std::string const& value ) const = 0;
 | 
				
			||||||
            virtual void setFlag( ConfigT& config ) const = 0;
 | 
					 | 
				
			||||||
            virtual bool takesArg() const = 0;
 | 
					            virtual bool takesArg() const = 0;
 | 
				
			||||||
            virtual IArgFunction* clone() const = 0;
 | 
					            virtual IArgFunction* clone() const = 0;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
@@ -4034,9 +4026,6 @@ namespace Clara {
 | 
				
			|||||||
            void set( ConfigT& config, std::string const& value ) const {
 | 
					            void set( ConfigT& config, std::string const& value ) const {
 | 
				
			||||||
                functionObj->set( config, value );
 | 
					                functionObj->set( config, value );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            void setFlag( ConfigT& config ) const {
 | 
					 | 
				
			||||||
                functionObj->setFlag( config );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            bool takesArg() const { return functionObj->takesArg(); }
 | 
					            bool takesArg() const { return functionObj->takesArg(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            bool isSet() const {
 | 
					            bool isSet() const {
 | 
				
			||||||
@@ -4049,7 +4038,6 @@ namespace Clara {
 | 
				
			|||||||
        template<typename C>
 | 
					        template<typename C>
 | 
				
			||||||
        struct NullBinder : IArgFunction<C>{
 | 
					        struct NullBinder : IArgFunction<C>{
 | 
				
			||||||
            virtual void set( C&, std::string const& ) const {}
 | 
					            virtual void set( C&, std::string const& ) const {}
 | 
				
			||||||
            virtual void setFlag( C& ) const {}
 | 
					 | 
				
			||||||
            virtual bool takesArg() const { return true; }
 | 
					            virtual bool takesArg() const { return true; }
 | 
				
			||||||
            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
 | 
					            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
@@ -4060,9 +4048,6 @@ namespace Clara {
 | 
				
			|||||||
            virtual void set( C& p, std::string const& stringValue ) const {
 | 
					            virtual void set( C& p, std::string const& stringValue ) const {
 | 
				
			||||||
                convertInto( stringValue, p.*member );
 | 
					                convertInto( stringValue, p.*member );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            virtual void setFlag( C& p ) const {
 | 
					 | 
				
			||||||
                convertInto( true, p.*member );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            virtual bool takesArg() const { return !IsBool<M>::value; }
 | 
					            virtual bool takesArg() const { return !IsBool<M>::value; }
 | 
				
			||||||
            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
 | 
					            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
 | 
				
			||||||
            M C::* member;
 | 
					            M C::* member;
 | 
				
			||||||
@@ -4075,11 +4060,6 @@ namespace Clara {
 | 
				
			|||||||
                convertInto( stringValue, value );
 | 
					                convertInto( stringValue, value );
 | 
				
			||||||
                (p.*member)( value );
 | 
					                (p.*member)( value );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            virtual void setFlag( C& p ) const {
 | 
					 | 
				
			||||||
                typename RemoveConstRef<M>::type value;
 | 
					 | 
				
			||||||
                convertInto( true, value );
 | 
					 | 
				
			||||||
                (p.*member)( value );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            virtual bool takesArg() const { return !IsBool<M>::value; }
 | 
					            virtual bool takesArg() const { return !IsBool<M>::value; }
 | 
				
			||||||
            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
 | 
					            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
 | 
				
			||||||
            void (C::*member)( M );
 | 
					            void (C::*member)( M );
 | 
				
			||||||
@@ -4093,9 +4073,6 @@ namespace Clara {
 | 
				
			|||||||
                if( value )
 | 
					                if( value )
 | 
				
			||||||
                    (p.*member)();
 | 
					                    (p.*member)();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            virtual void setFlag( C& p ) const {
 | 
					 | 
				
			||||||
                (p.*member)();
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            virtual bool takesArg() const { return false; }
 | 
					            virtual bool takesArg() const { return false; }
 | 
				
			||||||
            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
 | 
					            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
 | 
				
			||||||
            void (C::*member)();
 | 
					            void (C::*member)();
 | 
				
			||||||
@@ -4110,9 +4087,6 @@ namespace Clara {
 | 
				
			|||||||
                if( value )
 | 
					                if( value )
 | 
				
			||||||
                    function( obj );
 | 
					                    function( obj );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            virtual void setFlag( C& p ) const {
 | 
					 | 
				
			||||||
                function( p );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            virtual bool takesArg() const { return false; }
 | 
					            virtual bool takesArg() const { return false; }
 | 
				
			||||||
            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
 | 
					            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
 | 
				
			||||||
            void (*function)( C& );
 | 
					            void (*function)( C& );
 | 
				
			||||||
@@ -4126,11 +4100,6 @@ namespace Clara {
 | 
				
			|||||||
                convertInto( stringValue, value );
 | 
					                convertInto( stringValue, value );
 | 
				
			||||||
                function( obj, value );
 | 
					                function( obj, value );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            virtual void setFlag( C& obj ) const {
 | 
					 | 
				
			||||||
                typename RemoveConstRef<T>::type value;
 | 
					 | 
				
			||||||
                convertInto( true, value );
 | 
					 | 
				
			||||||
                function( obj, value );
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            virtual bool takesArg() const { return !IsBool<T>::value; }
 | 
					            virtual bool takesArg() const { return !IsBool<T>::value; }
 | 
				
			||||||
            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
 | 
					            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
 | 
				
			||||||
            void (*function)( C&, T );
 | 
					            void (*function)( C&, T );
 | 
				
			||||||
@@ -4138,8 +4107,20 @@ namespace Clara {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    } // namespace Detail
 | 
					    } // namespace Detail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    struct Parser {
 | 
					    inline std::vector<std::string> argsToVector( int argc, char const* const* const argv ) {
 | 
				
			||||||
        Parser() : separators( " \t=:" ) {}
 | 
					        std::vector<std::string> args( static_cast<std::size_t>( argc ) );
 | 
				
			||||||
 | 
					        for( std::size_t i = 0; i < static_cast<std::size_t>( argc ); ++i )
 | 
				
			||||||
 | 
					            args[i] = argv[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return args;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    class Parser {
 | 
				
			||||||
 | 
					        enum Mode { None, MaybeShortOpt, SlashOpt, ShortOpt, LongOpt, Positional };
 | 
				
			||||||
 | 
					        Mode mode;
 | 
				
			||||||
 | 
					        std::size_t from;
 | 
				
			||||||
 | 
					        bool inQuotes;
 | 
				
			||||||
 | 
					    public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        struct Token {
 | 
					        struct Token {
 | 
				
			||||||
            enum Type { Positional, ShortOpt, LongOpt };
 | 
					            enum Type { Positional, ShortOpt, LongOpt };
 | 
				
			||||||
@@ -4148,38 +4129,75 @@ namespace Clara {
 | 
				
			|||||||
            std::string data;
 | 
					            std::string data;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        void parseIntoTokens( int argc, char const* const argv[], std::vector<Parser::Token>& tokens ) const {
 | 
					        Parser() : mode( None ), from( 0 ), inQuotes( false ){}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        void parseIntoTokens( std::vector<std::string> const& args, std::vector<Token>& tokens ) {
 | 
				
			||||||
            const std::string doubleDash = "--";
 | 
					            const std::string doubleDash = "--";
 | 
				
			||||||
            for( int i = 1; i < argc && argv[i] != doubleDash; ++i )
 | 
					            for( std::size_t i = 1; i < args.size() && args[i] != doubleDash; ++i )
 | 
				
			||||||
                parseIntoTokens( argv[i] , tokens);
 | 
					                parseIntoTokens( args[i], tokens);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        void parseIntoTokens( std::string arg, std::vector<Parser::Token>& tokens ) const {
 | 
					
 | 
				
			||||||
            while( !arg.empty() ) {
 | 
					        void parseIntoTokens( std::string const& arg, std::vector<Token>& tokens ) {
 | 
				
			||||||
                Parser::Token token( Parser::Token::Positional, arg );
 | 
					            for( std::size_t i = 0; i <= arg.size(); ++i ) {
 | 
				
			||||||
                arg = "";
 | 
					                char c = arg[i];
 | 
				
			||||||
                if( token.data[0] == '-' ) {
 | 
					                if( c == '"' )
 | 
				
			||||||
                    if( token.data.size() > 1 && token.data[1] == '-' ) {
 | 
					                    inQuotes = !inQuotes;
 | 
				
			||||||
                        token = Parser::Token( Parser::Token::LongOpt, token.data.substr( 2 ) );
 | 
					                mode = handleMode( i, c, arg, tokens );
 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                    else {
 | 
					 | 
				
			||||||
                        token = Parser::Token( Parser::Token::ShortOpt, token.data.substr( 1 ) );
 | 
					 | 
				
			||||||
                        if( token.data.size() > 1 && separators.find( token.data[1] ) == std::string::npos ) {
 | 
					 | 
				
			||||||
                            arg = "-" + token.data.substr( 1 );
 | 
					 | 
				
			||||||
                            token.data = token.data.substr( 0, 1 );
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
                }
 | 
					        Mode handleMode( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
 | 
				
			||||||
                if( token.type != Parser::Token::Positional ) {
 | 
					            switch( mode ) {
 | 
				
			||||||
                    std::size_t pos = token.data.find_first_of( separators );
 | 
					                case None: return handleNone( i, c );
 | 
				
			||||||
                    if( pos != std::string::npos ) {
 | 
					                case MaybeShortOpt: return handleMaybeShortOpt( i, c );
 | 
				
			||||||
                        arg = token.data.substr( pos+1 );
 | 
					                case ShortOpt:
 | 
				
			||||||
                        token.data = token.data.substr( 0, pos );
 | 
					                case LongOpt:
 | 
				
			||||||
 | 
					                case SlashOpt: return handleOpt( i, c, arg, tokens );
 | 
				
			||||||
 | 
					                case Positional: return handlePositional( i, c, arg, tokens );
 | 
				
			||||||
 | 
					                default: throw std::logic_error( "Unknown mode" );
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
                tokens.push_back( token );
 | 
					
 | 
				
			||||||
 | 
					        Mode handleNone( std::size_t i, char c ) {
 | 
				
			||||||
 | 
					            if( inQuotes ) {
 | 
				
			||||||
 | 
					                from = i;
 | 
				
			||||||
 | 
					                return Positional;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            switch( c ) {
 | 
				
			||||||
 | 
					                case '-': return MaybeShortOpt;
 | 
				
			||||||
 | 
					#ifdef CLARA_PLATFORM_WINDOWS
 | 
				
			||||||
 | 
					                case '/': from = i+1; return SlashOpt;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					                default: from = i; return Positional;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        std::string separators;
 | 
					        Mode handleMaybeShortOpt( std::size_t i, char c ) {
 | 
				
			||||||
 | 
					            switch( c ) {
 | 
				
			||||||
 | 
					                case '-': from = i+1; return LongOpt;
 | 
				
			||||||
 | 
					                default: from = i; return ShortOpt;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        Mode handleOpt( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
 | 
				
			||||||
 | 
					            if( std::string( " \t:=\0", 5 ).find( c ) == std::string::npos )
 | 
				
			||||||
 | 
					                return mode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            std::string optName = arg.substr( from, i-from );
 | 
				
			||||||
 | 
					            if( mode == ShortOpt )
 | 
				
			||||||
 | 
					                for( std::size_t j = 0; j < optName.size(); ++j )
 | 
				
			||||||
 | 
					                    tokens.push_back( Token( Token::ShortOpt, optName.substr( j, 1 ) ) );
 | 
				
			||||||
 | 
					            else if( mode == SlashOpt && optName.size() == 1 )
 | 
				
			||||||
 | 
					                tokens.push_back( Token( Token::ShortOpt, optName ) );
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                tokens.push_back( Token( Token::LongOpt, optName ) );
 | 
				
			||||||
 | 
					            return None;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        Mode handlePositional( std::size_t i, char c, std::string const& arg, std::vector<Token>& tokens ) {
 | 
				
			||||||
 | 
					            if( inQuotes || std::string( " \t\0", 3 ).find( c ) == std::string::npos )
 | 
				
			||||||
 | 
					                return mode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            std::string data = arg.substr( from, i-from );
 | 
				
			||||||
 | 
					            tokens.push_back( Token( Token::Positional, data ) );
 | 
				
			||||||
 | 
					            return None;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    template<typename ConfigT>
 | 
					    template<typename ConfigT>
 | 
				
			||||||
@@ -4482,21 +4500,21 @@ namespace Clara {
 | 
				
			|||||||
            return oss.str();
 | 
					            return oss.str();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ConfigT parse( int argc, char const* const argv[] ) const {
 | 
					        ConfigT parse( std::vector<std::string> const& args ) const {
 | 
				
			||||||
            ConfigT config;
 | 
					            ConfigT config;
 | 
				
			||||||
            parseInto( argc, argv, config );
 | 
					            parseInto( args, config );
 | 
				
			||||||
            return config;
 | 
					            return config;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        std::vector<Parser::Token> parseInto( int argc, char const* argv[], ConfigT& config ) const {
 | 
					        std::vector<Parser::Token> parseInto( std::vector<std::string> const& args, ConfigT& config ) const {
 | 
				
			||||||
            std::string processName = argv[0];
 | 
					            std::string processName = args[0];
 | 
				
			||||||
            std::size_t lastSlash = processName.find_last_of( "/\\" );
 | 
					            std::size_t lastSlash = processName.find_last_of( "/\\" );
 | 
				
			||||||
            if( lastSlash != std::string::npos )
 | 
					            if( lastSlash != std::string::npos )
 | 
				
			||||||
                processName = processName.substr( lastSlash+1 );
 | 
					                processName = processName.substr( lastSlash+1 );
 | 
				
			||||||
            m_boundProcessName.set( config, processName );
 | 
					            m_boundProcessName.set( config, processName );
 | 
				
			||||||
            std::vector<Parser::Token> tokens;
 | 
					            std::vector<Parser::Token> tokens;
 | 
				
			||||||
            Parser parser;
 | 
					            Parser parser;
 | 
				
			||||||
            parser.parseIntoTokens( argc, argv, tokens );
 | 
					            parser.parseIntoTokens( args, tokens );
 | 
				
			||||||
            return populate( tokens, config );
 | 
					            return populate( tokens, config );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -4527,7 +4545,7 @@ namespace Clara {
 | 
				
			|||||||
                                    arg.boundField.set( config, tokens[++i].data );
 | 
					                                    arg.boundField.set( config, tokens[++i].data );
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            else {
 | 
					                            else {
 | 
				
			||||||
                                arg.boundField.setFlag( config );
 | 
					                                arg.boundField.set( config, "true" );
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@@ -6306,10 +6324,10 @@ namespace Catch {
 | 
				
			|||||||
            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
 | 
					            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int applyCommandLine( int argc, char const* argv[], OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
 | 
					        int applyCommandLine( int argc, char const* const* const argv, OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
 | 
					                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
 | 
				
			||||||
                m_unusedTokens = m_cli.parseInto( argc, argv, m_configData );
 | 
					                m_unusedTokens = m_cli.parseInto( Clara::argsToVector( argc, argv ), m_configData );
 | 
				
			||||||
                if( m_configData.showHelp )
 | 
					                if( m_configData.showHelp )
 | 
				
			||||||
                    showHelp( m_configData.processName );
 | 
					                    showHelp( m_configData.processName );
 | 
				
			||||||
                m_config.reset();
 | 
					                m_config.reset();
 | 
				
			||||||
@@ -6333,16 +6351,13 @@ namespace Catch {
 | 
				
			|||||||
            m_config.reset();
 | 
					            m_config.reset();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int run( int argc, char const* argv[] ) {
 | 
					        int run( int argc, char const* const* const argv ) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            int returnCode = applyCommandLine( argc, argv );
 | 
					            int returnCode = applyCommandLine( argc, argv );
 | 
				
			||||||
            if( returnCode == 0 )
 | 
					            if( returnCode == 0 )
 | 
				
			||||||
                returnCode = run();
 | 
					                returnCode = run();
 | 
				
			||||||
            return returnCode;
 | 
					            return returnCode;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        int run( int argc, char* argv[] ) {
 | 
					 | 
				
			||||||
            return run( argc, const_cast<char const**>( argv ) );
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        int run() {
 | 
					        int run() {
 | 
				
			||||||
            if( m_configData.showHelp )
 | 
					            if( m_configData.showHelp )
 | 
				
			||||||
@@ -7512,7 +7527,7 @@ namespace Catch {
 | 
				
			|||||||
        return os;
 | 
					        return os;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Version libraryVersion( 1, 4, 0, "", 0 );
 | 
					    Version libraryVersion( 1, 5, 0, "", 0 );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -8677,7 +8692,7 @@ namespace Catch {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
 | 
					        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        virtual bool assertionEnded( AssertionStats const& assertionStats ) {
 | 
					        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
 | 
				
			||||||
            assert( !m_sectionStack.empty() );
 | 
					            assert( !m_sectionStack.empty() );
 | 
				
			||||||
            SectionNode& sectionNode = *m_sectionStack.back();
 | 
					            SectionNode& sectionNode = *m_sectionStack.back();
 | 
				
			||||||
            sectionNode.assertions.push_back( assertionStats );
 | 
					            sectionNode.assertions.push_back( assertionStats );
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user