diff --git a/utils/main.c b/utils/main.c index 55988732..06e06c7d 100644 --- a/utils/main.c +++ b/utils/main.c @@ -770,6 +770,12 @@ mainInitAfterArgs() return 0; } +void tcl_exit_hook(ClientData clientData) +{ + TxResetTerminal(); + exit(0); +} + /* * ---------------------------------------------------------------------------- * mainInitFinal: @@ -794,6 +800,9 @@ mainInitFinal() char *rname; int result; + /* Reset terminal if exit is called inside a TCL script */ + Tcl_SetExitProc(tcl_exit_hook); + #ifdef MAGIC_WRAPPER /* Read in system pre-startup file, if it exists. */ @@ -1187,6 +1196,8 @@ mainInitFinal() UndoFlush(); TxClearPoint(); + Tcl_SetExitProc(NULL); + return 0; }