Hi, I think I have got something running. I found a problem with the current
implementation of the update mechanism given that it is implemented depending
on global variables (all using class methods). The name of the current
version, for example, is maintained globally. Therefore it is not possible to
have different packages that update from different servers using different
versions.
What I did was to implement the updating behavior as instance behavior in a
new class called "UpdateBookkeeper". There is an instance of this class for
each project holding information about the version name and the update
servers.
In the current implementation, most of the code will be duplicated between
this class and Utilities (that is the one that currently manages updates).
However, I tried the new stuff for updating Squeak and it also works,
therefore it could be possible to just remove the update behavior in class
Utilities.

I haven't found the code they use at Disney to set up the initial values for
these global variables therefore I had no way to figure out what is the best
way to do it. The process would be now to inspect the Bookkeeper object and
set the values manually.

In concrete, what one needs to do is:
1- Create a new project and enter it.
2- Inspect "Project current updateBookkeeper"
3- Set the value of the variable "updateUrlLists" to something of the form:

OrderedCollection with arrays of the form
#('Swiki Public Updates' #('http://www.darmstadt.gmd.de/~casco/squeak/'))
where each  arrays represents a pair Server name, Array of server URLS.

4- Set the value of the variable version to the version identifier of your
package/system/project. In this case it could be 'com47swiki12'

5- Evaluate "Project current updateBookkeeper updateFromServer"

That should be it.

Now we need a server somewhere  (like the squeak one) with a folder named
"updates" containing the updates and a the file named 'updates.list'. I could
set up one here, if you want, but someone will have to send me all the updates
(You could use the settings in the example to try the files I have in our
server. It only has the patch for the append bug).

I am attaching the changeset, and example files for the "updates" folder.
Note that the server names must have the full URL of the update directory
excluding 'update'.

I could not figure out how Je77 packaged the pre-packaged swikis therefore I
could not see if updating works in this case. Any suggestions?

Regards,
casco




Bert Freudenberg wrote:

> On Wed, 31 Jan 2001, Alejandro Fernandez wrote:
>
> > I will try to get some tisme and dig on this.
>
> Great! The Squeak Update system is actually quite simple. You just need a
> directory on a regular webserver. The system fetches the file
> 'updates.list' from that directy which contains a list of all available
> update files in order. The filenames are prefixed with the update number.
> Then simply all files with a higher number than the current one are filed
> in ...
>
> Additionally there is a version tag line starting with #, and only updates
> from the version tag matching the current version up to the next tag line
> are processed. This allows maintaining update streams for older versions,
> too.
>
> -- Bert
'From Squeak2.8 of 13 June 2000 [latest update: #2360] on 31 January 2001 at 12:35:01 
pm'!
Model subclass: #Project
        instanceVariableNames: 'world changeSet transcript parentProject 
previousProject displayDepth activeProcess exitFlag viewSize thumbnail nextProject 
guards projectParameters isolatedHead inForce version urlList environment 
updateBookkeeper '
        classVariableNames: 'CurrentProject GoalFreePercent GoalNotMoreThan '
        poolDictionaries: ''
        category: 'System-Support'!
Smalltalk renameClassNamed: #ProjectUpdateAgent as: #UpdateBookkeeper!
Object subclass: #UpdateBookkeeper
        instanceVariableNames: 'updateDownloader updateUrlLists version '
        classVariableNames: ''
        poolDictionaries: ''
        category: 'System-Support'!

!UpdateBookkeeper commentStamp: 'af 1/31/2001 12:33' prior: 0!
An UpdateBookkeper handles code update from a list of servers. 
"Project current updateBookkeeper updateFromServer"

Structure:
 updateDownloader       <Process> 

 updateUrlLists         <OrderedCollection of String, Array pairs> -- collection of 
Arrays representing the pairs: 'Server name', Array of Strings representing URLs of 
the update servers.

 version                        <String> -- represents the version identifier present 
in the list of changesets in the server

To configure your update setting inspect:
"Project current updateBookkeeper" and set the appropriate values

To uptade from the servers evaluate:
"Project current updateBookkeeper updateFromServer"!

!Project methodsFor: 'initialization' stamp: 'af 1/31/2001 10:21'!
initialize

        changeSet _ ChangeSet new initialize.
        transcript _ TranscriptStream new.
        displayDepth _ Display depth.
        parentProject _ CurrentProject.
     updateBookkeeper _ UpdateBookkeeper new.
        isolatedHead _ false.
! !

!Project methodsFor: 'accessing' stamp: 'af 1/31/2001 10:34'!
updateBookkeeper
 ^updateBookkeeper! !

!Project methodsFor: 'fetching updates' stamp: 'af 1/31/2001 10:27'!
updateFromServer
  self updateBookkeeper updateFromServer ! !


!UpdateBookkeeper methodsFor: 'initialization' stamp: 'af 1/31/2001 10:16'!
initialize
  self updateUrlLists! !

!UpdateBookkeeper methodsFor: 'accessing' stamp: 'af 1/31/2001 11:05'!
version
 ^version! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 09:55'!
chooseUpdateList
        "When there is more than one set of update servers, let the user choose which 
