Tghe problem is a missing flush. Putting it in nextChunkPut: is a hack. Putting it in clients is more work, but the correct place. So e.g.<div><br></div><div><div>classComment: aString stamp: aStamp</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>"Store the comment, aString or Text or RemoteString, associated with the class we are organizing. Empty string gets stored only if had a non-empty one before."</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>| ptr header file oldCommentRemoteStr |</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>(aString isKindOf: RemoteString) ifTrue:</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>[SystemChangeNotifier uniqueInstance classCommented: self.</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>^ self organization classComment: aString stamp: aStamp].</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>oldCommentRemoteStr := self organization commentRemoteStr.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>(aString size = 0) & (oldCommentRemoteStr == nil) ifTrue: [^ self organization classComment: nil].</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>"never had a class comment, no need to write empty string out"</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>ptr := oldCommentRemoteStr ifNil: [0] ifNotNil: [oldCommentRemoteStr sourcePointer].</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>SourceFiles ifNotNil: [(file := SourceFiles at: 2) ifNotNil:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>[file setToEnd; cr; nextPut: $!.<span class="Apple-tab-span" style="white-space:pre">        </span>"directly"</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>"Should be saying (file command: 'H3') for HTML, but ignoring it here"</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>header := String streamContents: [:strm | strm nextPutAll: self name;</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>nextPutAll: ' commentStamp: '.</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>aStamp storeOn: strm.</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>strm nextPutAll: ' prior: '; nextPutAll: ptr printString].</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>file nextChunkPut: header]].</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>self organization classComment: (RemoteString newString: aString onFileNumber: 2) stamp: aStamp.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>SystemChangeNotifier uniqueInstance classCommented: self.</div><div><br></div><div>needs to read</div><div><br></div><div><div>classComment: aString stamp: aStamp</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>"Store the comment, aString or Text or RemoteString, associated with the class we are organizing. Empty string gets stored only if had a non-empty one before."</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>| ptr header file oldCommentRemoteStr |</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>(aString isKindOf: RemoteString) ifTrue:</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>[SystemChangeNotifier uniqueInstance classCommented: self.</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>^ self organization classComment: aString stamp: aStamp].</div>
<div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>oldCommentRemoteStr := self organization commentRemoteStr.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>(aString size = 0) & (oldCommentRemoteStr == nil) ifTrue: [^ self organization classComment: nil].</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>"never had a class comment, no need to write empty string out"</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>ptr := oldCommentRemoteStr ifNil: [0] ifNotNil: [oldCommentRemoteStr sourcePointer].</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>SourceFiles ifNotNil: [(file := SourceFiles at: 2) ifNotNil:</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>[file setToEnd; cr; nextPut: $!.<span class="Apple-tab-span" style="white-space:pre">        </span>"directly"</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>"Should be saying (file command: 'H3') for HTML, but ignoring it here"</div><div><span class="Apple-tab-span" style="white-space:pre">                </span>header := String streamContents: [:strm | strm nextPutAll: self name;</div>
<div><span class="Apple-tab-span" style="white-space:pre">                        </span>nextPutAll: ' commentStamp: '.</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>aStamp storeOn: strm.</div><div><span class="Apple-tab-span" style="white-space:pre">                        </span>strm nextPutAll: ' prior: '; nextPutAll: ptr printString].</div>
<div><span class="Apple-tab-span" style="white-space:pre">                </span>file nextChunkPut: header; flush]].</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>self organization classComment: (RemoteString newString: aString onFileNumber: 2) stamp: aStamp.</div>
<div><span class="Apple-tab-span" style="white-space:pre">        </span>SystemChangeNotifier uniqueInstance classCommented: self.</div></div><div><br></div>i.e. file nextChunkPut: header => file nextChunkPut: header; flush</div>
<div><br><div class="gmail_quote">On Fri, Apr 26, 2013 at 1:30 PM, <span dir="ltr"><<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Frank Shearar uploaded a new version of Collections to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Collections-fbs.514.mcz" target="_blank">http://source.squeak.org/trunk/Collections-fbs.514.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Collections-fbs.514<br>
Author: fbs<br>
Time: 26 April 2013, 9:30:07.501 pm<br>
UUID: 26b584d4-1ad3-40b0-b9b1-d888e122116e<br>
Ancestors: Collections-fbs.513<br>
<br>
Revert the over-eager (attempt at a) fix.<br>
<br>
=============== Diff against Collections-fbs.513 ===============<br>
<br>
Item was changed:<br>
----- Method: WriteStream>>nextChunkPut: (in category 'fileIn/Out') -----<br>
nextChunkPut: aString<br>
"Append the argument, aString, to the receiver, doubling embedded terminators."<br>
<br>
| i remainder terminator |<br>
terminator := $!!.<br>
remainder := aString.<br>
[(i := remainder indexOf: terminator) = 0] whileFalse:<br>
[self nextPutAll: (remainder copyFrom: 1 to: i).<br>
self nextPut: terminator. "double imbedded terminators"<br>
remainder := remainder copyFrom: i+1 to: remainder size].<br>
self nextPutAll: remainder.<br>
aString includesUnifiedCharacter ifTrue: [<br>
self nextPut: terminator.<br>
self nextPutAll: ']lang['.<br>
aString writeLeadingCharRunsOn: self.<br>
].<br>
self nextPut: terminator.<br>
- self flush.<br>
!<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div>