Return TypeFunction nameArguments
hzEcodeDosifyFile(const hzString&,const hzString&,)

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

Function Logic:

0:START 1:!src 2:Return E_ARGUMENT 3:!tgt 4:Return E_ARGUMENT 5:tgt==src 6:bSame target 7:bSame target 8:OpenInputStrm rc 9:rc!=E_OK 10:Return rc 11:ofstream::open ofstream::fail 12:os.fail() 13:Return E_WRITEFAIL 14:rc==E_OK; 15:ifstream::getline ifstream::gcount 16:!is.gcount() 17:is.fail() 18:rc 19:!buf[0] 20:is.gcount()==1024 21:buf[1023]==(char)13 22:buf items 23:ofstream::write 24:items ofstream::fail 25:os.fail() 26:rc 27:close close 28:bSame 29:unlink rename 30:Return rc

Function body:

hzEcode DosifyFile (const hzString& tgt, const hzString& src)
{
   _hzfunc(__func__) ;
   ifstream    is ;
   ofstream    os ;
   hzString    target ;
   char        buf [1024];
   bool        bSame ;
   hzEcode     rc = E_OK ;
   if (!src)
   {
       hzerr(E_ARGUMENT, "No source file specified") ;
       return E_ARGUMENT ;
   }
   if (!tgt)
   {
       hzerr(E_ARGUMENT, "No target file specified") ;
       return E_ARGUMENT ;
   }
   if (tgt == src)
       { bSame = true ; target = tgt + ".x" ; }
   else
       { bSame = false ; target = tgt ; }
   rc = OpenInputStrm(is, src) ;
   if (rc != E_OK)
       return rc ;
   os.open(*target) ;
   if (os.fail())
       return E_WRITEFAIL ;
   for (; rc == E_OK ;)
   {
       is.getline(buf, 1024);
       if (!is.gcount())
           break ;
       if (is.fail())
           { rc = E_READFAIL ; break ; }
       if (!buf[0])
           continue ;
       if (is.gcount() == 1024)
       {
           if (buf[1023]==CHAR_CR)
           {
               buf[1023]=0;
               os << buf << "\r\n" ;
               continue ;
           }
           os.write(buf, 1024);
           continue ;
       }
       os << buf << "\r\n" ;
       if (os.fail())
           rc = E_WRITEFAIL ;
   }
   is.close() ;
   os.close() ;
   if (bSame)
   {
       unlink(*src) ;
       rename(*target, *tgt) ;
   }
   return rc ;
}