X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fcommon%2Fserial.c;h=b7ec2da3fe7d491ab946eb45b5a12d1e7cc00103;hb=7ec5b54955118d8c1ee003a02c3334f1a0046457;hp=fa5146d719dfcd45b780b514d5f9dc0ad8e59cc4;hpb=b97cbca6c9c715619c8a5a9d6f5de267ff061175;p=libsigrok.git diff --git a/hardware/common/serial.c b/hardware/common/serial.c index fa5146d7..b7ec2da3 100644 --- a/hardware/common/serial.c +++ b/hardware/common/serial.c @@ -422,7 +422,7 @@ SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate, if (dtr != -1) { sr_spew("Setting DTR %s.", dtr ? "high" : "low"); - if (rts) + if (dtr) dcb.fDtrControl = DTR_CONTROL_ENABLE; else dcb.fDtrControl = DTR_CONTROL_DISABLE; @@ -589,8 +589,12 @@ SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate, return SR_ERR; } - /* Do not translate carriage return to newline on input. */ - term.c_iflag &= ~(ICRNL); + /* Turn off all serial port cooking. */ + term.c_iflag &= ~(ISTRIP | INLCR | ICRNL); + term.c_oflag &= ~(ONLCR | OCRNL | ONOCR); +#if !defined(__NetBSD__) + term.c_oflag &= ~OFILL; +#endif /* Disable canonical mode, and don't echo input characters. */ term.c_lflag &= ~(ICANON | ECHO);