'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2021,2023 Thomas E. Dickey *
.\" Copyright 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form.3x,v 1.34 2020/02/02 23:34:34 tom Exp $
-.TH form 3X ""
+.\" $Id: form.3x,v 1.45 2023/09/16 23:37:03 tom Exp $
+.TH form 3X 2023-09-16 "ncurses 6.4" "Library calls"
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .IP \(bu 2
..
.SH NAME
-\fBform\fR \- curses extension for programming forms
+\fBform\fP \-
+curses extension for programming forms
.SH SYNOPSIS
-\fB#include <form.h>\fR
-.br
+\fB#include <form.h>\fP
.SH DESCRIPTION
-The \fBform\fR library provides terminal-independent facilities for composing
+The \fBform\fP 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 interaction with the
user.
.PP
-The \fBform\fR library uses the \fBcurses\fR libraries.
-To use the \fBform\fR library, link with the options
-\fB\-lform \-lcurses\fR.
+The \fBform\fP library uses the \fBcurses\fP libraries.
+To use the \fBform\fP library, link with the options
+\fB\-lform \-lcurses\fP.
.PP
Your program should set up the locale, e.g.,
.sp
.sp
so that input/output processing will work.
.PP
-A curses initialization routine such as \fBinitscr\fR must be called
+A curses initialization routine such as \fBinitscr\fP must be called
before using any of these functions.
.
.SS Current Default Values for Field Attributes
.
-The \fBform\fR library maintains a default value for field attributes.
+The \fBform\fP library maintains a default value for field attributes.
You
-can get or set this default by calling the appropriate \fBset_\fR
+can get or set this default by calling the appropriate \fBset_\fP
or retrieval
-routine with a \fBNULL\fR field pointer.
+routine with a \fBNULL\fP field pointer.
Changing this default with a
-\fBset_\fR function affects future field creations, but does not change the
+\fBset_\fP function affects future field creations, but does not change the
rendering of fields already created.
.
.SS Routine Name Index
.
-The following table lists each \fBform\fR routine and the name of
+The following table lists each \fBform\fP routine and the name of
the manual page on which it is described.
-.
+Routines flagged with \*(``*\*(''
+are ncurses-specific, not present in SVr4.
+.PP
.TS
l l
l l .
-\fBcurses\fR Routine Name Manual Page Name
+\fBcurses\fP Routine Name Manual Page Name
=
-current_field \fBform_page\fR(3X)
-data_ahead \fBform_data\fR(3X)
-data_behind \fBform_data\fR(3X)
-dup_field \fBform_field_new\fR(3X)
-dynamic_field_info \fBform_field_info\fR(3X)
-field_arg \fBform_field_validation\fR(3X)
-field_back \fBform_field_attributes\fR(3X)
-field_buffer \fBform_field_buffer\fR(3X)
-field_count \fBform_field\fR(3X)
-field_fore \fBform_field_attributes\fR(3X)
-field_index \fBform_page\fR(3X)
-field_info \fBform_field_info\fR(3X)
-field_init \fBform_hook\fR(3X)
-field_just \fBform_field_just\fR(3X)
-field_opts \fBform_field_opts\fR(3X)
-field_opts_off \fBform_field_opts\fR(3X)
-field_opts_on \fBform_field_opts\fR(3X)
-field_pad \fBform_field_attributes\fR(3X)
-field_status \fBform_field_buffer\fR(3X)
-field_term \fBform_hook\fR(3X)
-field_type \fBform_field_validation\fR(3X)
-field_userptr \fBform_field_userptr\fR(3X)
-form_driver \fBform_driver\fR(3X)
-form_driver_w \fBform_driver\fR(3X)*
-form_fields \fBform_field\fR(3X)
-form_init \fBform_hook\fR(3X)
-form_opts \fBform_opts\fR(3X)
-form_opts_off \fBform_opts\fR(3X)
-form_opts_on \fBform_opts\fR(3X)
-form_page \fBform_page\fR(3X)
-form_request_by_name \fBform_requestname\fR(3X)
-form_request_name \fBform_requestname\fR(3X)
-form_sub \fBform_win\fR(3X)
-form_term \fBform_hook\fR(3X)
-form_userptr \fBform_userptr\fR(3X)
-form_win \fBform_win\fR(3X)
-free_field \fBform_field_new\fR(3X)
-free_fieldtype \fBform_fieldtype\fR(3X)
-free_form \fBform_new\fR(3X)
-link_field \fBform_field_new\fR(3X)
-link_fieldtype \fBform_fieldtype\fR(3X)
-move_field \fBform_field\fR(3X)
-new_field \fBform_field_new\fR(3X)
-new_fieldtype \fBform_fieldtype\fR(3X)
-new_form \fBform_new\fR(3X)
-new_page \fBform_new_page\fR(3X)
-pos_form_cursor \fBform_cursor\fR(3X)
-post_form \fBform_post\fR(3X)
-scale_form \fBform_win\fR(3X)
-set_current_field \fBform_page\fR(3X)
-set_field_back \fBform_field_attributes\fR(3X)
-set_field_buffer \fBform_field_buffer\fR(3X)
-set_field_fore \fBform_field_attributes\fR(3X)
-set_field_init \fBform_hook\fR(3X)
-set_field_just \fBform_field_just\fR(3X)
-set_field_opts \fBform_field_opts\fR(3X)
-set_field_pad \fBform_field_attributes\fR(3X)
-set_field_status \fBform_field_buffer\fR(3X)
-set_field_term \fBform_hook\fR(3X)
-set_field_type \fBform_field_validation\fR(3X)
-set_field_userptr \fBform_field_userptr\fR(3X)
-set_fieldtype_arg \fBform_fieldtype\fR(3X)
-set_fieldtype_choice \fBform_fieldtype\fR(3X)
-set_form_fields \fBform_field\fR(3X)
-set_form_init \fBform_hook\fR(3X)
-set_form_opts \fBform_field_opts\fR(3X)
-set_form_page \fBform_page\fR(3X)
-set_form_sub \fBform_win\fR(3X)
-set_form_term \fBform_hook\fR(3X)
-set_form_userptr \fBform_userptr\fR(3X)
-set_form_win \fBform_win\fR(3X)
-set_max_field \fBform_field_buffer\fR(3X)
-set_new_page \fBform_new_page\fR(3X)
-unfocus_current_field \fBform_page\fR(3X)
-unpost_form \fBform_post\fR(3X)
+current_field \fBform_page\fP(3X)
+data_ahead \fBform_data\fP(3X)
+data_behind \fBform_data\fP(3X)
+dup_field \fBform_field_new\fP(3X)
+dynamic_field_info \fBform_field_info\fP(3X)
+field_arg \fBform_field_validation\fP(3X)
+field_back \fBform_field_attributes\fP(3X)
+field_buffer \fBform_field_buffer\fP(3X)
+field_count \fBform_field\fP(3X)
+field_fore \fBform_field_attributes\fP(3X)
+field_index \fBform_page\fP(3X)
+field_info \fBform_field_info\fP(3X)
+field_init \fBform_hook\fP(3X)
+field_just \fBform_field_just\fP(3X)
+field_opts \fBform_field_opts\fP(3X)
+field_opts_off \fBform_field_opts\fP(3X)
+field_opts_on \fBform_field_opts\fP(3X)
+field_pad \fBform_field_attributes\fP(3X)
+field_status \fBform_field_buffer\fP(3X)
+field_term \fBform_hook\fP(3X)
+field_type \fBform_field_validation\fP(3X)
+field_userptr \fBform_field_userptr\fP(3X)
+form_driver \fBform_driver\fP(3X)
+form_driver_w \fBform_driver\fP(3X)*
+form_fields \fBform_field\fP(3X)
+form_init \fBform_hook\fP(3X)
+form_opts \fBform_opts\fP(3X)
+form_opts_off \fBform_opts\fP(3X)
+form_opts_on \fBform_opts\fP(3X)
+form_page \fBform_page\fP(3X)
+form_request_by_name \fBform_requestname\fP(3X)*
+form_request_name \fBform_requestname\fP(3X)*
+form_sub \fBform_win\fP(3X)
+form_term \fBform_hook\fP(3X)
+form_userptr \fBform_userptr\fP(3X)
+form_win \fBform_win\fP(3X)
+free_field \fBform_field_new\fP(3X)
+free_fieldtype \fBform_fieldtype\fP(3X)
+free_form \fBform_new\fP(3X)
+link_field \fBform_field_new\fP(3X)
+link_fieldtype \fBform_fieldtype\fP(3X)
+move_field \fBform_field\fP(3X)
+new_field \fBform_field_new\fP(3X)
+new_fieldtype \fBform_fieldtype\fP(3X)
+new_form \fBform_new\fP(3X)
+new_page \fBform_new_page\fP(3X)
+pos_form_cursor \fBform_cursor\fP(3X)
+post_form \fBform_post\fP(3X)
+scale_form \fBform_win\fP(3X)
+set_current_field \fBform_page\fP(3X)
+set_field_back \fBform_field_attributes\fP(3X)
+set_field_buffer \fBform_field_buffer\fP(3X)
+set_field_fore \fBform_field_attributes\fP(3X)
+set_field_init \fBform_hook\fP(3X)
+set_field_just \fBform_field_just\fP(3X)
+set_field_opts \fBform_field_opts\fP(3X)
+set_field_pad \fBform_field_attributes\fP(3X)
+set_field_status \fBform_field_buffer\fP(3X)
+set_field_term \fBform_hook\fP(3X)
+set_field_type \fBform_field_validation\fP(3X)
+set_field_userptr \fBform_field_userptr\fP(3X)
+set_fieldtype_arg \fBform_fieldtype\fP(3X)
+set_fieldtype_choice \fBform_fieldtype\fP(3X)
+set_form_fields \fBform_field\fP(3X)
+set_form_init \fBform_hook\fP(3X)
+set_form_opts \fBform_field_opts\fP(3X)
+set_form_page \fBform_page\fP(3X)
+set_form_sub \fBform_win\fP(3X)
+set_form_term \fBform_hook\fP(3X)
+set_form_userptr \fBform_userptr\fP(3X)
+set_form_win \fBform_win\fP(3X)
+set_max_field \fBform_field_buffer\fP(3X)
+set_new_page \fBform_new_page\fP(3X)
+unfocus_current_field \fBform_page\fP(3X)*
+unpost_form \fBform_post\fP(3X)
.TE
.SH RETURN VALUE
-Routines that return pointers return \fBNULL\fR on error,
-and set errno to the corresponding error-code returned by functions
+Routines that return pointers return \fBNULL\fP on error,
+and set \fBerrno\fP to the corresponding error-code returned by functions
returning an integer.
Routines that return
an integer return one of the following error codes:
The form driver could not process the request.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.TP 5
.B E_UNKNOWN_COMMAND
The form driver code saw an unknown request code.
.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header files
-\fB<curses.h>\fR and \fB<eti.h>\fR.
+The header file \fB<form.h>\fP automatically includes the header files
+\fB<curses.h>\fP and \fB<eti.h>\fP.
.PP
In your library list, libform.a should be before libncurses.a; that is,
you want to say \*(``\-lform \-lncurses\*('', not the other way around
Manual pages and adaptation for ncurses by Eric
S. Raymond.
.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin \*(``form_\*('' for detailed
+\fBcurses\fP(3X) and related pages whose names begin \*(``form_\*('' for detailed
descriptions of the entry points.
.PP
-This describes \fBncurses\fR
+This describes \fBncurses\fP
version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).