66 lines
1.9 KiB
C++
66 lines
1.9 KiB
C++
// (C) Copyright Gennadiy Rozental 2005-2008.
|
|
// 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.
|
|
//
|
|
// File : $RCSfile$
|
|
//
|
|
// Version : $Revision: 49312 $
|
|
//
|
|
// Description : input validation helpers implementation
|
|
// ***************************************************************************
|
|
|
|
#ifndef BOOST_RT_CLA_VALIDATION_IPP_070604GER
|
|
#define BOOST_RT_CLA_VALIDATION_IPP_070604GER
|
|
|
|
// Boost.Runtime.Parameter
|
|
#include <boost/test/utils/runtime/config.hpp>
|
|
|
|
#include <boost/test/utils/runtime/cla/argv_traverser.hpp>
|
|
#include <boost/test/utils/runtime/cla/validation.hpp>
|
|
#include <boost/test/utils/runtime/validation.hpp> // BOOST_RT_PARAM_NAMESPACE::logic_error
|
|
|
|
// Boost
|
|
#include <boost/test/utils/basic_cstring/io.hpp>
|
|
|
|
// STL
|
|
|
|
namespace boost {
|
|
|
|
namespace BOOST_RT_PARAM_NAMESPACE {
|
|
|
|
namespace cla {
|
|
|
|
// ************************************************************************** //
|
|
// ************** runtime::cla::validation ************** //
|
|
// ************************************************************************** //
|
|
|
|
BOOST_RT_PARAM_INLINE void
|
|
report_input_error( argv_traverser const& tr, format_stream& msg )
|
|
{
|
|
if( tr.eoi() )
|
|
msg << BOOST_RT_PARAM_LITERAL( " at the end of input" );
|
|
else {
|
|
msg << BOOST_RT_PARAM_LITERAL( " in the following position: " );
|
|
|
|
if( tr.input().size() > 5 )
|
|
msg << tr.input().substr( 0, 5 ) << BOOST_RT_PARAM_LITERAL( "..." );
|
|
else
|
|
msg << tr.input();
|
|
}
|
|
|
|
throw BOOST_RT_PARAM_NAMESPACE::logic_error( msg.str() );
|
|
}
|
|
|
|
//____________________________________________________________________________//
|
|
|
|
} // namespace cla
|
|
|
|
} // namespace BOOST_RT_PARAM_NAMESPACE
|
|
|
|
} // namespace boost
|
|
|
|
#endif // BOOST_RT_CLA_VALIDATION_IPP_070604GER
|