# HG changeset patch # User Stefan Vogel # Date 1279821796 -7200 # Node ID f3924bb0cda0e93a71ff4b09dc26271d6905ada6 # Parent 0f4e5ce48e2232473c6fbc84fb5672d756b8282f changed: #moveTo: #renameTo: -- fix error handling diff -r 0f4e5ce48e22 -r f3924bb0cda0 Filename.st --- a/Filename.st Thu Jul 22 19:39:23 2010 +0200 +++ b/Filename.st Thu Jul 22 20:03:16 2010 +0200 @@ -2773,22 +2773,14 @@ (Notice, that a rename is tried first, in case of non-cross device move)" [self renameTo:newName] - on:(OperatingSystem errorSignal) + on:(OSErrorHolder inappropriateReferentSignal) do:[:ex | - |sig| - - sig := ex signal. - sig == OperatingSystem fileNotFoundErrorSignal ifTrue:[ - ex reject - ]. - sig == OperatingSystem accessDeniedErrorSignal ifTrue:[ - ex reject - ]. - + "handle renames accross device boundaries (Unix. cross device link)" self isDirectory ifTrue:[ self recursiveMoveDirectoryTo:newName. ] ifFalse:[ - self moveFileTo:newName. + self copyTo:newName. + self remove. ]. ]. @@ -3145,7 +3137,9 @@ self exists ifFalse:[ ^ self fileNotFoundError:self ]. - ((OperatingSystem errorHolderForNumber:errno) parameter:newName asFilename) reportError. + (OperatingSystem errorHolderForNumber:errno) + parameter:newName asFilename; + reportError. ]. " @@ -5784,11 +5778,11 @@ !Filename class methodsFor:'documentation'! version - ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.353 2010-07-22 17:39:23 mb Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.354 2010-07-22 18:03:16 stefan Exp $' ! version_CVS - ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.353 2010-07-22 17:39:23 mb Exp $' + ^ '$Header: /cvs/stx/stx/libbasic/Filename.st,v 1.354 2010-07-22 18:03:16 stefan Exp $' ! ! Filename initialize!