[BUG][FIX] extra colon in fileout
Bob Arning
arning at charm.net
Fri Jun 16 19:21:45 UTC 2000
A change intoduced in cs 2403 caused filedout change sets to sometimes contain an extra colon after instanceVariableNames:
Cheers,
Bob
===== code follows =====
'From Squeak2.9alpha of 13 June 2000 [latest update: #2407] on 16 June 2000 at 3:16:47 pm'!
"Change Set: fileOutClass
Date: 16 June 2000
Author: Bob Arning
fix case where file out contained two colons after instanceVariableNames instead of just one"!
!ChangeSet methodsFor: 'class changes' stamp: 'RAA 6/16/2000 15:13'!
fatDefForClass: class
| newDef oldDef oldStrm newStrm outStrm oldVars newVars addedVars |
newDef _ class definition.
oldDef _ (self changeRecorderFor: class) priorDefinition.
oldDef ifNil: [^ newDef].
oldDef = newDef ifTrue: [^ newDef].
oldStrm _ ReadStream on: oldDef.
newStrm _ ReadStream on: newDef.
outStrm _ WriteStream on: (String new: newDef size * 2).
"Merge inst vars from old and new defs..."
oldStrm upToAll: 'instanceVariableNames'; upTo: $'.
outStrm
nextPutAll: (newStrm upToAll: 'instanceVariableNames');
nextPutAll: 'instanceVariableNames:'.
newStrm peek = $: ifTrue: [newStrm next]. "may or may not be there, but already written"
outStrm
nextPutAll: (newStrm upTo: $'); nextPut: $'.
oldVars _ (oldStrm upTo: $') findTokens: Character separators.
newVars _ (newStrm upTo: $') findTokens: Character separators.
addedVars _ oldVars asSet addAll: newVars; removeAll: oldVars; asOrderedCollection.
oldVars , addedVars do: [:var | outStrm nextPutAll: var; space].
outStrm nextPut: $'.
class isMeta ifFalse:
["Merge class vars from old and new defs..."
oldStrm upToAll: 'classVariableNames:'; upTo: $'.
outStrm nextPutAll: (newStrm upToAll: 'classVariableNames:'); nextPutAll: 'classVariableNames:';
nextPutAll: (newStrm upTo: $'); nextPut: $'.
oldVars _ (oldStrm upTo: $') findTokens: Character separators.
newVars _ (newStrm upTo: $') findTokens: Character separators.
addedVars _ oldVars asSet addAll: newVars; removeAll: oldVars; asOrderedCollection.
oldVars , addedVars do: [:var | outStrm nextPutAll: var; space].
outStrm nextPut: $'].
outStrm nextPutAll: newStrm upToEnd.
^ outStrm contents
! !
More information about the Squeak-dev
mailing list
|