tweak previous PR merge
This commit is contained in:
parent
2be620d2bb
commit
c918a6b801
@ -226,6 +226,35 @@ STBSP__PUBLICDEF void STB_SPRINTF_DECORATE( set_separators )( char pcomma, char
|
|||||||
stbsp__comma=pcomma;
|
stbsp__comma=pcomma;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define STBSP__LEFTJUST 1
|
||||||
|
#define STBSP__LEADINGPLUS 2
|
||||||
|
#define STBSP__LEADINGSPACE 4
|
||||||
|
#define STBSP__LEADING_0X 8
|
||||||
|
#define STBSP__LEADINGZERO 16
|
||||||
|
#define STBSP__INTMAX 32
|
||||||
|
#define STBSP__TRIPLET_COMMA 64
|
||||||
|
#define STBSP__NEGATIVE 128
|
||||||
|
#define STBSP__METRIC_SUFFIX 256
|
||||||
|
#define STBSP__HALFWIDTH 512
|
||||||
|
#define STBSP__METRIC_NOSPACE 1024
|
||||||
|
#define STBSP__METRIC_1024 2048
|
||||||
|
#define STBSP__METRIC_JEDEC 4096
|
||||||
|
|
||||||
|
static void stbsp__lead_sign(stbsp__uint32 fl, char *sign)
|
||||||
|
{
|
||||||
|
sign[0] = 0;
|
||||||
|
if (fl&STBSP__NEGATIVE) {
|
||||||
|
sign[0]=1;
|
||||||
|
sign[1]='-';
|
||||||
|
} else if (fl&STBSP__LEADINGSPACE) {
|
||||||
|
sign[0]=1;
|
||||||
|
sign[1]=' ';
|
||||||
|
} else if (fl&STBSP__LEADINGPLUS) {
|
||||||
|
sign[0]=1;
|
||||||
|
sign[1]='+';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
STBSP__PUBLICDEF int STB_SPRINTF_DECORATE( vsprintfcb )( STBSP_SPRINTFCB * callback, void * user, char * buf, char const * fmt, va_list va )
|
STBSP__PUBLICDEF int STB_SPRINTF_DECORATE( vsprintfcb )( STBSP_SPRINTFCB * callback, void * user, char * buf, char const * fmt, va_list va )
|
||||||
{
|
{
|
||||||
static char hex[]="0123456789abcdefxp";
|
static char hex[]="0123456789abcdefxp";
|
||||||
@ -240,37 +269,11 @@ STBSP__PUBLICDEF int STB_SPRINTF_DECORATE( vsprintfcb )( STBSP_SPRINTFCB * callb
|
|||||||
{
|
{
|
||||||
stbsp__int32 fw,pr,tz; stbsp__uint32 fl;
|
stbsp__int32 fw,pr,tz; stbsp__uint32 fl;
|
||||||
|
|
||||||
#define STBSP__LEFTJUST 1
|
|
||||||
#define STBSP__LEADINGPLUS 2
|
|
||||||
#define STBSP__LEADINGSPACE 4
|
|
||||||
#define STBSP__LEADING_0X 8
|
|
||||||
#define STBSP__LEADINGZERO 16
|
|
||||||
#define STBSP__INTMAX 32
|
|
||||||
#define STBSP__TRIPLET_COMMA 64
|
|
||||||
#define STBSP__NEGATIVE 128
|
|
||||||
#define STBSP__METRIC_SUFFIX 256
|
|
||||||
#define STBSP__HALFWIDTH 512
|
|
||||||
#define STBSP__METRIC_NOSPACE 1024
|
|
||||||
#define STBSP__METRIC_1024 2048
|
|
||||||
#define STBSP__METRIC_JEDEC 4096
|
|
||||||
|
|
||||||
// macros for the callback buffer stuff
|
// macros for the callback buffer stuff
|
||||||
#define stbsp__chk_cb_bufL(bytes) { int len = (int)(bf-buf); if ((len+(bytes))>=STB_SPRINTF_MIN) { tlen+=len; if (0==(bf=buf=callback(buf,user,len))) goto done; } }
|
#define stbsp__chk_cb_bufL(bytes) { int len = (int)(bf-buf); if ((len+(bytes))>=STB_SPRINTF_MIN) { tlen+=len; if (0==(bf=buf=callback(buf,user,len))) goto done; } }
|
||||||
#define stbsp__chk_cb_buf(bytes) { if ( callback ) { stbsp__chk_cb_bufL(bytes); } }
|
#define stbsp__chk_cb_buf(bytes) { if ( callback ) { stbsp__chk_cb_bufL(bytes); } }
|
||||||
#define stbsp__flush_cb() { stbsp__chk_cb_bufL(STB_SPRINTF_MIN-1); } //flush if there is even one byte in the buffer
|
#define stbsp__flush_cb() { stbsp__chk_cb_bufL(STB_SPRINTF_MIN-1); } //flush if there is even one byte in the buffer
|
||||||
#define stbsp__cb_buf_clamp(cl,v) cl = v; if ( callback ) { int lg = STB_SPRINTF_MIN-(int)(bf-buf); if (cl>lg) cl=lg; }
|
#define stbsp__cb_buf_clamp(cl,v) cl = v; if ( callback ) { int lg = STB_SPRINTF_MIN-(int)(bf-buf); if (cl>lg) cl=lg; }
|
||||||
#define stbsp__lead_sign(fl, lead) \
|
|
||||||
lead[0] = 0;\
|
|
||||||
if (fl&STBSP__NEGATIVE) {\
|
|
||||||
lead[0]=1;\
|
|
||||||
lead[1]='-';\
|
|
||||||
} else if (fl&STBSP__LEADINGSPACE) {\
|
|
||||||
lead[0]=1;\
|
|
||||||
lead[1]=' ';\
|
|
||||||
} else if (fl&STBSP__LEADINGPLUS) {\
|
|
||||||
lead[0]=1;\
|
|
||||||
lead[1]='+';\
|
|
||||||
}
|
|
||||||
|
|
||||||
// fast copy everything up to the next % (or end of string)
|
// fast copy everything up to the next % (or end of string)
|
||||||
for(;;)
|
for(;;)
|
||||||
|
Loading…
Reference in New Issue
Block a user