projects
/
ncurses.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ncurses 6.0 - patch 20170401
[ncurses.git]
/
ncurses
/
tinfo
/
lib_cur_term.c
diff --git
a/ncurses/tinfo/lib_cur_term.c
b/ncurses/tinfo/lib_cur_term.c
index 7607d74e9ec1ae2008bbf71adfb48412d3403d86..c583aa7edaf5afc14b143114637bf357c9c368e6 100644
(file)
--- a/
ncurses/tinfo/lib_cur_term.c
+++ b/
ncurses/tinfo/lib_cur_term.c
@@
-1,5
+1,5
@@
/****************************************************************************
/****************************************************************************
- * Copyright (c) 1998-20
08,2009
Free Software Foundation, Inc. *
+ * Copyright (c) 1998-20
16,2017
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 *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@
-37,17
+37,14
@@
*/
#include <curses.priv.h>
*/
#include <curses.priv.h>
-#include <term_entry.h> /* TTY, cur_term */
#include <termcap.h> /* ospeed */
#include <termcap.h> /* ospeed */
-MODULE_ID("$Id: lib_cur_term.c,v 1.
27 2009/09/13 14:40:05
tom Exp $")
+MODULE_ID("$Id: lib_cur_term.c,v 1.
36 2017/04/01 17:19:03
tom Exp $")
#undef CUR
#define CUR termp->type.
#undef CUR
#define CUR termp->type.
-#if BROKEN_LINKER && !USE_REENTRANT
-NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
-#elif BROKEN_LINKER || USE_REENTRANT
+#if USE_REENTRANT
NCURSES_EXPORT(TERMINAL *)
NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_DCL0)
NCURSES_EXPORT(TERMINAL *)
NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_DCL0)
@@
-56,6
+53,7
@@
NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_DCL0)
}
#if NCURSES_SP_FUNCS
}
#if NCURSES_SP_FUNCS
+
NCURSES_EXPORT(TERMINAL *)
_nc_get_cur_term(void)
{
NCURSES_EXPORT(TERMINAL *)
_nc_get_cur_term(void)
{
@@
-82,35
+80,40
@@
NCURSES_SP_NAME(set_curterm) (NCURSES_SP_DCLx TERMINAL * termp)
{
TERMINAL *oldterm;
{
TERMINAL *oldterm;
- T((T_CALLED("set_curterm(%p)"), termp));
+ T((T_CALLED("set_curterm(%p)"),
(void *)
termp));
_nc_lock_global(curses);
oldterm = cur_term;
if (SP_PARM)
SP_PARM->_term = termp;
_nc_lock_global(curses);
oldterm = cur_term;
if (SP_PARM)
SP_PARM->_term = termp;
-#if BROKEN_LINKER && !USE_REENTRANT
- cur_term = termp;
-#else
+#if USE_REENTRANT
CurTerm = termp;
CurTerm = termp;
+#else
+ cur_term = termp;
#endif
if (termp != 0) {
#ifdef USE_TERM_DRIVER
TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp;
#endif
if (termp != 0) {
#ifdef USE_TERM_DRIVER
TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp;
- ospeed = _nc_ospeed(termp->_baudrate);
+ ospeed =
(NCURSES_OSPEED)
_nc_ospeed(termp->_baudrate);
if (TCB->drv->isTerminfo && termp->type.Strings) {
PC = (char) ((pad_char != NULL) ? pad_char[0] : 0);
}
TCB->csp = SP_PARM;
#else
if (TCB->drv->isTerminfo && termp->type.Strings) {
PC = (char) ((pad_char != NULL) ? pad_char[0] : 0);
}
TCB->csp = SP_PARM;
#else
- ospeed = _nc_ospeed(termp->_baudrate);
+ ospeed =
(NCURSES_OSPEED)
_nc_ospeed(termp->_baudrate);
if (termp->type.Strings) {
PC = (char) ((pad_char != NULL) ? pad_char[0] : 0);
}
if (termp->type.Strings) {
PC = (char) ((pad_char != NULL) ? pad_char[0] : 0);
}
+#endif
+#if !USE_REENTRANT
+#define MY_SIZE (size_t) (NAMESIZE - 1)
+ _nc_STRNCPY(ttytype, termp->type.term_names, MY_SIZE);
+ ttytype[MY_SIZE] = '\0';
#endif
}
_nc_unlock_global(curses);
#endif
}
_nc_unlock_global(curses);
- T((T_RETURN("%p"), oldterm));
+ T((T_RETURN("%p"),
(void *)
oldterm));
return (oldterm);
}
return (oldterm);
}
@@
-127,16
+130,14
@@
NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL * termp)
{
int rc = ERR;
{
int rc = ERR;
- T((T_CALLED("del_curterm(%p, %p)"),
SP_PARM,
termp));
+ T((T_CALLED("del_curterm(%p, %p)"),
(void *) SP_PARM, (void *)
termp));
if (termp != 0) {
#ifdef USE_TERM_DRIVER
TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp;
#endif
TERMINAL *cur = (
if (termp != 0) {
#ifdef USE_TERM_DRIVER
TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp;
#endif
TERMINAL *cur = (
-#if BROKEN_LINKER && !USE_REENTRANT
- cur_term
-#elif BROKEN_LINKER || USE_REENTRANT
+#if USE_REENTRANT
NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG)
#else
cur_term
NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG)
#else
cur_term
@@
-149,14
+150,19
@@
NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL * termp)
FreeIfNeeded(termp->_termname);
#if USE_HOME_TERMINFO
FreeIfNeeded(termp->_termname);
#if USE_HOME_TERMINFO
- if (_nc_globals.home_terminfo != 0)
+ if (_nc_globals.home_terminfo != 0)
{
FreeAndNull(_nc_globals.home_terminfo);
FreeAndNull(_nc_globals.home_terminfo);
+ }
#endif
#ifdef USE_TERM_DRIVER
if (TCB->drv)
#endif
#ifdef USE_TERM_DRIVER
if (TCB->drv)
- TCB->drv->release(TCB);
+ TCB->drv->
td_
release(TCB);
#endif
free(termp);
#endif
free(termp);
+#if NO_LEAKS
+ /* discard memory used in tgetent's cache for this terminal */
+ _nc_tgetent_leak(termp);
+#endif
rc = OK;
}
rc = OK;
}
@@
-167,7
+173,7
@@
NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL * termp)
NCURSES_EXPORT(int)
del_curterm(TERMINAL * termp)
{
NCURSES_EXPORT(int)
del_curterm(TERMINAL * termp)
{
- int rc
= ERR
;
+ int rc;
_nc_lock_global(curses);
rc = NCURSES_SP_NAME(del_curterm) (CURRENT_SCREEN, termp);
_nc_lock_global(curses);
rc = NCURSES_SP_NAME(del_curterm) (CURRENT_SCREEN, termp);