X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=libsrc%2Fcommon%2Fraise.s;h=db96cdcd084fd9c6db6c5d3020a7ee69cfde3793;hb=4f6110604326357d378f373b917b92c7ad92997e;hp=753def8a89a2cb6365331aed4449ad51e8585113;hpb=c556f14e66f2ca4a7c154cac880c78be0b8a50ce;p=cc65 diff --git a/libsrc/common/raise.s b/libsrc/common/raise.s index 753def8a8..db96cdcd0 100644 --- a/libsrc/common/raise.s +++ b/libsrc/common/raise.s @@ -28,6 +28,15 @@ _raise: sta jmpvec+1 lda sigtable+1,x sta jmpvec+2 + +; Reset the signal handler to SIG_DFL (I don't like this because it may +; introduce race conditions, but it's the simplest way to satisfy the +; standard). + + lda #<__sig_dfl + sta sigtable,x + lda #>__sig_dfl + sta sigtable+1,x ; Restore the signal number and call the function @@ -42,3 +51,4 @@ _raise: invalidsig: rts +