]> sigrok.org Git - libsigrok.git/blobdiff - hardware/common/serial.c
GPL headers: Use correct project name.
[libsigrok.git] / hardware / common / serial.c
index e114f2d0400d175a30283f5b979403b033974c61..f887194b8a7179d269d74ef0b7af39ac55e80356 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * This file is part of the sigrok project.
+ * This file is part of the libsigrok project.
  *
  * Copyright (C) 2010-2012 Bert Vermeulen <bert@biot.com>
  * Copyright (C) 2010-2012 Uwe Hermann <uwe@hermann-uwe.de>
@@ -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;
@@ -499,7 +499,7 @@ SR_PRIV int serial_set_params(struct sr_serial_dev_inst *serial, int baudrate,
        case 230400:
                baud = B230400;
                break;
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__OpenBSD__)
        case 460800:
                baud = B460800;
                break;
@@ -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(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
+       term.c_oflag &= ~OFILL;
+#endif
 
        /* Disable canonical mode, and don't echo input characters. */
        term.c_lflag &= ~(ICANON | ECHO);