try harder to extract some source info (module & directory)
authorClaus Gittinger <cg@exept.de>
Wed, 08 Jan 1997 13:53:02 +0100
changeset 530 d27016ae003f
parent 529 3fcaac638b26
child 531 b0d7a291474d
try harder to extract some source info (module & directory)
HTMLDocGenerator.st
--- a/HTMLDocGenerator.st	Sun Jan 05 20:26:07 1997 +0100
+++ b/HTMLDocGenerator.st	Wed Jan 08 13:53:02 1997 +0100
@@ -305,14 +305,18 @@
      collectionOfCategories collectionOfClassCategories 
      revInfo pckgInfo subs refLines demoLines
      backHRef authorLines first wasLoaded didLoadBin
-     privateClasses owner className metaClass shortName shortMetaName|
+     privateClasses owner className metaClass shortName shortMetaName
+     text path|
 
     (wasLoaded := aClass isLoaded) ifFalse:[
         "/ load it - but not a binary
         didLoadBin := Smalltalk loadBinaries.
         Smalltalk loadBinaries:false.
-        aClass autoload.
-        didLoadBin ifTrue:[Smalltalk loadBinaries:true].
+        [
+            aClass autoload.
+        ] valueNowOrOnUnwindDo:[
+            didLoadBin ifTrue:[Smalltalk loadBinaries:true].
+        ]
     ].
 
     owner := aClass owningClass.
@@ -643,29 +647,7 @@
           nextPutAll:'<a INFO="show documentation of ' , owner nameWithoutPrefix , '" href="../misc/onlyInSTX2.html" action="html:' , self name , ' htmlDocOf:' , owner name , '">' , owner nameWithoutPrefix , '</A>';
           nextPutLine:'</b>'.
     ] ifFalse:[
-        revInfo := aClass revisionInfo.
-        pckgInfo := aClass packageSourceCodeInfo.
-
-        s nextPutLine:'<dl><dt><a name="VERSION"><b>Version:</b></A>'.
-
-        (revInfo isNil and:[pckgInfo isNil]) ifTrue:[
-            s nextPutLine:'<dd>no revision info'.
-        ] ifFalse:[
-            revInfo isNil ifTrue:[revInfo := IdentityDictionary new].
-            pckgInfo isNil ifTrue:[pckgInfo := IdentityDictionary new].
-
-            s nextPutLine:'<dd>rev: <b>'.
-            s nextPutLine:(revInfo at:#revision ifAbsent:'?').
-            s nextPutLine:'</b> date: <b>' ,  (revInfo at:#date ifAbsent:'')
-                                     , ' ', (revInfo at:#time ifAbsent:'') , '</b>'.
-            s nextPutLine:'<dd>user: <b>' , (revInfo at:#user ifAbsent:'?') , '</b>'.
-            s nextPutAll:'<dd>file: <b>' , (revInfo at:#fileName ifAbsent:'?').
-            s nextPutLine:'</b> directory: <b>' , (pckgInfo at:#directory ifAbsent:'?') , '</b>'.
-
-            s nextPutLine:'<dd>module: <b>' , (pckgInfo at:#module ifAbsent:'?')
-                                 , '</b>  classLibrary: <b>' ,  (pckgInfo at:#library ifAbsent:'?') , '</b>'.
-
-        ].
+        self htmlRevisionDocOf:aClass to:s.
     ].
     s nextPutLine:'</dl>'.
 
@@ -837,7 +819,7 @@
     "
 
     "Created: 24.4.1996 / 15:01:59 / cg"
-    "Modified: 30.12.1996 / 19:10:05 / cg"
+    "Modified: 8.1.1997 / 13:43:53 / cg"
 !
 
 htmlDocOf:aClass backRef:backRef
@@ -887,6 +869,70 @@
     "Modified: 9.11.1996 / 00:34:30 / cg"
 !
 
+htmlRevisionDocOf:aClass to:s
+    |revInfo pckgInfo text path|
+
+    revInfo := aClass revisionInfo.
+    pckgInfo := aClass packageSourceCodeInfo.
+
+    s nextPutLine:'<dl><dt><a name="VERSION"><b>Version:</b></A>'.
+
+    (revInfo isNil and:[pckgInfo isNil]) ifTrue:[
+        s nextPutLine:'<dd>no revision info'.
+    ] ifFalse:[
+
+        revInfo isNil ifTrue:[revInfo := IdentityDictionary new].
+        pckgInfo isNil ifTrue:[pckgInfo := IdentityDictionary new].
+
+        s nextPutLine:'<dd>rev: <b>'.
+
+        "/ fetch the revision-info; prefer revisionInfo
+        text := revInfo at:#revision ifAbsent:(pckgInfo at:#revision ifAbsent:'?').
+        s nextPutLine:text.
+
+        "/ fetch the date & time; prefer revisionInfo
+        text := revInfo at:#date ifAbsent:(pckgInfo at:#date ifAbsent:'?').
+        s nextPutAll:'</b> date: <b>' ,  text.
+        text := revInfo at:#time ifAbsent:(pckgInfo at:#time ifAbsent:'?').
+        s nextPutLine:' ', text , '</b>'.
+
+        text := revInfo at:#user ifAbsent:(pckgInfo at:#user ifAbsent:'?').
+        s nextPutLine:'<dd>user: <b>' , text , '</b>'.
+
+        text := revInfo at:#fileName ifAbsent:(pckgInfo at:#fileNamer ifAbsent:'?').
+        s nextPutAll:'<dd>file: <b>' , text.
+
+        text := revInfo at:#directory ifAbsent:(pckgInfo at:#directory ifAbsent:nil).
+        text isNil ifTrue:[
+            path := revInfo at:#repositoryPathName ifAbsent:(pckgInfo at:#repositoryPathName ifAbsent:nil).
+            path notNil ifTrue:[
+                text := SourceCodeManager directoryFromContainerPath:path.
+                text isNil ifTrue:[text := '?'].
+            ] ifFalse:[
+                text := '?'
+            ]
+        ].
+        s nextPutLine:'</b> directory: <b>' , text , '</b>'.
+
+        text := revInfo at:#module ifAbsent:(pckgInfo at:#module ifAbsent:nil).
+        text isNil ifTrue:[
+            path := revInfo at:#repositoryPathName ifAbsent:(pckgInfo at:#repositoryPathName ifAbsent:nil).
+            path notNil ifTrue:[
+                text := SourceCodeManager moduleFromContainerPath:path.
+                text isNil ifTrue:[text := '?'].
+            ] ifFalse:[
+                text := '?'
+            ]
+        ].
+        s nextPutAll:'<dd>module: <b>' , text.
+
+        text := revInfo at:#library ifAbsent:(pckgInfo at:#library ifAbsent:'*none*').
+        s nextPutLine:'</b> stc-classLibrary: <b>' ,  text , '</b>'.
+    ].
+
+    "Created: 8.1.1997 / 13:43:28 / cg"
+!
+
 htmlSelectorList
     |selectors|
 
@@ -1406,5 +1452,5 @@
 !HTMLDocGenerator class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/HTMLDocGenerator.st,v 1.9 1997-01-05 19:14:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/HTMLDocGenerator.st,v 1.10 1997-01-08 12:53:02 cg Exp $'
 ! !