form(3FORM) Library calls form(3FORM)
NAME
form - present user-fillable forms in curses windows
SYNOPSIS
#include <form.h>
DESCRIPTION
The form library provides terminal-independent facilities for composing
form screens on character-cell terminals. The library includes: field
routines, which create and modify form fields; and form routines, which
group fields into forms, display forms on the screen, and handle inter-
action with the user.
The form library uses the curses libraries. To use the form library,
link with the options -lform -lcurses.
Your program should set up the locale, e.g.,
setlocale(LC_ALL, "");
so that input/output processing will work.
A curses initialization routine such as initscr must be called before
using any of these functions.
Current Default Values for Field Attributes
The form library maintains a default value for field attributes. You
can get or set this default by calling the appropriate set_ or retrieval
routine with a NULL field pointer. Changing this default with a set_
function affects future field creations, but does not change the render-
ing of fields already created.
Routine Name Index
The following table lists each form routine and the name of the manual
page on which it is described. Routines flagged with “*” are
ncurses-specific, not present in SVr4.
curses Routine Name Manual Page Name
────────────────────────────────────────────────
current_field page(3FORM)
data_ahead data(3FORM)
data_behind data(3FORM)
dup_field field_new(3FORM)
dynamic_field_info field_info(3FORM)
field_arg field_validation(3FORM)
field_back field_attributes(3FORM)
field_buffer field_buffer(3FORM)
field_count field(3FORM)
field_fore field_attributes(3FORM)
field_index page(3FORM)
field_info field_info(3FORM)
field_init hook(3FORM)
field_just field_just(3FORM)
field_opts field_opts(3FORM)
field_opts_off field_opts(3FORM)
field_opts_on field_opts(3FORM)
field_pad field_attributes(3FORM)
field_status field_buffer(3FORM)
field_term hook(3FORM)
field_type field_validation(3FORM)
field_userptr field_userptr(3FORM)
form_driver driver(3FORM)
form_driver_w driver(3FORM)*
form_fields field(3FORM)
form_init hook(3FORM)
form_opts opts(3FORM)
form_opts_off opts(3FORM)
form_opts_on opts(3FORM)
form_page page(3FORM)
form_request_by_name requestname(3FORM)*
form_request_name requestname(3FORM)*
form_sub win(3FORM)
form_term hook(3FORM)
form_userptr userptr(3FORM)
form_win win(3FORM)
free_field field_new(3FORM)
free_fieldtype fieldtype(3FORM)
free_form new(3FORM)
link_field field_new(3FORM)
link_fieldtype fieldtype(3FORM)
move_field field(3FORM)
new_field field_new(3FORM)
new_fieldtype fieldtype(3FORM)
new_form new(3FORM)
new_page new_page(3FORM)
pos_form_cursor cursor(3FORM)
post_form post(3FORM)
scale_form win(3FORM)
set_current_field page(3FORM)
set_field_back field_attributes(3FORM)
set_field_buffer field_buffer(3FORM)
set_field_fore field_attributes(3FORM)
set_field_init hook(3FORM)
set_field_just field_just(3FORM)
set_field_opts field_opts(3FORM)
set_field_pad field_attributes(3FORM)
set_field_status field_buffer(3FORM)
set_field_term hook(3FORM)
set_field_type field_validation(3FORM)
set_field_userptr field_userptr(3FORM)
set_fieldtype_arg fieldtype(3FORM)
set_fieldtype_choice fieldtype(3FORM)
set_form_fields field(3FORM)
set_form_init hook(3FORM)
set_form_opts field_opts(3FORM)
set_form_page page(3FORM)
set_form_sub win(3FORM)
set_form_term hook(3FORM)
set_form_userptr userptr(3FORM)
set_form_win win(3FORM)
set_max_field field_buffer(3FORM)
set_new_page new_page(3FORM)
unfocus_current_field page(3FORM)*
unpost_form post(3FORM)
RETURN VALUE
Routines that return pointers return NULL on error, and set errno to the
corresponding error-code returned by functions returning an integer.
Routines that return an integer return one of the following error codes:
E_OK The routine succeeded.
E_BAD_ARGUMENT
Routine detected an incorrect or out-of-range argument.
E_BAD_STATE
Routine was called from an initialization or termination function.
E_CONNECTED
The field is already connected to a form.
E_INVALID_FIELD
Contents of a field are not valid.
E_NOT_CONNECTED
No fields are connected to the form.
E_NOT_POSTED
The form has not been posted.
E_NO_ROOM
Form is too large for its window.
E_POSTED
The form is already posted.
E_REQUEST_DENIED
The form driver could not process the request.
E_SYSTEM_ERROR
System error occurred (see errno(3)).
E_UNKNOWN_COMMAND
The form driver code saw an unknown request code.
NOTES
The header file form.h itself includes curses.h.
PORTABILITY
These routines emulate the System V forms library. They were not sup-
ported on Version 7 or BSD versions.
A form facility was documented in SVr4.2's Character User Interface Pro-
gramming document.
It is not part of X/Open Curses.
Aside from ncurses, there are few implementations:
• systems based on SVr4 source code, e.g., Solaris.
• NetBSD curses.
A few functions in this implementation are extensions added for ncurses,
but not provided by other implementations, e.g., form_driver_w, unfo-
cus_current_field.
AUTHORS
Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric S.
Raymond.
SEE ALSO
ncurses(3NCURSES) and related pages whose names begin “form_” for de-
tailed descriptions of the entry points.
ncurses 6.5 2024-12-28 form(3FORM)
Generated by dwww version 1.16 on Sat Oct 3 05:20:27 CEST 2026.