Return TypeFunction nameArguments
hzStringhzUrl::Filename(void)

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

Function Logic:

0:START 1:!m_addr 2:Return S 3:hzSSR::Xlate thisCtl i memcmp 4:!memcmp(i,http,4) 5:!memcmp(i+4,://,3) 6:i items memcmp 7:!memcmp(i+4,s://,4) 8:i items 9:*i; 10:*i>='A'&&*i<='Z' 11:hzChain::AddByte 12:*i>='a'&&*i<='z' 13:hzChain::AddByte 14:*i>='0'&&*i<='9' 15:hzChain::AddByte 16:*i==(char)47 17:hzChain::AddByte 18:*i==(char)38 19:hzChain::AddByte 20:*i==(char)95||*i==(char)46||*i==(char)37||*i==(char)61||*i==(char)63||*i==(char)43||*i==(char)45 21:hzChain::AddByte 22:hzChain::AddByte val sprintf hzChain::AddByte hzChain::AddByte 23:S 24:Return S

Function body:

hzString hzUrl::Filename (void)
{
   _hzfunc("hzUrl::Filename") ;
   hzChain         Z ;
   _url_space*     thisCtl ;
   uchar*          i ;
   hzString        S ;
   uint32_t        val ;
   char            buf [4];
   if (!m_addr)
       return S ;
   thisCtl = (_url_space*) g_ssrInet.Xlate(m_addr) ;
   i = (uchar*) thisCtl->m_data ;
   if (!memcmp(i, "http", 4))
   {
       if (!memcmp(i + 4,"://", 3))
           { i += 7; Z << "h:" ; }
       if (!memcmp(i + 4,"s://", 4))
           { i += 8; Z << "s:" ; }
   }
   for (; *i ; i++)
   {
       if (*i >&eq; ''A''&&*i <&eq; ''Z'')
           { Z.AddByte(conv2lower(*i)) ; continue ; }
       if (*i >&eq; ''a''&&*i <&eq; ''z''){Z.AddByte(*i) ; continue ; }
       if (*i >&eq; ''0''&&*i <&eq; ''9''){Z.AddByte(*i) ; continue ; }
       if (*i == CHAR_FWSLASH)     { Z.AddByte(CHAR_AT) ; continue ; }
       if (*i == CHAR_AMPSAND)     { Z.AddByte(CHAR_COLON) ; continue ; }
       if (*i == CHAR_USCORE || *i == CHAR_PERIOD || *i == CHAR_PERCENT || *i == CHAR_EQUAL || *i == CHAR_QUERY || *i == CHAR_PLUS ||
           *i == CHAR_MINUS)
       {
           Z.AddByte(*i) ;
           continue ;
       }
       Z.AddByte(CHAR_PERCENT) ;
       val = (uchar) *i ;
       sprintf(buf, "%02x", val) ;
       Z.AddByte(buf[0]);
       Z.AddByte(buf[1]);
   }
   S = Z ;
   return S ;
}