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.
curses Routine Name | Manual Page Name |
current_field | form_page(3X) |
data_ahead | form_data(3X) |
data_behind | form_data(3X) |
dup_field | form_field_new(3X) |
dynamic_field_info | form_field_info(3X) |
field_arg | form_field_validation(3X) |
field_back | form_field_attributes(3X) |
field_buffer | form_field_buffer(3X) |
field_count | form_field(3X) |
field_fore | form_field_attributes(3X) |
field_index | form_page(3X) |
field_info | form_field_info(3X) |
field_init | form_hook(3X) |
field_just | form_field_just(3X) |
field_opts | form_field_opts(3X) |
field_opts_off | form_field_opts(3X) |
field_opts_on | form_field_opts(3X) |
field_pad | form_field_attributes(3X) |
field_status | form_field_buffer(3X) |
field_term | form_hook(3X) |
field_type | form_field_validation(3X) |
field_userptr | form_field_userptr(3X) |
form_driver | form_driver(3X) |
form_driver_w | form_driver(3X)* |
form_fields | form_field(3X) |
form_init | form_hook(3X) |
form_opts | form_opts(3X) |
form_opts_off | form_opts(3X) |
form_opts_on | form_opts(3X) |
form_page | form_page(3X) |
form_request_by_name | form_requestname(3X) |
form_request_name | form_requestname(3X) |
form_sub | form_win(3X) |
form_term | form_hook(3X) |
form_userptr | form_userptr(3X) |
form_win | form_win(3X) |
free_field | form_field_new(3X) |
free_fieldtype | form_fieldtype(3X) |
free_form | form_new(3X) |
link_field | form_field_new(3X) |
link_fieldtype | form_fieldtype(3X) |
move_field | form_field(3X) |
new_field | form_field_new(3X) |
new_fieldtype | form_fieldtype(3X) |
new_form | form_new(3X) |
new_page | form_new_page(3X) |
pos_form_cursor | form_cursor(3X) |
post_form | form_post(3X) |
scale_form | form_win(3X) |
set_current_field | form_page(3X) |
set_field_back | form_field_attributes(3X) |
set_field_buffer | form_field_buffer(3X) |
set_field_fore | form_field_attributes(3X) |
set_field_init | form_hook(3X) |
set_field_just | form_field_just(3X) |
set_field_opts | form_field_opts(3X) |
set_field_pad | form_field_attributes(3X) |
set_field_status | form_field_buffer(3X) |
set_field_term | form_hook(3X) |
set_field_type | form_field_validation(3X) |
set_field_userptr | form_field_userptr(3X) |
set_fieldtype_arg | form_fieldtype(3X) |
set_fieldtype_choice | form_fieldtype(3X) |
set_form_fields | form_field(3X) |
set_form_init | form_hook(3X) |
set_form_opts | form_field_opts(3X) |
set_form_page | form_page(3X) |
set_form_sub | form_win(3X) |
set_form_term | form_hook(3X) |
set_form_userptr | form_userptr(3X) |
set_form_win | form_win(3X) |
set_max_field | form_field_buffer(3X) |
set_new_page | form_new_page(3X) |
unfocus_current_field | form_page(3X) |
unpost_form | form_post(3X) |
In your library list, libform.a should be before libncurses.a; that is, you want to say ``-lform -lncurses'', not the other way around (which would give you a link error when using static libraries).
The menu facility was documented in SVr4.2 in Character User Interface Programming (UNIX SVR4.2).
It is not part of X/Open Curses.
Aside from ncurses, there are few implementations:
.IP • 4
systems based on SVr4 source code, e.g., Solaris.
.IP • 4
NetBSD curses.
A few functions in this implementation are extensions added for ncurses, but not provided by other implementations, e.g., form_driver_w, unfocus_current_field.
This describes ncurses version 6.2 (patch 20200222).