Skip to content

Commit

Permalink
Use std::snprintf in detail/snprintf.hpp
Browse files Browse the repository at this point in the history
  • Loading branch information
pdimov committed Jan 17, 2024
1 parent f08e363 commit 44582f3
Showing 1 changed file with 1 addition and 46 deletions.
47 changes: 1 addition & 46 deletions include/boost/system/detail/snprintf.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,66 +8,21 @@
//
// See library home page at http://www.boost.org/libs/system

#include <boost/config.hpp>
#include <cstdio>
#include <cstdarg>

//

namespace boost
{

namespace system
{

namespace detail
{

#if ( defined(_MSC_VER) && _MSC_VER < 1900 ) || ( defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) )

inline void snprintf( char * buffer, std::size_t len, char const * format, ... )
{
# if defined( BOOST_MSVC )
# pragma warning( push )
# pragma warning( disable: 4996 )
# endif

if( len == 0 ) return;

va_list args;
va_start( args, format );

_vsnprintf( buffer, len - 1, format, args );
buffer[ len - 1 ] = 0;

va_end( args );

# if defined( BOOST_MSVC )
# pragma warning( pop )
# endif
}

#else

#if defined(__GNUC__) && __GNUC__ >= 3
__attribute__((__format__ (__printf__, 3, 4)))
#endif
inline void snprintf( char * buffer, std::size_t len, char const * format, ... )
{
va_list args;
va_start( args, format );

std::vsnprintf( buffer, len, format, args );

va_end( args );
}

#endif
using std::snprintf;

} // namespace detail

} // namespace system

} // namespace boost

#endif // #ifndef BOOST_SYSTEM_DETAIL_SNPRINTF_HPP_INCLUDED

0 comments on commit 44582f3

Please sign in to comment.