/****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2008,2009 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 *
*/
#include <curses.priv.h>
-#include <term.h> /* cur_term, pad_char */
#include <termcap.h> /* ospeed */
+#if defined(__FreeBSD__)
+#include <sys/param.h>
+#endif
/*
* These systems use similar header files, which define B1200 as 1200, etc.,
* 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__)
+#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__)
#undef B0
#undef B50
#undef B75
#undef USE_OLD_TTY
#endif /* USE_OLD_TTY */
-MODULE_ID("$Id: lib_baudrate.c,v 1.23 2006/12/30 18:06:16 tom Exp $")
+MODULE_ID("$Id: lib_baudrate.c,v 1.29 2009/02/21 17:22:13 tom Exp $")
/*
* int
NCURSES_EXPORT(int)
_nc_baudrate(int OSpeed)
{
-#ifndef _REENTRANT
+#if !USE_REENTRANT
static int last_OSpeed;
static int last_baudrate;
#endif
int result = ERR;
unsigned i;
-#ifndef _REENTRANT
+#if !USE_REENTRANT
if (OSpeed == last_OSpeed) {
result = last_baudrate;
}
}
}
}
-#ifndef _REENTRANT
+#if !USE_REENTRANT
if (OSpeed == last_OSpeed) {
last_OSpeed = OSpeed;
last_baudrate = result;
}
NCURSES_EXPORT(int)
-baudrate(void)
+NCURSES_SP_NAME(baudrate) (NCURSES_SP_DCL0)
{
int result;
- T((T_CALLED("baudrate()")));
+ T((T_CALLED("baudrate(%p)"), SP_PARM));
/*
* In debugging, allow the environment symbol to override when we're
* that take into account costs that depend on baudrate.
*/
#ifdef TRACE
- if (SP && !isatty(fileno(SP->_ofp))
+ if (IsValidTIScreen(SP_PARM)
+ && !isatty(fileno(SP_PARM ? SP_PARM->_ofp : stdout))
&& getenv("BAUDRATE") != 0) {
int ret;
if ((ret = _nc_getenv_num("BAUDRATE")) <= 0)
}
#endif
+ if (IsValidTIScreen(SP_PARM)) {
#ifdef USE_OLD_TTY
- result = cfgetospeed(&cur_term->Nttyb);
- ospeed = _nc_ospeed(result);
+ result = cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));
+ ospeed = _nc_ospeed(result);
#else /* !USE_OLD_TTY */
#ifdef TERMIOS
- ospeed = cfgetospeed(&cur_term->Nttyb);
+ ospeed = cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));
#else
- ospeed = cur_term->Nttyb.sg_ospeed;
+ ospeed = TerminalOf(SP_PARM)->Nttyb.sg_ospeed;
#endif
- result = _nc_baudrate(ospeed);
+ result = _nc_baudrate(ospeed);
#endif
- if (cur_term != 0)
- cur_term->_baudrate = result;
+ TerminalOf(SP_PARM)->_baudrate = result;
+ } else {
+ result = ERR;
+ }
returnCode(result);
}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+baudrate(void)
+{
+ return NCURSES_SP_NAME(baudrate) (CURRENT_SCREEN);
+}
+#endif