if(pos==__maxlen){return pos;}\
if(__s){__s[pos++]=ch;}else{pos++;}\
}while(0)
+/**
+ * \brief VArg String Number Print Formatted
+ */
int vsnprintf(char *__s, size_t __maxlen, const char *__format, va_list args)
{
char c, pad = ' ';
pad = ' ';
// - Minimum length
- if(c == '*') {
+ if(c == '*') { // Dynamic length
minSize = val;
val = va_arg(args, Uint);
c = *__format++;
{
case 'd':
case 'i':
- if( (isLongLong && val >> 63) || (!isLongLong && val >> 31) ) {
+ if( isLongLong && val >> 63 ) {
PUTCH('-');
val = -val;
}
+ else if( !isLongLong && val >> 31 ) {
+ PUTCH('-');
+ val = -(Sint32)val;
+ }
itoa(p, val, 10, minSize, pad);
goto printString;
case 'u':
// String - Null Terminated Array
case 's':
- p = (char*)(Uint)val;
+ p = (char*)(tVAddr)val;
printString:
if(!p) p = "(null)";
len = strlen(p);
break;
case 'C': // Non-Null Terminated Character Array
- p = (char*)(Uint)val;
+ p = (char*)(tVAddr)val;
if(!p) goto printString;
- //while(minSize--) PUTCH(*p++);
while(minSize--) PUTCH(*p++);
break;
{
if(__str[i] == __ch) {
*start++ = '\0';
- Log_Debug("Lib", "str_split: ret[%i] = '%s'", j-1, ret[j-1]);
ret[j++] = start;
}
else {
}
*start = '\0';
ret[j] = NULL;
- Log_Debug("Lib", "str_split: ret[%i] = '%s'", j-1, ret[j-1]);
-
- for( j = 0; j < len; j++ )
- Log_Debug("Lib", "str_split: ret[%i] = '%s'", j, ret[j]);
return ret;
}
) && month > 1) // Leap year and after feb
stamp += 3600*24;
- stamp += ((365*4+1) * ((year-2000)&~3)) * 3600*24; // Foour Year Segments
+ stamp += ((365*4+1) * ((year-2000)&~3)) * 3600*24; // Four Year Segments
stamp += ((year-2000)&3) * 365*3600*24; // Inside four year segment
stamp += UNIX_TO_2K;
*/
int CheckString(char *String)
{
+ if( !MM_GetPhysAddr( (tVAddr)String ) )
+ return 0;
+
// Check 1st page
if( MM_IsUser( (tVAddr)String ) )
{