diff options
Diffstat (limited to 'boost/test/utils/runtime/cla/argv_traverser.ipp')
-rw-r--r-- | boost/test/utils/runtime/cla/argv_traverser.ipp | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/boost/test/utils/runtime/cla/argv_traverser.ipp b/boost/test/utils/runtime/cla/argv_traverser.ipp index 2b5e3818b3..d1ae93be82 100644 --- a/boost/test/utils/runtime/cla/argv_traverser.ipp +++ b/boost/test/utils/runtime/cla/argv_traverser.ipp @@ -1,6 +1,6 @@ -// (C) Copyright Gennadiy Rozental 2005-2008. -// Use, modification, and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file +// (C) Copyright Gennadiy Rozental 2005-2014. +// Use, modification, and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org/libs/test for the library home page. @@ -12,8 +12,8 @@ // Description : implements facility to hide input traversing details // *************************************************************************** -#ifndef BOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER -#define BOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER +#ifndef BOOST_TEST_UTILS_RUNTIME_CLA_ARGV_TRAVERSER_IPP +#define BOOST_TEST_UTILS_RUNTIME_CLA_ARGV_TRAVERSER_IPP // Boost.Runtime.Parameter #include <boost/test/utils/runtime/trace.hpp> @@ -30,7 +30,7 @@ namespace std { using ::memcpy; } namespace boost { -namespace BOOST_RT_PARAM_NAMESPACE { +namespace BOOST_TEST_UTILS_RUNTIME_PARAM_NAMESPACE { namespace cla { @@ -38,21 +38,23 @@ namespace cla { // ************** runtime::cla::argv_traverser ************** // // ************************************************************************** // -BOOST_RT_PARAM_INLINE +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE argv_traverser::argv_traverser() -: p_ignore_mismatch( false ), p_separator( BOOST_RT_PARAM_LITERAL( ' ' ) ) +: p_ignore_mismatch( false ), p_separator( BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( ' ' ) ) { } //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE void +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE void argv_traverser::init( int argc, char_type** argv ) { + m_buffer.clear(); + for( int index = 1; index < argc; ++index ) { m_buffer += argv[index]; if( index != argc-1 ) - m_buffer += BOOST_RT_PARAM_LITERAL( ' ' ); + m_buffer += BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( ' ' ); } m_remainder.reset( new char_type[m_buffer.size()+1] ); @@ -60,14 +62,14 @@ argv_traverser::init( int argc, char_type** argv ) m_work_buffer = m_buffer; m_commited_end = m_work_buffer.begin(); - BOOST_RT_PARAM_TRACE( "Input buffer: " << m_buffer ); + BOOST_TEST_UTILS_RUNTIME_PARAM_TRACE( "Input buffer: " << m_buffer ); next_token(); } //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE void +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE void argv_traverser::remainder( int& argc, char_type** argv ) { argc = 1; @@ -75,15 +77,16 @@ argv_traverser::remainder( int& argc, char_type** argv ) while(pos < m_remainder_size ) { argv[argc++] = m_remainder.get() + pos; - pos = std::find( m_remainder.get() + pos, m_remainder.get() + m_remainder_size, - BOOST_RT_PARAM_LITERAL( ' ' ) ) - m_remainder.get(); - m_remainder[pos++] = BOOST_RT_PARAM_LITERAL( '\0' ); + pos = static_cast<size_t>(std::find( m_remainder.get() + pos, m_remainder.get() + m_remainder_size, + BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( ' ' ) ) - + m_remainder.get()); + m_remainder[pos++] = BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( '\0' ); } } //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE cstring +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE cstring argv_traverser::token() const { return m_token; @@ -91,7 +94,7 @@ argv_traverser::token() const //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE void +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE void argv_traverser::next_token() { if( m_work_buffer.is_empty() ) @@ -108,7 +111,7 @@ argv_traverser::next_token() //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE cstring +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE cstring argv_traverser::input() const { return m_work_buffer; @@ -116,7 +119,7 @@ argv_traverser::input() const //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE void +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE void argv_traverser::trim( std::size_t size ) { m_work_buffer.trim_left( size ); @@ -131,7 +134,7 @@ argv_traverser::trim( std::size_t size ) //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE bool +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE bool argv_traverser::match_front( cstring str ) { return m_work_buffer.size() < str.size() ? false : m_work_buffer.substr( 0, str.size() ) == str; @@ -139,7 +142,7 @@ argv_traverser::match_front( cstring str ) //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE bool +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE bool argv_traverser::match_front( char_type c ) { return first_char( m_work_buffer ) == c; @@ -147,7 +150,7 @@ argv_traverser::match_front( char_type c ) //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE bool +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE bool argv_traverser::eoi() const { return m_work_buffer.is_empty(); @@ -155,7 +158,7 @@ argv_traverser::eoi() const //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE void +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE void argv_traverser::commit() { m_commited_end = m_work_buffer.begin(); @@ -163,7 +166,7 @@ argv_traverser::commit() //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE void +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE void argv_traverser::rollback() { m_work_buffer.assign( m_commited_end, m_work_buffer.end() ); @@ -174,15 +177,15 @@ argv_traverser::rollback() //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE std::size_t +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE std::size_t argv_traverser::input_pos() const { - return m_work_buffer.begin() - m_commited_end; + return static_cast<std::size_t>(m_work_buffer.begin() - m_commited_end); } //____________________________________________________________________________// -BOOST_RT_PARAM_INLINE bool +BOOST_TEST_UTILS_RUNTIME_PARAM_INLINE bool argv_traverser::handle_mismatch() { if( !p_ignore_mismatch ) @@ -202,8 +205,8 @@ argv_traverser::handle_mismatch() } // namespace cla -} // namespace BOOST_RT_PARAM_NAMESPACE +} // namespace BOOST_TEST_UTILS_RUNTIME_PARAM_NAMESPACE } // namespace boost -#endif // BOOST_RT_CLA_ARGV_TRAVERSER_IPP_070604GER +#endif // BOOST_TEST_UTILS_RUNTIME_CLA_ARGV_TRAVERSER_IPP |