- p = tmpBuf;
- switch (c) {
- case 'd':
- case 'i':
- if( (isLongLong && arg >> 63) || (!isLongLong && arg >> 31) ) {
- Debug_Putchar('-');
- arg = -arg;
- }
- itoa(p, arg, 10, minSize, pad);
- goto printString;
- case 'u':
- itoa(p, arg, 10, minSize, pad);
- goto printString;
- case 'x':
- itoa(p, arg, 16, minSize, pad);
- goto printString;
- case 'o':
- itoa(p, arg, 8, minSize, pad);
- goto printString;
- case 'b':
- itoa(p, arg, 2, minSize, pad);
- goto printString;
-
- printString:
- if(!p) p = "(null)";
- while(*p) Debug_Putchar(*p++);
- break;
-
- case 'B': //Boolean
- if(arg) Debug_Puts("True");
- else Debug_Puts("False");
- break;
-
- case 's':
- p = (char*)(Uint)arg;
- if(!p) p = "(null)";
- len = strlen(p);
- if( !bPadLeft ) while(len++ < minSize) Debug_Putchar(pad);
- while(*p) Debug_Putchar(*p++);
- if( bPadLeft ) while(len++ < minSize) Debug_Putchar(pad);
- break;
-
- // Single Character / Array
- case 'c':
- if(minSize == 1) {
- Debug_Putchar(arg);
- break;
- }
- p = (char*)(Uint)arg;
- if(!p) goto printString;
- while(minSize--) Debug_Putchar(*p++);
- break;
-
- default:
- Debug_Putchar(arg);
- break;
- }
- }
+void Debug_Fmt(const char *format, va_list args)
+{
+ char buf[DEBUG_MAX_LINE_LEN];
+ int len;
+ buf[DEBUG_MAX_LINE_LEN-1] = 0;
+ len = vsnprintf(buf, DEBUG_MAX_LINE_LEN-1, format, args);
+ //if( len < DEBUG_MAX_LINE )
+ // do something
+ Debug_Puts(1, buf);
+ return ;