cmFileSys.c: Changed _cmFileSysDirEntries() to check for symbolic

links prior to checking for files or dir's because a link may be
identified as file or directory.
This commit is contained in:
kevin 2013-03-02 17:09:17 -08:00
parent 79fde062cd
commit e669344036

View File

@ -896,39 +896,40 @@ cmFsRC_t _cmFileSysDirGetEntries( cmFileSysDeRecd_t* drp, const cmChar_t* dirSt
goto errLabel;
}
// is the entry a file
if( _cmFileSysIsFile(drp->p,fn) )
// is a link
if( _cmFileSysIsLink(drp->p,fn) )
{
if( cmIsFlag(drp->filterFlags,kFileFsFl)==false )
if( cmIsFlag(drp->filterFlags,kLinkFsFl) == false )
continue;
flags |= kFileFsFl;
flags |= kLinkFsFl;
if( cmIsFlag(drp->filterFlags,kRecurseLinksFsFl) )
if((rc = _cmFileSysDirGetEntries(drp,fn)) != kOkFsRC )
goto errLabel;
}
else
{
// is the entry a dir
if( _cmFileSysIsDir(drp->p,fn) )
// is the entry a file
if( _cmFileSysIsFile(drp->p,fn) )
{
if( cmIsFlag(drp->filterFlags,kDirFsFl) == false)
if( cmIsFlag(drp->filterFlags,kFileFsFl)==false )
continue;
flags |= kDirFsFl;
if( cmIsFlag(drp->filterFlags,kRecurseFsFl) )
if((rc = _cmFileSysDirGetEntries(drp,fn)) != kOkFsRC )
goto errLabel;
flags |= kFileFsFl;
}
else
{
if( _cmFileSysIsLink(drp->p,fn) )
// is the entry a dir
if( _cmFileSysIsDir(drp->p,fn) )
{
if( cmIsFlag(drp->filterFlags,kLinkFsFl) == false )
if( cmIsFlag(drp->filterFlags,kDirFsFl) == false)
continue;
flags |= kLinkFsFl;
flags |= kDirFsFl;
if( cmIsFlag(drp->filterFlags,kRecurseLinksFsFl) )
if( cmIsFlag(drp->filterFlags,kRecurseFsFl) )
if((rc = _cmFileSysDirGetEntries(drp,fn)) != kOkFsRC )
goto errLabel;
}