we will update from.  Put it at the front of the list. Return false if the user 
aborted.  If the preference #promptForUpdateServer is false, then suppress that 
prompt, in effect using the same server choice that was used the previous time (a 
convenience for those of us who always answer the same thing to the prompt.)"

        | index him |
        ((updateUrlLists size > 1) and: [Preferences promptForUpdateServer])
                ifTrue:
                        [index _ (PopUpMenu labelArray: (updateUrlLists collect: 
[:each | each first]) lines: #()) 
                                startUpWithCaption: 'Choose a group of servers
from which to fetch updates.'.
                        index > 0 ifTrue:
                                [him _ updateUrlLists at: index.
                                updateUrlLists removeAt: index.
                                updateUrlLists addFirst: him].
                        ^ index > 0].
        ^ true! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 11:04'!
extractThisVersion: list
        "Pull out the part of the list that applies to this version."

        | delims lines ii out |
        self version isEmpty ifTrue: [^ #()].
        delims _ String with: Character cr with: Character linefeed.
        lines _ list findTokens: delims.
        ii _ lines indexOf: '#', self version.
        ii = 0 ifTrue: [^ #()].
        out _ OrderedCollection new.
        [(ii _ ii + 1) <= lines size] whileTrue:
                [(lines at: ii) first == $# ifTrue: [^ out "next version"].
                (lines at: ii) first == $* ifFalse: [out addLast: (lines at: ii)]].    
 "keep, except comments"
        ^ out! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 09:58'!
newUpdatesOn: serverList throughNumber: aNumber
        "Return a list of fully formed URLs of update files we do not yet have.  Go to 
the listed servers and look at the file 'updates.list' for the names of the last N 
update files.  We look backwards for the first one we have, and make the list from 
there.  tk 9/10/97
        No updates numbered higher than aNumber (if it is not nil) are returned " 

        | existing doc list out ff raw char maxNumber itsNumber |
        maxNumber _ aNumber ifNil: [99999].
        out _ OrderedCollection new.
        existing _ ChangeSorter allChangeSetNames.
        existing _ existing collect: [:cngSet | cngSet copyReplaceAll: '/' with: '_'].
                        "Replace slashes with underbars"
        serverList do: [:server |
                doc _ HTTPSocket httpGet: server,'updates.list' accept: 
'application/octet-stream'.
                "test here for server being up"
                doc class == RWBinaryOrTextStream ifTrue:
                        [raw _ doc reset; contents.     "one file name per line"
                        list _ self extractThisVersion: raw.
                        list reverseDo: [:fileName |
                                ff _ (fileName findTokens: '/') last.   "allow 
subdirectories"

                                (existing includes: ff sansPeriodSuffix)
                                        ifFalse:
                                                [itsNumber _ ff initialIntegerOrNil. 
                                                (itsNumber == nil or: [itsNumber <= 
maxNumber])
                                                        ifTrue:
                                                                [out addFirst: server, 
fileName]]
                                        ifTrue: [^ out]].
                        ((out size > 0) or: [char _ doc reset; skipSeparators; next.
                                (char == $*) | (char == $#)]) ifTrue:
                                        [^ out "we have our list"]].    "else got 
error msg instead of file"
                "Server was down, try next one"].
        PopUpMenu notify: 'All code update servers seem to be unavailable'.
        ^ out! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 09:54'!
readServerUpdatesSaveLocally: saveLocally updateImage: updateImage
        ^ self readServerUpdatesThrough: nil saveLocally: saveLocally updateImage: 
updateImage! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 10:13'!
readServerUpdatesThrough: maxNumber saveLocally: saveLocally updateImage: updateImage
        "Scan the update server(s) for unassimilated updates. If maxNumber is not nil, 
it represents the highest-numbered update to load.  This makes it possible to update 
only up to a particular point.   If saveLocally is true, then save local copies of the 
update files on disc.  If updateImage is true, then absorb the updates into the 
current image.

A file on the server called updates.list has the names of the last N update files.  We 
look backwards for the first one we do not have, and start there"
"* To add a new update:  Name it starting with a new two-digit code.  
* Do not use %, /, *, space, or more than one period in the name of an update file.
* The update name does not need to have any relation to the version name.
* Figure out which versions of the system the update makes sense for.
* Add the name of the file to each version's category below.
* Put this file and the update file on all of the servers.
*
* To make a new version of the system:  Pick a name for it (no restrictions)
* Put # and exactly that name on a new line at the end of this file.
* During the release process, fill in exactly that name in the dialog box.
* Put this file on the server."

        | urls failed loaded str docQueue this nextDoc docQueueSema |
        self chooseUpdateList ifFalse: [^ self].        "ask the user which kind of 
updates"
        Cursor wait showWhile: [(Smalltalk includesKey: #EToySystem)
                ifTrue: [ScriptingSystem guessDOLProxy].

        urls _ self newUpdatesOn: (self serverUrls collect: [:url | url, 'updates/']) 
                                throughNumber: maxNumber.
        loaded _ 0.
        failed _ nil.

        "send downloaded documents throuh this queue"
        docQueue := SharedQueue new.

        "this semaphore keeps too many documents from beeing queueed up at a time"
        docQueueSema := Semaphore new.
        5 timesRepeat: [ docQueueSema signal ].

        "fork a process to download the updates"
        self retrieveUrls: urls ontoQueue: docQueue withWaitSema: docQueueSema.

        "process downloaded updates in the foreground"
        [ this _ docQueue next.
          nextDoc _ docQueue next.  
          nextDoc = #failed ifTrue: [ failed _ this ].
          (failed isNil and: [ nextDoc ~= #finished ])
        ] whileTrue: [
                failed ifNil: [
                        nextDoc reset; text.
                        nextDoc size = 0 ifTrue: [ failed _ this ]. ].
                failed ifNil: [
                        nextDoc peek asciiValue = 4     "pure object file"
                                ifTrue: [failed _ this]].       "Must be fileIn, not 
pure object file"
                failed ifNil: [
                        "(this endsWith: '.html') ifTrue: [doc _ doc asHtml]."
                                "HTML source code not supported here yet"
                        updateImage ifTrue:     
                                [ChangeSorter newChangesFromStream: nextDoc
                                        named: (this findTokens: '/') last].
                        saveLocally ifTrue:
                                [self saveUpdate: nextDoc onFile: (this findTokens: 
'/') last]. "if wanted"
                        loaded _ loaded + 1].

                docQueueSema signal].
        ].

        "report to user"
        str _ loaded printString ,' new update file(s) processed.'.
        failed ifNotNil: [str _ str, '\Could not load ' withCRs, 
                (urls size - loaded) printString ,' update file(s).',
                '\Starting with "' withCRs, failed, '".'].
        failed ifNil: [
                "DocLibrary external ifNotNil: [
                        DocLibrary external updateMethodVersions] are not using this 
yet"].
        self inform: str.

! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 10:08'!
removeDisney
        "remove the Disney server from the update lists.  For external release."

        updateUrlLists copy do: [:pair |
                (pair first includesSubstring: 'Disney' caseSensitive: false) ifTrue: [
                        updateUrlLists remove: pair]].
        Smalltalk removeKey: #UpdatesAtDOL ifAbsent: [].
        Smalltalk removeKey: #UpdatesAtWebPage ifAbsent: [].

! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 10:03'!
retrieveUrls: urls  ontoQueue: queue  withWaitSema: waitSema
        | doc |
        "download the given list of URLs.  The queue will be loaded alternately with 
url's and with the retrieved contents.  If a download fails, the contents will be 
#failed.  If all goes well, a special pair with an empty URL and the contents 
#finished will be put on the queue.  waitSema is waited on every time before a new 
document is downloaded; this keeps the downloader from getting too far ahead of the 
main process"

        "kill the existing downloader if there is one"
        updateDownloader ifNotNil: [ updateDownloader terminate ].

        "fork a new downloading process"
        updateDownloader := [ urls do: [ :url |
                waitSema wait.
                queue nextPut: url.
                doc _ HTTPSocket httpGet: url accept: 'application/octet-stream'.
                doc class == String
                        ifTrue: [ queue nextPut: #failed.  Processor activeProcess 
terminate ]
                        ifFalse: [ queue nextPut: doc] ] .

                queue nextPut: ''.
                queue nextPut: #finished.
        ] newProcess.
        updateDownloader priority: Processor userInterruptPriority.


        "start the process running"
        updateDownloader resume.
! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 10:08'!
saveUpdate: doc onFile: fileName
        "Save the update on a local file.  With or without the update number on the 
front, depending on the preference #updateRemoveSequenceNum"

        | file fName pos updateDirectory |

        (FileDirectory default directoryNames includes: 'updates') ifFalse:
                [FileDirectory default createDirectory: 'updates'].
        updateDirectory _ FileDirectory default directoryNamed: 'updates'.

        fName _ fileName.
        (Preferences valueOfFlag: #updateRemoveSequenceNum) ifTrue:
                [pos _ fName findFirst: [:c | c isDigit not].
                fName _ fName copyFrom: pos to: fName size].
        doc reset; ascii.
        (updateDirectory fileExists: fName) ifFalse:
                [file _ updateDirectory newFileNamed: fName.
                file nextPutAll: doc contents.
                file close].
! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 10:13'!
serverUrls
        "Return the current list of server URLs.  For code updates.  Format of 
updateUrlLists is 
#( ('squeak updates' ('url1' 'url2'))
    ('some other updates' ('url3' 'url4')))"

        | list |
        list _ updateUrlLists first last.

        "If there is a dead server, return a copy with that server last" 
        list clone withIndexDo: [:aName :ind |
        (aName beginsWith: Socket deadServer) ifTrue: [
                list _ list asOrderedCollection.        "and it's a copy"
                list removeAt: ind.
                list addLast: aName]].

        ^ list asArray! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 09:53'!
updateFromServer
        "Update the image by loading all pending updates from the server.  Also save 
local copies of the update files if the #updateSavesFile preference is set to true"

        self readServerUpdatesSaveLocally: Preferences updateSavesFile updateImage: 
true! !

!UpdateBookkeeper methodsFor: 'updating from server' stamp: 'af 1/31/2001 10:14'!
updateUrlLists

        updateUrlLists ifNil: [updateUrlLists _ OrderedCollection new].
        ^ updateUrlLists! !


!UpdateBookkeeper class methodsFor: 'instance creation' stamp: 'af 1/31/2001 10:17'!
new
^ super new initialize! !


!UpdateBookkeeper reorganize!
('initialization' initialize)
('accessing' version)
('updating from server' chooseUpdateList extractThisVersion: 
newUpdatesOn:throughNumber: readServerUpdatesSaveLocally:updateImage: 
readServerUpdatesThrough:saveLocally:updateImage: removeDisney 
retrieveUrls:ontoQueue:withWaitSema: saveUpdate:onFile: serverUrls updateFromServer 
updateUrlLists)
!


!Project reorganize!
('initialization' backgroundColorForMorphicProject backgroundColorForMvcProject 
defaultBackgroundColor initMorphic initialExtent initialProject initialize 
installNewDisplay:depth: installPasteUpAsWorld: setChangeSet: setProjectHolder: 
setServer windowActiveOnFirstClick windowReqNewLabel:)
('accessing' addGuard: changeSet displayDepth: environment findProjectView: isMorphic 
isTopProject labelString leaveThisWorld name nextProject parent previousProject 
projectChangeSet setParent: setThumbnail: setViewSize: thumbnail updateBookkeeper 
urlList urlList: viewSize world)
('menu messages' enter enter: enter:revert:saveForRevert: enterForEmergencyRecovery 
exit fileOut makeThumbnail saveState viewLocFor:)
('release' addDependent: canDiscardEdits deletingProject: okToChange release)
('active process' activeProcess interruptName: maybeForkInterrupt resumeProcess: 
spawnNewProcess spawnNewProcessAndTerminateOld: spawnNewProcessIfThisIsUI:)
('printing' printOn:)
('file in/out' armsLengthCommand: exportSegment exportSegmentWithCatagories:classes: 
fromMyServerLoad: installRemoteFrom:named: loadFromServer newVersion: 
objectForDataStream: revert saveAs saveForRevert serverList storeDataOn: storeOnServer 
storeSegment storeSegmentNoFile storeSomeSegment storeToMakeRoom url versionFrom:)
('object fileIn' convertdwctppdaevtngp0:dwctppdaevtngpiicmovue0: 
convertdwctppdaevtngpiicmo0:dwctppdaevtngpiicmovu0: 
convertdwctppdaevtngpiicmovu0:dwctppdaevtngpiicmovue0: 
convertdwctppdaevtngpiicmovue0:dwctppdaevtngpiivue0:)
('project parameters' flapsSuppressed flapsSuppressed: initializeProjectParameters 
parameterAt: parameterAt:ifAbsent: projectParameters rawParameters removeParameter:)
('displaying' displayZoom: imageForm imageFormOfSize:depth: showZoom)
('isolation layers' beIsolated compileAll:from: compileAllIsolated:from: invoke 
invokeFrom: isIsolated isolationHead isolationSet layersToTop propagateChanges revoke)
('fetching updates' updateFromServer)
('isolated changes')
!

* To add a new update:  Name it starting with a new three-digit code.  
* Do not use %, /, *, space, or more than one period in the name of an update file.
* The update name does not need to have any relation to the version name.
* Figure out which versions of the system the update makes sense for.
* Add the name of the file to each version's category below.
* Put this file and the update file on all of the servers.  (Automatic updating 
* from the FileList will do this for you.)
*
* To make a new version of the system:  Pick a name for it (no restrictions)
* Put # and exactly that name on a new line at the end of this file.
* During the release process, fill in exactly that name in the dialog box.
* Put this file on the server.
*
* early updates deleted, see archive file. --tk
#Squeak2.5
1379NewVersion-di.cs
1380tileScript-tkKW.cs
1381addClass-tkKZ.cs
1382LostWindowFix-di.cs
1383Collection-doseparatedBy.st
1384ExternObjects-ar.cs
1385debug-tkKW.cs
1386ClassCmnts-DH.cs
1387stereoWAVFix.st
1388WnldEditor-jsp.cs
1389methFinder-MJG.cs
1390pasteUpConv-tkLA.cs
1391delProjectChgSet-sw.cs
1392joystickFixes-sw.cs
1393trashPref-sw.cs
1394initialInteger-sw.cs
1395isOrientedFill-sw.cs
1396boolArrows-sw.cs
1397isAfileNamed-TPR.cs
1398ThreeFixes-bf.cs
1399ExplorerTweaks-bf.cs
1400TextMorphScrollFix-dew.cs
1401BugFixes-di.cs
1402ColorPicker32-di.cs
1403deadServer-tkLF.cs
1404DIS-server-tkLE.cs
1405FlashFixes-ar.cs
1406ClassBuilderFix-ar.cs
1407StringIndexFix.cs
1408LineFeedBarrier-di.cs
1409PBColorPicker-di.cs
1410String-asUnHtml.st
1411paintingFixups-sw.cs
1412MoreFlashFixes-ar.cs
1413strmCntsDozen-sw.cs
1414EllipseFix-ar.cs
1415LfSubmissions-ar.cs
1416FlashFixesPart3-ar.cs
1417DIS-serv2-tkLG.cs
1418ColorPickerTweaks-di.cs
1419FlashFixesPart4-ar.cs
1420ClassBuilderFix-ar.cs
1421FlashAlphaFix-ar.cs
1422FlashStepFixes-ar.cs
1423TimerStuff-ar.cs
1424HdrTypo-ar.cs
1425CtlTerminateForMVC-di.cs
1426personalMenuFix-dew.cs
1427SqueakFixes-di.cs
1428CtlTermTweak-di.cs
1429MorphicUndoFix-di.cs
1430imgSeg-tkKY.cs
1431reframe-bf.cs
1432ClsChanges-ar.cs
1433paneReframe-bf.cs
1434ClsFormatCheck-ar.cs
1435Heap-ar.cs
1436IntrplImgMorph-ar.cs
1437Benchmarks-ar.cs
1438cmdShiftClick-sw.cs
1439ShrinkFixes-di.cs
1440ClsRemovals-ar.cs
1441spectrumAnalyzer-jhm.cs
1442FFTwindow-di.cs
1443onionSkin-tkLG.cs
1444twoTiny-sw.cs
1445onionSkFix-tkLH.cs
1446ShrinkFixesPS-di.cs
1447sonogramFix-jhm.cs
#Squeak2.6alpha
1448B3DSimpleMesh-ar.cs
1449VRMLBase-ar.cs
1450WnldVrmlStuff-ar.cs
1451WnldTweaks-ar.cs
1452WndlActorPivot-jsp.cs
1453MoreVRML-ar.cs
1454StringEditHack-di.cs
1455floatPrecision-sw.cs
1456textSelectionPref=sw.cs
1457endUserStringEdit-sw.cs
1458B3DClipFix-ar.cs
1459BlockTemps-CL.cs
1460SegmentFixes-di.cs
1461TelnetMachine.cs
1462ImgSeg-tkLI.cs
1463Tetris.st
1464NewCompiler-ACG.cs
1465NewCompiler2-ACG.cs
1466EncodingFilters-MPW.cs
1467Morphic-PS-MPW.cs
1468Morphic-PS-Tweaks.cs
1469TFEI-Exceptions-core.cs
1470TFEI-Exceptions-extns.cs
1471TFEI-Exceptions-tests.cs
1472NewUIUCPath-di.cs
1473Tetris-take2.cs
1474UpdateTweaks-di.cs
1475ParagraphTweak.cs
1476PostScriptMenus-di.cs
1477Segments-tkLJ.cs
1478ChangeSetSearch-di.cs
1479segsMore-tkLL.cs
1480ifErrorFix-PNM.cs
1481ExplEvalPane-RAA.st
1482SocketGC-LS.cs
1483ListItemSelect-JLM.cs
1484menuFixes-sw.cs
1485pptToBook-mjg.cs
1486fileoutBanner-sw.cs
1487doubleClick-sw.cs
1488alignmentMenu-sw.cs
1489ListCheckEdits-di.cs
1490x-option-bf.cs
1491UserMenu-bf.cs
1492MiscFixes-bf.cs
1493DepthMenu-bf.cs
1494Magnifier-bf.cs
1495ExceptionFixes-bf.cs
1496Applescript1-acg.cs
1497Applescript2-acg.cs
1498ccgStepFix-bf.cs
1499Sept28Tweaks.cs
1500alphaInstVarList-sw.cs
1501caseSensitiveFind-sw.cs
1502iconicButton-sw.cs
1503littleCleanups-sw.cs
1504FastUnsentMsgs-bf.cs
1505magnifier2a-bf.cs
1506magnifier3-di.cs
1507imgLibrary-tkLM.cs
1508DropProjectDeps-di.cs
1509doubleClick-bf.cs
1510sysWindowMenu-sw.cs
1511BackOff-B.st
1512ClassOrderFix-RAA.cs
1513TrashSystemWindow-LC.cs
1514DeclareTempFix-laza.cs
1515sysMenuTweak-sw.cs
1516SundryFixes-di.cs
1517segClsReshape-tkLN.cs
1518browserOptions-sw.cs
1519scriptButton-sw.cs
1520gcTweak-di.cs
1521noDupRoots-tkLO.cs
1522MarkBitFix-di.cs
1523verifyCleanHeaders.st
1524segFileReclaim-di.cs
1525snapshotandQuit.st
1526windowMenuMisc-sw.cs
1527projectButtonUI-sw.cs
1528snapshotandQuit2.st
1529segFixes-tkLP.cs
1530lastMinuteFixes-sw.cs
1531PaintBoxFixes-bf.cs
1532StringSymbolPatch2-sma.cs
1533MorphRemove-RAA.cs
1534crispScrollbars2-dew.cs
1535openWaveEditorFix-MD.st
1536ListItemSelect-jlm.cs
1537countBitsWkAround-bf.st
1538saveAs-TEM.cs
1539BezierFix.cs
1540versionsFix-sw.cs
1541sundry-sw.cs
1542dropIntoPartsBin-sw.cs
1543AdvanceVersion.cs
#Squeak2.6
1544SketchFix-bf.cs
1545VMtweak-tpr.cs
1546DebuggerTempFix-di.cs
1547SelFinderTweaks-bf.cs
1548TwoLilFixes-di.cs
1549cHeaderMods-jhm.cs
1550NewCompiler3-acg.cs
1551PageUpDn-sbw.cs
1552FasterCollapse-RAA.cs
1553From3DSFixes-DSM.cs
1554SundryFixesA.cs
1555ReclaimSegFix-di.st
1556Bezier3Segment-DSM.cs
1557TextMorph-update.st
1558TransformSmoothing-di.cs
1559BalloonEngRegFills.st
1559pickerFix-sw.cs
#Squeak2.7alpha
1560morphOpenFixes-di.cs
1561extSeg-tkLQ.cs
1562selFinder2-bf.cs
1563smartUpdating-sw.cs
1564activeVersions-sw.cs
1565quickFix-sw.cs
1566ImageSegFixes-di.cs
1567BigContexts2-di.cs
1568frameSize.st
1569methodMorph-sw.cs
1570divers-sw.cs
1571pre-FreeCell-dp.cs
1572pickerFix-sw.cs
1573setWindowColor--sw.cs
1574flexedViewerEtc-sw.cs
1575roundedMethodMorph-sw.cs
1576FlexDrag-di.cs
1577FreeCell-dpdi.cs
1578pickerFix-sw.cs
1579ThreeTweaks-di.cs
1580windowColorTweaks-sw.cs
1581checkForUnsent-sw.cs
1582threeMore-sw.cs
1583graphicalDict-sw.cs
1584MoreFlexTweaks-di.cs
1585chgSetWakeup-sw.cs
1586FlexTweaks2-di.cs
1587SWwindowsIn.st
1588modalPickerFix-sw.cs
1589updatingFixes-sw.cs
1590mvcSmartUpdating-sw.cs
1591projRevert-tkLU.cs
1592misc-tkLV.cs
1593FasterAll-ar.cs
1594inspectorMenu-sw.cs
1595findClass-sw.cs
1596buttons-bf.cs
1597WnldMorphic-ar.cs
1598menuMessages-tkLR.cs
1599obsolete-tkLY.cs
1600OOPSLAtweaks-di.cs
1601SliderColor-di.cs
1602MessageNameFix.st
1603menuConstructor-sw.cs
1604prettyPrint-sw.cs
1605dropNewMorph-sw.cs
1606twoFixes-sw.cs
1607WnldDup-ar.cs
1608MorphExtFix.cs
1609fileVersions-dp.cs
1610chgSetFileStamp-sw.cs
1611seg3-tkMB.cs
1612misc-sw.cs
1613prettyPrintColors-swdp.cs
1614WorldWindows-RAAdi.cs
1615CleanerBraces-di.cs
1616AttachedResources-di.cs
1617UpdateAllBraces-di.cs
1618BalancedStack-di.cs
1619anySatisfy-di.cs
1620TyposAndMisc-dwh.cs
1621clickMenu-bf.cs
1622MVCHighlightFix-mkd.st
1623ENHObjectExplorer-ccn.cs
1624MorphicInMVC-dew.cs
1625TinyBenchmark-dwh.cs
1626ExceptionFixes-tfei.cs
1627StreamFixes-hmm.cs
1628BrowserCopyClass-jmv.cs
1629RenameClassFix-dwh.cs
1630ClickMoveClick-bf.cs
1631FreeCell-changes.cs
1632GrabScreen-di.cs
1633CelesteMiscOct22-mdr.cs
1634grabScreenTweak-sw.cs
1635nextPrevCat-sw.cs
1636PostscriptFixes-mpw.cs
1637FixDblClickGrab-di.cs
1638ClsBldChgs-ar.cs
1639SysStartUp-ar.cs
1640CGChanges-ar.cs
1641ValidateTweak-fxm.cs
1642NewbieClassDefinition-JD.cs
1643ScaleMorphFix.st
1644ctrlScroll-bf.cs
1645SeqCollectionHash-tfei.cs
1646updateTOCFix-sge.cs
1647reburyElvis-sw.cs
1648WiWTake3-RAA.cs
1649WiWTake4-RAA.cs
1650WiWTake4Tweaks-di.cs
1651turkeyTweaks-sw.cs
1652ProtoObjectOne-md.cs
1653ProtoObjectTwo-md.cs
1654FlapTab-fitOnScreen.st
1655ProtoObjectTweak-di.cs
1656PreferencesFix-bf.cs
1657WiWTweaks2.cs
1658ColorAndProjectFix.cs
1659WiWTweaks3-RAA.cs
1660BrownDragFix-RAA.cs
1661veryDeepCopy-hg.cs
1662InterpVersion-ar.cs
1663FileListBugFix-sge.cs
1664HandMorph-changeColor.st
1665AlignmentTweaks.cs
1666FlexDragFix.cs
1667ScamperForms-Fixes1.cs
1668Forms-bf.cs
1669MIMEDocEnh.cs
1670ScamperForms-Fixes2.cs
1671FreeCell-satisfaction.cs
1672FlashFileReader4-mir.cs
1673FreeCell-glow.cs
1674ImgSegByteSwapFix.st
1675roundedCorners-sw.cs
1676roundCornerTweaks-di.cs
1677lateNovMisc-sw.cs
1678etoyCosmetic-sw.cs
1679ImgSegByteSwapFix2.st
1680imgSeg-tkMC.cs
1681Fixes-bf.cs
1682DoitWithTemps-bf.cs
1683FFI-VMPreps.cs
1684doMenuFromScript-sw.cs
1685reorderChangeSets-sw.cs
1686veryDeep-tkMD.cs
1687imgSegByte-tkME.cs
1688FasterSorting-STP.cs
1689ScrollBarPrefs-STP.cs
1690TimeProfileBrowser-STP.cs
1691PackageBrowser-STP.cs
1692SundryFixes.cs
1693BlockArgAccess-LS.cs
1694PreEnvironmentFixes-DI.cs
1695SqueakEnvironments1-DI.cs
1696reorganize.st
1697europeUpdate-tkMF.st
1698SqkEnvts1Tweaks-DI.cs
1699classCatFeatures-sbw.cs
1700TwoFixes-ar.cs
1701standardTextFont-sw.cs
1702FasterBB-ar.cs
1703explorerKey-acg.cs
1704helpForNewPrefs-mas.cs
1705EnvFix-ar.cs
1706browSel-tkMG.cs
1707env-tkMH.cs
1708fontChoices-sw.cs
1709alphabetize-th.cs
1710FreeCellFixes.cs
1711FileListRecentDirs-STP.cs
1712FileOpenChoices-JAF.cs
1713PkgFix-RAA.cs
1714FileList-patternReset-LC.cs
1715TestInterpreterPlugin3.cs
1716DIS-serverUIUC-tk.cs
1717env4-tkMK.cs
1718thumbSpeed-RAA.cs
1719optionalButPrep-sw.cs
1720optionalPanes-sbw.cs
1721littleFixes-sw.cs
1722env5-tkMI.cs
1723CollectionHash.cs
1724FileStreamFixes-tpr.cs
1725ImgSeg-tkMM.cs
1726FilePathFixes-ar.cs
1727sketchThumbnail-sw.cs
1728StreamFixes-ar.cs
1729InflatePlugin.cs
1730FasterChgsSets-ar.cs
1731DigitalSignatures-jm.cs
1732MiscChanges-ar.cs
1733SysCatFileOut-ar.cs
1734CompressionPostFix-ar.cs
1735fatBitsUpdate-ba.cs
1736mvcDebugButtons-sbw.cs
1737redundantThumbnail-sw.cs
1738autoViewing-sw.cs
1739miscDecFixes-sw.cs
1740FisheyeMorph2.cs
1741NewFreeCellfixes.cs
1742Encoder-encodeVarFix.st
1743RecentSlangChanges.cs
1744ReorgB3D.cs
1745SqEnvtFixes2.cs
1746SqueakSpeaks.cs
1747SilentNight.cs
1748SystemOrgTweaks.cs
1749LZ77.cs
1750CompressionTweaks-ar.cs
1751MoreCompressionTweaks.cs
1752env6-tkML.cs
1753filePath-tkMQ.cs
1754preDebug-tkMR.cs
1755TTFontReaderPatch-sma.cs
1756ScanCharacterFailFix.cs
1757DirectoryEntryFix.cs
1758ScanCharsFailFix2.cs
1759DecompileFix.cs
1760TwoWayScrollPane.st
1761advanceVersion.cs
#Squeak2.7
1762projectUrl-tkMT.cs
1763smartRef-tkMS.cs
1764wakeModelOnStartup-sw.cs
1765moreMvcButtons-sbw.cs
1766chgListAdditions-sw.cs
1767jan7Minor-sw.cs
1768versionsFIx-sw.cs
1769compactCls-tkMO.cs
1770Tetris2-RAA.cs
1771BehaviorsDoFix-di.cs
1772SuperSpecialSendTweak.cs
1773FileDirectoryFix-ACG.cs
1774dsaKeyGenFix.cs
1775noConvers-tkMU.cs
1776projRelabelFix-sw.cs
1777majorShrinkFix1-JA.cs
1778majorShrinkFix2-DI.cs
1779ShadowedTempFix.cs
1780advanceVersion.cs
1781lastUpdateStringFix.cs
1782ExceptionIsNestedFix.cs
#Squeak2.8alpha
1781lastUpdateStringFix.cs
1782ExceptionIsNestedFix.cs
1783PkgBrowserTweaks-STP.cs
1784fixesFromSTP.cs
1785pkgBrowserStuff-sw.cs
1786listDblClick-sw.cs
1787ftpNewFile-tkMU.cs
1788inspectElement-sw.cs
1789noPersonalize-sw.cs
1790pointSize-sw.cs
1791methodPrint-sw.cs
1792prefRework-sw.cs
1793debugHandleFix-sw.cs
1794imgSeg-tkMV.cs
1795charSrtRfStrm-tkMW.cs
1796exportFixes-tkMX.cs
1797nixWorldAutoViewing-sw.cs
1798endian-tkMY.cs
1799vmSupportCode-jm.cs
1800FFIBaseClasses.cs
1801FFI-Plugin.st
1802FFI-Examples-MacOS.st
1803FFI-Examples-Win32.st
1804FFI-Examples-X11.st
1805chgSorterMisc-sw.cs
1806miscTweaks-sw.cs
1807haloRework-sw.cs
1808wndHalos-sw.cs
1809paintArea-sw.cs
1810AEScriptFix.cs
1811ifNilCompiled-ACG.cs
1812HandMorph-openMenu.st
1813Project-thumbnailFromUrl.st
1814MiscFixes-ar.cs
1815SystemDictionary-version.st
1816FasterWho-di.cs
1817soundBuf-tkMZ.cs
1818ifNilDecompiled-DI.cs
1819BetterDoLoopDecomp-DI.cs
1820PopUpMenuFix-sma.cs
1821BoldBinarySels-dew.cs
1822RandomizedSameGame-dew.cs
1823SymbolRefactoring-ssa.cs
1824BrowserCmdKeys-jlm.cs
1825FishEyeFix-bf.cs
1826WorldMrphViewBoxFix-bf.cs
1827NoObjExplWindow-sma.cs
1828FasterSelect-sma.cs
1829FasterMVCDisplay-hmm.cs
1830Indentation-hmm.cs
1831CumulativeCounts-tao.cs
1832ExplainNumber-apb.cs
1833HtmlTagFix-ls.cs
1834TxtMrphVeryDeepCopy-md.cs
1835PackageBrowerEnh-sma.cs
1836ParagrEditorPatch-sma.cs
1837ChangeListFix-raa.cs
1838FreeCellFix-raa.cs
1839ColorPickerEnh-lc.cs
1840MethodFinderEnh-hh.cs
1841FileCntsBrowserEnh-sma.cs
1842FileOutPoolsFix-dtl.cs
1843GotoPage-mjg.cs
1844DavesBlobMorph.cs
1845fillInBlankReturn-sw.cs
1846balloonHelpPatch-sma.cs
1847balloonHelpTweaks-sw.cs
1848recentLogFile-sw.cs
1849gzFiles-tkNA.cs
1850exportSource-tkMZ.cs
1851tinyFix-tkNC.cs
1852changWasHere-sw.cs
1853toggleSoundEnabling.cs
1854segmentGC-tkND.cs
1855FabrikTweaks.cs
1856Cmd-q-tkNF.cs
1857StdFileMenuPattern-tk.cs
1858saveProject-tkNG.cs
1859simpleMenuPref-sw.cs
1860EnvironmentChgs1-di.cs
1861TranslucentPatterns-ar.cs
1862CanvasRework.cs
1863FastSketchInit-di.cs
1864clsBldrFault-tkNG.cs
1865MasterSlides-tkNH.cs
1866activeClasses.cs
1867NilColors-ar.cs
1868ParaColors-ar.cs
1869HandFixes-ar.cs
1870ShadowFixes-ar.cs
1871PlugBtnView1.cs
1872PlugFileLst2.cs
1873projServer-tkNI.cs
1874cleanup-tkNE.cs
1875projectEnv-tkNJ.cs
1876Explain-th.cs
1877FontDisplayEnh-acg.cs
1878SysWindowReframe-dns.cs
1879FillInTheBlankFix-sma.cs
1880GraphicalMenuBug-dns.cs
1881PrefFix-ssa.cs
1882LastUpdString-sma.cs
1883ColorPrintOn-dns.cs
1884BlobEnh-dns.cs
1885DecompileUnknown-th.cs
1886ProtoObjComment-di.cs
1887UncatchableHalt-sma.cs
1888BrowseIt-slr.cs
1889HtmlFmtFix-jcc.cs
1890CmdKeyDesc-sma.cs
1891ClassComments-dwh.cs
1892TTStringMorph-sma.cs
1893EnhTranscript-sma.cs
1894FillInFixes-ssa.cs
1895EmptySymbol-sma.cs
1896RmEmtyCatFix-sma.cs
1897NameOfClass-sma.cs
1898PPBlockTemps-sma.cs
1899segBug-tkNL.cs
1900symbolFix-tkNM.cs
1901WelcomeWindowFix.cs
1902Dependents-sma.cs
1903EvtSystem-sma.cs
1904Nitpick-sma.cs
1905FIBUsageFixes-sge.cs
1906TimeProfileFixes-dew.cs
1907BrowseTallyMenu-dew.cs
1908PrintArrayFix-sma.cs
1909CrLfWaring-tpr.cs
1910IntervalCopy-acg.cs
1911Fix1898-sma.cs
1912ProgressMorph-mir.cs
1913TextMorph-mir.cs
1914TimeSince-mir.cs
1915bobFreeCell2.cs
1916FreeCell3-di.cs
1917DictKeysSortedSafely.cs
1918ClassComments1.cs
1919ChangeSetUninstall-di.cs
1920msgSetParse-sw.cs
1921deletedClassFix-sw.cs
1922miscFixes-sw.cs
1923collapseEtc-sw.cs
1924projectMenuItems-sw.cs
1925scriptableSlider-sw.cs
1926danExport-tkNR.cs
1927avoidAnnoyance-sw.cs
1928VarDeclFix-ar.cs
1929FastPrimFailures.cs
1930UnloadModules.cs
1931More1908Fixes.cs
1932TinyFix.cs
1933projectUrl-tkNT.cs
1934new-tkNU.cs
1935sliderTweaksEtc-sw.cs
1936objAfter-tkNV.cs
1937InvalidRects-ar.cs
1938DropShadowNil-ar.cs
1939TurtleTrails-ar.cs
1940TwoFixes-ar.cs
1941SetRotCenter-di.cs
1942ThreeDSFixes-ar.cs
1943projSwap-tkNS.cs
1944FastHandDrag-di.cs
1945BitBltSpeedup.cs
1946NonlocalRetnFix.cs
1947debuggerFix-tfei.cs
1948stackTrim-tfei.cs
1949FasterWorldMenu.cs
1950projFetch-tkNW.cs
1951PaintBoxFocus.cs
1952PaintBoxFix.cs
1953EvtSysFixes-sma.cs
1954MenuRefactorings-sma.cs
1955SpawnNewProc-ls.cs
1956Bezier3SegmentFix-dsm.cs
1957CelesteLineWrap-ls.cs
1958LinearFit-jrm.cs
1959MsgTallyComment-di.cs
1960SetExplore-bf.cs
1961Unimplemented-bf.cs
1962MoreUnimplemented-sma.cs
1963TwoDigitYear-sma.cs
1964InspectorEnh-svp.cs
1965LabelDraggin-sma.cs
1966QuoFix-th.cs
1967CornerRounder-hmm.cs
1968WarnCorruptedSource-hg.cs
1969Environment-storeAll.st
1970MVCScrollFix-ar.cs
1971CornerRounder-ar.cs
1972Halftoning-ar.cs
1973ColorCacheFix.cs
1974RoundingTweaks-di.cs
1975GrowFonts-di.cs
1976HtmlFix-mjg.cs
1977B3DSceneExplorer.cs
1978fileList-tkNX.cs
1979master-tkNY.cs
1980inside-tkNZ.cs
1981ModularProjects1-9-di.cs
1982RemovalChanges-di.cs
1983ModularProjects10-di.cs
1984ModularProjects11-di.cs
1985ProjectConversion-di.cs
1986ChgSetConversion-di.cs
1987ChgSetQFix.cs
1988ChgSetQFix2.cs
1989projNew-tkOA.cs
1990flapEnterTweak-sw.cs
1991PoohRelease.cs
1992ChgSetQFix3.cs
1993ExpandTweak-di.cs
1994SymbolEquals.cs
1995rereadProj-tkOB.cs
1996randomTile-sw.cs
1997RevertOnError-di.cs
1998FFI-Fixes-hg.cs
1999ExtPrimsFlush.cs
2000TwoTweaks-di.cs
2001TransformFixes-ar.cs
2002FileListMenuTweak-di.cs
2003MVC-projCmd-tkOC.cs
2004BigSources-di.cs
2005ChineseCheckers-di.cs
2006PWSfixes-mjg.cs
2007FourTweaks-di.cs
2008ModProjClassHack.cs
2009HighlightingSelFix-sr.cs
2010CPPPluginEnh-rmf.cs
2011PNG-dsm.cs
2012FormEditor-sma.cs
2013ContextTrace-sma.cs
2014KwSpeedup-av.cs
2015SimpleMouseBtnFix-jlb.cs
2016HttpSocketFix-gr.cs
2017RobustCQ-ls.cs
2018Speedups-av.cs
2019Array2DEnh-sma.cs
2020CloseBoxFlashFix-jmm.cs
2021SemaphoreCmp-sma.cs
2022LowSpace-go.cs
2023SchedulingBugFix-fm.cs
2024DecompileFix-th.cs
2025HeapFix-mir.cs
2026HirBrowserFix-mir.cs
2027ColorPickerFix-raa.cs
2028MinimumSize-jlb.cs
2029ScaleMorph-rcs.cs
2030HandMorphCleanUp-sma.cs
2031EnvEditorFix-mjt.cs
2032FileDir-bf.cs
2033MissingTextColor-dns.cs
2034GradientWorld-raa.cs
2035Celeste-dvf.cs
2036WarpBltFix-kfr.cs
2037FreeCellWorldBug-smg.cs
2038FileCntBrwEnh-sma.cs
2039PlgTextMorphFix-sr.cs
2040SymbolPrinting-rwdi.cs
2041PasteRecent-di.cs
2042SymbolPrintingTweaks.cs
2043PreserveSelectionFix-di.cs
2044DropShadowTweaks-di.cs
2045PNGTweaks-dm.cs
2046AutoResizeScreen.cs
2047NewSources1-hmm.cs
2048NewSources2-hmm.cs
2049DigitSymbols-bf.cs
2050FixResidentFonts-di.cs
2051TurtlePen-ar.cs
2052FileListMenuItems.st
2053CelesteStatus-dvf.cs
2054Celeste3-dvf.cs
2055Celeste4-dvf.cs
2056PseudoClassFix-sma.cs
2057SortedCollectionFix-go.cs
2058SmallerCloseBox-kfr.cs
2059PaintingTools-kfr.cs
2060Albaphet-sma.cs
2061InacurateCtx-raa.cs
2062DisplaySize-sma.cs
2063DropShadowCptBounds.st
2064MorphTweaks1-di.cs
2065MorphTweaks2-di.cs
2066Twiki1-di.cs
2067VRMLExtensions-ar.cs
2068prefs-sw.cs
2069roundedViewer-sw.cs
2070morphicTrimmings-sw.cs
2071classListMenu-sw.cs
2072misc-sw.cs
2073buttonRowClip-sw.cs
2074altBrowseIt-sw.cs
2075halo-sw.cs
2076buttonFix-sw.cs
2077sampleInstance-sw.cs
2078removals-sw.cs
2079hierarchy-sw.cs
2080browserEtc-sw.cs
2081ChangeSetTweaks-di.cs
2082reluctantEmbed-sw.cs
2083MagMorphFix-sma.cs
2084FractionFix-mjg.cs
2085AnotherCeleste-dvf.cs
2086SketchToBgGrnd-jcg.cs
2087NewMorphMnu-kfr.cs
2088AndAgainCeleste-dvf.cs
2089CollapseHandle-bk.cs
2090TTF2StrikeFont-hmm.cs
2091KernFix-sma.cs
2092CondenseChgFix-raa.cs
2093Conversion-raa.cs
2094FileCntBrwEnh-sma.cs
2095PasteUpGradient-bf.cs
2096BooklikeMorph-bf.cs
2097collapseFixes-sw.cs
2098MIMEHeaderFix-sge.cs
2099collapseFix-bf.cs
2100ProjLink-tkOE.cs
2101StandardFileFix-di.cs
2102ChgSetDropHistory-di.cs
2103WordGames-di.cs
2104BBFixForTransLines-di.cs
2105WorldRefactorings-sma.cs
2106WorldRefPart2-sma.cs
2107OpenInScamper-sma.cs
2108BetterPlOfCollWinBars-sr.cs
2109TallyPercentSign-dew.cs
2110MSecMessageTally-dew.cs
2111MVCColors-hmm.cs
2112PrintFromTextMenu-dew.cs
2113DisplTxtCmtFix-mjg.cs
2114YellowMenuFix-rhi.cs
2115UpdateFix-th.cs
2116CtrlScrollTweak-th.cs
2117CleanUpInterpreterSim-th.cs
2118MarkedMethodFinder-dew.cs
2119CeleseMerge-dvf.cs
2120FixNewMorphMnu-kfr.cs
2121reconciliation-di.cs
2122rendererBlend-sw.cs
2123cmdShiftClickFix-sw.cs
2124StringMorphEdFix-di.cs
2125InfFormFix-ar.cs
2126AssertRefact-sma.cs
2127CollectionRefact-sma.cs
2128AttachSaveFix-mir.cs
2129Asserts-sma.cs
2130SysWindowDnd-mir.cs
2131SketchEditorEnh-kfr.cs
2132MappedCltnFix-hh.cs
2133ScamperEnh-md.cs
2134ProjectOkToFix-md.cs
2135ClassRename-ccn.cs
2136FontSetStuff-sma.cs
2137CancelWrite-sma.cs
2138EmbeddFix-sma.cs
2139FFI-PluginFixes-ar.cs
2140TrimHistoryTweak-di.cs
2141Calendar-LC.cs
2142FileMenuFix2-di-ti.cs
2143Watch-RJF.cs
2144FFI-ExtraFix-ar.cs
2145MoreUpdateChgs-di.cs
2146PLG1-CodeGen.cs
2147PLG2-Plugins.cs
2148PLG3-VmAndSupport.cs
2149PLG4-FinalTweaks.cs
2150CleanseSupportCode.cs
2151PLG5-ModuleUnload.cs
2152BitBltSwitch-ar.cs
2153FasterGradFills-ar.cs
2154FloatPointRDegrees-di.cs
2155WatchTweaks.cs
2156WatchTweak2.cs
2157dndCleanup-mir.cs
2158BrowserWithDragAndDrop.cs
2159annotChanged-sw.cs
2160debugMenu-sw.cs
2161dAndDConflicts-sw.cs
2162moreRemovals-sw.cs
2163LargeIntegersPlugin.cs
2164LargeIntegersInstall.cs
2165dndTransition-sw.cs
2166VersionsFix-ar.cs
2167AnotherInfFormFix.cs
2168SimulatorRevival.cs
2169singleStep-sw.cs
2170DnDFix-mir.st
2171flexStep-sw.cs
2172saveLocalFlaps-sw.cs
2173platSpecficTweaks-jhm.cs
2174miscFixes-jhm.cs
2175OCTweaks-ar.cs
2176MatrixInvert-ar.cs
2177ColorTweak-ar.cs
2178PhonemeRecognizer.st
2179CSRework-AA.cs
2180CSRework-AB.cs
2181CSRework-AC.cs
2182CSRework-AD.cs
2183FontFix-ar.cs
2184fasterStep-disw.cs
2185CrLfFix-mir.cs
2186BookMorph-kfr.cs
2187CelesteEnhFix-mir.cs
2188BetterFindDup-dvf.cs
2189Betterbooks-mjg.cs
2190CelesteTimeZones-dvf.cs
2191WatchTweak-bf.cs
2192EOS-hh.cs
2193UnixFileDirFix-sr.cs
2194MIMERefactor1-dvf.cs
2195FatBitsPaintFix-raa.cs
2196DnDClassToggle-len.cs
2197SendingChanges-dvf.cs
2198MoreDiffSup-mas.cs
2199RomanNumbers-sma.cs
2200BadBadBrowserDnD-mir.cs
2201XlucentDND-svp.cs
2202WorldBackground-bf.cs
2203FileListEnh-ccn.cs
2204May23Tweaks.cs
2205BBPrimFix-ar.cs
2206SocketPluginFix-ar.cs
2207XlucentDNDFix.cs
2208gifFix-bf.cs
2209fileIntoNewChangeSet.cs
2210NoSourcesFix.cs
2211redCar-sw.cs
2212FormCanvasCleanup.cs
2213FXBlt-Alpha.cs
2214NamedPrimHack.cs
2215MiscFXFixes.cs
2216firingFix-sw.cs
2217macSupportFiles-jhm.cs
2218clearWorldTrails-sw.cs
2219keepOnStepping-sw.cs
2220WnldFix-ar.cs
2221BitBltPreps-ar.cs
2222BitBltCleanup-ar.cs
2223B3DRasterizer-ar.cs
2224ExternalGraphics-ar.cs
2225SurfacePlugin-ar.cs
2226B3DAcceleration-ar.cs
2227FoldFXCanvas-ar.cs
2228MiscFixes.cs
2229BltAcceleration-ar.cs
2230XFormShutdown-ar.cs
2231MoreFixes.cs
2232chgSorter-sw.cs
2233graphicalLib-sw.cs
2234miscTweaks-sw.cs
2235dirShaft-sw.cs
2236bookControls-sw.cs
2237VMChanges-misc.cs
2238FirstAndLastN.cs
2239CalendarTweak-sge.cs
2240BinarySearch-ar.cs
2241ButtonTweaks-di.cs
2242CalendarTweaks-di.cs
2243pasteUpClip-sw.cs
2244removals-sw.cs
2245wordingInChanges-sw.cs
2246QuickFix-ar.cs
2247tweak-sw.cs
2248noConstruction-sw.cs
2249ListTypo-ar.cs
2250BetterComment-ar.cs
2251PluggableBtnEnh-acg.cs
2252PrettyPrint-sma.cs
2253ShowByteCodes-sma.cs
2254SelfDoIt-sma.cs
2255MenuRef-sma.cs
2256MenuFixFix-sma.cs
2257-PrintOn-sma.cs
2258ScamperSBFix-md.cs
2259X11example-bf.cs
2260UglyScamperFix-sma.cs
2261CollectFromToFix-sma.cs
2262FileDirSearching-sim.cs
2263IsSortedFix-sma.cs
2264AuthorName-sma.cs
2265Worldstartup-bf.cs
2266ScamperFonts-bolot.cs
2267FasterAllSubclasses-sqr.cs
2268LedMorph-rjf.cs
2269QuoFix-sr.cs
2270emergencyEvalPlus-sma.cs
2271CelesteStatusCleanup-sge.cs
2272ReadStreamUndo-sma.cs
2273ClassRenameFix-bf.cs
2274InfoStringMorph-sma.cs
2275IntSpeedUp-sma.cs
2276Compiler-nm.cs
2277WeakValueAssocRef-mm.cs
2278SeqColEnh-sma.cs
2279ApplyUpdFrmDsk-sr.cs
2280PackBrOptBnt-rh.cs
2281miscTweaks-sw.cs
2282HiddenScrollBar-dew.cs
2283CategoryChgSpeedup-dvf.cs
2284HiddenScrFix-sma.cs
2285GifFix2-bf.cs
2286ScamperFixes-bolot.cs
2287ScamperRedirect-ls.cs
2288FasterSenders-sqr.cs
2289FileDirFix-mdr.cs
2290NovmTableAt-sma.cs
2291PopupMenuFix-sma.cs
2292FCBPPFix-sma.cs
2293DamRecorderEnh-sma.cs
2294MorphMenuRef-sma.cs
2295MVCPassword-jdr.cs
2296PackBrowserFix-ak.cs
2297CustomFilterMove-dvf.cs
2298HandMorph-jwh.cs
2299bookMenuMerge-sw.cs
2300AsyncFile-failComment.st
2301TurtleTrailMods-di.cs
2302BigTextFixes-di.cs
2303resetExtent-raa.cs
2304FXColorFixes.cs
2305sketchThumbnail-sw.cs
2306HQTextures.cs
2307JMM-SemaTableAndLessInt.cs
2308JMM-Socket-Changes.cs
2309JMM-PLG-New-Mac-Socket.cs
2310JMM-MacCcodeChangesForOT.cs
2311MacNetworkSupport.st
2312FasterUpdates-ls.cs
2313LargeIntegersPlugin-3.cs
2314dsaPart1-RAA.cs
2315dsaPart2-RAA.cs
2316SysWinVisible-mir.cs
2317ClickDragSelection-mir.cs
2318DndUpdate-mir.cs
2319DndImprovement-sr.cs
2320FasterUppercase-sma.cs
2321ScrollBarFix-kfr.cs
2322CelesteForwardFix-sge.cs
2323WeakTweak-mm.cs
2324HiddenScrollScamper-dew.cs
2325CelesteMailer-kfr.cs
2326BetterExplaination-jbc.cs
2327DateTimeRefac-bp.cs
2328FixHighBit-sr.cs
2329FixNegativeRightShift-sr.cs
2330CelesteForgottenUpd-dvf.cs
2331OpenInMVCFix-sma.cs
2332ValueWithRec-sma.cs
2333PointerFinder-sma.cs
2334Retract2023.cs
2335SqueakConfigFile.st
2336skipAnySubStr-BJP.cs
2337CelesteAcceptFix-sge.cs
2338dndFix-mir.cs
2339DateFix-rca.cs
2340DoMacCFMTerminate.cs
2341CelesteSetPatch.cs
2342advanceVersion.cs
#Squeak2.8
2343BaseUpdateFor28.cs
2344PrintItFix-RAA.cs
2345editorChange-raa.cs
2346EmbedMorphDeletion-dvf.cs
2347fixBigFontCR-raa.cs
2348WeekDayFix-rca.cs
2349HaloMorph-GrowFix-di.cs
2350FixAsyncFilePlugin-JMM.cs
2351SetMacTypeForSave-JMM.cs
2352MacVMUpdates1-3-JMM.cs
2353MacVMUpdates4-5-JMM.cs
2354SystemOrganization.st
2355TPR-majorShrink.cs
2356FinalChangesFor2-8.cs
2357MacVMEventsUpdate-JMM.cs
2358LowSpaceQA-di.cs
2359PostGammaTweaks.cs
2360MacVMUpdates2.8.3JMM.2.cs
#Squeak2.9alpha
2400BaseUpdateFor29a.cs
2401MultiProjects-RAA.cs
2402ColonFreeSyntax.cs
2403AlternateSyntaxTweaks.cs
2404altSyntaxTweaks2.cs
2405HurraMVC-sma.cs
2406PrintItFix-RAA.cs
2407Revert2321.cs
2408altSynOverride-raa.cs
2409multiProjects3-raa.cs
2410editorChange-raa.cs
2411noExtraColon-raa.cs
2412NoFIBMorph-sma.cs
2413FFIDiscarding-sma.cs
2414SoundDiscarding-sma.cs
2415MoreDiscards-sma.cs
2416FormPSPrintFix-sma.cs
2417Speedups-sma.cs
2418AdaptingInspector-sma.cs
2419FullScreenSysWin-sma.cs
2420SubclassTemplate-sma.cs
2421ChangeSetRef-sqr.cs
2422WeekDayFix-rca.cs
2423EmbedMorphDeletion-dvf.cs
2424LastIndexFix-raa.cs
2425multiProjects4-RAA.cs
2426detectCrLf-tk.cs
2427NoDocumentLoading-sma.cs
2428GetSysAttrRef-sma.cs
* 2429CollectFixes-sma.cs  retracted
2430ColorMix-sma.cs
2431ProjBallonHlp-kfr.cs
2432LeaveMeAlone-sma.cs
2433BlockCopy-ls.cs
2434CelesteFastDelete-ls.cs
2435CelesteVersionString-ls.cs
2436MetaclassCr-sma.cs
2437MetaClassIndicated-sr.cs
2438AsortedCelesteFixes-dvf.cs
2439InterpFixes28-tpr.cs
2440Win32API-tb.cs
2441XCallFix-ar.cs
2442B3DPrimBounds-ar.cs
2443natLang-tk.cs
2444MthFinder-tk.cs
2445mixedWith-tk.cs
2446fixBigFontCR-raa.cs
2447multiProj5-6-raa.cs
2448multiProjects7-raa.cs
2449updateTweak-tk.cs
2450B3DViewportFix-ar.cs
2451FlashSync-ar.cs
2452translateLang-tk.cs
2453translateFix-tk.cs
2454shiftMenu-tk.cs
2455VRMLRotationFix-ar.cs
2456textMorphMenu-tk.cs
2457FasterRamps-ar.cs
2458TelemorphicFixes.cs
2459SUnit2-rh.cs
2460WldMenuCompat-tk.cs
2461multiProj8-RAA.cs
2462trans2-tk.cs
2463EnvelopeEdChgs-di.cs
2464MonthShowToday-di.cs
2465WldMenu2-tk.cs
2466SnapshotFailure-ar.cs
2467MSecClockMask.cs
2468BetterGCstats-di.cs
2469MonthMorphTweak-di.cs
2470multiProjects9-RAA.cs
2471NebraskaEtc-RAA-ls.cs
2472appendCat-sw.cs
2473wearCostume-sw.cs
2474etoyChgs-sw.cs
2475PostscriptTweaks-mwdi.cs
2476PostscriptTweaks2-di.cs
2477HaloMorph-GrowFix-di.cs
2478PostscriptTweaks3-di.cs
2479findTokens-tk.cs
2480PaintBoxDivided-tk.cs
2481hesitantWorldMenu-sw.cs
2482PostscriptTweaks4-di.cs
2483WatchTweak4-di.cs
2484MoreRoundedCorners-di.cs
2485TextOnCurveHack1-di.cs
2486closeBox-sw.cs
2487catFix-sw.cs
2488etoyChgsTwo-sw.cs
2489retractTiles-tk.cs
2490FixAsyncFilePlugin-JMM.cs
2491SetMacTypeForSave-JMM.cs
2492MacVMUpdates1-3-JMM.cs
2493tileRectify-tk.cs
2494EventSensor-ar.cs
2495EventPrims-ar.cs
2496MorphicEvents-ar.cs
2497namingPref-sw.cs
2498dismissScriptor-sw.cs
2499EvtFixes-ar.cs
2500MacVMUpdates4-5-JMM.cs
2501SystemOrganization.st
2502majorShrink-TPR.cs
2503FinalChangesFor2-8.cs
2504EToyComm2.cs
2505NullUpdate1.st
2506NullUpdate2.st
2507NullUpdate3.st
2508NullUpdate4.st
2509NullUpdate5.st
2510NullUpdate6.st
2511NullUpdate7.st
2512NullUpdate8.st
2513NullUpdate9.st
2514NullUpdate10.st
2515NullUpdate11.st
2516NullUpdate12.st
2517paintToolPics-tk.cs
2518eyeDropFix.cs
2519langTrans3-tk.cs
2520misc-sw.cs
2521PostGammaTweaks.cs
2522LowSpaceQA-di.cs
2523MacVMEventsUpdate-JMM.cs
2524setGCParameters.st
2525EToyComm3-raa.cs
2526paintBox4-tk.cs
2527tileLayout-tk.cs
2528specialDrag-sw.cs
2529polygonMenus-sw.cs
2530paintingGoof-raa.cs
2531InfiniteNebraska-raa.cs
2532miscellany-sw.cs
2533miscellanyFixup-sw.cs
2534undo-sw.cs
2535fastColorChange-sw.cs
2536MorphicDraw-di.cs
2537BetterGridding-di.cs
2538EnvelopeEdChgs-di.cs
2539MorphicDrawRepair-di.cs
2540CleanBoldFix-di.cs
2541bookAsProject-raa.cs
2542dataIsValid-raa.cs
2543pvmTweaks-raa.cs
2544RecolorLines-di.cs
2545AlternateUndo-di.cs
2546UndoGroups-di.cs
2547lastEventFix-raa.cs
2548onionFix-raa.cs
2549longProjMenu-raa.cs
2550betterEmbed-raa.cs
2551SelectionTweaks-di.cs
2552miscFixes-raa.cs
2553CmdHistory-ar.cs
2554VRMLAnimMesh.cs
2555nebraskaTransform-raa.cs
2556SelectionTweak2-di.cs
2557PaintBox5-tk.cs
2558SelectionTweak3-di.cs
2559TwoFixes-ar.cs
2560chgSorterKeys-sw.cs
2561twiddling-sw.cs
2562EventFix-ar.cs
2563RoundCorners-ar.cs
2564OC-fix-bf.cs
2565B3DExploreUpdate-ti.cs
2566B3DExploreArcball-ti.cs
2567fastColorIcon-al.cs
2568colorFix-sw.cs
2569RectangleCopy-di.cs
2570BetterItalics-di.cs
2571FixCurveGribblies-di.cs
2572systemWindowStep-jg.cs
2573graphpaperFix-raa.cs
2574RepairGraphPaper-di.cs
2575UnifiedPolygons-di.cs
2576FixArrows-nk.cs
2577newTell-raa.cs
2578httpLoader-mir.cs
2579launcher-mir.cs
2580pluginActivate-raa.cs
2581worldMorphMenu-sw.cs
2582projectHierarchy-sw.cs
2583steplistTools-sw.cs
2584scriptAndSlotNames-sw.cs
2585updateViewer-sw.cs
2586pickerRefactor-sw.cs
2587misc-sw.cs
2588eToyAdditions-sw.cs
2589ActiveEssay-tk.cs
2590B3DFixes-ar.cs
2591fasterHand-raa.cs
2592fasterYet-raa.cs
2593GeeMail-raa.cs
2594IntersectsFix-ar.cs
2595WnldHack-ar.cs
2596PolygonFixes-di.cs
2597BlockEnablement-di.cs
2598DashedPolygons-di.cs
2599CurveCleanup-di.cs
2600PolygonFlex-di.cs
2601minExtentFix-di.cs
2602ResizeMonthMorph-di.cs
2603DeleteProj-tk.cs
2604PolygonMorph-step.st
2605PolygonMorph-menu.st
2606PolygonMorph-wantsSteps.st
2607heightFix-sw.cs
2608SimplifiedUndo-di.cs
2609IdentityTransform.cs
2610TransformFix.cs
2611MorphicAlarms.cs
2612SameGame-resetBoard.st
2613geeMailLinks-raa.cs
2614geeMailTweaks-raa.cs
2615paintBox6-tk.cs
2616projectMisc-raa.cs
2617moreProj-raa.cs
2618DropLaggingEvents3-di.cs
2619coll-sw.cs
2620collFixup-sw.cs
2621miscProj-raa.cs
2622graphScriptFix-sw.cs
2623MenuMarkers-ar.cs
2624conePosition-sw.cs
2625ResetAuthorInitials.st
2626PDAchanges-di.cs
2627-TimeProfileFixes-dvf.cs
2628-Bookmark-AK.cs
2629-FastUppercase-SqR.cs
2630-BadHashFix-SqR.cs
2631-SerialPortChanges-dns.cs
2632-PrimitiveComments-dvf.cs
2633-ScamperFix-dvf.cs
2634-SmallestContest-dns.cs
2635-BetterPhoneDialer-dsm.cs
2636-FileOutSlipsFix-JW.cs
2637-BrowserShowAll-dew.cs
2638-emitComments-hg.cs
2639-FileContentsLabel-dew.cs
2640-formtypo-SqR.cs
2641-BehaviorName-rca.cs
2642-LargeIntMA-hh.cs
2643-misckfrfixes-kfr.cs
2644-SnappierMorphic-hg.cs
2645-BrowserAlphabet-SqR.cs
2646-StringDownshift-SqR.cs
2647-SubjectPrefixForCS-dew.cs
2648-ChangeSet-fileOut-ccn.cs
2649-CodeGeneration-mn.cs
2650-ENH-ExplorerMenu-ccn.cs
2651-pseudoclassfix-pnm.cs
2652-FullScreenPref-zL.cs
2653-MVCPrefsBrowserFix-nk.cs
2654-PhraseTileMorphFix-nk.cs
2655-FilePackageRef-pnm.cs
2656-methbrowsermvc-nk.cs
2657-ScamperButtonRow3-ccn.cs
2658BetterMarkers.cs
2659NebraskaFix-raa.cs
2660SelectionTweaksPlus-di.cs
2661infiniteFix-raa.cs
2662ps2Hacks-raa.cs
2663newScript2-raa.cs
2664SelectionTweaksMinus-di.cs
2665zapOldCommands-raa.cs
2666GeeTweaks-raa.cs
2667tileArrowBug-tk.cs
2668ThreeQuickees-di.cs
2669kidRename-raa.cs
2670tellMore-raa.cs
2671geeTweaks1-raa.cs
2672geeTweak2-raa.cs
2673FontStyleMarkers-ar.cs
2674ChangeSet-zapHistory.st
2675MarkerFix-ar.cs
2676noSaveUndo-raa.cs
2677noMetaMenuForEtoy-sw.cs
2678operatorTile-sw.cs
2679menusWithCheckboxes-sw.cs
2680scriptStatus-sw.cs
2681findWindowTweak-sw.cs
2682optionCloseWindow-sw.cs
2683deleteNonSelections-sw.cs
2684menuConflictFix-sw.cs
2685transPS-raa.cs
2686saveThumb-raa.cs
2687SketchRotation-ar.cs
2688SketchFixes-ar.cs
2689PolygonRotFix-di.cs
2690WarpTweak-di.cs
2691smallFixes-raa.cs
2692LayoutChangedOpt-di.cs
2693WorldUnderOpt-di.cs
2694RoundCornersOpt-di.cs
2695PDA-di.cs
2696PDATweaks-di.cs
2697TedsHack-di.cs
2698MonthMorphMod-di.cs
2699MonthTweaks-di.cs
2700HeadingFixes.cs
2701PolygonMorph-step.st
2702fixOcclude-raa.cs
2703EtoyFixes-ar.cs
2704UndoColors-ar.cs
2705PaintBoxMods-ar.cs
2706kidNav1-raa.cs
2707CostumeFix-ar.cs
2708kidNav2-raa.cs
2709DirectionHandleTweaks-di.cs
2710ModalPickerFix-ar.cs
2720NoChameleons-di.cs
2721ColorPickerTweaks-di.cs
2722textFix-raa.cs
2723betterThumbGIF-raa.cs
2724geeGolly-raa.cs
2725PerfectCircles.cs
2726RemoveFractionalPosition.cs
2727clipCanvas-raa.cs
2728moreProj-raa.cs
2729WorldHaloTweaks-di.cs
2730TranslucencySlider-di.cs
2731SmallerArrow.cs
2732MessageSend-value.cs
2733flash-fixes.cs
2734StreamFileIn.cs
2735Sound.cs
2736http-url.cs
2737FileStream-exceptions.cs
2738http-fix.cs
2739HeadingTweak-ar.cs
2740FlapsAndNavigator.cs
2741GIFfix-ar.cs
2742KidNavPlus-raa.cs
2743EHReturnFix-ar.cs
2744PDATweaks2.cs
2745SqR-HashFix.cs
2746restartLoop-raa.cs
2747misc-tk.cs
2748HTTPSocket-getFix.cs
2749ColorPickerTrackColorAt.st
2750saveTheSource-raa.cs
2751fixUncovered-raa.cs
2752projectGoof-raa.cs
2753DropShadowHeadingFix-di.cs
2754ftpDateFix-raa.cs
2755newScript3-raa.cs
2756ArrowTweaks-di.cs
2757psBold-raa.cs
2758SubjectFiltering-dv.cs
2759PluggableSetDict-dv.cs
2760CelesteTweaksFixes-mdr.cs
2761CelesteAddAttachment-mdr.cs
2762CelesteIndex-beo.cs
2763moreLayers-raa.cs
2764hideFlaps-raa.cs
2765ArrowTweaks2-di.cs
2766geeBooks-raa.cs
2767paneResize-tk.cs
2768moreFences-raa.cs
2769wordyFences-raa.cs
2770trashDetails-sw.cs
2771ProjStore2-tk.cs
2772ProjStore3-tk.cs
2773MacVMUpdates2-9-3JMM.cs
2774HTTPSocket-getFix.cs
2775SafetyBumper.cs
2776TruthAndBeauty.cs
2777HTTPSocket-getFix.cs
2778WeightWatchers-ar.cs
2779Kimsnav-krRAA.cs
2780ProjStore4-tk.cs
2781proxy-fix.cs
2782Flash-segFix.cs
2783DnD-Day.cs
2784DropFixes-ar.cs
2785HaloTweaks-ar.cs
2786MetaTweaks-ar.cs
2787DragsAndClicks-ar.cs
2788MoreHaloTweaks-ar.cs
2789TwoMoreHalo-ar.cs
2790VariousFixes-ar.cs
2791MoreCleanup-ar.cs
2792StickyFix-ar.cs
2793BreakFocus-ar.cs
2794NebraskaEvents-ar.cs
2795browserTweak-raa.cs
2796MenuTweaks-ar.cs
2797LastEvent-ar.cs
2798ConfusedButtons-ar.cs
2799MoreEventFixes.cs
2800SevenOfScott.cs
2801HideSqueakletFolder.cs
2802StickyBooks-ar.cs
2803PolyPainting.cs
2804UndoFix-ar.cs
2805PolyPaintFix.cs
2806PublishingFlaps-ar.cs
2807Remnants-ar.cs
2808MinorCleanups-ar.cs
2809DupFix-ar.cs
2810EventCleanup.cs
2811WnldRevival.cs
2812RetractModalShell.cs
2813MoreTweaks-ar.cs
2814ShowSqueakletFolder.cs
2815ButtonFixes-ar.cs
2816MenuDrag-ar.cs
2817PrimErrorFix-ar.cs
2818DnDProp-ar.cs
2819FractionAsFloat-mrm.st
2820psToFileEnh-raa.cs
2821ProjVersions-ar.cs
2822TwoMoreFixes.cs
2823FlushCache.cs
2824MenuItemFix-ar.cs
2825ProjStore5-tk.cs
2826codeLoader.cs
2827RWStream-reset.cs
2828ThreeEventFixes-di.cs
2829RWBTStream-reset.st
2830foosCopyFix-sw.cs
2831enhancedAlphabet-sw.cs
2832MorphicSteps-ar.cs
2833GrabFix-ar.cs
2834GrabFix2-ar.cs
2835MethodFinder-tk.cs
2836ParseScript1-tk.cs
2837RemoteHands-ar.cs
2838NebraskaTweaks-ar.cs
2839SharedHalos-ar.cs
2840RegistryFix-ar.cs
2841perPlayfieldBatch-sw.cs
2842superSwikiOct-raa.cs
2843ParseScript2-tk.cs
2844Three4Alan.cs
2845MouseStillDown-ar.cs
2846InnerMVCMenus-ar.cs
2847NearFinalEventStuff-ar.cs
2848FinalHandCleanup.cs
2849EventRename-ar.cs
2850FixFlaps.cs
2851projSaveSmall-raa.cs
2852navigatorFix-raa.cs
2853projectStopGaps-raa.cs
2854moreProxies-raa.cs
2855ownerChangedRevert-di.cs
2856MoreNebraska-ar.cs
2857FollowThatSqueak.cs
2858RecursiveFlapFix-ar.cs
2859OwnerChanges-ar.cs
2860AdaptiveRedraw-ar.cs
2861DieDropShadow-ar.cs
2862superSwikiFix-raa.cs
2863slimmerPVM-raa.cs
2864sMovie5-di.cs
2865ParseScript3-tk.cs
2866sMovie5Tweaks-di.cs
2867geeWhiz-raa.cs
2868ThreeFixes-ar.cs
2869sMovie5DupFix-di.cs
2870MovieFullSoundtrack.st
2871highGees-raa.cs
2872DropShadConv-tk.cs
2873B3DBugWorkaround.cs
2874FlapFix-ar.cs
2875Conversions-ar.cs
2876MvcToMorphi-RAA.cs
2877MIDIScoreFix-ak.cs
2878otherWorldly-raa.cs
2879Magnifier-sourcePoint.st
2880ParseScript4-tk.cs
2881changeSorterMisc-sw.cs
2882miscGeneric-sw.cs
2883stacksAndCards-sw.cs
2884mvcToMorphic-raa.cs
2885MIDIScoreFix-ak.cs
2886MouseEnterLeave-ar.cs
2887ateBitNebraska-raa.cs
2888NebraskaCorners-ar.cs
2889scrunchedName-raa.cs
2890whosOnFirst-bob.cs
2891otherWorldly-raa.cs
2892fasterPNG-raa.cs
2893MagnifiersourcePoint.st
2894NebraskaFullScreen-ar.cs
2895FixCostumes-ar.cs
2896twoNameBugs-sw.cs
2897DupFix-ar.cs
2898DragFix-ar.cs
2899DropFix-ar.cs
2900PickupPlayfield.cs
2901mvcMenuFix-raa.cs
2902pngFixes-raa.cs
2903dndToNebraska-raa.cs
2904fontInChat-raa.cs
2905WnldTweaks-ar.cs
2906VRMLProgress.cs
2907bgCommFix-raa.cs
2908fixPopupPoint-raa.cs
2909nebraskaRounded-raa.cs
2910viewerMenu-sw.cs
2911PasteFix-ar.cs
2912ovalGradients-raa.cs
2913userInitials-raa.cs
2914miscFixes-sw.cs
2915globalFlapMenu-sw.cs
2916WnldMoreTweaks.cs
2917newRollover-raa.cs
2918TransformTweaks-ar.cs
2919OpaqueImages-ar.cs
2920WnldBackgrounds-ar.cs
2921BgTweak-ar.cs
2922ProjStore4-tk.cs
2923RenderTweaks-ar.cs
2924DragFix-ar.cs
2925paintButton-raa.cs
2926fewerWarnings-raa.cs
2927leavingNebraska-raa.cs
2928bookSearch-tk.cs
2929AutoScrollFix-ar.cs
2930cartesianBounds-raa.cs
2931TwoForHackers-di.cs
2932InsetPoints-di.cs
2933MessageTallyValue-di.cs
2934AlignmentPreps-ar.cs
2935KbdResize-ar.cs
2936paintButton2-raa.cs
2937ScriptorChanges-di.cs
2938ScriptorChanges2-di.cs
2939DangerAhead.cs
2940GenericLayouts-ar.cs
2941RenameMethods-ar.cs
2942AlignmentMorphCleanup-ar.cs
2943ScriptorLayoutFix-ar.cs
2944bookOfProjects-raa.cs
2945MoreAlignment-ar.cs
2946BookSorterFix.cs
2947SyntaxQuickies.cs
2948LinkedTimbres-di.cs
2949moreThreads-raa.cs
2950threadsAgain-raa.cs
2951ScriptorChanges3-di.cs
2952prettyThreads-raa.cs
2953unbooking-raa.cs
2954OwnerTraversal-di.cs
2955FasterLayouts-ar.cs
2956OwnerTraversal2-di.cs
2957Invalidations-ar.cs
2958threadsForever-raa.cs
2959ScorePlayer-fade-mir.cs
2960etoycom-mir.cs
2961ScriptorChanges4-di.cs
2962fileList2fix-raa.cs
2963limbo-raa.cs
2964ScorePlayerFix-ar.cs
2965SysWindowFixes-ar.cs
2966LayoutProperties-ar.cs
2967ScorePlayerFit.cs
2968ParseScript5-tk.cs
2969MthFinder2-tk.cs
2970allProjects-raa.cs
2971ScriptorChanges6-di.cs
2972ScriptorChanges7-di.cs
2973sysWindowRename-sw.cs
2974genericRefine-sw.cs
2975privateDataFix-sw.cs
2976J3-CCodeGen-ikp.cs
2977J3-Contexts-ikp.cs
2978J3-Exceptions-ikp.cs
2979J3-Support-ikp.cs
2980J3-Interpreter-ikp.cs
2981ScriptorChanges8-di.cs
2982MoreSysWindow-ar.cs
2983GameFixes-ar.cs
2984FullBoundsFix-di.cs
2985RolloverTweak-di.cs
2986FixGCTooSlow-di.cs
2987B3DStackBalance-ar.cs
2988macSrcUpdates294-JMM.cs
2989TfmFixes-ar.cs
2990FixPianoKeyboards-di.cs
2991ParseScript6-tk.cs
2992noSubmorphs-raa.cs
2993CipherPanelFix.cs
2994HandTweaks-ar.cs
2995mvcWorldFix-raa.cs
2996higherPerformance-raa.cs
2997DoubleInitFix-len.cs
2998TetrisFix.cs
2999CrosticFix-di.cs
3000benchmarkTweaks-di.cs
3001interpBuildFixAfterJ3.cs
3002MacroBenchmarks-di.cs
3003GzipCrostics.cs
3004ParseScript7-tk.cs
3005BenchmarksAgain.cs
3006newZoomAndScroll-raa.cs
3007fixDebug-raa.cs
3008AlphabetCopy-rhi.cs
3009ChgSorterAnnPanes-rhi.cs
3010DateNewCentury-rhi.cs
3011FindAMorph-rhi.cs
3012KindOfSubclass-rhi.cs
3013PackageBrAnnPanes-rhi.cs
3014SUnit2Fixes-rhi.cs
3015Atlanta-ls.cs
3016SeqCollForceToFix-dew.cs
3017BalloonColorBug-dns.cs
3018BalloonColors-sma.cs
3019DropMorphOnWS-jcg.cs
3020MultiPattern-sma.cs
3021HierarchicalUrlFix-hmm.cs
3022HierarchyArrowBg-dew.cs
3023SeqCollAtAllFix-apb.cs
3024ChangeSorterFix-sma.cs
3025ScrollBarPositionFix-dew.cs
3026ImageOverwrite-dew.cs
3027OverhangScrollbFix-dew.cs
3028HalloweenFixes-bf.cs
3029PointHash-sqr.cs
3030CEFilenameFix-je.cs
3031DebugFixPrintHandler-hg.cs
3032DebuggerEnh-kfr.cs
3033ProcessBrowser-nk.cs
3034ProcessBrInMenu-dew.cs
3035PrettyDiffs-nk.cs
3036NaughtyCode-ls.cs
3037ExplorerString-sma.cs
3038SubclassFix-bf.cs
3039InterpreterSimFix-sr.cs
3040ShiftCrOffBy1-hg.cs
3041ArrowFixes2-nk.cs
3042UrlWithPortFix-nk.cs
3043EnhBlockCxtErrMsg-mdr.cs
3044MemHooksRevised-go.cs
3045NewSymbolTable1-sqr.cs
3046NewSymbolTable2-sqr.cs
3047NewSymbolTable3-sqr.cs
3048NewSymbolTable4-sqr.cs
3049NewSymbolTable5-sqr.cs
3050NewSymbolTable6-sqr.cs
3051NewSymbolTable7-sqr.cs
3052LinkFixe-apb.cs
3053TransformStepTime-mdr.cs
3054Paragrap-apb.cs
3055CelesteEnc-bf.cs
3056ScamperEnc-bf.cs
3057CorrectionTweak-di.cs
3058MacSoundVolSupport-JMM.cs
3059EmbeddedExecutable-JMM.cs
3060CorrectionTweak2-di.cs
3061CorrectionTweak3-di.cs
3062MacVMSource2-9-6-JMM.cs
3063FindBtwSubstrs-dew.cs
3064FasterChangeSet-sqr.cs
3065BetterAlbaphetizer-sqr.cs
3066GCCPPCPatchDispatTab-jmm.cs
3067ReadOnlyFile-mir.cs
3068BrowserFix-ak.cs
3069ChngSorterKeyFix-sma.cs
3070IRCConnectionFix-gwc.cs
3071SketchRepaintFix-jcg.cs
3072CelesteAddons-dvf.cs
3073BugReports-dvf.cs
3074PasswordRequest-rca.cs
3075UndoWorks-sqr.cs
3076CelesteFixes-beo.cs
3077AlphaBlendOpt-dsm.cs
3078Repainting-ar.cs
3079Benchmarks2-di.cs
3080ParseScript8-tk.cs
3081flexiZoom-raa.cs
3082zoom2-raa.cs
3083dontResizeTop-raa.cs
3084zoomAsMovie-raa.cs
3085zoomFix-raa.cs
3086PolyFix-ar.cs
3087classListMenu-rh.cs
3088moreScoreStuff-raa.cs
3089ProjStore5-tk.cs
3090MethFinder2-rhi.cs
3091keepingScore-raa.cs
3092moreLayers-raa.cs
3093SoundCompression-diRAA.cs
3094ProjStore6-tk.cs
3095multiResume-raa.cs
3096ColorPickerLayer-ar.cs
3097fixBooks-raa.cs
3098pngTests-raa.cs
3099zoomtest-raa.cs
3100annotationFixes-sw.cs
3101awkwardJunctureFix-sw.cs
3102recompileScript-sw.cs
3103threeWindowCommands-sw.cs
3104various-sw.cs
3105SMovieCleanup-di.cs
3106DebugAids-di.cs
3107storyContinued-raa.cs
3108playingProjects-raa.cs
3109moreOfTheStory-raa.cs
3110TrashDrag-ar.cs
3111UndoTweaks-di.cs
3112ProjStore7-tk.cs
3113gotoMark-raa.cs
3114evtRecStory-raa.cs
3115storyEvents-raa.cs
3116ScriptorChanges9-di.cs
3117slowNebraska-raa.cs
3118MonthTweaks-ar.cs
3119InvalidationTweaks-ar.cs
3120randomAtoms-raa.cs
3121moreInval-raa.cs
3122fixStories-raa.cs
3123FlapsFix-ccn.cs
3124moreLayers-raa.cs
3125menuFixups-raa.cs
3126betterInterpolate-raa.cs
3127shrinkFix-raa.cs
3128fixLastRemoval-raa.cs
3129pausingTheStory-raa.cs
3130moveBeforeAdd-raa.cs
3131quickerWorld-raa.cs
3132lessDelay-raa.cs
3133fixQueryMorph-raa.cs
3134FloodFill-ar.cs
3135TableFix-ar.cs
3136FlapTweaks-ar.cs
3137CompactViewerFlaps.cs
3138FillTweak-ar.cs
3139ProjStore8-tk.cs
3140mutateFix-raa.cs
3141slimmerProj-raa.cs
3142PDAFix-di.cs
3143convertInStages-raa.cs
3144projectAndCode-raa.cs
3145Morph-setToAdhereToEdge.st
3146projectInfo-raa.cs
3147projectForget-raa.cs
3148fixPartsBin-raa.cs
3149etoyOptimize-raa.cs
3150versionsPanes-rhi.cs
3151versionsTweaks-sw.cs
3152messageCount-sw.cs
3153unsentTweak-sw.cs
3154nameForSwiki-raa.cs
3155horizScrollFix-raa.cs
3156samplingRate-raa.cs
3157cleanerSampling-raa.cs
3158versionsAnnot-sw.cs
3159debugMenu-sw.cs
3160ProjStore9-tk.cs
3161editAnnotations.cs
3162addToCurrentChSet-sw.cs
3163chgSetFileout-sw.cs
3164flapTweaks-sw.cs
3165inheritanceColor-sw.cs
3166miscTweaks-sw.cs
3167authTweak-sw.cs
3168inherBtnTweaks-sw.cs
3169sourceToggle-sw.cs
3170spawn-sw.cs
3171decorateBrowButtons-sw.cs
3172cleanerBlocks-raa.cs
3173fixShadowBounds-raa.cs
3174listGoof-raa.cs
3175evenCleanerBlocks-raa.cs
3176updates-tk.cs
3177cleanerStill-raa.cs
3178betterQuery-bob.cs
3179showAllViewers-raa.cs
3180fixedPane-raa.cs
3181hibernateFlaps-raa.cs
3182navigatorInFlap-raa.cs
3183moreFixedPanes-raa.cs
3184ScriptorChanges10-di.cs
3185fixSwitches-raa.cs
3186fixedBrowser2-raa.cs
3187killDualResizers-raa.cs
3188ChangeSet-defaultName.st
3189NewEmptyScript-ar.cs
3190browseItFix-sw.cs
3191findPreference-sw.cs
3192fixBrowser3-raa.cs
3193updateToolsFlap-sw.cs


* To add a new update:  Name it starting with a new four-digit code.  
* Do not use %, /, *, space, or more than one period in the name of an update file.
* The update name does not need to have any relation to the version name.
* Figure out which versions of the system the update makes sense for.
* Add the name of the file to each version's category below.
* Put this file and the update file on all of the servers.  (Automatic updating 
* from the FileList will do this for you.)
*
* To make a new version of the system:  Pick a name for it (no restrictions)
* Put # and exactly that name on a new line at the end of this file.
* During the release process, fill in exactly that name in the dialog box.
* Put this file on the server.
#com47swiki12
0101append-bugfix.cs


'From Squeak2.7 of 5 January 2000 [latest update: #1762] on 19 January 2001 at 5:55:58 
pm'!
Object subclass: #LineFormatter
        instanceVariableNames: 'exceptions formatters storeID lineEnding '
        classVariableNames: ''
        poolDictionaries: ''
        category: 'Swiki-Formatting'!
!LineFormatter commentStamp: '<historical>' prior: 0!
LineFormatter

This formatter is used to format text. Exceptions are processed using their own 
formatters. They are later placed in their former positions. Formatters are assigned 
based on the value that follows cr. There is also a default formatter.

SPECIFIC INSTANCES:
appendFormatter: used to add append text to the swiki text
renderFormatter: used to convert the raw text to the rendered HTML text
showFormatter: used to convert the raw text to the view HTML text!


!LineFormatter methodsFor: 'accessing'!
addDefaultFormatter: anIdFormatter
        (formatters = nil) ifTrue: [formatters _ Dictionary new].
        formatters at: Character lf put: anIdFormatter! !

!LineFormatter methodsFor: 'accessing'!
addExceptionFrom: startsWith to: endsWith using: formatter
        | element |

        (exceptions = nil) ifTrue: [exceptions _ OrderedCollection new].
        element _ Array new: 3.
        element
                at: 1 put: startsWith;
                at: 2 put: endsWith;
                at: 3 put: formatter.
        exceptions add: element.! !

!LineFormatter methodsFor: 'accessing'!
addFormatter: anIdFormatter at: char
        (formatters = nil) ifTrue: [formatters _ Dictionary new].
        formatters at: char put: anIdFormatter! !

!LineFormatter methodsFor: 'accessing'!
exceptions
        ^exceptions! !

!LineFormatter methodsFor: 'accessing'!
formatters
        ^formatters! !

!LineFormatter methodsFor: 'accessing' stamp: 'je77 1/19/2001 17:46'!
lineEnding: aString
        lineEnding _ aString! !

!LineFormatter methodsFor: 'accessing'!
storeID
        ^storeID! !

!LineFormatter methodsFor: 'accessing'!
storeID: id
        storeID _ id! !


!LineFormatter methodsFor: 'private' stamp: 'je77 1/19/2001 17:45'!
combine: formattedText with: exceptionCollection
        "This is definitely not optimized for speed"
        | return i |

        return _ WriteStream on: (String new: (formattedText size * 2)).
        i _ 1.
        formattedText do: [:char | (char = Character lf)
                ifTrue: ["Add Exception"
                        return nextPutAll: (exceptionCollection at: i ifAbsent: ['']).
                        i _ i + 1]
                ifFalse: [(char = Character cr)
                        ifTrue: ["Use Internet Line Endings"
                                return nextPutAll: lineEnding]
                        ifFalse: [return nextPut: char]]].
        ^return contents! !

!LineFormatter methodsFor: 'private' stamp: 'je77 1/2/2001 12:33'!
formattedTextFrom: text request: request response: response shelf: shelf book: book 
page: page
        | return start end coll types id |

        return _ ReadWriteStream on: (String new: text size).
        coll _ OrderedCollection new.
        types _ OrderedCollection new.
        start _ 1.
        [start <= (text size)] whileTrue: [
                end _ text indexOf: Character cr startingAt: start ifAbsent: [end _ 
text size + 1].
                coll add: ((start = end) ifTrue: [''] ifFalse: [text copyFrom: start 
to: end-1]).
                start _ end + 1].
        (coll size = 0) ifTrue: [^return contents].
        coll do: [:element | types add: (self typeFrom: element)].
        (coll size = 1) ifTrue: [(types at: 1) singleOn: return text: (coll at: 1) 
request: request response: response shelf: shelf book: book page: page.
                ^return contents].
        ((types at: 2) = (types at: 1))
                ifTrue: [id _ (types at: 1) startOn: return text: (coll at: 1) 
request: request response: response shelf: shelf book: book page: page]
                ifFalse: [id _ (types at: 1) singleOn: return text: (coll at: 1) 
request: request response: response shelf: shelf book: book page: page].
        (coll size > 2) ifTrue: [
                2 to: (coll size - 1) do: [:i | ((types at: i) = (types at: i+1))
                        ifTrue: [((types at: i) = (types at: i-1))
                                ifTrue: [id _ (types at: i) transitionAfter: id on: 
return text: (coll at: i) request: request response: response shelf: shelf book: book 
page: page]
                                ifFalse: [id _ (types at: i) startOn: return text: 
(coll at: i) request: request response: response shelf: shelf book: book page: page]]
                        ifFalse: [((types at: i) = (types at: i-1))
                                ifTrue: [id _ (types at: i) endAfter: id on: return 
text: (coll at: i) request: request response: response shelf: shelf book: book page: 
page]
                                ifFalse: [id _ (types at: i) singleOn: return text: 
(coll at: i) request: request response: response shelf: shelf book: book page: 
page]]]].
        ((types last) = (types at: (types size - 1)))
                ifTrue: [id _ (types last) endAfter: id on: return text: (coll last) 
request: request response: response shelf: shelf book: book page: page]
                ifFalse: [id _ (types last) singleOn: return text: (coll last) 
request: request response: response shelf: shelf book: book page: page].
        ^return contents
! !

!LineFormatter methodsFor: 'private' stamp: 'je77 12/7/2000 18:22'!
splitTextAndExceptionsFrom: text request: request response: response shelf: shelf 
book: book page: page
        | col formatterText start tempStart matchStart matchException matchEnd 
matchText |

        col _ OrderedCollection new.
        formatterText _ ReadWriteStream on: (String new: text size).
        start _ 1.
        [start <= (text size)] whileTrue: [
                matchStart _ text size.
                matchException _ nil.
                exceptions do: [:exception | tempStart _ text findString: (exception 
at: 1) startingAt: start.
                        ((tempStart > 0) and: [tempStart < matchStart]) ifTrue: 
[matchStart _ tempStart.
                                matchException _ exception]].
                matchException
                        ifNil: ["No more found"
                                formatterText nextPutAll: (text copyFrom: start to: 
text size).
                                start _ text size + 1]
                        ifNotNil: [
                                (start = matchStart) ifFalse: [formatterText 
nextPutAll: (text copyFrom: start to: matchStart-1)].
                                formatterText nextPut: Character lf.
                                matchEnd _ text findString: (matchException at: 2) 
startingAt: matchStart.
                                (matchEnd = 0)
                                        ifTrue: ["End of text"
                                                matchText _ text copyFrom: (matchStart 
+ (matchException at: 1) size) to: text size.
                                                start _ text size + 1]
                                        ifFalse: [
                                                matchText _ text copyFrom: (matchStart 
+ (matchException at: 1) size) to: (matchEnd - 1).
                                                start _ matchEnd + (matchException at: 
2) size].
                                col add: (((matchException at: 3) copy fixTemps) 
valueWithArguments: (Array with: matchText with: request with: response with: shelf 
with: book with: page))]].
        ^{formatterText contents. col}! !

!LineFormatter methodsFor: 'private'!
storeString
        "Overwrite of Object method to save space for storing"
        (storeID) ifNotNil: ["Check to make sure this storeID is valid"
                (self class respondsTo: storeID)
                        ifTrue: [^'(', self class asString, ' ', storeID asString, 
')']].
        ^super storeString! !

!LineFormatter methodsFor: 'private'!
typeFrom: text
        ^(text size = 0)
                ifTrue: [formatters at: Character lf]
                ifFalse: [formatters at: (text at: 1) ifAbsent: [formatters at: 
Character lf]]! !


!LineFormatter methodsFor: 'processing' stamp: 'je77 1/2/2001 12:24'!
format: text request: request response: response shelf: shelf book: book page: page
        | textAndException |

        "textAndException will be a 2 element array with the readToFormatText and the 
exceptionCollection"
        textAndException _ self splitTextAndExceptionsFrom: text request: request 
response: response shelf: shelf book: book page: page.
        ^self combine: (self formattedTextFrom: textAndException first request: 
request response: response shelf: shelf book: book page: page) with: textAndException 
last! !

"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!

LineFormatter class
        instanceVariableNames: ''!

!LineFormatter class methodsFor: 'instance creation' stamp: 'je77 1/19/2001 17:51'!
appendFormatter
        | instance |

        instance _ self new.
        instance storeID: #appendFormatter.
        instance lineEnding: String cr.
        instance addExceptionFrom: '<html>' to: '</html>' using: [:text :request 
:response :shelf :book :page | '<html>', (TextFormatter crlfToCr: text), '</html>'].
        instance addExceptionFrom: '<HTML>' to: '</HTML>' using: [:text :request 
:response :shelf :book :page | '<HTML>', (TextFormatter crlfToCr: text), '</HTML>'].
        instance addFormatter: (IdFormatter saveAppend) at: $+.
        instance addDefaultFormatter: (IdFormatter leaveAlone).
        ^instance! !

!LineFormatter class methodsFor: 'instance creation' stamp: 'je77 1/19/2001 17:49'!
renderFormatter
        | instance textFormatter listFormatter |

        instance _ self new.
        instance storeID: #renderFormatter.
        instance lineEnding: String crlf.
        textFormatter _ PageFormatter new.
        textFormatter
                initialize;
                addRenderInternalLinks;
                addTagIntegrity;
                addShowSpecialCharacters;
                addRenderUploadLinks.
        instance addExceptionFrom: '<html>' to: '</html>' using: [:text :request 
:response :shelf :book :page | TextFormatter crToCrlf: text].
        instance addExceptionFrom: '<HTML>' to: '</HTML>' using: [:text :request 
:response :shelf :book :page | TextFormatter crToCrlf: text].
        instance addFormatter: (IdFormatter break) at: $_.
        instance addFormatter: (IdFormatter anchor) at: $@.
        instance addFormatter: (IdFormatter appendRender) at: $+.
        instance addFormatter: (IdFormatter heading: textFormatter) at: $!!.
        listFormatter _ IdFormatter list: textFormatter.
        instance addFormatter: (listFormatter) at: $-.
        instance addFormatter: (listFormatter) at: $#.
        instance addFormatter: (IdFormatter table: textFormatter) at: $|.
        instance addFormatter: (IdFormatter preformatted: textFormatter) at: $=.
        instance addDefaultFormatter: (IdFormatter text: textFormatter).
        ^instance! !

!LineFormatter class methodsFor: 'instance creation' stamp: 'je77 1/19/2001 17:48'!
showFormatter
        | instance textFormatter listFormatter |

        instance _ self new.
        instance storeID: #showFormatter.
        instance lineEnding: String crlf.
        textFormatter _ PageFormatter new.
        textFormatter
                initialize;
                addInternalLinks;
                addTagIntegrity;
                addShowSpecialCharacters;
                addUploadLinks.
        instance addExceptionFrom: '<html>' to: '</html>' using: [:text :request 
:response :shelf :book :page | TextFormatter crToCrlf: text].
        instance addExceptionFrom: '<HTML>' to: '</HTML>' using: [:text :request 
:response :shelf :book :page | TextFormatter crToCrlf: text].
        instance addFormatter: (IdFormatter break) at: $_.
        instance addFormatter: (IdFormatter anchor) at: $@.
        instance addFormatter: (IdFormatter append) at: $+.
        instance addFormatter: (IdFormatter heading: textFormatter) at: $!!.
        listFormatter _ IdFormatter list: textFormatter.
        instance addFormatter: (listFormatter) at: $-.
        instance addFormatter: (listFormatter) at: $#.
        instance addFormatter: (IdFormatter table: textFormatter) at: $|.
        instance addFormatter: (IdFormatter preformatted: textFormatter) at: $=.
        instance addDefaultFormatter: (IdFormatter text: textFormatter).
        ^instance! !

Reply via email to