home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / src / perl / h2pl / cbreak.pl next >
Text File  |  1992-04-11  |  574b  |  35 lines

  1. $sgttyb_t   = 'C4 S';
  2.  
  3. sub cbreak {
  4.     &set_cbreak(1);
  5. }
  6.  
  7. sub cooked {
  8.     &set_cbreak(0);
  9. }
  10.  
  11. sub set_cbreak {
  12.     local($on) = @_;
  13.  
  14.     require 'sizeof.ph';
  15.     require 'sys/ioctl.ph';
  16.  
  17.     ioctl(STDIN,&TIOCGETP,$sgttyb)
  18.         || die "Can't ioctl TIOCGETP: $!";
  19.  
  20.     @ary = unpack($sgttyb_t,$sgttyb);
  21.     if ($on) {
  22.         $ary[4] |= &CBREAK;
  23.         $ary[4] &= ~&ECHO;
  24.     } else {
  25.         $ary[4] &= ~&CBREAK;
  26.         $ary[4] |= &ECHO;
  27.     }
  28.     $sgttyb = pack($sgttyb_t,@ary);
  29.     ioctl(STDIN,&TIOCSETP,$sgttyb)
  30.             || die "Can't ioctl TIOCSETP: $!";
  31.  
  32. }
  33.  
  34. 1;
  35.