Home | History | Annotate | Line # | Download | only in hack
hack.ioctl.c revision 1.1.1.1
      1 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
      2 /* hack.ioctl.c - version 1.0.2 */
      3 
      4 /* This cannot be part of hack.tty.c (as it was earlier) since on some
      5    systems (e.g. MUNIX) the include files <termio.h> and <sgtty.h>
      6    define the same constants, and the C preprocessor complains. */
      7 #include <stdio.h>
      8 #include "config.h"
      9 #ifdef BSD
     10 #include	<sgtty.h>
     11 struct ltchars ltchars, ltchars0;
     12 #else
     13 #include	<termio.h>	/* also includes part of <sgtty.h> */
     14 struct termio termio;
     15 #endif BSD
     16 
     17 getioctls() {
     18 #ifdef BSD
     19 	(void) ioctl(fileno(stdin), (int) TIOCGLTC, (char *) &ltchars);
     20 	(void) ioctl(fileno(stdin), (int) TIOCSLTC, (char *) &ltchars0);
     21 #else
     22 	(void) ioctl(fileno(stdin), (int) TCGETA, &termio);
     23 #endif BSD
     24 }
     25 
     26 setioctls() {
     27 #ifdef BSD
     28 	(void) ioctl(fileno(stdin), (int) TIOCSLTC, (char *) &ltchars);
     29 #else
     30 	(void) ioctl(fileno(stdin), (int) TCSETA, &termio);
     31 #endif BSD
     32 }
     33 
     34 #ifdef SUSPEND		/* implies BSD */
     35 dosuspend() {
     36 #include	<signal.h>
     37 #ifdef SIGTSTP
     38 	if(signal(SIGTSTP, SIG_IGN) == SIG_DFL) {
     39 		settty((char *) 0);
     40 		(void) signal(SIGTSTP, SIG_DFL);
     41 		(void) kill(0, SIGTSTP);
     42 		gettty();
     43 		setftty();
     44 		docrt();
     45 	} else {
     46 		pline("I don't think your shell has job control.");
     47 	}
     48 #else SIGTSTP
     49 	pline("Sorry, it seems we have no SIGTSTP here. Try ! or S.");
     50 #endif SIGTSTP
     51 	return(0);
     52 }
     53 #endif SUSPEND
     54