Return TypeFunction nameArguments
hzEcodeQPDecode(hzString&,const char*,)

Declared in file: hzCodec.h
Defined in file : hzCodec.cpp

Function Logic:

0:START 1:!pRaw||!pRaw[0] 2:Return E_NODATA 3:i 4:*i; 5:*i=='=' 6:items 7:*i==(char)13||*i==(char)10 8:*i==(char)13 9:items 10:*i==(char)10 11:items 12:!IsHex(*i) 13:Return E_FORMAT 14:val items IsHex 15:!IsHex(*i) 16:Return E_FORMAT 17:val val hzChain::AddByte items 18:hzChain::AddByte items 19:Decoded 20:Return E_OK

Function body:

hzEcode QPDecode (hzString& Decoded, const char* pRaw)
{
   _hzfunc("QPDecode") ;
   hzChain     R ;
   const char* i ;
   int32_t     val ;
   if (!pRaw || !pRaw[0])
       return E_NODATA ;
   i = pRaw ;
   for (; *i ;)
   {
       if (*i == ''='')
       {
           i++ ;
           if (*i == CHAR_CR || *i == CHAR_NL)
           {
               if (*i == CHAR_CR)  i++ ;
               if (*i == CHAR_NL)  i++ ;
               continue ;
           }
           if (!IsHex(*i))
               return E_FORMAT ;
           val = _get1hex(*i) ;
           i++ ;
           if (!IsHex(*i))
               return E_FORMAT ;
           val *= 16;
           val += _get1hex(*i) ;
           R.AddByte(val) ;
           i++ ;
           continue ;
       }
       R.AddByte(*i) ;
       i++ ;
   }
   Decoded = R ;
   return E_OK ;
}