On 08.02.2009, at 20:26, Ken Causey wrote:
SequenceableCollection>>asStringWithCr
- SqueakV1.sources:
asStringWithCr "Convert to a string with returns between items. Elements are usually strings. Useful for labels for PopUpMenus." | labelStream | labelStream _ WriteStream on: (String new: 200). self do: [:each | (each isKindOf: String) ifTrue: [labelStream nextPutAll: each; cr] ifFalse: [each printOn: labelStream; cr]]. self size > 0 ifTrue: [labelStream skip: -1]. ^ labelStream contents!
If I pointed out the flaws that need to be fixed in this version - namely, replace "_" by ":=", use #isStrign instead of #isKindOf:, and make sure #cr is sent to the labelStream, I am certain we would end up exactly with this:
- Squeak39g-7056+3102-7179.changes:
!SequenceableCollection methodsFor: 'converting' stamp: 'ar 4/10/2005 18:02' prior: 29748463! asStringWithCr "Convert to a string with returns between items. Elements are usually strings. Useful for labels for PopUpMenus." | labelStream |
- labelStream := WriteStream on: (String new: 200). self do: [:each | each isString ifTrue: [labelStream nextPutAll: each; cr] ifFalse: [each printOn: labelStream. labelStream cr]]. self size > 0 ifTrue: [labelStream skip: -1]. ^ labelStream contents! !
So IMHO we do not need to worry about this particular method at all since the non-relicensed contribution is a trivial bug fix.
- Bert -
Now as I said above the problem with with version 2. As you can see each of these changes is at most one line and by and large frankly rather obvious. The change in 2 is clearly a bug fix and the straightforward solution.
So the question is what do I do with this method, which is currently distributed as version 5, so that it does not infringe on djm's rights to maintain version 2 as SqueakL? Admittedly it's unlikely that djm actually wants this right, but lacking a clear statement to the contrary, it's the default we have to assume.
How much of a change is a significant change?
Should I delete the current implementation entirely and rewrite it from scratch? If so, how much am I allowed to know about the prior implementations?
Ken