OSDN Git Service

upgrade to 3.6.1
[jnethack/source.git] / sys / share / pctty.c
1 /* NetHack 3.6  pctty.c $NHDT-Date: 1432512787 2015/05/25 00:13:07 $  $NHDT-Branch: master $:$NHDT-Revision: 1.11 $ */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /*-Copyright (c) Michael Allison, 2005. */
4 /* NetHack may be freely redistributed.  See license for details. */
5
6 /* tty.c - (PC) version */
7
8 #define NEED_VARARGS /* Uses ... */ /* comment line for pre-compiled headers \
9                                        */
10 #include "hack.h"
11 #include "wintty.h"
12
13 char erase_char, kill_char;
14
15 /*
16  * Get initial state of terminal, set ospeed (for termcap routines)
17  * and switch off tab expansion if necessary.
18  * Called by startup() in termcap.c and after returning from ! or ^Z
19  */
20 void
21 gettty()
22 {
23     erase_char = '\b';
24     kill_char = 21; /* cntl-U */
25     iflags.cbreak = TRUE;
26 #if !defined(TOS)
27     disable_ctrlP(); /* turn off ^P processing */
28 #endif
29 #if defined(MSDOS) && defined(NO_TERMS)
30     gr_init();
31 #endif
32 }
33
34 /* reset terminal to original state */
35 void
36 settty(s)
37 const char *s;
38 {
39 #if defined(MSDOS) && defined(NO_TERMS)
40     gr_finish();
41 #endif
42     end_screen();
43     if (s)
44         raw_print(s);
45 #if !defined(TOS)
46     enable_ctrlP(); /* turn on ^P processing */
47 #endif
48 }
49
50 /* called by init_nhwindows() and resume_nhwindows() */
51 void
52 setftty()
53 {
54     start_screen();
55 }
56
57 #if defined(TIMED_DELAY) && defined(_MSC_VER)
58 void
59 msleep(mseconds)
60 unsigned mseconds;
61 {
62     /* now uses clock() which is ANSI C */
63     clock_t goal;
64
65     goal = mseconds + clock();
66     while (goal > clock()) {
67         /* do nothing */
68     }
69 }
70 #endif
71
72 /* fatal error */
73 /*VARARGS1*/
74
75 void error
76 VA_DECL(const char *, s)
77 {
78     VA_START(s);
79     VA_INIT(s, const char *);
80     /* error() may get called before tty is initialized */
81     if (iflags.window_inited)
82         end_screen();
83     putchar('\n');
84     Vprintf(s, VA_ARGS);
85     putchar('\n');
86     VA_END();
87     exit(EXIT_FAILURE);
88 }
89
90 /*pctty.c*/