aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>2002-01-14 15:58:32 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>2002-01-14 15:58:32 +0000
commit7e6a63408cfb0b48f0e41f77ed82f5d0ca60bda5 (patch)
tree6871da39e4ec2e4b302891da68a4236a26211361
parentcf9473cd84b5aa7a72a011bd5c0668af79439265 (diff)
downloadsrc-7e6a63408cfb0b48f0e41f77ed82f5d0ca60bda5.tar.gz
src-7e6a63408cfb0b48f0e41f77ed82f5d0ca60bda5.zip
Import official baudrate fix into the vendor branch
Notes
Notes: svn path=/vendor/ncurses/dist/; revision=89354
-rw-r--r--contrib/ncurses/ncurses/tinfo/lib_baudrate.c48
1 files changed, 44 insertions, 4 deletions
diff --git a/contrib/ncurses/ncurses/tinfo/lib_baudrate.c b/contrib/ncurses/ncurses/tinfo/lib_baudrate.c
index ff3455a7ec31..ec6281023591 100644
--- a/contrib/ncurses/ncurses/tinfo/lib_baudrate.c
+++ b/contrib/ncurses/ncurses/tinfo/lib_baudrate.c
@@ -40,7 +40,42 @@
#include <term.h> /* cur_term, pad_char */
#include <termcap.h> /* ospeed */
-MODULE_ID("$Id: lib_baudrate.c,v 1.19 2000/12/10 02:55:07 tom Exp $")
+/*
+ * These systems use similar header files, which define B1200 as 1200, etc.,
+ * but can be overridden by defining USE_OLD_TTY so B1200 is 9, which makes all
+ * of the indices up to B115200 fit nicely in a 'short', allowing us to retain
+ * ospeed's type for compatibility.
+ */
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#undef B0
+#undef B50
+#undef B75
+#undef B110
+#undef B134
+#undef B150
+#undef B200
+#undef B300
+#undef B600
+#undef B1200
+#undef B1800
+#undef B2400
+#undef B4800
+#undef B9600
+#undef B19200
+#undef EXTA
+#undef B38400
+#undef EXTB
+#undef B57600
+#undef B115200
+#undef B230400
+#undef B460800
+#define USE_OLD_TTY
+#include <sys/ttydev.h>
+#else
+#undef USE_OLD_TTY
+#endif /* USE_OLD_TTY */
+
+MODULE_ID("$Id: lib_baudrate.c,v 1.21 2001/06/30 22:59:22 tom Exp $")
/*
* int
@@ -162,15 +197,20 @@ baudrate(void)
ret = 9600;
ospeed = _nc_ospeed(ret);
returnCode(ret);
- } else
+ }
#endif
+#ifdef USE_OLD_TTY
+ result = cfgetospeed(&cur_term->Nttyb);
+ ospeed = _nc_ospeed(result);
+#else
#ifdef TERMIOS
- ospeed = cfgetospeed(&cur_term->Nttyb);
+ ospeed = cfgetospeed(&cur_term->Nttyb);
#else
- ospeed = cur_term->Nttyb.sg_ospeed;
+ ospeed = cur_term->Nttyb.sg_ospeed;
#endif
result = _nc_baudrate(ospeed);
+#endif /* __FreeBSD__ */
if (cur_term != 0)
cur_term->_baudrate = result;