Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 7438 → Rev 7439

/programs/cmm/lib/strings.h
830,50 → 830,45
return ret;
}
 
:dword stdcall sprintf(dword buf, format,...)
inline cdecl int sprintf(dword buf, format,...)
{
#define END_ARGS 0xFF00FF //ARGS FUNCTION
byte s;
char X[10];
dword ret, tmp, l;
dword arg = #format;
ret = buf;
s = DSBYTE[format];
while(s)
{
if(s == '%')
{
while(s){
if(s=='%'){
arg += 4;
tmp = DSDWORD[arg];
format++;
if(tmp==END_ARGS)goto END_FUNC_SPRINTF;
$inc format
s = DSBYTE[format];
IF (!s)
{
DSBYTE[buf] = 0;
return ret;
}
if(!s)goto END_FUNC_SPRINTF;
switch(s)
{
case 's':
l = tmp;
WHILE(DSBYTE[tmp])
s = DSBYTE[tmp];
while(s)
{
DSBYTE[buf] = DSBYTE[tmp];
tmp++;
buf++;
DSBYTE[buf] = s;
$inc tmp
$inc buf
s = DSBYTE[tmp];
}
break;
case 'c':
DSBYTE[buf] = tmp;
buf++;
$inc buf
break;
case 'u': //if(tmp<0)return ret;
case 'd':
case 'i':
tmp = itoa(tmp);
IF (!DSBYTE[tmp])
{
DSBYTE[buf] = 0;
return ret;
}
if(!DSBYTE[tmp])goto END_FUNC_SPRINTF;
l = strlen(tmp);
strlcpy(buf,tmp,l);
buf += l;
883,12 → 878,12
strlcpy(buf, "0x00000000", 10);
buf += 10;
l = buf;
WHILE(tmp)
while(tmp)
{
buf--;
$dec buf
s = tmp & 0xF;
IF (s > 9) DSBYTE[buf] = 'A' - 10 + s;
ELSE DSBYTE[buf] = '0' + s;
if(s>9)DSBYTE[buf]='A'+s-10;
else DSBYTE[buf]='0'+s;
tmp >>= 4;
}
buf = l;
895,11 → 890,7
break;
case 'p':
tmp = itoa(#tmp);
IF (!DSBYTE[tmp])
{
DSBYTE[buf] = 0;
return ret;
}
if(!DSBYTE[tmp])goto END_FUNC_SPRINTF;
l = strlen(tmp);
strlcpy(buf,tmp,l);
buf += l;
906,24 → 897,20
break;
case '%':
DSBYTE[buf] = '%';
buf++;
$inc buf
break;
default:
{
DSBYTE[buf] = 0;
return ret;
goto END_FUNC_SPRINTF;
}
}
}
else
{
else {
DSBYTE[buf] = s;
buf++;
$inc buf
}
format++;
$inc format
s = DSBYTE[format];
}
END_FUNC_SPRINTF:
DSBYTE[buf] = 0;
return ret;
}