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 initial-
izes 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 working buffers.
The function dup_field duplicates a field at a new loca-
tion. Most attributes (including current contents, size,
validation type, buffer count, growth threshold, justifi-
cation, 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
The function free_field de-allocates storage associated
with a field.
The function, new_field, dup_field, link_field return NULL
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 argu-
The header file <form.h> automatically includes the header
These routines emulate the System V forms library. They
were not supported 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. Raymond.