int comfd=0; /* Communication file descriptor. Defaults to stdin. */
char msg[STRINGL]; /* Massage messages here */
int preturn,returns[MAXGOSUBS];
-@@ -926,7 +926,7 @@ void setcom(void) {
+@@ -172,7 +172,7 @@ void dotestkey(void) {
+
+ /* Exit after resetting terminal settings */
+ void ext(long xtc) {
+- ioctl(1, TCSETA, &cons);
++ ioctl(1, TCSETS, &cons);
+ exit(xtc);
+ }
+
+@@ -920,24 +920,24 @@ BOOL getonoroff(void) {
+ void setcom(void) {
+ stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB);
+ stbuf.c_cflag |= (speed | bits | CREAD | clocal | parity | stopbits );
+- if (ioctl(comfd, TCSETA, &stbuf) < 0) {
++ if (ioctl(comfd, TCSETS, &stbuf) < 0) {
+ serror("Can't ioctl set device",1);
+ }
}
void doset(void) {
int a,b;
gettoken();
if(strcmp(token,"echo")==0) {
+ a=0;
+ if(getonoroff()) a=ECHO|ECHOE;
+- if(ioctl(0, TCGETA, &console)<0) {
++ if(ioctl(0, TCGETS, &console)<0) {
+ serror("Can't ioctl FD zero!\n",2);
+ }
+ console.c_lflag &= ~(ECHO | ECHOE);
+ console.c_lflag |= a;
+- ioctl(0, TCSETA, &console);
++ ioctl(0, TCSETS, &console);
+ }
+ else if(strcmp(token,"senddelay")==0) {
+ senddelay=10000L*getdvalue();
+@@ -1224,7 +1224,7 @@ void doclose(void) {
+ if(strcmp(token,"hardcom")==0) {
+ if(comfd== -1) serror("Com device not open",1);
+ vmsg("Closing device");
+- if (ioctl(comfd, TCSETA, &svbuf) < 0) {
++ if (ioctl(comfd, TCSETS, &svbuf) < 0) {
+ sprintf(msg,"Can't ioctl set device %s.\n",device);
+ serror(msg,1);
+ }
+@@ -1266,12 +1266,12 @@ void opengt(void) {
+ ext(1);
+ }
+ }
+- if (ioctl (comfd, TCGETA, &svbuf) < 0) {
++ if (ioctl (comfd, TCGETS, &svbuf) < 0) {
+ sprintf(msg,"Can't control %s, please try again.\n",device);
+ serror(msg,1);
+ }
+ setenv("COMGTDEVICE",device,1);
+- ioctl(comfd, TCGETA, &stbuf);
++ ioctl(comfd, TCGETS, &stbuf);
+ speed=stbuf.c_cflag & CBAUD;
+ if (high_speed == 0) strcpy(cspeed,"115200");
+ else strcpy(cspeed,"57600");
+@@ -1303,11 +1303,11 @@ void opendevice(void) {
+ }
+ else comfd=0;
+
+- if (ioctl (comfd, TCGETA, &svbuf) < 0) {
++ if (ioctl (comfd, TCGETS, &svbuf) < 0) {
+ sprintf(msg,"Can't ioctl get device %s.\n",device);
+ serror(msg,1);
+ }
+- ioctl(comfd, TCGETA, &stbuf);
++ ioctl(comfd, TCGETS, &stbuf);
+ speed=stbuf.c_cflag & CBAUD;
+ switch(speed) {
+ case B0: strcpy(cspeed,"0");break;
+@@ -1553,7 +1553,7 @@ int main(int argc,char **argv) {
+ skip_default=0;
+ filep=NULL;
+ scriptspace=4096;
+- ioctl(1, TCGETA, &cons);
++ ioctl(1, TCGETS, &cons);
+ if((script=( char *)malloc(scriptspace))==NULL) {
+ serror("Could not malloc()",3);
+ }
void setcom(void) {
stbuf.c_cflag &= ~(CBAUD | CSIZE | CSTOPB | CLOCAL | PARENB);
stbuf.c_cflag |= (speed | bits | CREAD | clocal | parity | stopbits );
-- if (ioctl(comfd, TCSETA, &stbuf) < 0) {
-+ if (tty && ioctl(comfd, TCSETA, &stbuf) < 0) {
+- if (ioctl(comfd, TCSETS, &stbuf) < 0) {
++ if (tty && ioctl(comfd, TCSETS, &stbuf) < 0) {
serror("Can't ioctl set device",1);
}
}
if(strcmp(token,"hardcom")==0) {
if(comfd== -1) serror("Com device not open",1);
vmsg("Closing device");
-- if (ioctl(comfd, TCSETA, &svbuf) < 0) {
-+ if (tty && ioctl(comfd, TCSETA, &svbuf) < 0) {
+- if (ioctl(comfd, TCSETS, &svbuf) < 0) {
++ if (tty && ioctl(comfd, TCSETS, &svbuf) < 0) {
sprintf(msg,"Can't ioctl set device %s.\n",device);
serror(msg,1);
}
ext(1);
}
}
-- if (ioctl (comfd, TCGETA, &svbuf) < 0) {
+- if (ioctl (comfd, TCGETS, &svbuf) < 0) {
+ if (isatty (comfd))
+ tty=1;
+ else
+ tty=0;
-+ if (tty && ioctl (comfd, TCGETA, &svbuf) < 0) {
++ if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
sprintf(msg,"Can't control %s, please try again.\n",device);
serror(msg,1);
}
setenv("COMGTDEVICE",device,1);
-- ioctl(comfd, TCGETA, &stbuf);
+- ioctl(comfd, TCGETS, &stbuf);
+ if (tty)
-+ ioctl(comfd, TCGETA, &stbuf);
++ ioctl(comfd, TCGETS, &stbuf);
speed=stbuf.c_cflag & CBAUD;
if (high_speed == 0) strcpy(cspeed,"115200");
else strcpy(cspeed,"57600");
}
else comfd=0;
-
-- if (ioctl (comfd, TCGETA, &svbuf) < 0) {
+- if (ioctl (comfd, TCGETS, &svbuf) < 0) {
+ if (isatty (comfd))
+ tty=1;
+ else
+ tty=0;
-+ if (tty && ioctl (comfd, TCGETA, &svbuf) < 0) {
++ if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
sprintf(msg,"Can't ioctl get device %s.\n",device);
serror(msg,1);
}
-- ioctl(comfd, TCGETA, &stbuf);
+- ioctl(comfd, TCGETS, &stbuf);
+ if (tty)
-+ ioctl(comfd, TCGETA, &stbuf);
++ ioctl(comfd, TCGETS, &stbuf);
speed=stbuf.c_cflag & CBAUD;
switch(speed) {
case B0: strcpy(cspeed,"0");break;