/* NetHack 3.6 pctty.c $NHDT-Date: 1432512787 2015/05/25 00:13:07 $ $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2005. */ /* NetHack may be freely redistributed. See license for details. */ /* tty.c - (PC) version */ #define NEED_VARARGS /* Uses ... */ /* comment line for pre-compiled headers \ */ #include "hack.h" #include "wintty.h" char erase_char, kill_char; /* * Get initial state of terminal, set ospeed (for termcap routines) * and switch off tab expansion if necessary. * Called by startup() in termcap.c and after returning from ! or ^Z */ void gettty() { erase_char = '\b'; kill_char = 21; /* cntl-U */ iflags.cbreak = TRUE; #if !defined(TOS) disable_ctrlP(); /* turn off ^P processing */ #endif #if defined(MSDOS) && defined(NO_TERMS) gr_init(); #endif } /* reset terminal to original state */ void settty(s) const char *s; { #if defined(MSDOS) && defined(NO_TERMS) gr_finish(); #endif end_screen(); if (s) raw_print(s); #if !defined(TOS) enable_ctrlP(); /* turn on ^P processing */ #endif } /* called by init_nhwindows() and resume_nhwindows() */ void setftty() { start_screen(); } #if defined(TIMED_DELAY) && defined(_MSC_VER) void msleep(mseconds) unsigned mseconds; { /* now uses clock() which is ANSI C */ clock_t goal; goal = mseconds + clock(); while (goal > clock()) { /* do nothing */ } } #endif /* fatal error */ /*VARARGS1*/ void error VA_DECL(const char *, s) { VA_START(s); VA_INIT(s, const char *); /* error() may get called before tty is initialized */ if (iflags.window_inited) end_screen(); putchar('\n'); Vprintf(s, VA_ARGS); putchar('\n'); VA_END(); exit(EXIT_FAILURE); } /*pctty.c*/