Return TypeFunction nameArguments
boolFormCheckCstr(const char*,const char*,)

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

Function Logic:

0:START 1:!cpCtrl||!cpCtrl[0] 2:Return true 3:!cpTest||!cpTest[0] 4:Return false 5:*c; 6:*c==(char)42 7:items 8:*c==(char)42; 9:*c==(char)91 10:memcmp(c,[0-9],5) 11:c items 12:memcmp(c,[a-z],5) 13:c items 14:memcmp(c,[A-Z],5) 15:c items 16:items items 17:*c&&*s; 18:_checkformpart bMatch 19:!curPart&&!bMatch 20:Return false 21:!bMatch 22:items 23:*c==(char)42 24:items 25:*c==(char)42; 26:*c==0&&*s==0 27:Return true 28:Return false

Function body:

bool FormCheckCstr (const char* cpTest, const char* cpCtrl)
{
   _hzfunc(__func__) ;
   const char*     c ;
   const char*     s ;
   uint32_t        nParts ;
   uint32_t        nChars ;
   uint32_t        curPart ;
   bool            bMatch ;
   if (!cpCtrl || !cpCtrl[0])
       return true ;
   if (!cpTest || !cpTest[0])
       return false ;
   for (c = cpCtrl ; *c ;)
   {
       if (*c == CHAR_ASTERISK)
           { nParts++ ; for (; *c == CHAR_ASTERISK ; c++) ; }
       else if (*c == CHAR_SQOPEN)
       {
           if (memcmp(c, "[0-9]", 5))  { c += 5; nChars++ ; continue ; }
           if (memcmp(c, "[a-z]", 5))  { c += 5; nChars++ ; continue ; }
           if (memcmp(c, "[A-Z]", 5))  { c += 5; nChars++ ; continue ; }
       }
       else
           { c++ ; nChars++ ; }
   }
   for (curPart = 0,c = cpCtrl, s = cpTest ; *c && *s ;)
   {
       bMatch = _checkformpart(&s, &c) ;
       if (!curPart && !bMatch)
           return false ;
       if (!bMatch)
           s++ ;
       else
       {
           if (*c == CHAR_ASTERISK)
           {
               curPart++ ;
               for (; *c == CHAR_ASTERISK ; c++) ;
           }
       }
   }
   if (*c == 0&& *s == 0)
       return true ;
   return false ;
}