ports/cad/magic/files/patch-textio::txInput.c
Martin Wilke eaf1a85f3f Use termios.h instead of sgtty.h
PR:		120049
Submitted by:	Ed Schouten <ed@fxq.nl>
2008-02-04 19:43:52 +00:00

96 lines
2.4 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--- textio/txInput.c 2001-09-21 17:15:56.000000000 +0200
+++ textio/txInput.c 2008-02-04 19:26:44.000000000 +0100
@@ -1027,7 +1027,16 @@
* ----------------------------------------------------------------------------
*/
-#if defined(SYSV) || defined(CYGWIN)
+#ifdef __FreeBSD__
+void
+txGetTermState(buf)
+ struct termios *buf;
+
+{
+ tcgetattr( fileno( stdin ), buf);
+}
+
+#elif defined(SYSV) || defined(CYGWIN)
void
txGetTermState(buf)
struct termio *buf;
@@ -1066,13 +1075,17 @@
void
txSetTermState(buf)
-#if defined(SYSV) || defined(CYGWIN)
+#ifdef __FreeBSD__
+ struct termios *buf;
+#elif defined(SYSV) || defined(CYGWIN)
struct termio *buf;
#else
txTermState *buf;
#endif SYSV
{
-#if defined(SYSV) || defined(CYGWIN)
+#ifdef __FreeBSD__
+ tcsetattr( fileno(stdin), TCSAFLUSH, buf );
+#elif defined(SYSV) || defined(CYGWIN)
ioctl( fileno(stdin), TCSETAF, buf );
#else
/* set the current terminal characteristics */
@@ -1100,13 +1113,15 @@
void
txInitTermRec(buf)
-#if defined(SYSV) || defined(CYGWIN)
+#ifdef __FreeBSD__
+ struct termios *buf;
+#elif defined(SYSV) || defined(CYGWIN)
struct termio *buf;
#else
txTermState *buf;
#endif SYSV
{
-#if defined(SYSV) || defined(CYGWIN)
+#if defined(__FreeBSD__) || defined(SYSV) || defined(CYGWIN)
buf->c_lflag = ISIG; /* raw: no echo and no processing, allow signals */
buf->c_cc[ VMIN ] = 1;
buf->c_cc[ VTIME ] = 0;
@@ -1124,7 +1139,9 @@
-#if defined(SYSV) || defined(CYGWIN)
+#ifdef __FreeBSD__
+struct termios closeTermState;
+#elif defined(SYSV) || defined(CYGWIN)
struct termio closeTermState;
#else
static txTermState closeTermState;
@@ -1151,7 +1168,14 @@
void
txSaveTerm()
{
-#if defined(SYSV) || defined(CYGWIN)
+#ifdef __FreeBSD__
+ tcgetattr( fileno( stdin ), &closeTermState);
+ txEraseChar = closeTermState.c_cc[VERASE];
+ txKillChar = closeTermState.c_cc[VKILL];
+ TxEOFChar = closeTermState.c_cc[VEOF];
+ TxInterruptChar = closeTermState.c_cc[VINTR];
+ haveCloseState = TRUE;
+#elif defined(SYSV) || defined(CYGWIN)
ioctl( fileno( stdin ), TCGETA, &closeTermState);
txEraseChar = closeTermState.c_cc[VERASE];
txKillChar = closeTermState.c_cc[VKILL];
@@ -1192,7 +1216,9 @@
void
TxSetTerminal()
{
-#if defined(SYSV) || defined(CYGWIN)
+#ifdef __FreeBSD__
+ struct termios buf;
+#elif defined(SYSV) || defined(CYGWIN)
struct termio buf;
#else
txTermState buf;