new_field, dup_field, link_field, free_field - create and destroy form fields
#include <form.h> 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 separate. The function free_field de-allocates storage associated with a field.
The function, new_field, dup_field, link_field return NULL on error. They set errno according to their success: E_OK The routine succeeded. E_BAD_ARGUMENT Routine detected an incorrect or out-of-range argu- ment. E_SYSTEM_ERROR System error occurred, e.g., malloc failure. The function free_field returns one of the following: E_OK The routine succeeded. E_BAD_ARGUMENT Routine detected an incorrect or out-of-range argu- ment. E_CONNECTED field is connected.
The header file <form.h> automatically includes the header file <curses.h>.
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 being portable; the System V forms library documents are not very explicit about what gets copied and what does not.
Juergen Pfeifer. Manual pages and adaptation for new curses by Eric S. Raymond. form_field_new(3x)