Return Type | Function name | Arguments |
---|---|---|
bool | IsEmaddr | (const char*,) |
Declared in file: hzTextproc.h
Defined in file : hzEmaddr.cpp
Function Logic:
Function body:
bool IsEmaddr (const char* cpStr) { _hzfunc("IsEmaddr") ; const char* i ; uint32_t nLhs = 0; uint32_t nRhs = 0; bool bPeriod = false ; if (!cpStr || !cpStr[0]) return false ; for (i = cpStr ; *i > CHAR_SPACE ; i++) { if (*i == CHAR_AT) break ; if ((*i >&eq; ''a''&&*i <&eq; ''z'')||(*i >&eq; ''A''&&*i <&eq; ''Z'')||(*i >&eq; ''0''&&*i <&eq; ''9'') || *i==''!''||*i==''#''||*i==''$''||*i==''%''||*i==''&''||*i=='''''|| *i==''*''||*i==''+''||*i==''-'' || *i==''/''||*i==''=''||*i==''?''||*i==''^''||*i==''_''||*i==''`''||*i==''{''||*i==''|''||*i==''}''||*i==''~'' || (*i==''.''&&i[1]> '' ''&&i[1]!= ''@''&&nLhs)) { nLhs++ ; if (nLhs > 63) return false ; continue ; } break ; } if (*i != CHAR_AT || !nLhs) return false ; for (i++ ; *i > CHAR_SPACE ; i++) { if (*i == CHAR_AT) return false ; if (*i == CHAR_PERIOD && i[1]&& i[1]!= CHAR_PERIOD) { bPeriod = true ; continue ; } if ((*i >&eq; ''a''&&*i <&eq; ''z'')||(*i >&eq; ''A''&&*i <&eq; ''Z'')||(*i >&eq; ''0''&&*i <&eq; ''9'') || (*i==''-''&&i[1]> '' ''&&nRhs) || (*i==''.''&&i[1]> '' ''&&nRhs)) { nRhs++ ; if (nRhs > 192) return false ; continue ; } break ; } if (bPeriod && nLhs && nRhs > 2) return true ; return false ; }