1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- --- a/comgt.c
- +++ b/comgt.c
- @@ -91,6 +91,7 @@ unsigned long hstart,hset;
- char NullString[]={ "" };
- BOOL lastcharnl=1; /* Indicate that last char printed from getonebyte
- was a nl, so no new one is needed */
- +BOOL tty=1;
-
-
- //"open com \"/dev/modem\"\nset com 38400n81\nset senddelay 0.05\nsend \"ATi^m\"\nget 2 \" ^m\" $s\nprint \"Response : \",$s,\"\\n\"\nget 2 \" ^m\" $s\nprint \"Response :\",$s,\"\\n\"\nget 2 \" ^m\" $s\nprint \"Response : \",$s,\"\\n\"\n\n";
- @@ -920,7 +921,7 @@ 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, TCSETS, &stbuf) < 0) {
- + if (tty && ioctl(comfd, TCSETS, &stbuf) < 0) {
- serror("Can't ioctl set device",1);
- }
- }
- @@ -1224,7 +1225,7 @@ void doclose(void) {
- if(strcmp(token,"hardcom")==0) {
- if(comfd== -1) serror("Com device not open",1);
- vmsg("Closing device");
- - 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);
- }
- @@ -1266,12 +1267,17 @@ void opengt(void) {
- ext(1);
- }
- }
- - if (ioctl (comfd, TCGETS, &svbuf) < 0) {
- + if (isatty (comfd))
- + tty=1;
- + else
- + tty=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, TCGETS, &stbuf);
- + if (tty)
- + ioctl(comfd, TCGETS, &stbuf);
- speed=stbuf.c_cflag & CBAUD;
- if (high_speed == 0) strcpy(cspeed,"115200");
- else strcpy(cspeed,"57600");
- @@ -1302,12 +1308,16 @@ void opendevice(void) {
- }
- }
- else comfd=0;
- -
- - if (ioctl (comfd, TCGETS, &svbuf) < 0) {
- + if (isatty (comfd))
- + tty=1;
- + else
- + tty=0;
- + if (tty && ioctl (comfd, TCGETS, &svbuf) < 0) {
- sprintf(msg,"Can't ioctl get device %s.\n",device);
- serror(msg,1);
- }
- - ioctl(comfd, TCGETS, &stbuf);
- + if (tty)
- + ioctl(comfd, TCGETS, &stbuf);
- speed=stbuf.c_cflag & CBAUD;
- switch(speed) {
- case B0: strcpy(cspeed,"0");break;
|