Return TypeFunction nameArguments
unsigned intFormCheckChain(hzChain::Iter&,const char*,)

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

Function Logic:

0:START 1:!cpCtrl||!cpCtrl[0] 2:Return true 3:ci.eof() 4:Return false 5:*c&&!z.eof(); 6:*c==(char)63 7:items items items 8:*c==(char)91 9:memcmp(c,[0-9],5)==0&&*z>='0'&&*z<='9' 10:c items items 11:memcmp(c,[a-z],5)==0&&*z>='a'&&*z<='z' 12:c items items 13:memcmp(c,[A-Z],5)==0&&*z>='A'&&*z<='Z' 14:c items items 15:*c==(char)42 16:*c==(char)42; 17:!z.eof()&&*z!=*c; 18:*c==*z 19:items items items 20:*c==0 21:Return len 22:Return 0

Function body:

unsigned int FormCheckChain (hzChain::Iter& ci, const char* cpCtrl)
{
   _hzfunc(__func__) ;
   chIter      z ;
   const char* c ;
   uint32_t    len = 0;
   if (!cpCtrl || !cpCtrl[0])
       return true ;
   if (ci.eof())
       return false ;
   for (c = cpCtrl, z = ci ; *c && !z.eof() ;)
   {
       if (*c == CHAR_QUERY)
           { c++ ; len++ ; z++ ; continue ; }
       if (*c == CHAR_SQOPEN)
       {
           if (memcmp(c, "[0-9]", 5)== 0&& *z >&eq; ''0''&&*z <&eq; ''9''){c += 5; len++ ; z++ ; continue ; }
           if (memcmp(c, "[a-z]", 5)== 0&& *z >&eq; ''a''&&*z <&eq; ''z''){c += 5; len++ ; z++ ; continue ; }
           if (memcmp(c, "[A-Z]", 5)== 0&& *z >&eq; ''A''&&*z <&eq; ''Z''){c += 5; len++ ; z++ ; continue ; }
       }
       if (*c == CHAR_ASTERISK)
       {
           for (; *c == CHAR_ASTERISK ; c++) ;
           for (; !z.eof() && *z != *c ; len++, z++) ;
           continue ;
       }
       if (*c == *z)
           { c++ ; len++ ; z++ ; continue ; }
       break ;
   }
   if (*c == 0)
       return len ;
   return 0;
}