Class.st
changeset 4744 c0a8ab60c9a3
parent 4743 11f9e45976cb
child 4752 84c4de5b3f64
--- a/Class.st	Fri Sep 17 12:59:00 1999 +0200
+++ b/Class.st	Fri Sep 17 13:34:48 1999 +0200
@@ -436,8 +436,7 @@
 !
 
 classFilename
-    "return the name of the file from which the class was compiled.
-     This is currently NOT used."
+    "return the name of the file from which the class was compiled."
 
     |owner|
 
@@ -3719,7 +3718,7 @@
 sourceStreamFor:source
     "return an open stream on a sourcefile, nil if that is not available"
 
-    |owner fileName aStream mgr validated|
+    |owner fileName aStream mgr validated guessedFileName|
 
     (owner := self owningClass) notNil ifTrue:[^ owner sourceStreamFor:source].
     validated := false.
@@ -3774,7 +3773,7 @@
 
         mgr notNil ifTrue:[
             classFilename isNil ifTrue:[
-                classFilename := (Smalltalk fileNameForClass:self) , '.st'.
+                classFilename := guessedFileName := (Smalltalk fileNameForClass:self) , '.st'.
             ].
             source asFilename baseName = classFilename asFilename baseName ifTrue:[
                 aStream := mgr getSourceStreamFor:self.
@@ -3814,6 +3813,11 @@
             ]
         ].
     ].
+    (aStream notNil and:[aStream isFileStream]) ifTrue:[
+        guessedFileName notNil ifTrue:[
+            classFilename := aStream pathName asFilename baseName.
+        ]
+    ].
     ^ aStream
 
     "
@@ -3981,5 +3985,5 @@
 !Class class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.354 1999-09-17 10:59:00 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.355 1999-09-17 11:34:48 cg Exp $'
 ! !