2009/11/20 Henrik Johansen <[email protected]>:
> Speaking of end of line conventions, here's issue 1472 :)
>
> CrLfStream fails horribly currently, since the UTF8-converters latin1map
> never gets initialized.
> detectLineEndConvention gets called before converter is installed, and later
> on,
> in MultiByteFileStream>>open: forWrite: , converter lineendings never gets
> set (and latin1map initialized) if lineEndConvention isn't nil.
>
> Alternatives:
>
> 1. ensure lineEndConvention installation:
>
> MultiByteFileStream>>open: fileName forWrite: writeMode
> | result |
> result := super open: fileName forWrite: writeMode.
> result ifNotNil: [
> converter ifNil: [converter := UTF8TextConverter new].
> lineEndConvention ifNil: [ self
> detectLineEndConvention ]
> ifNotNil: [self
> installLineEndConventionInConverter]
> ].
> ^result
>
> 2. Use converter: instead, since that installs the lineEndConvention:
> MultiByteFileStream>>open: fileName forWrite: writeMode
> | result |
> result := super open: fileName forWrite: writeMode.
> result ifNotNil: [
> converter ifNil: [self converter: UTF8TextConverter
> new].
> lineEndConvention ifNil: [ self
> detectLineEndConvention ]
>
> ].
> ^result
>
> Ironically, if no lineEndConvention is defined, it will default to the same
> line-ending as you would get with a CrLfStream anyways :P
>
> I'm submitting a slice with approach 2 to inbox.
>
> Cheers,
> Henry
>
>
Oh, I see now why I missed this one.
trunk does not have Keith change:
lineEndConvention ifNil: [ self
detectLineEndConvention ]
but a direct call to:
self detectLineEndConvention
So trunk always set the line end convention in the converter and I
decided it was not necessary to use self converter: here...
Integrating Keith change has broken this fragile constuction, don't
know when it came in.
I approve solution 2)
Cheers
>
> _______________________________________________
> Pharo-project mailing list
> [email protected]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project