home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / hack / 1 / src / ioctl.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-07-26  |  1.3 KB  |  54 lines

  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 *) <chars);
  20.     (void) ioctl(fileno(stdin), (int) TIOCSLTC, (char *) <chars0);
  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 *) <chars);
  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.