added %b for binary printing
--HG-- branch : sourcemod-1.0.1 extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/branches/sourcemod-1.0.1%401985
This commit is contained in:
parent
064f57e321
commit
37d72420e4
@ -2,7 +2,7 @@
|
|||||||
* vim: set ts=4 :
|
* vim: set ts=4 :
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
* SourceMod
|
* SourceMod
|
||||||
* Copyright (C) 2004-2007 AlliedModders LLC. All rights reserved.
|
* Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
|
||||||
* =============================================================================
|
* =============================================================================
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify it under
|
* This program is free software; you can redistribute it and/or modify it under
|
||||||
@ -357,6 +357,57 @@ void AddFloat(char **buf_p, size_t &maxlen, double fval, int width, int prec, in
|
|||||||
*buf_p = buf;
|
*buf_p = buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AddBinary(char **buf_p, size_t &maxlen, unsigned int val, int width, int flags)
|
||||||
|
{
|
||||||
|
char text[32];
|
||||||
|
int digits;
|
||||||
|
char *buf;
|
||||||
|
|
||||||
|
digits = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (val & 1)
|
||||||
|
{
|
||||||
|
text[digits++] = '1';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
text[digits++] = '0';
|
||||||
|
}
|
||||||
|
val >>= 1;
|
||||||
|
} while (val);
|
||||||
|
|
||||||
|
buf = *buf_p;
|
||||||
|
|
||||||
|
if (!(flags & LADJUST))
|
||||||
|
{
|
||||||
|
while (digits < width && maxlen)
|
||||||
|
{
|
||||||
|
*buf++ = (flags & ZEROPAD) ? '0' : ' ';
|
||||||
|
width--;
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (digits-- && maxlen)
|
||||||
|
{
|
||||||
|
*buf++ = text[digits];
|
||||||
|
width--;
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flags & LADJUST)
|
||||||
|
{
|
||||||
|
while (width-- && maxlen)
|
||||||
|
{
|
||||||
|
*buf++ = (flags & ZEROPAD) ? '0' : ' ';
|
||||||
|
maxlen--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*buf_p = buf;
|
||||||
|
}
|
||||||
|
|
||||||
void AddUInt(char **buf_p, size_t &maxlen, unsigned int val, int width, int flags)
|
void AddUInt(char **buf_p, size_t &maxlen, unsigned int val, int width, int flags)
|
||||||
{
|
{
|
||||||
char text[32];
|
char text[32];
|
||||||
@ -623,6 +674,13 @@ reswitch:
|
|||||||
arg++;
|
arg++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'b':
|
||||||
|
{
|
||||||
|
int *value = (int *)args[arg];
|
||||||
|
AddBinary(&buf_p, llen, *value, width, flags);
|
||||||
|
arg++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'd':
|
case 'd':
|
||||||
case 'i':
|
case 'i':
|
||||||
{
|
{
|
||||||
@ -809,6 +867,15 @@ reswitch:
|
|||||||
arg++;
|
arg++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case 'b':
|
||||||
|
{
|
||||||
|
CHECK_ARGS(0);
|
||||||
|
cell_t *value;
|
||||||
|
pCtx->LocalToPhysAddr(params[arg], &value);
|
||||||
|
AddBinary(&buf_p, llen, *value, width, flags);
|
||||||
|
arg++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case 'd':
|
case 'd':
|
||||||
case 'i':
|
case 'i':
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user