add switch_toupper_max to uppercase a string 4 bytes at a time with new switch_toupper function
This commit is contained in:
parent
5d35d71cfd
commit
063962cae0
|
@ -51,6 +51,37 @@ static inline uint32_t switch_toupper(uint32_t eax)
|
||||||
return eax - ebx;
|
return eax - ebx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static inline void switch_toupper_max(char *s)
|
||||||
|
{
|
||||||
|
uint32_t *b,*p;
|
||||||
|
char *c;
|
||||||
|
size_t l;
|
||||||
|
int div = 0, rem = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
l = strlen(s);
|
||||||
|
div = l / 4;
|
||||||
|
rem = l % 4;
|
||||||
|
|
||||||
|
p = (uint32_t *) s;
|
||||||
|
|
||||||
|
for (i = 0; i < div; i++) {
|
||||||
|
b = p;
|
||||||
|
*b = (uint32_t) switch_toupper(*b);
|
||||||
|
b++;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
c = (char *)p;
|
||||||
|
|
||||||
|
for (i = 0; i < rem; i++) {
|
||||||
|
*c = (char) switch_toupper(*c);
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SWITCH_DECLARE(int) old_switch_toupper(int c);
|
SWITCH_DECLARE(int) old_switch_toupper(int c);
|
||||||
SWITCH_DECLARE(int) switch_tolower(int c);
|
SWITCH_DECLARE(int) switch_tolower(int c);
|
||||||
SWITCH_DECLARE(int) switch_isalnum(int c);
|
SWITCH_DECLARE(int) switch_isalnum(int c);
|
||||||
|
|
Loading…
Reference in New Issue