[squeak-dev] Copying the sources file
Levente Uzonyi
leves at elte.hu
Wed Mar 31 12:03:06 UTC 2010
On Wed, 31 Mar 2010, Andreas Raab wrote:
> Hi -
>
> I was just trying to implement the code for condensing the changes to the end
> of the sources file and ran into some 'interesting' issues. I would expect
> this to work:
>
> fullName := 'test1.sources'.
> "Copy sources file; change file name accordingly"
> FileStream forceNewFileNamed: fullName do:[:newFile|
> sourcesFile := SourceFiles at: 1.
> sourcesFile position: 0.
> FileDirectory default copyFile: sourcesFile toFile: newFile.
> newFile position = sourcesFile size ifFalse:[self error: 'File copy
> failed'].
> ].
This one is definitely a bug. Using a readOnlyCopy instead of the original
sources file makes debugging a bit easier. :)
>
> But it fails. Then I tried something else:
>
> fullName := 'test2.sources'.
> "Copy sources file; change file name accordingly"
> FileStream forceNewFileNamed: fullName do:[:newFile|
> sourcesFile := SourceFiles at: 1.
> sourcesFile position: 0.
> [sourcesFile atEnd] whileFalse:[newFile nextChunkPut: sourcesFile
> nextChunk].
> newFile position = sourcesFile size ifFalse:[self error: 'File copy
> failed'].
> ].
>
> That fails to. Then I tried:
>
> fullName := 'test3.sources'.
> "Copy sources file; change file name accordingly"
> FileStream forceNewFileNamed: fullName do:[:newFile|
> sourcesFile := SourceFiles at: 1.
> sourcesFile position: 0.
> [sourcesFile atEnd] whileFalse:[newFile nextChunkPutWithStyle:
> sourcesFile nextChunkText].
> newFile position = sourcesFile size ifFalse:[self error: 'File copy
> failed'].
> ].
>
> That fails as well. Help! What am I doing wrong? How does one copy the
> sources file properly and why do the above methods not work?
The latter two will probably fail, since the chunk reading code throws
away unnecessary whitespaces.
I checked these in 4.0 and all three are failing the same way as in 4.1.
Levente
>
> Cheers,
> - Andreas
>
>
More information about the Squeak-dev
mailing list
|