PositionableStream.st
changeset 4325 a342aa8ff8c7
parent 4118 c43e3a30b8b4
child 4405 247058206089
equal deleted inserted replaced
4324:9b4b8ace862d 4325:a342aa8ff8c7
   510     handledSignals add:(Object errorSignal).
   510     handledSignals add:(Object errorSignal).
   511     handledSignals add:(Class methodRedefinitionSignal).
   511     handledSignals add:(Class methodRedefinitionSignal).
   512     handledSignals add:(Class classRedefinitionSignal).
   512     handledSignals add:(Class classRedefinitionSignal).
   513     handledSignals add:confirmationQuerySignal.
   513     handledSignals add:confirmationQuerySignal.
   514     handledSignals handle:[:ex |
   514     handledSignals handle:[:ex |
   515         |sig action what sender msg param oldPackage newPackage|
   515         |sig action what sender msg param oldPackage newPackage proceedValue|
   516 
   516 
   517         sig := ex signal.
   517         sig := ex signal.
   518         sig == changeDefaultApplicationNotificationSignal ifTrue:[
   518         sig == changeDefaultApplicationNotificationSignal ifTrue:[
   519             "/ invoked via #becomeDefault to set the defaultApp and the package.
   519             "/ invoked via #becomeDefault to set the defaultApp and the package.
   520             "/ (only when filing in V'Age code)
   520             "/ (only when filing in V'Age code)
   557         (sig == Class methodRedefinitionSignal) ifTrue:[
   557         (sig == Class methodRedefinitionSignal) ifTrue:[
   558             param := ex parameter. "/ an association: oldMethod -> newMethod
   558             param := ex parameter. "/ an association: oldMethod -> newMethod
   559             oldPackage := param key package.
   559             oldPackage := param key package.
   560             newPackage := param value package.
   560             newPackage := param value package.
   561             msg := 'trying to overwrite method:\\    %1\\in package ''' 
   561             msg := 'trying to overwrite method:\\    %1\\in package ''' 
   562                    , oldPackage , ''' with method from package ''' , newPackage , ''''
   562                    , oldPackage , ''' with method from package ''' , newPackage , ''''.
       
   563             proceedValue := #keep.
   563         ] ifFalse:[
   564         ] ifFalse:[
   564             (sig == Class classRedefinitionSignal) ifTrue:[
   565             (sig == Class classRedefinitionSignal) ifTrue:[
   565                 param := ex parameter. "/ an association: oldClass -> newClass
   566                 param := ex parameter. "/ an association: oldClass -> newClass
   566                 oldPackage := param key package.
   567                 oldPackage := param key package.
   567                 newPackage := param value package.
   568                 newPackage := param value package.
   568                 msg := 'trying to redefine class:\\    %1\\in package ''' 
   569                 msg := 'trying to redefine class:\\    %1\\in package ''' 
   569                        , oldPackage , ''' with new definition from package ''' , newPackage , ''''
   570                        , oldPackage , ''' with new definition from package ''' , newPackage , ''''.
       
   571                 proceedValue := #keep.
   570             ] ifFalse:[
   572             ] ifFalse:[
   571                 msg := 'error in fileIn: %1'
   573                 msg := 'error in fileIn: %1'
   572             ]
   574             ]
   573         ].
   575         ].
   574 
   576 
   598         "/ otherwise ask what should be done now and either
   600         "/ otherwise ask what should be done now and either
   599         "/ continue or abort the fileIn
   601         "/ continue or abort the fileIn
   600 
   602 
   601         action := self askForDebug:msg withCRs.
   603         action := self askForDebug:msg withCRs.
   602         action == #continue ifTrue:[
   604         action == #continue ifTrue:[
   603             ex proceed
   605             proceedValue notNil ifTrue:[
       
   606                 ex proceedWith:proceedValue
       
   607             ] ifFalse:[
       
   608                 ex proceed
       
   609             ]
   604         ].
   610         ].
   605         action == #abort ifTrue:[
   611         action == #abort ifTrue:[
   606             AbortSignal raise.
   612             AbortSignal raise.
   607             ex return
   613             ex return
   608         ].
   614         ].
   864 ! !
   870 ! !
   865 
   871 
   866 !PositionableStream class methodsFor:'documentation'!
   872 !PositionableStream class methodsFor:'documentation'!
   867 
   873 
   868 version
   874 version
   869     ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.73 1999-04-23 17:24:50 cg Exp $'
   875     ^ '$Header: /cvs/stx/stx/libbasic/PositionableStream.st,v 1.74 1999-06-29 10:20:25 cg Exp $'
   870 ! !
   876 ! !
   871 PositionableStream initialize!
   877 PositionableStream initialize!