Changeset 77 for pjproject/trunk/pjlib/include/pj/string_i.h
- Timestamp:
- Nov 22, 2005 11:51:50 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjlib/include/pj/string_i.h
r72 r77 170 170 } 171 171 172 PJ_IDEF(int) strnicmp_alnum( const char *str1, const char *str2, 173 int len) 174 { 175 if (len==0) 176 return 0; 177 else { 178 register const pj_uint32_t *p1 = (pj_uint32_t*)str1, 179 *p2 = (pj_uint32_t*)str2; 180 while (len > 3 && (*p1 & 0x5F5F5F5F)==(*p2 & 0x5F5F5F5F)) 181 ++p1, ++p2, len-=4; 182 183 if (len > 3) 184 return -1; 185 #if defined(PJ_IS_LITTLE_ENDIAN) && PJ_IS_LITTLE_ENDIAN!=0 186 else if (len==3) 187 return ((*p1 & 0x005F5F5F)==(*p2 & 0x005F5F5F)) ? 0 : -1; 188 else if (len==2) 189 return ((*p1 & 0x00005F5F)==(*p2 & 0x00005F5F)) ? 0 : -1; 190 else if (len==1) 191 return ((*p1 & 0x0000005F)==(*p2 & 0x0000005F)) ? 0 : -1; 192 #else 193 else if (len==3) 194 return ((*p1 & 0x5F5F5F00)==(*p2 & 0x5F5F5F00)) ? 0 : -1; 195 else if (len==2) 196 return ((*p1 & 0x5F5F0000)==(*p2 & 0x5F5F0000)) ? 0 : -1; 197 else if (len==1) 198 return ((*p1 & 0x5F000000)==(*p2 & 0x5F000000)) ? 0 : -1; 199 #endif 200 else 201 return 0; 202 } 203 } 204 172 205 PJ_IDEF(int) pj_stricmp_alnum(const pj_str_t *str1, const pj_str_t *str2) 173 206 { … … 181 214 register const pj_uint32_t *p1 = (pj_uint32_t*)str1->ptr, 182 215 *p2 = (pj_uint32_t*)str2->ptr; 183 while (len > 3 && (*p1 & 0x 1F1F1F1F)==(*p2 & 0x1F1F1F1F))216 while (len > 3 && (*p1 & 0x5F5F5F5F)==(*p2 & 0x5F5F5F5F)) 184 217 ++p1, ++p2, len-=4; 185 218 … … 188 221 #if defined(PJ_IS_LITTLE_ENDIAN) && PJ_IS_LITTLE_ENDIAN!=0 189 222 else if (len==3) 190 return ((*p1 & 0x00 1F1F1F)==(*p2 & 0x001F1F1F)) ? 0 : -1;191 else if (len==2) 192 return ((*p1 & 0x0000 1F1F)==(*p2 & 0x00001F1F)) ? 0 : -1;193 else if (len==1) 194 return ((*p1 & 0x000000 1F)==(*p2 & 0x0000001F)) ? 0 : -1;223 return ((*p1 & 0x005F5F5F)==(*p2 & 0x005F5F5F)) ? 0 : -1; 224 else if (len==2) 225 return ((*p1 & 0x00005F5F)==(*p2 & 0x00005F5F)) ? 0 : -1; 226 else if (len==1) 227 return ((*p1 & 0x0000005F)==(*p2 & 0x0000005F)) ? 0 : -1; 195 228 #else 196 229 else if (len==3) 197 return ((*p1 & 0x 1F1F1F00)==(*p2 & 0x1F1F1F00)) ? 0 : -1;198 else if (len==2) 199 return ((*p1 & 0x 1F1F0000)==(*p2 & 0x1F1F0000)) ? 0 : -1;200 else if (len==1) 201 return ((*p1 & 0x 1F000000)==(*p2 & 0x1F000000)) ? 0 : -1;230 return ((*p1 & 0x5F5F5F00)==(*p2 & 0x5F5F5F00)) ? 0 : -1; 231 else if (len==2) 232 return ((*p1 & 0x5F5F0000)==(*p2 & 0x5F5F0000)) ? 0 : -1; 233 else if (len==1) 234 return ((*p1 & 0x5F000000)==(*p2 & 0x5F000000)) ? 0 : -1; 202 235 #endif 203 236 else
Note: See TracChangeset
for help on using the changeset viewer.