ncurses 6.1 - patch 20200118
[ncurses.git] / ncurses / tinfo / use_screen.c
index 965612ad909135d0d14552e4ef1261e1b38990e9..00d7147e17264a503ec90c5c599b059dbdd28e48 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2007-2016,2018 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.3 2007/10/20 22:46:13 tom Exp $")
+MODULE_ID("$Id: use_screen.c,v 1.11 2018/12/15 23:53:26 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;
 }