/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright 2020,2021 Thomas E. Dickey *
+ * Copyright 1998-2009,2010 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 "form.priv.h"
-MODULE_ID("$Id: frm_win.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_win.c,v 1.19 2021/06/17 21:20:30 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_win(FORM *form,WINDOW *win)
-|
-| Description : Set the window of the form to win.
+|
+| Description : Set the window of the form to win.
|
| Return Values : E_OK - success
| E_POSTED - form is posted
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_form_win (FORM * form, WINDOW * win)
+FORM_EXPORT(int)
+set_form_win(FORM *form, WINDOW *win)
{
- if (form && (form->status & _POSTED))
+ T((T_CALLED("set_form_win(%p,%p)"), (void *)form, (void *)win));
+
+ if (form && (form->status & _POSTED))
RETURN(E_POSTED);
+ else
+ {
+#if NCURSES_SP_FUNCS
+ FORM *f = Normalize_Form(form);
- Normalize_Form( form )->win = win;
- RETURN(E_OK);
-}
+ f->win = win ? win : StdScreen(Get_Form_Screen(f));
+ RETURN(E_OK);
+#else
+ Normalize_Form(form)->win = win;
+ RETURN(E_OK);
+#endif
+ }
+}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : WINDOW *form_win(const FORM *)
-|
+|
| Description : Retrieve the window of the form.
|
| Return Values : The pointer to the Window or stdscr if there is none.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(WINDOW *)
-form_win (const FORM * form)
+FORM_EXPORT(WINDOW *)
+form_win(const FORM *form)
{
- const FORM* f = Normalize_Form( form );
- return (f->win ? f->win : stdscr);
+ WINDOW *result;
+ const FORM *f;
+
+ T((T_CALLED("form_win(%p)"), (const void *)form));
+
+ f = Normalize_Form(form);
+#if NCURSES_SP_FUNCS
+ result = (f->win ? f->win : StdScreen(Get_Form_Screen(f)));
+#else
+ result = (f->win ? f->win : stdscr);
+#endif
+ returnWin(result);
}
/* frm_win.c ends here */
-