Subversion Repositories Kolibri OS

Rev

Rev 3003 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3003 Rev 3020
Line 201... Line 201...
201
inline fastcall strupr( ESI)
201
inline fastcall strupr( ESI)
202
{
202
{
203
	do{
203
	do{
204
		AL=DSBYTE[ESI];
204
		AL=DSBYTE[ESI];
205
		IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f;
205
		IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f;
-
 
206
		IF (AL>=160) && (AL<=175) DSBYTE[ESI] = AL - 32;	//à-ï
-
 
207
		IF (AL>=224) && (AL<=239) DSBYTE[ESI] = AL - 80;	//à-ï
206
 		ESI++;
208
 		ESI++;
207
	}while(AL!=0);
209
	}while(AL!=0);
208
}
210
}
Line 209... Line 211...
209
 
211
 
Line 234... Line 236...
234
	}while(AL!=0);
236
	}while(AL!=0);
235
}
237
}
Line 236... Line 238...
236
 
238
 
237
 
239
 
238
 
240
 
239
inline fastcall unsigned int strstr( EBX, EDX)
241
inline fastcall dword strstr( EBX, EDX)
240
{
242
{
241
  asm {
243
  asm {
242
    mov edi, edx
244
    MOV EDI, EDX
243
    xor ecx, ecx
245
    XOR ECX, ECX
244
    xor eax, eax
246
    XOR EAX, EAX
245
    dec ecx
247
    DEC ECX
246
    repne scasb
248
    REPNE SCASB
247
    not ecx
249
    NOT ECX
248
    dec ecx
250
    DEC ECX
249
    je ls2
251
    JE LS2
250
    mov esi, ecx
252
    MOV ESI, ECX
251
    xor ecx, ecx
253
    XOR ECX, ECX
252
    mov edi, ebx
254
    MOV EDI, EBX
253
    dec ecx
255
    DEC ECX
254
    repne scasb
256
    REPNE SCASB
255
    not ecx
257
    NOT ECX
256
    sub ecx, esi
258
    SUB ECX, ESI
257
    jbe ls2
259
    JBE LS2
258
    mov edi, ebx
260
    MOV EDI, EBX
259
    lea ebx, DSDWORD[ esi-1]
261
    LEA EBX, DSDWORD[ ESI-1]
260
ls1: mov esi, edx
262
LS1: MOV ESI, EDX
261
    lodsb
263
    LODSB
262
    repne scasb
264
    REPNE SCASB
263
    jne ls2
265
    JNE LS2
264
    mov eax, ecx
266
    MOV EAX, ECX
265
    push edi
267
    PUSH EDI
266
    mov ecx, ebx
268
    MOV ECX, EBX
267
    repe cmpsb
269
    REPE CMPSB
268
    pop edi
270
    POP EDI
269
    mov ecx, eax
271
    MOV ECX, EAX
270
    jne ls1
272
    JNE LS1
271
    lea eax, DSDWORD[ edi-1]
273
    LEA EAX, DSDWORD[ EDI-1]
272
    jmp short ls3
274
    JMP SHORT LS3
273
ls2: xor eax, eax
275
LS2: XOR EAX, EAX
Line 296... Line 298...
296
divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè
298
divs - óêàçàòåëü íà ñòðîêó, ñîäåðæàùóþ ñèìâîëû-ðàçäåëèòåëè
297
Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò
299
Âîçâðàùàåò: 0, åñëè ñëîâ áîëüøå íåò
298
         íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå
300
         íå 0, åñëè ñëîâî ñêîïèðîâàíî â dest (ïåðåäàéòå ýòî çíà÷åíèå
299
               â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */
301
               â êà÷åñòâå src äëÿ ïîñëåäóþùåãî ïîèñêà) */
Line 300... Line 302...
300
 
302
 
301
dword fastcall strtok( EDX, ESI, EBX)
303
inline fastcall dword strtok( EDX, ESI, EBX)
302
{
304
{
303
  asm {
305
  asm {
304
    XOR ECX, ECX
306
    XOR ECX, ECX
305
    MOV EDI, EBX
307
    MOV EDI, EBX