| Return Type | Function name | Arguments |
|---|---|---|
| hzEcode | DosifyFile | (const hzString&,const hzString&,) |
Declared in file: hzTextproc.h
Defined in file : hzTextproc.cpp
Function Logic:
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 ;
}