2009/11/20 Nicolas Cellier <[email protected]>:
> 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.

http://code.google.com/p/pharo/issues/detail?id=1013 in 10400
http://bugs.squeak.org/view.php?id=6086

Now I know

> 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