414,9 → 414,11 |
flag_unsigned=1; |
break; |
case 'x': |
case 'p': |
format_flag=1; |
break; |
case 'X': |
case 'P': |
flag_register=1; |
format_flag=1; |
break; |
451,7 → 453,7 |
{ |
case 'c': |
case 'C': |
if ((pos+1)<maxlen) |
if ((pos+1)<=maxlen) |
{ |
//*s=(int)va_arg(argp,char*); |
*s=*((char *)argp); |
463,11 → 465,10 |
case 'S': |
str=va_arg(argp,char*); |
length=strlen(str); |
if ((pos+length)<maxlen) |
{ |
if (pos + length > maxlen) |
length = maxlen - pos; |
memcpy(s,str,length); |
s=s+length;pos=pos+length; |
} |
break; |
case 'd': |
case 'D': |
478,7 → 479,7 |
if (flag_long==2) {intdigit=va_arg(argp,long long);} |
//intdigit=*((long*)argp); |
//argp=argp+4; |
if ((intdigit>0) && (flag_plus==1) && (pos+1<maxlen)) |
if ((intdigit>0) && (flag_plus==1) && (pos+1<=maxlen)) |
{ |
*s='+'; |
s++; |
485,11 → 486,10 |
pos++; |
} |
length=formatted_long_to_string(intdigit,0,buf); |
if ((pos+length)<maxlen) |
{ |
if (pos + length > maxlen) |
length = maxlen - pos; |
memcpy(s,buf,length); |
s=s+length;pos=pos+length; |
} |
break; |
case 'o': |
if (flag_long==0) {intdigit=va_arg(argp,int);} |
499,11 → 499,10 |
//argp=argp+4; |
|
length=formatted_octa_to_string(intdigit,0,flag_register,buf); |
if ((pos+length)<maxlen) |
{ |
if (pos + length > maxlen) |
length = maxlen - pos; |
memcpy(s,buf,length); |
s=s+length;pos=pos+length; |
} |
break; |
case 'u': |
case 'U': |
516,12 → 515,13 |
} |
|
length=formatted_long_to_string(intdigit,0,buf); |
if ((pos+length)<maxlen) |
{ |
if (pos + length > maxlen) |
length = maxlen - pos; |
memcpy(s,buf,length); |
s=s+length;pos=pos+length; |
} |
break; |
case 'p': |
case 'P': |
case 'x': |
case 'X': |
if (flag_long==0) {intdigit=va_arg(argp,int);} |
531,11 → 531,10 |
//argp=argp+4; |
|
length=formatted_hex_to_string(intdigit,0,flag_register,buf); |
if ((pos+length)<maxlen) |
{ |
if (pos + length > maxlen) |
length = maxlen - pos; |
memcpy(s,buf,length); |
s=s+length;pos=pos+length; |
} |
break; |
case 'z': |
case 'Z': |
546,11 → 545,10 |
} |
|
length=formatted_long_to_string(intdigit,0,buf); |
if ((pos+length)<maxlen) |
{ |
if (pos + length > maxlen) |
length = maxlen - pos; |
memcpy(s,buf,length); |
s=s+length;pos=pos+length; |
} |
break; |
default:; |
|
717,10 → 715,7 |
} |
else |
{ |
if (*fmt=='\0') {break;} |
*s=*fmt; |
fmt++; |
s++; |
if (!(*s++ = *fmt++)) break; |
pos++; |
} |
exit_check:; |