form_field_new - create and destroy form fields
FIELD *new_field(int height, int width,
int toprow, int leftcol,
int offscreen, int nbuffers);
FIELD *dup_field(FIELD *field, int toprow, int leftcol);
FIELD *link_field(FIELD *field, int toprow, int leftcol);
int free_field(FIELD *field);
The function new_field allocates a new field and initializes it from
the parameters given: height, width, row of upper-left corner, column
of upper-left corner, number off-screen rows, and number of additional
The function dup_field duplicates a field at a new location. Most
attributes (including current contents, size, validation type, buffer
count, growth threshold, justification, foreground, background, pad
character, options, and user pointer) are copied. Field status and the
field page bit are not copied.
The function link_field acts like dup_field, but the new field shares
buffers with its parent. Attribute data is separate.
The function free_field de-allocates storage associated with a field.
The function, new_field, dup_field, link_field return NULL on error.
The function free_field returns one of the following:
E_OK The routine succeeded.
System error occurred (see errno).
Routine detected an incorrect or out-of-range argument.
SEE ALSOcurses(3X), form(3X).
The header file <form.h> automatically includes the header file
These routines emulate the System V forms library. They were not sup‐
ported on Version 7 or BSD versions.
It may be unwise to count on the set of attributes copied by
dup_field(3X) being portable; the System V forms library documents are
not very explicit on what gets copied and was not.
Juergen Pfeifer. Manual pages and adaptation for new curses by Eric S.