polserver/pol-core/clib/fdump.cpp
turleypol dbb25bdb62
Include and buildsystem cleanup (#45)
Include cleanup
Reworked buildsystem (Linux only)
Removed dynamic libs, Linux now again uses static linking (like windows)
2018-01-29 21:55:48 +01:00

55 lines
883 B
C++

/** @file
*
* @par History
*/
#include "fdump.h"
namespace Pol
{
namespace Clib
{
void dump16( fmt::Writer& writer, const unsigned char* s, int len )
{
int i;
for ( i = 0; i < 16; i++ )
{
if ( i < len )
writer.Format( "{:02x} " ) << (int)s[i];
else
writer << " ";
if ( i == 7 )
writer << " ";
}
writer << " ";
for ( i = 0; i < 16; i++ )
{
if ( i >= len || !isprint( s[i] ) )
writer << '.';
else
writer.Format( "{}" ) << s[i];
if ( i == 7 )
writer << ' ';
}
writer << '\n';
}
void fdump( fmt::Writer& writer, const void* data, int len )
{
int i;
const unsigned char* s = (const unsigned char*)data;
for ( i = 0; i < len; i += 16 )
{
int nprint = len - i;
if ( nprint > 16 )
nprint = 16;
writer.Format( "{:04x} " ) << i;
dump16( writer, &s[i], nprint );
}
}
}
}