home *** CD-ROM | disk | FTP | other *** search
- $sgttyb_t = 'C4 S';
-
- sub cbreak {
- &set_cbreak(1);
- }
-
- sub cooked {
- &set_cbreak(0);
- }
-
- sub set_cbreak {
- local($on) = @_;
-
- require 'sizeof.ph';
- require 'sys/ioctl.ph';
-
- ioctl(STDIN,&TIOCGETP,$sgttyb)
- || die "Can't ioctl TIOCGETP: $!";
-
- @ary = unpack($sgttyb_t,$sgttyb);
- if ($on) {
- $ary[4] |= &CBREAK;
- $ary[4] &= ~&ECHO;
- } else {
- $ary[4] &= ~&CBREAK;
- $ary[4] |= &ECHO;
- }
- $sgttyb = pack($sgttyb_t,@ary);
- ioctl(STDIN,&TIOCSETP,$sgttyb)
- || die "Can't ioctl TIOCSETP: $!";
-
- }
-
- 1;
-