January 1, 2001 FORMS 3

### NAME

dup_field, free_field, link_field, new_field - form library

### LIBRARY

Curses Form Library (libform, -lform)

### SYNOPSIS

```FIELD``*` dup_field(```FIELD *field``, int frow``, int fcol`)
```int` free_field(```FIELD *field`)
```FIELD``*` link_field(```FIELD *field``, int frow``, int fcol`)
```FIELD``*` new_field(`` ```int rows` ```int cols` ```int frow` ```int fcol` ```int nrows` ```int nbuf` )

### DESCRIPTION

The dup_field(``) function duplicates the given field, including any buffers associated with the field and returns the pointer to the newly created field. free_field(``) destroys the field and frees any allocated resources associated with the field. The function link_field(``) copies the given field to a new field at the location ```frow` and ```fcol` but shares the buffers with the original field. new_field(``) creates a new field of size ```rows` by ```cols` at location ```frow`, ```fcol` on the page, the argument ```nrows` specified the number of off screen rows the field has and the ```nbuf` parameter specifies the number of extra buffers attached to the field. There will always be one buffer associated with a field.

### RETURN VALUES

On error dup_field(``) and new_field(``) will return ```NULL`. The functions will one of the following error values:

```E_OK`
  The function was successful.
```E_BAD_ARGUMENT`
  A bad argument was passed to the function.
```E_CONNECTED`
  The field is connected to a form.

### SEE ALSO

curses(3), forms(3)

### NOTES

The header <```form.h`> automatically includes both <```curses.h`> and <```eti.h`>.