Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3466 → Rev 3467

/programs/cmm/lib/strings.h
367,52 → 367,9
}
 
 
/* strtok( LPSTR dest, src, divs);
src - óêàçàòåëü íà èñõîäíóþ ñòðîêó èëè ðåçóëüòàò ïðåäûäóùåãî âûçîâà
dest - óêàçàòåëü íà áóôåð, êóäà áóäåò ñêîïèðîâàíî ñëîâî
divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè
Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò
íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå
â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */
 
inline fastcall dword 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;
}
 
#define strncpy strcpyn
#define strnmov strmovn
#define stricmp strcmpi
#define strcmpn strncmp
#define strncmpi strcmpni
#define stricmpn strcmpni
#define strnicmp strcmpni
#define strincmp strcmpni
#define strcmpin strcmpni