Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 2843 → Rev 2844

/programs/network/htmlv/lib/strings.h
6,11 → 6,11
// strchr( ESI,BL)
// strrchr( ESI,BL)
// strstr( EBX, EDX)
//
// IntToStr( ESI)
// StrToInt()
// upcase( ESI)
// lowcase( ESI)
// itoa( ESI)
// atoi( EAX)
// strupr( ESI)
// strlwr( ESI)
// strtok( ESI)
//------------------------------------------------------------------------------
 
 
63,7 → 63,7
}
 
char buffer[11];
inline fastcall dword IntToStr( ESI)
inline fastcall dword itoa( ESI)
{
$mov edi, #buffer
$mov ecx, 10
91,9 → 91,10
}
 
 
inline fastcall dword StrToInt()
inline fastcall dword atoi( EDI)
{
ESI=EDI=EAX;
//ESI=EDI=EAX;
ESI=EDI;
IF(DSBYTE[ESI]=='-')ESI++;
EAX=0;
BH=AL;
141,7 → 142,7
}
 
 
inline fastcall upcase( ESI)
inline fastcall strupr( ESI)
{
do{
AL=DSBYTE[ESI];
150,7 → 151,7
}while(AL!=0);
}
 
inline fastcall lowcase( ESI)
inline fastcall strlwr( ESI)
{
do{
$LODSB
200,4 → 201,44
ls2: xor eax, eax
ls3:
}
}
}
 
/* strtok( LPSTR dest, src, divs);
src - óêàçàòåëü íà èñõîäíóþ ñòðîêó èëè ðåçóëüòàò ïðåäûäóùåãî âûçîâà
dest - óêàçàòåëü íà áóôåð, êóäà áóäåò ñêîïèðîâàíî ñëîâî
divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè
Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò
íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå
â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */
 
dword fastcall strtok( EDX, ESI, EBX)
{
asm {
XOR ECX, ECX
MOV EDI, EBX
XOR EAX, EAX
DEC ECX
REPNE SCASB
XOR ECX, 0FFFFFFFFH
DEC ECX
PUSH ECX
L1: LODSB
OR AL, AL
JZ L4
MOV EDI, EBX
MOV ECX, SSDWORD[ ESP]
REPNE SCASB
JZ L1
DEC ESI
L2: LODSB
MOV EDI, EBX
MOV ECX, SSDWORD[ ESP]
REPNE SCASB
JZ L3
MOV DSBYTE[ EDX], AL
INC EDX
JMP SHORT L2
L3: MOV EAX, ESI
L4: POP ECX
} DSBYTE[ EDX] = 0;
}