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

Reply via email to