HistoryManager.st
author claus
Sun, 27 Aug 1995 02:28:19 +0200
changeset 41 49fa8832d881
child 42 cb1cd3ab43c1
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41
claus
parents:
diff changeset
     1
'From Smalltalk/X, Version:2.10.7 on 23-aug-1995 at 10:30:30 pm'                !
claus
parents:
diff changeset
     2
claus
parents:
diff changeset
     3
Object subclass:#HistoryManager
claus
parents:
diff changeset
     4
	 instanceVariableNames:'historyMode'
claus
parents:
diff changeset
     5
	 classVariableNames:'TheOneAndOnlyInstance'
claus
parents:
diff changeset
     6
	 poolDictionaries:''
claus
parents:
diff changeset
     7
	 category:'System-Changes-History'
claus
parents:
diff changeset
     8
!
claus
parents:
diff changeset
     9
claus
parents:
diff changeset
    10
HistoryManager comment:'''Historymanagement for Smalltalk MultiUser Environment''
claus
parents:
diff changeset
    11
'!
claus
parents:
diff changeset
    12
claus
parents:
diff changeset
    13
!HistoryManager class methodsFor:'documentation'!
claus
parents:
diff changeset
    14
claus
parents:
diff changeset
    15
version
claus
parents:
diff changeset
    16
"
claus
parents:
diff changeset
    17
$Header: /cvs/stx/stx/libbasic3/HistoryManager.st,v 1.1 1995-08-27 00:28:10 claus Exp $
claus
parents:
diff changeset
    18
"
claus
parents:
diff changeset
    19
!
claus
parents:
diff changeset
    20
claus
parents:
diff changeset
    21
documentation
claus
parents:
diff changeset
    22
"
claus
parents:
diff changeset
    23
    This class is part of the 
claus
parents:
diff changeset
    24
	       -----------------------
claus
parents:
diff changeset
    25
		HistoryManagerProject.
claus
parents:
diff changeset
    26
	       -----------------------
claus
parents:
diff changeset
    27
    It is used to create a multi user Smalltalk developers Environemt.
claus
parents:
diff changeset
    28
claus
parents:
diff changeset
    29
    All Methods and Classes in the system get a HistroyLine which contains a timestamp
claus
parents:
diff changeset
    30
    and the name of the Editor. This is acually the UniX loginname.
claus
parents:
diff changeset
    31
    The Manager registers all Classes in the System to get notifications on change.
claus
parents:
diff changeset
    32
claus
parents:
diff changeset
    33
"
claus
parents:
diff changeset
    34
!
claus
parents:
diff changeset
    35
claus
parents:
diff changeset
    36
examples
claus
parents:
diff changeset
    37
"
claus
parents:
diff changeset
    38
    HistoryManager new
claus
parents:
diff changeset
    39
"
claus
parents:
diff changeset
    40
    "Modified: 11.08.1995 / 16:50:47 / robert"
claus
parents:
diff changeset
    41
! !
claus
parents:
diff changeset
    42
claus
parents:
diff changeset
    43
!HistoryManager class methodsFor:'initialization'!
claus
parents:
diff changeset
    44
claus
parents:
diff changeset
    45
initialize
claus
parents:
diff changeset
    46
    ""
claus
parents:
diff changeset
    47
    ObjectMemory addDependent: self.
claus
parents:
diff changeset
    48
claus
parents:
diff changeset
    49
    "Modified: 14.08.1995 / 9:49:56 / robert"
claus
parents:
diff changeset
    50
!
claus
parents:
diff changeset
    51
claus
parents:
diff changeset
    52
initMe
claus
parents:
diff changeset
    53
    "setup TheOneAndOnlyInstance (if not already present"
claus
parents:
diff changeset
    54
    ^self new.
claus
parents:
diff changeset
    55
claus
parents:
diff changeset
    56
    "Modified: 14.08.1995 / 9:52:40 / robert"
claus
parents:
diff changeset
    57
! !
claus
parents:
diff changeset
    58
claus
parents:
diff changeset
    59
!HistoryManager class methodsFor:'instance creation'!
claus
parents:
diff changeset
    60
claus
parents:
diff changeset
    61
new
claus
parents:
diff changeset
    62
    "because there can be only ONE HistoryManager new must me redefiend"
claus
parents:
diff changeset
    63
claus
parents:
diff changeset
    64
    TheOneAndOnlyInstance isNil ifTrue:[
claus
parents:
diff changeset
    65
	TheOneAndOnlyInstance := super new initialize.
claus
parents:
diff changeset
    66
	HistoryLine initialize.
claus
parents:
diff changeset
    67
    ].
claus
parents:
diff changeset
    68
claus
parents:
diff changeset
    69
   ^ TheOneAndOnlyInstance
claus
parents:
diff changeset
    70
claus
parents:
diff changeset
    71
"
claus
parents:
diff changeset
    72
claus
parents:
diff changeset
    73
    HistoryManager new.
claus
parents:
diff changeset
    74
"
claus
parents:
diff changeset
    75
claus
parents:
diff changeset
    76
    "Modified: 11.08.1995 / 17:01:29 / robert"
claus
parents:
diff changeset
    77
! !
claus
parents:
diff changeset
    78
claus
parents:
diff changeset
    79
!HistoryManager class methodsFor:'accessing'!
claus
parents:
diff changeset
    80
claus
parents:
diff changeset
    81
instance
claus
parents:
diff changeset
    82
    "return the class variable"
claus
parents:
diff changeset
    83
claus
parents:
diff changeset
    84
    ^TheOneAndOnlyInstance
claus
parents:
diff changeset
    85
!
claus
parents:
diff changeset
    86
claus
parents:
diff changeset
    87
isActive 
claus
parents:
diff changeset
    88
    ^TheOneAndOnlyInstance notNil
claus
parents:
diff changeset
    89
claus
parents:
diff changeset
    90
    "Modified: 27.8.1995 / 00:32:12 / claus"
claus
parents:
diff changeset
    91
! !
claus
parents:
diff changeset
    92
claus
parents:
diff changeset
    93
!HistoryManager class methodsFor:'change and update'!
claus
parents:
diff changeset
    94
claus
parents:
diff changeset
    95
update: what
claus
parents:
diff changeset
    96
    (what == #restarted) ifTrue:[
claus
parents:
diff changeset
    97
	"
claus
parents:
diff changeset
    98
	 smalltalk is about to restart from an Image -
claus
parents:
diff changeset
    99
	"
claus
parents:
diff changeset
   100
	'HistoryManager initialize (via update)' printNL.
claus
parents:
diff changeset
   101
	self initMe.
claus
parents:
diff changeset
   102
claus
parents:
diff changeset
   103
	^ self
claus
parents:
diff changeset
   104
    ].
claus
parents:
diff changeset
   105
claus
parents:
diff changeset
   106
    "Modified: 14.08.1995 / 9:50:58 / robert"
claus
parents:
diff changeset
   107
! !
claus
parents:
diff changeset
   108
claus
parents:
diff changeset
   109
!HistoryManager class methodsFor:'activation / deactivation'!
claus
parents:
diff changeset
   110
claus
parents:
diff changeset
   111
activate
claus
parents:
diff changeset
   112
    self new   "/ creating an instance activates me
claus
parents:
diff changeset
   113
!
claus
parents:
diff changeset
   114
claus
parents:
diff changeset
   115
deactivate
claus
parents:
diff changeset
   116
    Smalltalk allClassesDo:[:aClass |
claus
parents:
diff changeset
   117
	aClass removeDependent:TheOneAndOnlyInstance.
claus
parents:
diff changeset
   118
	aClass class removeDependent:TheOneAndOnlyInstance.
claus
parents:
diff changeset
   119
    ].
claus
parents:
diff changeset
   120
    TheOneAndOnlyInstance := nil.
claus
parents:
diff changeset
   121
claus
parents:
diff changeset
   122
"
claus
parents:
diff changeset
   123
    HistoryManager release
claus
parents:
diff changeset
   124
"
claus
parents:
diff changeset
   125
! !
claus
parents:
diff changeset
   126
claus
parents:
diff changeset
   127
!HistoryManager methodsFor:'accessing'!
claus
parents:
diff changeset
   128
claus
parents:
diff changeset
   129
historyMode
claus
parents:
diff changeset
   130
    "return historyMode"
claus
parents:
diff changeset
   131
claus
parents:
diff changeset
   132
    ^ historyMode
claus
parents:
diff changeset
   133
claus
parents:
diff changeset
   134
    "Modified: 11.08.1995 / 16:51:56 / robert"
claus
parents:
diff changeset
   135
!
claus
parents:
diff changeset
   136
claus
parents:
diff changeset
   137
historyMode:something
claus
parents:
diff changeset
   138
    "set historyMode"
claus
parents:
diff changeset
   139
claus
parents:
diff changeset
   140
    historyMode := something.
claus
parents:
diff changeset
   141
claus
parents:
diff changeset
   142
    "Modified: 11.08.1995 / 16:52:12 / robert"
claus
parents:
diff changeset
   143
! !
claus
parents:
diff changeset
   144
claus
parents:
diff changeset
   145
!HistoryManager methodsFor:'initialization'!
claus
parents:
diff changeset
   146
claus
parents:
diff changeset
   147
exclude
claus
parents:
diff changeset
   148
claus
parents:
diff changeset
   149
    "public - set an exclusionlist for some smalltalk classes which should not be notified or historisized"
claus
parents:
diff changeset
   150
    | oc |
claus
parents:
diff changeset
   151
        
claus
parents:
diff changeset
   152
    oc := OrderedCollection new.
claus
parents:
diff changeset
   153
    oc add: self.
claus
parents:
diff changeset
   154
claus
parents:
diff changeset
   155
    ^oc
claus
parents:
diff changeset
   156
claus
parents:
diff changeset
   157
    "Modified: 11.08.1995 / 17:02:18 / robert"
claus
parents:
diff changeset
   158
!
claus
parents:
diff changeset
   159
claus
parents:
diff changeset
   160
initialize
claus
parents:
diff changeset
   161
claus
parents:
diff changeset
   162
    "public - set an exclusionlist for some smalltalk classes which schold not be notified or historisized"
claus
parents:
diff changeset
   163
claus
parents:
diff changeset
   164
    | box  exclusionlist|
claus
parents:
diff changeset
   165
claus
parents:
diff changeset
   166
    super initialize.
claus
parents:
diff changeset
   167
    historyMode := true.
claus
parents:
diff changeset
   168
    exclusionlist := self exclude.
claus
parents:
diff changeset
   169
claus
parents:
diff changeset
   170
    Smalltalk allClasses do:[:aClass|
claus
parents:
diff changeset
   171
	"all classes should send a notification if changed"
claus
parents:
diff changeset
   172
	"aClass = self " false ifFalse: [
claus
parents:
diff changeset
   173
	    (exclusionlist includes: aClass) ifFalse:[
claus
parents:
diff changeset
   174
		aClass addDependent: self.
claus
parents:
diff changeset
   175
		aClass class addDependent: self.   "for class methods"
claus
parents:
diff changeset
   176
	    ].
claus
parents:
diff changeset
   177
	].
claus
parents:
diff changeset
   178
    ].
claus
parents:
diff changeset
   179
claus
parents:
diff changeset
   180
    ^self
claus
parents:
diff changeset
   181
claus
parents:
diff changeset
   182
    "Modified: 11.08.1995 / 17:12:51 / robert"
claus
parents:
diff changeset
   183
! !
claus
parents:
diff changeset
   184
claus
parents:
diff changeset
   185
!HistoryManager methodsFor:'updateHistory'!
claus
parents:
diff changeset
   186
claus
parents:
diff changeset
   187
addHistoryTo:someString
claus
parents:
diff changeset
   188
    "private - add a historyLine at end to the sourceCode;
claus
parents:
diff changeset
   189
     check for multiple lines of the same user and merge into one."
claus
parents:
diff changeset
   190
claus
parents:
diff changeset
   191
    | histLines pos hm wStream sourceCode historyMode  previousHistories |
claus
parents:
diff changeset
   192
claus
parents:
diff changeset
   193
    previousHistories := self getAllHistoriesFrom:someString.
claus
parents:
diff changeset
   194
    "Check whether there is a Manager"    
claus
parents:
diff changeset
   195
"/    hm := Smalltalk at: #HistoryManager ifAbsent: [ Transcript show: 'no HistoryManager present'.^someString].
claus
parents:
diff changeset
   196
claus
parents:
diff changeset
   197
"/    historyMode := hm instance historyMode.     "this method (addHistroy is called only by the historyManager)"
claus
parents:
diff changeset
   198
"/
claus
parents:
diff changeset
   199
"/    historyMode = false ifTrue: [
claus
parents:
diff changeset
   200
"/        "do nothing with the Code i.e. for filein"
claus
parents:
diff changeset
   201
"/        ^someString
claus
parents:
diff changeset
   202
"/    ].    
claus
parents:
diff changeset
   203
claus
parents:
diff changeset
   204
claus
parents:
diff changeset
   205
    "extract source body."
claus
parents:
diff changeset
   206
    previousHistories isEmpty ifTrue: [
claus
parents:
diff changeset
   207
	sourceCode := someString withoutSeparators.
claus
parents:
diff changeset
   208
    ] ifFalse: [
claus
parents:
diff changeset
   209
	pos := (previousHistories first) firstPositionInSourceCode.
claus
parents:
diff changeset
   210
	sourceCode := (someString copyFrom: 1 to: pos - 1) withoutSeparators.
claus
parents:
diff changeset
   211
    ].
claus
parents:
diff changeset
   212
claus
parents:
diff changeset
   213
    "add the actual user's historyLine."
claus
parents:
diff changeset
   214
    previousHistories add: (HistoryLine new).
claus
parents:
diff changeset
   215
claus
parents:
diff changeset
   216
    "Filtering historyLines each user with one entry)."
claus
parents:
diff changeset
   217
    histLines := HistoryLine filterHistoryLines: previousHistories.
claus
parents:
diff changeset
   218
claus
parents:
diff changeset
   219
    "create new body with added historyLine"
claus
parents:
diff changeset
   220
    wStream := WriteStream on: String new.
claus
parents:
diff changeset
   221
    wStream nextPutAll: sourceCode; cr.
claus
parents:
diff changeset
   222
claus
parents:
diff changeset
   223
    "append the historyLines to the source"
claus
parents:
diff changeset
   224
    wStream cr.
claus
parents:
diff changeset
   225
    histLines do: [:hl |
claus
parents:
diff changeset
   226
       wStream nextPutAll:  hl printString; cr.
claus
parents:
diff changeset
   227
    ].
claus
parents:
diff changeset
   228
claus
parents:
diff changeset
   229
    ^wStream contents.
claus
parents:
diff changeset
   230
claus
parents:
diff changeset
   231
    "Modified: 11.08.1995 / 16:51:50 / robert"
claus
parents:
diff changeset
   232
!
claus
parents:
diff changeset
   233
claus
parents:
diff changeset
   234
getAllHistoriesFrom:someString
claus
parents:
diff changeset
   235
    "returns anArray of HistoryLines"
claus
parents:
diff changeset
   236
claus
parents:
diff changeset
   237
    |position aReadWriteStream firstFound nextFound  aHistoryString rcOC |
claus
parents:
diff changeset
   238
claus
parents:
diff changeset
   239
    "read begining from the end and look there for the first comment character. If there's none return"
claus
parents:
diff changeset
   240
claus
parents:
diff changeset
   241
    rcOC := OrderedCollection new.
claus
parents:
diff changeset
   242
    position := someString size.
claus
parents:
diff changeset
   243
    firstFound := false.
claus
parents:
diff changeset
   244
    nextFound := false.
claus
parents:
diff changeset
   245
claus
parents:
diff changeset
   246
    someString reverseDo:[ :aChar|
claus
parents:
diff changeset
   247
	position := position - 1.
claus
parents:
diff changeset
   248
	aChar = $" ifTrue:[
claus
parents:
diff changeset
   249
	    firstFound ifTrue:[
claus
parents:
diff changeset
   250
		firstFound := false.
claus
parents:
diff changeset
   251
		nextFound := true.
claus
parents:
diff changeset
   252
	    ] ifFalse:[
claus
parents:
diff changeset
   253
		aReadWriteStream := ReadWriteStream on: String new.
claus
parents:
diff changeset
   254
		firstFound := true.
claus
parents:
diff changeset
   255
		nextFound := false.
claus
parents:
diff changeset
   256
	    ].
claus
parents:
diff changeset
   257
	].
claus
parents:
diff changeset
   258
	(firstFound and: [nextFound not]) ifTrue:[
claus
parents:
diff changeset
   259
	    "now collect all up to the next comment character"
claus
parents:
diff changeset
   260
	    aChar = $" ifFalse:[     
claus
parents:
diff changeset
   261
		aReadWriteStream nextPut: aChar.
claus
parents:
diff changeset
   262
	    ].
claus
parents:
diff changeset
   263
	].
claus
parents:
diff changeset
   264
	nextFound ifTrue:[
claus
parents:
diff changeset
   265
	    "End reached - now try to make a HistoryLine"
claus
parents:
diff changeset
   266
	    aHistoryString := (aReadWriteStream contents) reverse.
claus
parents:
diff changeset
   267
	    "
claus
parents:
diff changeset
   268
		Transcript showCr: aHistoryString.
claus
parents:
diff changeset
   269
	    "
claus
parents:
diff changeset
   270
	    (aHistoryString startsWith: 'Modified:') ifTrue:[
claus
parents:
diff changeset
   271
		"a history line was found - now make a NewInstance of HistoryLine"
claus
parents:
diff changeset
   272
		rcOC add: ( HistoryLine fromString: aHistoryString at: position).
claus
parents:
diff changeset
   273
	    ].
claus
parents:
diff changeset
   274
	    nextFound := false.
claus
parents:
diff changeset
   275
	].
claus
parents:
diff changeset
   276
    ].
claus
parents:
diff changeset
   277
claus
parents:
diff changeset
   278
    ^rcOC reverse  "the OrderedCollection with HistoryLines in the right order"
claus
parents:
diff changeset
   279
claus
parents:
diff changeset
   280
claus
parents:
diff changeset
   281
    "Modified: 21.12.93 / 18:32:30 / M.Noell"
claus
parents:
diff changeset
   282
    "Modified: 09.08.95 / 22:45:30 / R.Sailer"
claus
parents:
diff changeset
   283
!
claus
parents:
diff changeset
   284
claus
parents:
diff changeset
   285
update: something with: someArgument from: changedObject
claus
parents:
diff changeset
   286
claus
parents:
diff changeset
   287
    "public - sent by an Event (smoething contains aSymbol or nil)"
claus
parents:
diff changeset
   288
claus
parents:
diff changeset
   289
    | sourceCode aMethod fileInOrRecompiling |
claus
parents:
diff changeset
   290
claus
parents:
diff changeset
   291
"/    changedObject == self ifTrue:[  "for development only"
claus
parents:
diff changeset
   292
"/        self halt.
claus
parents:
diff changeset
   293
"/        ^self.
claus
parents:
diff changeset
   294
"/    ].
claus
parents:
diff changeset
   295
    fileInOrRecompiling := Class updatingChanges.
claus
parents:
diff changeset
   296
claus
parents:
diff changeset
   297
    changedObject isMeta ifTrue:[
claus
parents:
diff changeset
   298
	Transcript showCr: 'metaClass = ',  changedObject printString.
claus
parents:
diff changeset
   299
    ].
claus
parents:
diff changeset
   300
claus
parents:
diff changeset
   301
    (changedObject == Smalltalk) & (something == #newClass) ifTrue:[
claus
parents:
diff changeset
   302
	someArgument addDependent: self.
claus
parents:
diff changeset
   303
	someArgument class  addDependent: self.   "for class methods"
claus
parents:
diff changeset
   304
    ].
claus
parents:
diff changeset
   305
claus
parents:
diff changeset
   306
    fileInOrRecompiling ifFalse:[ 
claus
parents:
diff changeset
   307
	Transcript showCr: '* noChange in history'. 
claus
parents:
diff changeset
   308
	^self 
claus
parents:
diff changeset
   309
    ].
claus
parents:
diff changeset
   310
claus
parents:
diff changeset
   311
    "
claus
parents:
diff changeset
   312
    Class Variables
claus
parents:
diff changeset
   313
    "
claus
parents:
diff changeset
   314
    (something == #definition) ifTrue:[
claus
parents:
diff changeset
   315
	"hier die gesamt behandlung fuer Klassen"        
claus
parents:
diff changeset
   316
    ].
claus
parents:
diff changeset
   317
claus
parents:
diff changeset
   318
    "this is a sub item of #definition"    
claus
parents:
diff changeset
   319
    (something == #classVariables) ifTrue:[
claus
parents:
diff changeset
   320
	"
claus
parents:
diff changeset
   321
	Transcript showCr: 'classVariables changed'.
claus
parents:
diff changeset
   322
	"
claus
parents:
diff changeset
   323
" das geht noch nicht, weil in someArgument nicht die Klasse steh die das betrifft"
claus
parents:
diff changeset
   324
	sourceCode := changedObject sourceCodeAt: #history.
claus
parents:
diff changeset
   325
	sourceCode isNil ifTrue:[
claus
parents:
diff changeset
   326
	    "method has not been created"
claus
parents:
diff changeset
   327
"/            Transcript showCr: 'method class-history has not been created'.
claus
parents:
diff changeset
   328
	] ifFalse:[
claus
parents:
diff changeset
   329
	    aMethod := changedObject compiledMethodAt: #history.
claus
parents:
diff changeset
   330
	    sourceCode := self addHistoryTo:sourceCode.
claus
parents:
diff changeset
   331
	    aMethod source: sourceCode.
claus
parents:
diff changeset
   332
	    "
claus
parents:
diff changeset
   333
	    Transcript showCr: 'history updated / added'.
claus
parents:
diff changeset
   334
	    "
claus
parents:
diff changeset
   335
	    ^self
claus
parents:
diff changeset
   336
	].
claus
parents:
diff changeset
   337
    ].    
claus
parents:
diff changeset
   338
claus
parents:
diff changeset
   339
    "
claus
parents:
diff changeset
   340
    New Class creation
claus
parents:
diff changeset
   341
    "
claus
parents:
diff changeset
   342
claus
parents:
diff changeset
   343
    ((changedObject == Smalltalk)and:[ (something == #newClass)]) ifTrue:[
claus
parents:
diff changeset
   344
	" self in die Dependents eintragen damit die notification bei den Methoden kommt."
claus
parents:
diff changeset
   345
	someArgument addDependent: self.
claus
parents:
diff changeset
   346
	someArgument history: (self addHistoryTo:String new).  "append historyString for new class"
claus
parents:
diff changeset
   347
    ].
claus
parents:
diff changeset
   348
claus
parents:
diff changeset
   349
    "
claus
parents:
diff changeset
   350
    Instance Handling
claus
parents:
diff changeset
   351
    "
claus
parents:
diff changeset
   352
claus
parents:
diff changeset
   353
    changedObject isBehavior ifTrue:[
claus
parents:
diff changeset
   354
	something = #methodDictionary ifTrue:[
claus
parents:
diff changeset
   355
	    "SourceString der Methode holen"
claus
parents:
diff changeset
   356
	    sourceCode := changedObject sourceCodeAt: someArgument.
claus
parents:
diff changeset
   357
	    sourceCode isNil ifTrue:[
claus
parents:
diff changeset
   358
		"method has been deleted"
claus
parents:
diff changeset
   359
		Transcript showCr: 'method has been deleted'.
claus
parents:
diff changeset
   360
	    ] ifFalse:[
claus
parents:
diff changeset
   361
		aMethod := changedObject compiledMethodAt: someArgument.
claus
parents:
diff changeset
   362
		sourceCode := self addHistoryTo:sourceCode.
claus
parents:
diff changeset
   363
		aMethod source: sourceCode.
claus
parents:
diff changeset
   364
		"
claus
parents:
diff changeset
   365
		Transcript showCr: 'history updated / added'.
claus
parents:
diff changeset
   366
		"
claus
parents:
diff changeset
   367
	    ].
claus
parents:
diff changeset
   368
	    ^self
claus
parents:
diff changeset
   369
	]. 
claus
parents:
diff changeset
   370
claus
parents:
diff changeset
   371
	something == #comment ifTrue:[
claus
parents:
diff changeset
   372
	    "in someArgument steht jetzt der alte kommentar"
claus
parents:
diff changeset
   373
	    ^self.
claus
parents:
diff changeset
   374
	] ifFalse:[
claus
parents:
diff changeset
   375
	    "it is a class definition"
claus
parents:
diff changeset
   376
	    Transcript show: 'Class definition: ', changedObject printString;cr.
claus
parents:
diff changeset
   377
	    sourceCode := changedObject sourceCodeAt: #history.
claus
parents:
diff changeset
   378
	    sourceCode isNil ifTrue:[
claus
parents:
diff changeset
   379
		"method has not been created"
claus
parents:
diff changeset
   380
		Transcript showCr: 'method class-history has not been created'.
claus
parents:
diff changeset
   381
	    ] ifFalse:[
claus
parents:
diff changeset
   382
		aMethod := changedObject compiledMethodAt: #history.
claus
parents:
diff changeset
   383
claus
parents:
diff changeset
   384
		sourceCode := self addHistoryTo:sourceCode.
claus
parents:
diff changeset
   385
		aMethod source: sourceCode.
claus
parents:
diff changeset
   386
claus
parents:
diff changeset
   387
		"
claus
parents:
diff changeset
   388
		Transcript showCr: 'history updated / added'.
claus
parents:
diff changeset
   389
		"
claus
parents:
diff changeset
   390
	    ].
claus
parents:
diff changeset
   391
	].
claus
parents:
diff changeset
   392
    ].
claus
parents:
diff changeset
   393
claus
parents:
diff changeset
   394
    ^self
claus
parents:
diff changeset
   395
claus
parents:
diff changeset
   396
    "Modified: 15.08.1995 / 18:31:36 / robert"
claus
parents:
diff changeset
   397
! !
claus
parents:
diff changeset
   398
claus
parents:
diff changeset
   399
HistoryManager initialize!