t_shape *is_valid_shape(char *s) { t_shape *tmp; tmp = NULL; if ((tmp = is_i(s)) != NULL) return (tmp); if ((tmp = is_o(s)) != NULL) return (tmp); if ((tmp = is_t(s)) != NULL) return (tmp); if ((tmp = is_l(s)) != NULL) return (tmp); if ((tmp = is_j(s)) != NULL) return (tmp); if ((tmp = is_z(s)) != NULL) return (tmp); if ((tmp = is_s(s)) != NULL) return (tmp); return (NULL); }
int _wind_stringprep_testbidi(const uint32_t *in, size_t in_len, wind_profile_flags flags) { size_t i; unsigned ral = 0; unsigned l = 0; if ((flags & (WIND_PROFILE_NAME|WIND_PROFILE_SASL)) == 0) return 0; for (i = 0; i < in_len; ++i) { ral |= is_ral(in[i]); l |= is_l(in[i]); } if (ral) { if (l) return 1; if (!is_ral(in[0]) || !is_ral(in[in_len - 1])) return 1; } return 0; }
U_CFUNC int32_t ucase_getCaseLocale(const char *locale, int32_t *locCache) { int32_t result; char c; if(locCache!=NULL && (result=*locCache)!=UCASE_LOC_UNKNOWN) { return result; } result=UCASE_LOC_ROOT; /* * This function used to use uloc_getLanguage(), but the current code * removes the dependency of this low-level code on uloc implementation code * and is faster because not the whole locale ID has to be * examined and copied/transformed. * * Because this code does not want to depend on uloc, the caller must * pass in a non-NULL locale, i.e., may need to call uloc_getDefault(). */ c=*locale++; if(is_t(c)) { /* tr or tur? */ c=*locale++; if(is_u(c)) { c=*locale++; } if(is_r(c)) { c=*locale; if(is_sep(c)) { result=UCASE_LOC_TURKISH; } } } else if(is_a(c)) { /* az or aze? */ c=*locale++; if(is_z(c)) { c=*locale++; if(is_e(c)) { c=*locale; } if(is_sep(c)) { result=UCASE_LOC_TURKISH; } } } else if(is_l(c)) { /* lt or lit? */ c=*locale++; if(is_i(c)) { c=*locale++; } if(is_t(c)) { c=*locale; if(is_sep(c)) { result=UCASE_LOC_LITHUANIAN; } } } else if(is_n(c)) { /* nl or nld? */ c=*locale++; if(is_l(c)) { c=*locale++; if(is_d(c)) { c=*locale; } if(is_sep(c)) { result=UCASE_LOC_DUTCH; } } } if(locCache!=NULL) { *locCache=result; } return result; }