From af53ecbde047ac155040d0d062f23ed66e1c498a Mon Sep 17 00:00:00 2001 From: cas Date: Fri, 20 Jul 2001 18:20:55 +0000 Subject: [PATCH] No comments --- src/WOKStep/WOKStep_Include.cxx | 96 +++++++++++++++++---------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/src/WOKStep/WOKStep_Include.cxx b/src/WOKStep/WOKStep_Include.cxx index 684a8ed..aa3097f 100755 --- a/src/WOKStep/WOKStep_Include.cxx +++ b/src/WOKStep/WOKStep_Include.cxx @@ -161,57 +161,61 @@ void WOKStep_Include::Execute(const Handle(WOKMake_HSequenceOfInputFile)& tobuil !pubincfile -> Path () -> IsSameFile ( infile -> File () -> Path () )) && ( infile -> File () -> Path () -> Exists () ) ) { - OSD_Path pSrc ( infile -> File () -> Path () -> Name () -> String () ); - OSD_File fSrc ( pSrc ); - OSD_Path pDst ( pubincfile -> Path () -> Name () -> String () ); + OSD_Path pSrc ( infile -> File () -> Path () -> Name () -> String () ); + OSD_File fSrc ( pSrc ); + OSD_Path pDst ( pubincfile -> Path () -> Name () -> String () ); - OSD_File fDst ( pDst ) ; + OSD_File fDst ( pDst ) ; #ifdef DEB - cout << " pubinclude publication : before Chmod " << endl; + cout << " pubinclude publication : before Chmod " << endl; #endif - if ( fDst.IsWriteable()) { - chmod ( pubincfile -> Path () -> Name () -> ToCString (), 00644 ); - } + if ( fDst.IsReadable() && !fDst.IsWriteable()) { + if ( fDst.UserId() == fSrc.UserId() ) { + chmod ( pubincfile -> Path () -> Name () -> ToCString (), 00644 ); + } + } #ifdef DEB - cout << " pubinclude publication : before copy " << endl; + cout << " pubinclude publication : before copy " << endl; #endif - fSrc.Copy ( pDst ); - - if ( fSrc.Failed () ) { - - ErrorMsg << "WOKStep_Include :: Execute" - << "failed to copy '" << infile -> File () -> Path () -> Name () - << "' to '" << pubincfile -> Path () -> Name () - << "'" << endm; - - SetFailed (); - - return; - - } else { - - InfoMsg << "WOKStep_Include :: Execute" - << "Copied : '" << infile->File()->Path()->Name() - << "' to '" << pubincfile->Path()->Name() - << "'" << endm; - } // end if - - struct utimbuf times; - struct stat buf; - - stat ( infile -> File () -> Path () -> Name () -> ToCString (), &buf ); - - times.actime = buf.st_atime; - times.modtime = buf.st_mtime; - - utime ( pubincfile -> Path () -> Name () -> ToCString (), × ); - - } else { - - InfoMsg << "WOKStep_Include :: Execute" - << "failed to copy '" << infile -> File () -> Path () -> Name () - << "' to '" << pubincfile -> Path () -> Name () - << "'" << endm; + fSrc.Copy ( pDst ); + + if ( fSrc.Failed () ) { + + ErrorMsg << "WOKStep_Include :: Execute" + << "failed to copy '" << infile -> File () -> Path () -> Name () + << "' to '" << pubincfile -> Path () -> Name () + << "'" << endm; + + SetFailed (); + + return; + + } else { + + InfoMsg << "WOKStep_Include :: Execute" + << "Copied : '" << infile->File()->Path()->Name() + << "' to '" << pubincfile->Path()->Name() + << "'" << endm; + } // end if + + struct utimbuf times; + struct stat buf; + + stat ( infile -> File () -> Path () -> Name () -> ToCString (), &buf ); + + times.actime = buf.st_atime; + times.modtime = buf.st_mtime; + + utime ( pubincfile -> Path () -> Name () -> ToCString (), × ); + + } else { + + if ( !(infile -> File () -> Path () -> Exists () )) { + InfoMsg << "WOKStep_Include :: Execute" + << "failed to copy '" << infile -> File () -> Path () -> Name () + << "' to '" << pubincfile -> Path () -> Name () + << "'" << endm; + } } // end if # endif // WOKStep_Incluse_SYMLINK -- 2.39.5