changed to no longer depend on all classes,
but catch Smalltalk changes instead.
1000 WeakArrays less than before.
--- a/HistMgr.st Wed Jan 08 13:53:02 1997 +0100
+++ b/HistMgr.st Thu Jan 09 02:29:05 1997 +0100
@@ -12,7 +12,7 @@
"
Object subclass:#HistoryManager
- instanceVariableNames:'historyMode'
+ instanceVariableNames:'historyMode fullHistoryUpdate'
classVariableNames:'TheOneAndOnlyInstance'
poolDictionaries:''
category:'System-Changes-History'
@@ -50,6 +50,10 @@
The HistoryManager can be turned off via the Launcher menu.
+ claus:
+ I changed things to avoid depending on every class in the system.
+ Now also catch Smalltalk change messages, related to class changes.
+
[author:]
Robert Sailer - AEG
@@ -142,17 +146,14 @@
|mgr|
mgr := TheOneAndOnlyInstance.
- Smalltalk allClassesDo:[:aClass |
- aClass removeDependent:mgr.
- aClass class removeDependent:mgr.
- ].
+ mgr releaseDependencies.
TheOneAndOnlyInstance := nil.
"
HistoryManager deactivate
"
- "Modified: 20.4.1996 / 20:31:53 / cg"
+ "Modified: 8.1.1997 / 23:09:08 / cg"
! !
!HistoryManager class methodsFor:'change & update'!
@@ -268,6 +269,24 @@
!HistoryManager methodsFor:'accessing'!
+fullHistoryUpdate
+ "return the fullHistoryUpdate;
+ if true, the classes history method is also updated."
+
+ ^ fullHistoryUpdate
+
+ "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
+fullHistoryUpdate:aBoolean
+ "set the fullHistoryUpdate;
+ if true, the classes history method is also updated."
+
+ fullHistoryUpdate := aBoolean.
+
+ "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
historyMode
"return historyMode"
@@ -284,6 +303,190 @@
"Modified: 11.08.1995 / 16:52:12 / robert"
! !
+!HistoryManager methodsFor:'change & update'!
+
+update:something with:someArgument from:changedObject
+ "arrive here, whenever any class changed somehow.
+ (something contains aSymbol describing what happened)"
+
+ |sourceCode newMethod fileInOrRecompiling selector oldMethod what
+ changedClass whatChange|
+
+ "/
+ "/ no action, if disabled
+ "/
+ historyMode ifFalse:[
+ ^ self
+ ].
+
+ "/
+ "/ no action, if changeFile update is locked
+ "/ (since then, this may be a recompile or fileIn)
+ "/
+ fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
+ fileInOrRecompiling ifFalse:[
+"/ Transcript showCR: '* noChange in history'.
+ ^ self
+ ].
+
+ "
+ definition, instance / classVariables of a class have changed
+ "
+ (something == #definition) ifTrue:[
+ "/ it is a class definition that has changed
+ "/ add a line to the history method; if present
+
+"/ Transcript show: 'Class definition: ', changedClass printString;cr.
+ fullHistoryUpdate == true ifTrue:[
+ self addHistory:#modification toHistoryMethodOf:changedClass.
+ ].
+ ^ self
+ ].
+
+ "this is a sub item of #definition"
+ (something == #classVariables) ifTrue:[
+ "/
+ "/ Transcript showCR: 'classVariables changed'.
+ "/
+
+ "/ does not yet work;
+ "/ (someArgument does not contain the class we are interested in)
+
+ fullHistoryUpdate == true ifTrue:[
+ self addHistory:#modification toHistoryMethodOf:changedObject.
+ ].
+ ^ self
+ ].
+
+ "/
+ "/ new Class creation
+ "/
+ ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
+ "/
+ "/ add myself as dependents in order to get future change notifications
+ "/
+ fullHistoryUpdate == true ifTrue:[
+ self createHistoryMethodFor:someArgument.
+ self addHistory:#creation toHistoryMethodOf:someArgument.
+ ].
+
+ "/ claus: old implementation
+
+"/ someArgument addDependent: self.
+"/ someArgument class addDependent: self. "for class methods"
+
+ ^ self
+ ].
+
+ "/ changed methods
+ "/ for backward compatibility, still handle the
+ "/ classes own change notification.
+ "/ (only if I am a dependent of all classes)
+
+ changedObject isBehavior ifTrue:[
+ changedClass := changedObject.
+
+ something == #methodDictionary ifTrue:[
+ whatChange := #methodDictionary.
+
+ someArgument isArray ifTrue:[
+ selector := someArgument at:1.
+ oldMethod := someArgument at:2
+ ] ifFalse:[
+ selector := someArgument
+ ].
+ ].
+
+ something == #methodInClassRemoved ifTrue:[
+ ^ self.
+ ].
+
+ something == #comment ifTrue:[
+ whatChange := #comment.
+ ].
+ ].
+
+ "/ the new mechanism; I only need to depend upon
+ "/ Smalltalk, to get all method changes
+
+ (changedObject == Smalltalk
+ and:[something == #methodInClass]) ifTrue:[
+ changedClass := someArgument at:1.
+ selector := someArgument at:2.
+ oldMethod := someArgument at:3.
+ whatChange := #methodDictionary.
+ ].
+
+ changedClass notNil ifTrue:[
+ whatChange == #methodDictionary ifTrue:[
+ "/ ok; it is a changed method
+
+ "/
+ "/ fetch sourceString of the method
+ "/
+ sourceCode := changedClass sourceCodeAt:selector.
+ sourceCode isNil ifTrue:[
+ "method has been deleted"
+"/ Transcript showCR: 'method has been deleted'.
+ ] ifFalse:[
+ newMethod := changedClass compiledMethodAt:selector.
+
+ oldMethod notNil ifTrue:[
+ (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
+ "/ no change (accepted same code again ?)
+ ^ self
+ ].
+ ].
+
+ "/
+ "/ dont add historylines to documentation methods ...
+ "/
+ (changedClass isMeta not
+ or:[newMethod category ~= 'documentation']) ifTrue:[
+ oldMethod notNil ifTrue:[
+ what := #modification
+ ] ifFalse:[
+ what := #creation
+ ].
+
+ "/
+ "/ update the history line-comment in
+ "/ the methods source
+ "/
+
+ sourceCode := self addHistory:what to:sourceCode.
+ newMethod source: sourceCode.
+"/ Transcript showCR: 'history updated / added'.
+ ]
+ ].
+ ^self
+ ].
+
+ whatChange == #comment ifTrue:[
+ "the classes comment - we are no longer interrested in that one"
+
+ ^ self.
+ ].
+
+ whatChange == #classDefinition ifTrue:[
+ "/ it is a class definition that has changed
+ "/ add a line to the history method; if present
+
+"/ Transcript show: 'Class definition: ', changedClass printString;cr.
+ fullHistoryUpdate == true ifTrue:[
+ self addHistory:#modification toHistoryMethodOf:changedClass.
+ ].
+ ^self
+ ].
+ ].
+"/ Transcript show: 'unhandled change: ', something printString;cr.
+
+ ^self
+
+ "Modified: 27.8.1995 / 02:14:43 / claus"
+ "Modified: 9.1.1997 / 02:27:28 / cg"
+! !
+
!HistoryManager methodsFor:'initialization'!
exclude
@@ -308,21 +511,48 @@
super initialize.
historyMode := true.
+ fullHistoryUpdate := false.
exclusionlist := self exclude.
- Smalltalk allClassesDo:[:aClass|
- "all classes should send a notification if changed"
- "aClass = self " false ifFalse: [
- (exclusionlist includes: aClass) ifFalse:[
- aClass addDependent: self.
- aClass class addDependent: self. "for class methods"
- ].
- ].
- ].
+ "/ old implementation:
+ "/ made myself a dependent of all classes ...
+
+"/ Smalltalk allClassesDo:[:aClass|
+"/ "all classes should send a notification if changed"
+"/ "aClass = self " false ifFalse: [
+"/ (exclusionlist includes: aClass) ifFalse:[
+"/ aClass addDependent: self.
+"/ aClass class addDependent: self. "for class methods"
+"/ ].
+"/ ].
+"/ ].
+
+ "/ old implementation:
+ "/ Smalltalk also sends class-change notifications ...
+
+ Smalltalk addDependent:self.
^self
- "Modified: 11.08.1995 / 17:12:51 / robert"
+ "Modified: 11.8.1995 / 17:12:51 / robert"
+ "Modified: 8.1.1997 / 23:07:14 / cg"
+!
+
+releaseDependencies
+ "no longer depend on class changes"
+
+ "/ old implementation:
+ "/ made myself a dependent of all classes ...
+
+"/ Smalltalk allClassesDo:[:aClass |
+"/ aClass removeDependent:self.
+"/ aClass class removeDependent:self.
+"/ ].
+
+ "/ new implementation:
+ "/ Smalltalk also sends class-change notifications ...
+
+ Smalltalk removeDependent:self.
! !
!HistoryManager methodsFor:'updateHistory'!
@@ -426,135 +656,11 @@
].
"Modified: 14.10.1996 / 16:58:20 / cg"
-!
-
-update:something with:someArgument from:changedObject
- "arrive here, whenever any class changed somehow.
- (something contains aSymbol describing what happened)"
-
- | sourceCode newMethod fileInOrRecompiling selector oldMethod what|
-
-"/ changedObject == self ifTrue:[ "for development only"
-"/ self halt.
-"/ ^self.
-"/ ].
-
- fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
-
-"/ changedObject isMeta ifTrue:[
-"/ Transcript showCR: 'metaClass = ', changedObject printString.
-"/ ].
-
- fileInOrRecompiling ifFalse:[
-"/ Transcript showCR: '* noChange in history'.
- ^ self
- ].
- historyMode ifFalse:[
- ^ self
- ].
-
- "
- Class Variables
- "
- (something == #definition) ifTrue:[
- "add handling for classes here ..."
- "/ self addHistory:#modification toHistoryMethodOf:changedObject.
- ].
-
- "this is a sub item of #definition"
- (something == #classVariables) ifTrue:[
- "/
- "/ Transcript showCR: 'classVariables changed'.
- "/
-
- "/ does not yet work;
- "/ (someArgument does not contain the class we are interested in)
-
- self addHistory:#modification toHistoryMethodOf:changedObject.
- ^ self
- ].
-
- "/
- "/ new Class creation
- "/
- ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
- "/
- "/ add myself as dependents in order to get future change notifications
- "/
- self createHistoryMethodFor:someArgument.
- self addHistory:#creation toHistoryMethodOf:someArgument.
-
- someArgument addDependent: self.
- someArgument class addDependent: self. "for class methods"
- ^ self
- ].
-
- "/
- "/ changed methods
- "/
- changedObject isBehavior ifTrue:[
- something = #methodDictionary ifTrue:[
- someArgument isArray ifTrue:[
- selector := someArgument at:1.
- oldMethod := someArgument at:2
- ] ifFalse:[
- selector := someArgument
- ].
-
- "/
- "/ fetch sourceString of the method
- "/
- sourceCode := changedObject sourceCodeAt:selector.
- sourceCode isNil ifTrue:[
- "method has been deleted"
-"/ Transcript showCR: 'method has been deleted'.
- ] ifFalse:[
- newMethod := changedObject compiledMethodAt:selector.
-
- oldMethod notNil ifTrue:[
- (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
- "/ no change (accepted same code again ?)
- ^ self
- ].
- ].
-
- "/
- "/ dont add historylines to documentation methods ...
- "/
- (changedObject isMeta not
- or:[newMethod category ~= 'documentation']) ifTrue:[
- oldMethod notNil ifTrue:[
- what := #modification
- ] ifFalse:[
- what := #creation
- ].
- sourceCode := self addHistory:what to:sourceCode.
- newMethod source: sourceCode.
-"/ Transcript showCR: 'history updated / added'.
- ]
- ].
- ^self
- ].
-
- something == #comment ifTrue:[
- "in someArgument steht jetzt der alte kommentar"
- ^ self.
- ] ifFalse:[
- "it is a class definition"
-"/ Transcript show: 'Class definition: ', changedObject printString;cr.
- self addHistory:#modification toHistoryMethodOf:changedObject.
- ].
- ].
-
- ^self
-
- "Modified: 27.8.1995 / 02:14:43 / claus"
- "Modified: 12.10.1996 / 20:47:40 / cg"
! !
!HistoryManager class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/Attic/HistMgr.st,v 1.33 1996-11-08 23:50:58 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/Attic/HistMgr.st,v 1.34 1997-01-09 01:29:05 cg Exp $'
! !
HistoryManager initialize!
--- a/HistoryManager.st Wed Jan 08 13:53:02 1997 +0100
+++ b/HistoryManager.st Thu Jan 09 02:29:05 1997 +0100
@@ -12,7 +12,7 @@
"
Object subclass:#HistoryManager
- instanceVariableNames:'historyMode'
+ instanceVariableNames:'historyMode fullHistoryUpdate'
classVariableNames:'TheOneAndOnlyInstance'
poolDictionaries:''
category:'System-Changes-History'
@@ -50,6 +50,10 @@
The HistoryManager can be turned off via the Launcher menu.
+ claus:
+ I changed things to avoid depending on every class in the system.
+ Now also catch Smalltalk change messages, related to class changes.
+
[author:]
Robert Sailer - AEG
@@ -142,17 +146,14 @@
|mgr|
mgr := TheOneAndOnlyInstance.
- Smalltalk allClassesDo:[:aClass |
- aClass removeDependent:mgr.
- aClass class removeDependent:mgr.
- ].
+ mgr releaseDependencies.
TheOneAndOnlyInstance := nil.
"
HistoryManager deactivate
"
- "Modified: 20.4.1996 / 20:31:53 / cg"
+ "Modified: 8.1.1997 / 23:09:08 / cg"
! !
!HistoryManager class methodsFor:'change & update'!
@@ -268,6 +269,24 @@
!HistoryManager methodsFor:'accessing'!
+fullHistoryUpdate
+ "return the fullHistoryUpdate;
+ if true, the classes history method is also updated."
+
+ ^ fullHistoryUpdate
+
+ "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
+fullHistoryUpdate:aBoolean
+ "set the fullHistoryUpdate;
+ if true, the classes history method is also updated."
+
+ fullHistoryUpdate := aBoolean.
+
+ "Modified: 11.08.1995 / 16:52:12 / robert"
+!
+
historyMode
"return historyMode"
@@ -284,6 +303,190 @@
"Modified: 11.08.1995 / 16:52:12 / robert"
! !
+!HistoryManager methodsFor:'change & update'!
+
+update:something with:someArgument from:changedObject
+ "arrive here, whenever any class changed somehow.
+ (something contains aSymbol describing what happened)"
+
+ |sourceCode newMethod fileInOrRecompiling selector oldMethod what
+ changedClass whatChange|
+
+ "/
+ "/ no action, if disabled
+ "/
+ historyMode ifFalse:[
+ ^ self
+ ].
+
+ "/
+ "/ no action, if changeFile update is locked
+ "/ (since then, this may be a recompile or fileIn)
+ "/
+ fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
+ fileInOrRecompiling ifFalse:[
+"/ Transcript showCR: '* noChange in history'.
+ ^ self
+ ].
+
+ "
+ definition, instance / classVariables of a class have changed
+ "
+ (something == #definition) ifTrue:[
+ "/ it is a class definition that has changed
+ "/ add a line to the history method; if present
+
+"/ Transcript show: 'Class definition: ', changedClass printString;cr.
+ fullHistoryUpdate == true ifTrue:[
+ self addHistory:#modification toHistoryMethodOf:changedClass.
+ ].
+ ^ self
+ ].
+
+ "this is a sub item of #definition"
+ (something == #classVariables) ifTrue:[
+ "/
+ "/ Transcript showCR: 'classVariables changed'.
+ "/
+
+ "/ does not yet work;
+ "/ (someArgument does not contain the class we are interested in)
+
+ fullHistoryUpdate == true ifTrue:[
+ self addHistory:#modification toHistoryMethodOf:changedObject.
+ ].
+ ^ self
+ ].
+
+ "/
+ "/ new Class creation
+ "/
+ ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
+ "/
+ "/ add myself as dependents in order to get future change notifications
+ "/
+ fullHistoryUpdate == true ifTrue:[
+ self createHistoryMethodFor:someArgument.
+ self addHistory:#creation toHistoryMethodOf:someArgument.
+ ].
+
+ "/ claus: old implementation
+
+"/ someArgument addDependent: self.
+"/ someArgument class addDependent: self. "for class methods"
+
+ ^ self
+ ].
+
+ "/ changed methods
+ "/ for backward compatibility, still handle the
+ "/ classes own change notification.
+ "/ (only if I am a dependent of all classes)
+
+ changedObject isBehavior ifTrue:[
+ changedClass := changedObject.
+
+ something == #methodDictionary ifTrue:[
+ whatChange := #methodDictionary.
+
+ someArgument isArray ifTrue:[
+ selector := someArgument at:1.
+ oldMethod := someArgument at:2
+ ] ifFalse:[
+ selector := someArgument
+ ].
+ ].
+
+ something == #methodInClassRemoved ifTrue:[
+ ^ self.
+ ].
+
+ something == #comment ifTrue:[
+ whatChange := #comment.
+ ].
+ ].
+
+ "/ the new mechanism; I only need to depend upon
+ "/ Smalltalk, to get all method changes
+
+ (changedObject == Smalltalk
+ and:[something == #methodInClass]) ifTrue:[
+ changedClass := someArgument at:1.
+ selector := someArgument at:2.
+ oldMethod := someArgument at:3.
+ whatChange := #methodDictionary.
+ ].
+
+ changedClass notNil ifTrue:[
+ whatChange == #methodDictionary ifTrue:[
+ "/ ok; it is a changed method
+
+ "/
+ "/ fetch sourceString of the method
+ "/
+ sourceCode := changedClass sourceCodeAt:selector.
+ sourceCode isNil ifTrue:[
+ "method has been deleted"
+"/ Transcript showCR: 'method has been deleted'.
+ ] ifFalse:[
+ newMethod := changedClass compiledMethodAt:selector.
+
+ oldMethod notNil ifTrue:[
+ (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
+ "/ no change (accepted same code again ?)
+ ^ self
+ ].
+ ].
+
+ "/
+ "/ dont add historylines to documentation methods ...
+ "/
+ (changedClass isMeta not
+ or:[newMethod category ~= 'documentation']) ifTrue:[
+ oldMethod notNil ifTrue:[
+ what := #modification
+ ] ifFalse:[
+ what := #creation
+ ].
+
+ "/
+ "/ update the history line-comment in
+ "/ the methods source
+ "/
+
+ sourceCode := self addHistory:what to:sourceCode.
+ newMethod source: sourceCode.
+"/ Transcript showCR: 'history updated / added'.
+ ]
+ ].
+ ^self
+ ].
+
+ whatChange == #comment ifTrue:[
+ "the classes comment - we are no longer interrested in that one"
+
+ ^ self.
+ ].
+
+ whatChange == #classDefinition ifTrue:[
+ "/ it is a class definition that has changed
+ "/ add a line to the history method; if present
+
+"/ Transcript show: 'Class definition: ', changedClass printString;cr.
+ fullHistoryUpdate == true ifTrue:[
+ self addHistory:#modification toHistoryMethodOf:changedClass.
+ ].
+ ^self
+ ].
+ ].
+"/ Transcript show: 'unhandled change: ', something printString;cr.
+
+ ^self
+
+ "Modified: 27.8.1995 / 02:14:43 / claus"
+ "Modified: 9.1.1997 / 02:27:28 / cg"
+! !
+
!HistoryManager methodsFor:'initialization'!
exclude
@@ -308,21 +511,48 @@
super initialize.
historyMode := true.
+ fullHistoryUpdate := false.
exclusionlist := self exclude.
- Smalltalk allClassesDo:[:aClass|
- "all classes should send a notification if changed"
- "aClass = self " false ifFalse: [
- (exclusionlist includes: aClass) ifFalse:[
- aClass addDependent: self.
- aClass class addDependent: self. "for class methods"
- ].
- ].
- ].
+ "/ old implementation:
+ "/ made myself a dependent of all classes ...
+
+"/ Smalltalk allClassesDo:[:aClass|
+"/ "all classes should send a notification if changed"
+"/ "aClass = self " false ifFalse: [
+"/ (exclusionlist includes: aClass) ifFalse:[
+"/ aClass addDependent: self.
+"/ aClass class addDependent: self. "for class methods"
+"/ ].
+"/ ].
+"/ ].
+
+ "/ old implementation:
+ "/ Smalltalk also sends class-change notifications ...
+
+ Smalltalk addDependent:self.
^self
- "Modified: 11.08.1995 / 17:12:51 / robert"
+ "Modified: 11.8.1995 / 17:12:51 / robert"
+ "Modified: 8.1.1997 / 23:07:14 / cg"
+!
+
+releaseDependencies
+ "no longer depend on class changes"
+
+ "/ old implementation:
+ "/ made myself a dependent of all classes ...
+
+"/ Smalltalk allClassesDo:[:aClass |
+"/ aClass removeDependent:self.
+"/ aClass class removeDependent:self.
+"/ ].
+
+ "/ new implementation:
+ "/ Smalltalk also sends class-change notifications ...
+
+ Smalltalk removeDependent:self.
! !
!HistoryManager methodsFor:'updateHistory'!
@@ -426,135 +656,11 @@
].
"Modified: 14.10.1996 / 16:58:20 / cg"
-!
-
-update:something with:someArgument from:changedObject
- "arrive here, whenever any class changed somehow.
- (something contains aSymbol describing what happened)"
-
- | sourceCode newMethod fileInOrRecompiling selector oldMethod what|
-
-"/ changedObject == self ifTrue:[ "for development only"
-"/ self halt.
-"/ ^self.
-"/ ].
-
- fileInOrRecompiling := Class updateChangeFileQuerySignal raise.
-
-"/ changedObject isMeta ifTrue:[
-"/ Transcript showCR: 'metaClass = ', changedObject printString.
-"/ ].
-
- fileInOrRecompiling ifFalse:[
-"/ Transcript showCR: '* noChange in history'.
- ^ self
- ].
- historyMode ifFalse:[
- ^ self
- ].
-
- "
- Class Variables
- "
- (something == #definition) ifTrue:[
- "add handling for classes here ..."
- "/ self addHistory:#modification toHistoryMethodOf:changedObject.
- ].
-
- "this is a sub item of #definition"
- (something == #classVariables) ifTrue:[
- "/
- "/ Transcript showCR: 'classVariables changed'.
- "/
-
- "/ does not yet work;
- "/ (someArgument does not contain the class we are interested in)
-
- self addHistory:#modification toHistoryMethodOf:changedObject.
- ^ self
- ].
-
- "/
- "/ new Class creation
- "/
- ((changedObject == Smalltalk) and:[something == #newClass]) ifTrue:[
- "/
- "/ add myself as dependents in order to get future change notifications
- "/
- self createHistoryMethodFor:someArgument.
- self addHistory:#creation toHistoryMethodOf:someArgument.
-
- someArgument addDependent: self.
- someArgument class addDependent: self. "for class methods"
- ^ self
- ].
-
- "/
- "/ changed methods
- "/
- changedObject isBehavior ifTrue:[
- something = #methodDictionary ifTrue:[
- someArgument isArray ifTrue:[
- selector := someArgument at:1.
- oldMethod := someArgument at:2
- ] ifFalse:[
- selector := someArgument
- ].
-
- "/
- "/ fetch sourceString of the method
- "/
- sourceCode := changedObject sourceCodeAt:selector.
- sourceCode isNil ifTrue:[
- "method has been deleted"
-"/ Transcript showCR: 'method has been deleted'.
- ] ifFalse:[
- newMethod := changedObject compiledMethodAt:selector.
-
- oldMethod notNil ifTrue:[
- (oldMethod source asString withTabsExpanded = sourceCode asString withTabsExpanded) ifTrue:[
- "/ no change (accepted same code again ?)
- ^ self
- ].
- ].
-
- "/
- "/ dont add historylines to documentation methods ...
- "/
- (changedObject isMeta not
- or:[newMethod category ~= 'documentation']) ifTrue:[
- oldMethod notNil ifTrue:[
- what := #modification
- ] ifFalse:[
- what := #creation
- ].
- sourceCode := self addHistory:what to:sourceCode.
- newMethod source: sourceCode.
-"/ Transcript showCR: 'history updated / added'.
- ]
- ].
- ^self
- ].
-
- something == #comment ifTrue:[
- "in someArgument steht jetzt der alte kommentar"
- ^ self.
- ] ifFalse:[
- "it is a class definition"
-"/ Transcript show: 'Class definition: ', changedObject printString;cr.
- self addHistory:#modification toHistoryMethodOf:changedObject.
- ].
- ].
-
- ^self
-
- "Modified: 27.8.1995 / 02:14:43 / claus"
- "Modified: 12.10.1996 / 20:47:40 / cg"
! !
!HistoryManager class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/HistoryManager.st,v 1.33 1996-11-08 23:50:58 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/HistoryManager.st,v 1.34 1997-01-09 01:29:05 cg Exp $'
! !
HistoryManager initialize!