Ned,
Going a bit further, we see that MultiByteBinaryOrTextStream is much too familiar with its clients:
open: fileName forWrite: writeMode
| result | result _ super open: fileName forWrite: writeMode. result ifNotNil: [ converter ifNil: [ self localName = (FileDirectory localNameFor: SmalltalkImage current sourcesName) ifTrue: [ converter _ MacRomanTextConverter new ] ifFalse: [ converter _ UTF8TextConverter new. ]. ]. self detectLineEndConvention. ]. ^result.
I *really* don't think that the stream class should be guessing what its uses are. Is there a good reason for doing this?
It is a tentative hack until we update the .sources file. We could move this check to other places if you want.
-- Yoshiki