# form_field_new 3x

    form_field_new(3x)                                   form_field_new(3x)

## NAME

           form_field_new - create and destroy form fields

## SYNOPSIS

           #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);

## DESCRIPTION

           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.

## RETURN VALUE

           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.

## SEE ALSO

           curses(3x), form(3x).

## NOTES

           The header file <form.h> automatically includes the header
           file <curses.h>.

## PORTABILITY

           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  about  what  gets
           copied and what doesn't.

## AUTHORS

           Juergen  Pfeifer.   Manual  pages  and  adaptation for new
           curses by Eric S. Raymond.

                                                         form_field_new(3x)