xref: /netbsd/games/hack/hack.ioctl.c (revision bf9ec67e)
1 /*	$NetBSD: hack.ioctl.c,v 1.6 1997/10/19 16:58:07 christos Exp $	*/
2 
3 /*
4  * Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985.
5  */
6 
7 #include <sys/cdefs.h>
8 #ifndef lint
9 __RCSID("$NetBSD: hack.ioctl.c,v 1.6 1997/10/19 16:58:07 christos Exp $");
10 #endif				/* not lint */
11 
12 /*
13  * This cannot be part of hack.tty.c (as it was earlier) since on some
14  * systems (e.g. MUNIX) the include files <termio.h> and <sgtty.h> define the
15  * same constants, and the C preprocessor complains.
16  */
17 #include <termios.h>
18 #include "hack.h"
19 #include "extern.h"
20 struct termios  termios;
21 
22 void
23 getioctls()
24 {
25 	(void) tcgetattr(fileno(stdin), &termios);
26 }
27 
28 void
29 setioctls()
30 {
31 	(void) tcsetattr(fileno(stdin), TCSADRAIN, &termios);
32 }
33 
34 #ifdef SUSPEND			/* implies BSD */
35 #include	<signal.h>
36 int
37 dosuspend()
38 {
39 #ifdef SIGTSTP
40 	if (signal(SIGTSTP, SIG_IGN) == SIG_DFL) {
41 		settty((char *) 0);
42 		(void) signal(SIGTSTP, SIG_DFL);
43 		(void) kill(0, SIGTSTP);
44 		gettty();
45 		setftty();
46 		docrt();
47 	} else {
48 		pline("I don't think your shell has job control.");
49 	}
50 #else	/* SIGTSTP */
51 	pline("Sorry, it seems we have no SIGTSTP here. Try ! or S.");
52 #endif				/* SIGTSTP */
53 	return (0);
54 }
55 #endif				/* SUSPEND */
56