--- 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!