From b2d9ae9c1a74b7ec12cb7fde4a1388189a99d3b4 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Tue, 22 May 2007 19:52:43 +0000
Subject: [PATCH] Linux apparently doesn't implement TIOC?DTR ioctls

---
 src/comio/comio_nix.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/comio/comio_nix.c b/src/comio/comio_nix.c
index 4497612640..e5204898e8 100644
--- a/src/comio/comio_nix.c
+++ b/src/comio/comio_nix.c
@@ -150,12 +150,26 @@ int comGetModemStatus(COM_HANDLE handle)
 
 BOOL comRaiseDTR(COM_HANDLE handle)
 {
-	return(ioctl(handle, TIOCSDTR)==0);
+	int status;
+
+	if(ioctl(handle, TIOCMGET, &status)==-1)
+		return FALSE;
+	status |= TIOCM_DTR;
+	if(ioctl(handle, TIOCMSET, &status)==-1)
+		return FALSE;
+	return TRUE;
 }
 
 BOOL comLowerDTR(COM_HANDLE handle)
 {
-	return(ioctl(handle, TIOCCDTR)==0);
+	int status;
+
+	if(ioctl(handle, TIOCMGET, &status)==-1)
+		return FALSE;
+	status &= ~TIOCM_DTR;
+	if(ioctl(handle, TIOCMSET, &status)==-1)
+		return FALSE;
+	return TRUE;
 }
 
 BOOL comWriteByte(COM_HANDLE handle, BYTE ch)
-- 
GitLab