Class.st
changeset 302 1f76060d58a4
parent 295 14d0cf46c739
child 314 7581a5c57224
--- a/Class.st	Tue Mar 07 22:55:20 1995 +0100
+++ b/Class.st	Thu Mar 09 00:40:27 1995 +0100
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
 	      All Rights Reserved
 
-$Header: /cvs/stx/stx/libbasic/Class.st,v 1.36 1995-03-06 20:59:19 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Class.st,v 1.37 1995-03-08 23:37:23 claus Exp $
 '!
 
 !Class class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libbasic/Class.st,v 1.36 1995-03-06 20:59:19 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Class.st,v 1.37 1995-03-08 23:37:23 claus Exp $
 "
 !
 
@@ -960,6 +960,22 @@
     ]
 !
 
+writingChangePerform:aSelector with:anArgument
+    |aStream|
+
+    aStream := self changesStream.
+    aStream notNil ifTrue:[
+	FileStream writeErrorSignal handle:[:ex |
+	    self warning:('could not update the changes-file\\' , ex errorString) withCRs.
+	    ex return
+	] do:[
+	    self perform:aSelector with:anArgument with:aStream.
+	    aStream cr.
+	].
+	aStream close
+    ]
+!
+
 addChangeRecordForMethod:aMethod to:aStream
     "append a method-change-record to aStream"
 
@@ -1032,7 +1048,7 @@
     aStream nextPut:(aStream class chunkSeparator).
 !
 
-addChangeRecordForChangeCategoryTo:aStream
+addChangeRecordForChangeCategory:category to:aStream
     "append a category change record to aStream"
 
     self printClassNameOn:aStream.
@@ -1060,9 +1076,8 @@
 addChangeRecordForMethod:aMethod
     "add a method-change-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForMethod:aMethod to:aStream.
-
+    UpdatingChanges ifTrue:[
+	self writingChangePerform:#addChangeRecordForMethod:to: with:aMethod.
 	"this test allows a smalltalk without Projects/ChangeSets"
 	Project notNil ifTrue:[
 	    Project addMethodChange:aMethod in:self
@@ -1073,16 +1088,16 @@
 addChangeRecordForRemoveSelector:aSelector
     "add a method-remove-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForRemoveSelector:aSelector to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForRemoveSelector:to: with:aSelector.
 !
 
 addChangeRecordForMethodCategory:aMethod category:aString
     "add a methodCategory-change-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForMethodCategory:aMethod category:aString to:aStream.
+    UpdatingChanges ifTrue:[
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForMethodCategory:aMethod category:aString to:aStream.
+	].
 
 	"this test allows a smalltalk without Projects/ChangeSets"
 	Project notNil ifTrue:[
@@ -1094,65 +1109,57 @@
 addChangeRecordForClass:aClass
     "add a class-definition-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClass:aClass to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClass:to: with:aClass.
 !
 
 addChangeRecordForClassInstvars:aClass
     "add a class-instvars-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassInstvars:aClass to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClassInstvars:to: with:aClass.
 !
 
 addChangeRecordForClassComment:aClass
     "add a class-comment-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassComment:aClass to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClassComment:to: with:aClass.
 !
 
 addChangeRecordForClassRename:oldName to:newName
     "add a class-rename-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassRename:oldName to:newName to:aStream
+    UpdatingChanges ifTrue:[
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForClassRename:oldName to:newName to:aStream
+	]
     ]
 !
 
 addChangeRecordForClassRemove:oldName
     "add a class-remove-record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForClassRemove:oldName to:aStream
-    ]
+    self writingChangePerform:#addChangeRecordForClassRemove:to: with:oldName.
 !
 
 addChangeRecordForRenameCategory:oldCategory to:newCategory
     "add a category-rename record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForRenameCategory:oldCategory to:newCategory to:aStream.
+    UpdatingChanges ifTrue:[
+	self writingChangeDo:[:aStream |
+	    self addChangeRecordForRenameCategory:oldCategory to:newCategory to:aStream.
+	]
     ]
 !
 
 addChangeRecordForChangeCategory
     "add a category change record to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addChangeRecordForChangeCategoryTo:aStream.
-    ]
+    self writingChangePerform:#addChangeRecordForChangeCategory:to: with:category.
 !
 
 addInfoRecord:aMessage
     "add an info-record (snapshot, class fileOut etc.) to the changes file"
 
-    self writingChangeDo:[:aStream |
-	self addInfoRecord:aMessage to:aStream 
-    ]
+    self writingChangePerform:#addInfoRecord:to: with:aMessage.
 !
 
 addChangeRecordForSnapshot:aFileName