fastcmp.h 790 Bytes
Newer Older
Alam Ed Arias committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#ifndef __FASTCMP_H__
#define __FASTCMP_H__

// returns false if s != c
// returns true if s == c
FUNCINLINE static ATTRINLINE boolean fasticmp(const char *s, const char *c)
{
	for (; *s && toupper(*s) == toupper(*c); s++, c++) ;
	return (*s == *c); // make sure both strings ended
}

// case-sensitive of the above
FUNCINLINE static ATTRINLINE boolean fastcmp(const char *s, const char *c)
{
	for (; *s && *s == *c; s++, c++) ;
	return (*s == *c); // make sure both strings ended
}

// length-limited of the above
// only true if both strings are at least l characters long AND match, case-sensitively!
FUNCINLINE static ATTRINLINE boolean fastncmp(const char *s, const char *c, UINT16 l)
{
	for (; *s && *s == *c && --l; s++, c++) ;
	return !l; // make sure you reached the end
}

#endif