diff --git a/src/lib/direct.cpp b/src/lib/direct.cpp index 358342271..0e47ef7c2 100644 --- a/src/lib/direct.cpp +++ b/src/lib/direct.cpp @@ -595,7 +595,7 @@ int get_controlling_tty(FILE* ttyfp){ static int ncdirect_stop_minimal(void* vnc){ ncdirect* nc = static_cast(vnc); - int ret = 0; + int ret = drop_signals(nc); if(nc->tcache.op && term_emit("op", nc->tcache.op, nc->ttyfp, true)){ ret = -1; } @@ -681,6 +681,7 @@ err: tcsetattr(ret->ctermfd, TCSANOW, &ret->tpreserved); } } + drop_signals(ret); delete(ret); return nullptr; } diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index 375de48f7..50fc95002 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -58,8 +58,7 @@ reset_term_attributes(notcurses* nc){ static int notcurses_stop_minimal(void* vnc){ notcurses* nc = vnc; - int ret = 0; - drop_signals(nc); + int ret = drop_signals(nc); // be sure to write the restoration sequences *prior* to running rmcup, as // they apply to the screen (alternate or otherwise) we're actually using. ret |= reset_term_attributes(nc);