On Nov 20, 2009, at 9:59 PM, Nicolas Cellier wrote: > 2009/11/20 Stéphane Ducasse <[email protected]>: >> Thanks henrik and nicolas. >> this is cool to have you around. >> Software is so complex and life so short.... >> > > Tsss... It does not have to be complex, what Smalltalk was made for? ;)
yes I dream about a system so nice that we could understand it alone. > Does it have to be short ? unfortunately I do not have the answer this time... > > Nicolas > >> 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 >> > > _______________________________________________ > 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
