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 ]. |