https://invisible-island.net/ncurses/man/
form_new(3x) Library calls form_new(3x)
new_form, free_form - create and destroy forms
#include <form.h> FORM *new_form(FIELD **fields); int free_form(FORM *form);
The function new_form creates a new form connected to a specified field pointer array (which must be NULL-terminated). The function free_form disconnects form from its field array and frees the storage allocated for the form.
The function new_form returns NULL on error. It sets errno according to the function's success: E_OK The routine succeeded. E_BAD_ARGUMENT Routine detected an incorrect or out-of-range argument. E_CONNECTED The field is already connected to a form. E_SYSTEM_ERROR System error occurred, e.g., malloc failure. The function free_form returns one of the following: E_OK The routine succeeded. E_BAD_ARGUMENT Routine detected an incorrect or out-of-range argument. E_POSTED The form has already been posted.
These routines emulate the System V forms library. They were not supported on Version 7 or BSD versions.
Juergen Pfeifer. Manual pages and adaptation for new curses by Eric S. Raymond.
curses(3x), form(3x) ncurses 6.5 2024-03-16 form_new(3x)