Return TypeFunction nameArguments
boolIsEmaddr(const char*,)

Declared in file: hzTextproc.h
Defined in file : hzEmaddr.cpp

Function Logic:

0:START 1:!cpStr||!cpStr[0] 2:Return false 3:*i>(char)32; 4:*i==(char)64 5:(*i>='a'&&*i<='z')||(*i>='A'&&*i<='Z')||(*i>='0'&&*i<='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) 6:items 7:nLhs>63 8:Return false 9:*i!=(char)64||!nLhs 10:Return false 11:*i>(char)32; 12:*i==(char)64 13:Return false 14:*i==(char)46&&i[1]&&i[1]!=(char)46 15:bPeriod 16:(*i>='a'&&*i<='z')||(*i>='A'&&*i<='Z')||(*i>='0'&&*i<='9')||(*i=='-'&&i[1]>' '&&nRhs)||(*i=='.'&&i[1]>' '&&nRhs) 17:items 18:nRhs>192 19:Return false 20:bPeriod&&nLhs&&nRhs>2 21:Return true 22:Return false

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 ;
}