summaryrefslogtreecommitdiff
path: root/boost/test/utils/runtime/cla/argv_traverser.ipp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/test/utils/runtime/cla/argv_traverser.ipp')
-rw-r--r--boost/test/utils/runtime/cla/argv_traverser.ipp61
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