/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2007,2008 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 <term.h> /* cur_term */
#include <tic.h>
-MODULE_ID("$Id: lib_set_term.c,v 1.98 2007/05/12 19:37:04 tom Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.103 2008/02/03 20:31:08 tom Exp $")
NCURSES_EXPORT(SCREEN *)
set_term(SCREEN *screenp)
T((T_CALLED("set_term(%p)"), screenp));
+ _nc_lock_global(set_SP);
+
oldSP = SP;
_nc_set_screen(screenp);
COLOR_PAIRS = SP->_pair_count;
#endif
+ _nc_unlock_global(set_SP);
+
T((T_RETURN("%p"), oldSP));
return (oldSP);
}
T((T_CALLED("delscreen(%p)"), sp));
+ _nc_lock_global(set_SP);
while (*scan) {
if (*scan == sp) {
*scan = sp->_next_screen;
#endif
_nc_set_screen(0);
}
+ _nc_unlock_global(set_SP);
+
returnVoid;
}
}
#endif
-#define ripoff_sp _nc_prescreen.rsp
-#define ripoff_stack _nc_prescreen.rippedoff
-
/* OS-independent screen initializations */
NCURSES_EXPORT(int)
_nc_setupscreen(int slines GCC_UNUSED,
bool filtered,
int slk_format)
{
+ char *env;
int bottom_stolen = 0;
bool support_cookies = USE_XMC_SUPPORT;
ripoff_t *rop;
_nc_init_wacs();
SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs());
- {
- char *env = _nc_get_locale();
- SP->_legacy_coding = ((env == 0)
- || !strcmp(env, "C")
- || !strcmp(env, "POSIX"));
- }
#endif
+ env = _nc_get_locale();
+ SP->_legacy_coding = ((env == 0)
+ || !strcmp(env, "C")
+ || !strcmp(env, "POSIX"));
+ T(("legacy-coding %d", SP->_legacy_coding));
_nc_idcok = TRUE;
_nc_idlok = FALSE;
? SP->_lines_avail - count
: 0),
0);
- if (w)
+ if (w) {
+ rop->win = w;
rop->hook(w, scolumns);
- else
+ } else {
returnCode(ERR);
+ }
if (rop->line < 0)
bottom_stolen += count;
else
NCURSES_EXPORT(int)
ripoffline(int line, int (*init) (WINDOW *, int))
{
+ START_TRACE();
T((T_CALLED("ripoffline(%d,%p)"), line, init));
if (line == 0)