1 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ 2 /* hack.ioctl.c - version 1.0.2 */ 3 /* $FreeBSD: src/games/hack/hack.ioctl.c,v 1.2 1999/09/12 07:01:23 marcel Exp $ 4 $DragonFly: src/games/hack/hack.ioctl.c,v 1.3 2004/11/06 12:29:17 eirikn Exp $ 5 6 This cannot be part of hack.tty.c (as it was earlier) since on some 7 systems (e.g. MUNIX) the include files <termio.h> and <sgtty.h> 8 define the same constants, and the C preprocessor complains. */ 9 #include <stdio.h> 10 #include "config.h" 11 #ifdef BSD 12 #include <sgtty.h> 13 struct ltchars ltchars, ltchars0; 14 #else 15 #include <termio.h> /* also includes part of <sgtty.h> */ 16 struct termio termio; 17 #endif /* BSD */ 18 19 getioctls() { 20 #ifdef BSD 21 (void) ioctl(fileno(stdin), (int) TIOCGLTC, (char *) <chars); 22 (void) ioctl(fileno(stdin), (int) TIOCSLTC, (char *) <chars0); 23 #else 24 (void) ioctl(fileno(stdin), (int) TCGETA, &termio); 25 #endif /* BSD */ 26 } 27 28 setioctls() { 29 #ifdef BSD 30 (void) ioctl(fileno(stdin), (int) TIOCSLTC, (char *) <chars); 31 #else 32 (void) ioctl(fileno(stdin), (int) TCSETA, &termio); 33 #endif /* BSD */ 34 } 35 36 #ifdef SUSPEND /* implies BSD */ 37 #include <signal.h> 38 dosuspend() { 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