提交 063962ca authored 作者: Anthony Minessale's avatar Anthony Minessale

add switch_toupper_max to uppercase a string 4 bytes at a time with new switch_toupper function

上级 5d35d71c
......@@ -51,6 +51,37 @@ static inline uint32_t switch_toupper(uint32_t eax)
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) switch_tolower(int c);
SWITCH_DECLARE(int) switch_isalnum(int c);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论