October 15, 2005 FORMS 3

### NAME

field_buffer, field_status, set_field_buffer, set_field_printf, set_field_status, set_max_field - form library

### LIBRARY

Curses Form Library (libform, -lform)

### SYNOPSIS

```char``*` field_buffer(```FIELD *field``, int buffer`)
```int` field_status(```FIELD *field`)
```int` set_field_buffer(```FIELD *field``, int buffer``, char *value`)
```int` set_field_printf(```FIELD *field``, int buffer``, char *fmt``, ...`)
```int` set_field_status(```FIELD *field``, int status`)
```int` set_max_field(```FIELD *field``, int max`)

### DESCRIPTION

The field_buffer(``) function returns the contents of the buffer number specified by ```buffer` for the given field. If the requested buffer number exceeds the number of buffers attached to the field then ```NULL` will be returned. If the field option ```O_REFORMAT` is enabled on the given field then storage will be allocated to hold the reformatted buffer. This storage must be release by calling free(3) when it is no longer required. If the ```O_REFORMAT` field option is not set then no extra storage is allocated. The field buffer may be set by calling set_field_buffer(``) which will set the given buffer number to the contents of the string passed. A buffer may also be set by calling set_field_printf(``) which sets the buffer using the format arg ```fmt` after being expanded using the subsequent arguments in the same manner as sprintf(3) does. Calling field_status(``) will return the status of the first buffer attached to the field. If the field has been modified then the function will return ```TRUE` otherwise ```FALSE` is returned, the status of the first buffer may be programmatically set by calling set_field_status(``). The maximum growth of a dynamic field can be set by calling set_max_field(``) which limits the fields rows if the field is a multiline field or the fields columns if the field only has a single row.

### RETURN VALUES

Functions returning pointers will return ```NULL` if an error is detected. The functions that return an int will return one of the following error values:

```E_OK`
  The function was successful.
```E_BAD_ARGUMENT`
  A bad parameter was passed to the function.
```E_SYSTEM_ERROR`
  A system error occurred performing the function.

### SEE ALSO

curses(3), forms(3)

### NOTES

The header <```form.h`> automatically includes both <```curses.h`> and <```eti.h`>. The function set_field_printf(``) is a NetBSD extension and must not be used in portable code.