X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_baudrate.c;h=1dee46c4792ae1867cd5af6d5acf2b1025a4867e;hp=9302f022b89cdf584075cc50eb7aa3c4a13b1ef0;hb=83e9a85c4205c920cc9992bfc96f6546cd4fff22;hpb=f79b52fddd95c7a6f1ead29ef9c39eb8cdf60795 diff --git a/ncurses/tinfo/lib_baudrate.c b/ncurses/tinfo/lib_baudrate.c index 9302f022..1dee46c4 100644 --- a/ncurses/tinfo/lib_baudrate.c +++ b/ncurses/tinfo/lib_baudrate.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -49,7 +49,7 @@ * of the indices up to B115200 fit nicely in a 'short', allowing us to retain * ospeed's type for compatibility. */ -#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__) +#if NCURSES_OSPEED_COMPAT && ((defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)) #undef B0 #undef B50 #undef B75 @@ -79,7 +79,7 @@ #undef USE_OLD_TTY #endif /* USE_OLD_TTY */ -MODULE_ID("$Id: lib_baudrate.c,v 1.31 2010/12/19 01:50:50 tom Exp $") +MODULE_ID("$Id: lib_baudrate.c,v 1.35 2014/04/26 18:48:19 juergen Exp $") /* * int @@ -90,54 +90,55 @@ MODULE_ID("$Id: lib_baudrate.c,v 1.31 2010/12/19 01:50:50 tom Exp $") */ struct speed { - int s; /* value for 'ospeed' is an index */ + NCURSES_OSPEED s; /* values for 'ospeed' */ int sp; /* the actual speed */ }; +#define DATA(number) { B##number, number } + static struct speed const speeds[] = { - {B0, 0}, - {B50, 50}, - {B75, 75}, - {B110, 110}, - {B134, 134}, - {B150, 150}, - {B200, 200}, - {B300, 300}, - {B600, 600}, - {B1200, 1200}, - {B1800, 1800}, - {B2400, 2400}, - {B4800, 4800}, - {B9600, 9600}, + DATA(0), + DATA(50), + DATA(75), + DATA(110), + DATA(134), + DATA(150), + DATA(200), + DATA(300), + DATA(600), + DATA(1200), + DATA(1800), + DATA(2400), + DATA(4800), + DATA(9600), #ifdef B19200 - {B19200, 19200}, -#else -#ifdef EXTA + DATA(19200), +#elif defined(EXTA) {EXTA, 19200}, #endif -#endif #ifdef B38400 - {B38400, 38400}, -#else -#ifdef EXTB + DATA(38400), +#elif defined(EXTB) {EXTB, 38400}, #endif -#endif #ifdef B57600 - {B57600, 57600}, + DATA(57600), #endif + /* ifdef to prevent overflow when OLD_TTY is not available */ +#if !(NCURSES_OSPEED_COMPAT && defined(__FreeBSD__) && (__FreeBSD_version > 700000)) #ifdef B115200 - {B115200, 115200}, + DATA(115200), #endif #ifdef B230400 - {B230400, 230400}, + DATA(230400), #endif #ifdef B460800 - {B460800, 460800}, + DATA(460800), #endif #ifdef B921600 - {B921600, 921600}, + DATA(921600), +#endif #endif }; @@ -167,7 +168,7 @@ _nc_baudrate(int OSpeed) } } #if !USE_REENTRANT - if (OSpeed == last_OSpeed) { + if (OSpeed != last_OSpeed) { last_OSpeed = OSpeed; last_baudrate = result; } @@ -207,7 +208,7 @@ NCURSES_SP_NAME(baudrate) (NCURSES_SP_DCL0) */ #ifdef TRACE if (IsValidTIScreen(SP_PARM) - && !isatty(fileno(SP_PARM ? SP_PARM->_ofp : stdout)) + && !NC_ISATTY(fileno(SP_PARM ? SP_PARM->_ofp : stdout)) && getenv("BAUDRATE") != 0) { int ret; if ((ret = _nc_getenv_num("BAUDRATE")) <= 0) @@ -219,8 +220,8 @@ NCURSES_SP_NAME(baudrate) (NCURSES_SP_DCL0) if (IsValidTIScreen(SP_PARM)) { #ifdef USE_OLD_TTY - result = cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb)); - ospeed = _nc_ospeed(result); + result = (int) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb)); + ospeed = (NCURSES_OSPEED) _nc_ospeed(result); #else /* !USE_OLD_TTY */ #ifdef TERMIOS ospeed = (NCURSES_OSPEED) cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));