Procházet zdrojové kódy

tweak previous PR merge

Sean Barrett před 8 roky
rodič
revize
c918a6b801
1 změnil soubory, kde provedl 29 přidání a 26 odebrání
  1. 29 26
      stb_sprintf.h

+ 29 - 26
stb_sprintf.h

@@ -226,6 +226,35 @@ STBSP__PUBLICDEF void STB_SPRINTF_DECORATE( set_separators )( char pcomma, char
   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 )
 {
   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;
 
-    #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
     #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__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__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)
     for(;;)