/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
+ * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 2007-2009,2016 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>
-MODULE_ID("$Id: use_screen.c,v 1.2 2007/09/08 21:46:48 tom Exp $")
+MODULE_ID("$Id: use_screen.c,v 1.12 2020/02/02 23:34:34 tom Exp $")
NCURSES_EXPORT(int)
-use_screen(SCREEN *screen, NCURSES_CALLBACK func, void *data)
+use_screen(SCREEN *screen, NCURSES_SCREEN_CB func, void *data)
{
SCREEN *save_SP;
int code = OK;
+ TR_FUNC_BFR(1);
- T((T_CALLED("use_screen(%p,%p,%p)"), screen, func, data));
+ T((T_CALLED("use_screen(%p,%s,%p)"),
+ (void *) screen,
+ TR_FUNC_ARG(0, func),
+ (void *) data));
/*
* FIXME - add a flag so a given thread can check if _it_ has already
* recurred through this point, return an error if so.
*/
- _nc_lock_global(use_screen);
- save_SP = SP;
+ _nc_lock_global(curses);
+ save_SP = CURRENT_SCREEN;
set_term(screen);
- code = func(screen->_stdscr, data);
+ code = func(screen, data);
set_term(save_SP);
- _nc_unlock_global(use_screen);
+ _nc_unlock_global(curses);
returnCode(code);
-
- return 0;
}