PositionableStream.st
changeset 2893 8ba406da6b22
parent 2559 c1e87dd81a13
child 2966 856dfc8a294a
--- a/PositionableStream.st	Thu Aug 28 04:44:08 1997 +0200
+++ b/PositionableStream.st	Tue Sep 02 19:40:57 1997 +0200
@@ -10,6 +10,8 @@
  hereby transferred.
 "
 
+'From Smalltalk/X, Version:3.1.9 on 31-aug-1997 at 8:08:34 pm'                  !
+
 PeekableStream subclass:#PositionableStream
 	instanceVariableNames:'collection position readLimit writeLimit'
 	classVariableNames:'ErrorDuringFileInSignal ChunkSeparator'
@@ -426,108 +428,95 @@
      return the value of the last chunk.
      Someone (which is usually some codeView) is notified of errors."
 
-    |lastValue queries pkg spc spaces
+    |lastValue pkg spc spaces
      packageQuerySignal nameSpaceQuerySignal usedNameSpaceQuerySignal|
 
     packageQuerySignal := Class packageQuerySignal.
     nameSpaceQuerySignal := Class nameSpaceQuerySignal.
     usedNameSpaceQuerySignal := Class usedNameSpaceQuerySignal.
 
-    queries := SignalSet with:packageQuerySignal
-                         with:nameSpaceQuerySignal
-                         with:usedNameSpaceQuerySignal.
+    (someone respondsTo:#packageToInstall) ifFalse:[
+        pkg := packageQuerySignal raise.
+    ] ifTrue:[
+        pkg := someone packageToInstall
+    ].
+    (someone respondsTo:#currentNameSpace) ifFalse:[
+        spc := nameSpaceQuerySignal raise.
+    ] ifTrue:[
+        spc := someone currentNameSpace
+    ].
+    (someone respondsTo:#usedNameSpaces) ifFalse:[
+        spaces := usedNameSpaceQuerySignal raise.
+    ] ifTrue:[
+        spaces := someone usedNameSpaces
+    ].
+    packageQuerySignal answer:pkg
+    do:[
+        usedNameSpaceQuerySignal answer:spaces
+        do:[
+            nameSpaceQuerySignal answer:spc
+            do:[
+                |methodRedefinitionSignal|
+
+                methodRedefinitionSignal := Class methodRedefinitionSignal.
+
+                "
+                 catch any errors during fileIn 
+                 - offer debug/abort/continue choice
+                "
+                ErrorSignal handle:[:ex |
+                    |action what sender msg param oldPackage newPackage|
 
-    queries handle:[:ex |
-        ex signal == packageQuerySignal ifTrue:[
-            pkg isNil ifTrue:[
-                (someone respondsTo:#packageToInstall) ifFalse:[
-                    pkg := packageQuerySignal raise.
-                ] ifTrue:[
-                    pkg := someone packageToInstall
-                ].
-            ].
-            ex proceedWith:pkg
-        ].
-        ex signal == nameSpaceQuerySignal ifTrue:[
-            spc isNil ifTrue:[
-                (someone respondsTo:#currentNameSpace) ifFalse:[
-                    spc := nameSpaceQuerySignal raise.
-                ] ifTrue:[
-                    spc := someone currentNameSpace
-                ].
-            ].
-            ex proceedWith:spc
-        ].
-        ex signal == usedNameSpaceQuerySignal ifTrue:[
-            spaces isNil ifTrue:[
-                (someone respondsTo:#usedNameSpaces) ifFalse:[
-                    spaces := usedNameSpaceQuerySignal raise.
-                ] ifTrue:[
-                    spaces := someone usedNameSpaces
+                    "/ for your convenience ...
+                    ex signal == methodRedefinitionSignal ifTrue:[
+                        param := ex parameter. "/ an association: oldMethod -> newMethod
+                        oldPackage := param key package.
+                        newPackage := param value package.
+                        msg := 'trying to overwrite method:\\    %1\\in package ''' 
+                               , oldPackage , ''' with method from package ''' , newPackage , ''''
+                    ] ifFalse:[
+                        msg := 'error in fileIn: %1'
+                    ].
+
+                    what := ex errorString.
+                    what isNil ifTrue:[
+                        what := ex signal notifierString.
+                    ].
+
+                    "/ handle the case where no GUI has been built in,
+                    "/ just abort the fileIn with a notification
+
+                    Display isNil ifTrue:[
+                        sender := ex suspendedContext sender.
+                        self notify:(what , 
+                                     ' in ' , sender receiver class name ,
+                                     '>>>' , sender selector).
+                        ex return
+                    ].
+
+                    "/ otherwise ask what should be done now and either
+                    "/ continue or abort the fileIn
+
+                    action := self askForDebug:(msg bindWith:what) withCRs.
+                    action == #continue ifTrue:[
+                        ex proceed
+                    ].
+                    action == #abort ifTrue:[
+                        ex return
+                    ].
+                    (ex signal) enterDebuggerWith:ex message:what.
+                    ex reject
+                ] do:[
+                    [self atEnd] whileFalse:[
+                        lastValue := self fileInNextChunkNotifying:someone passChunk:passChunk
+                    ]
                 ].
             ].
-            ex proceedWith:spaces
-        ].
-    ] do:[
-        |methodRedefinitionSignal|
-
-        methodRedefinitionSignal := Class methodRedefinitionSignal.
-
-        "
-         catch any errors during fileIn 
-         - offer debug/abort/continue choice
-        "
-        ErrorSignal handle:[:ex |
-            |action what sender msg param oldPackage newPackage|
-
-            "/ for your convenience ...
-            ex signal == methodRedefinitionSignal ifTrue:[
-                param := ex parameter. "/ an association: oldMethod -> newMethod
-                oldPackage := param key package.
-                newPackage := param value package.
-                msg := 'trying to overwrite method:\\    %1\\in package ''' 
-                       , oldPackage , ''' with method from package ''' , newPackage , ''''
-            ] ifFalse:[
-                msg := 'error in fileIn: %1'
-            ].
-
-            what := ex errorString.
-            what isNil ifTrue:[
-                what := ex signal notifierString.
-            ].
-
-            "/ handle the case where no GUI has been built in,
-            "/ just abort the fileIn with a notification
-
-            Display isNil ifTrue:[
-                sender := ex suspendedContext sender.
-                self notify:(what , 
-                             ' in ' , sender receiver class name ,
-                             '>>>' , sender selector).
-                ex return
-            ].
-
-            "/ otherwise ask what should be done now and either
-            "/ continue or abort the fileIn
-
-            action := self askForDebug:(msg bindWith:what) withCRs.
-            action == #continue ifTrue:[
-                ex proceed
-            ].
-            action == #abort ifTrue:[
-                ex return
-            ].
-            (ex signal) enterDebuggerWith:ex message:what.
-            ex reject
-        ] do:[
-            [self atEnd] whileFalse:[
-                lastValue := self fileInNextChunkNotifying:someone passChunk:passChunk
-            ]
         ].
     ].
     ^ lastValue
 
-    "Modified: 20.12.1996 / 00:00:13 / cg"
+    "Modified: 31.8.1997 / 07:39:53 / cg"
 ! !
 
 !PositionableStream methodsFor:'positioning'!
@@ -720,6 +709,6 @@
 !PositionableStream class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.56 1997-04-18 14:30:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.57 1997-09-02 17:40:11 cg Exp $'
 ! !
 PositionableStream initialize!