void
nhwindows_hangup()
{
+ char *FDECL((*previnterface_getmsghistory), (BOOLEAN_P)) = 0;
+
/* don't call exit_nhwindows() directly here; if a hangup occurs
while interface code is executing, exit_nhwindows could knock
the interface's active data structures out from under itself */
if (iflags.window_inited &&
windowprocs.win_exit_nhwindows != hup_exit_nhwindows)
previnterface_exit_nhwindows = windowprocs.win_exit_nhwindows;
+
+ /* also, we have to leave the old interface's getmsghistory()
+ in place because it will be called while saving the game */
+ if (windowprocs.win_getmsghistory != hup_procs.win_getmsghistory)
+ previnterface_getmsghistory = windowprocs.win_getmsghistory;
+
windowprocs = hup_procs;
+
+ if (previnterface_getmsghistory)
+ windowprocs.win_getmsghistory = previnterface_getmsghistory;
}
static void