Converted to use termios, not sgtty. (pbetti@e-tech.net)

This commit is contained in:
dtrg 2005-08-10 22:48:40 +00:00
parent 26889d3762
commit 4fdd9b83fc

View file

@ -12,7 +12,9 @@
*/
#include <stdio.h>
#include <assert.h>
#include <sgtty.h>
/*#include <sgtty.h>*/
#include <termios.h>
#include <unistd.h>
#include <signal.h>
#include <out.h>
@ -26,8 +28,10 @@ char hex[] = "0123456789ABCDEF";
char *progname;
struct sgttyb ttynormal;
struct sgttyb ttyraw;
/*struct sgttyb ttynormal;
struct sgttyb ttyraw;*/
struct termios ttynormal;
struct termios ttyraw;
int rawmode = 0;
struct outhead ohead;
@ -35,7 +39,8 @@ struct outsect sect[MAXSECT];
stop(code) {
if (rawmode)
stty(1, &ttynormal);
/*stty(1, &ttynormal);*/
tcsetattr(1, TCSAFLUSH, &ttynormal);
exit(code);
}
@ -81,16 +86,22 @@ main(argc,argv) char **argv; {
signal(SIGINT, SIG_IGN);
signal(SIGQUIT, stop);
signal(SIGTERM, stop);
if (gtty(1, &ttynormal) < 0) {
/*if (gtty(1, &ttynormal) < 0) {*/
if (tcgetattr(1, &ttynormal) < 0) {
fprintf(stderr, "no tty\n");
stop(-1);
}
rawmode++;
ttyraw = ttynormal;
/*
ttyraw.sg_flags |= RAW;
ttyraw.sg_ispeed = B1200;
ttyraw.sg_ospeed = B1200;
stty(1, &ttyraw);
*/
cfmakeraw(&ttyraw);
cfsetispeed(&ttyraw, B1200);
cfsetospeed(&ttyraw, B1200);
sleep(5);
}
rd_ohead(&ohead);