Thanks henrik and nicolas. this is cool to have you around. Software is so complex and life so short....
Stef On Nov 20, 2009, at 8:50 PM, Nicolas Cellier wrote: > 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 _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
