]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/form.3x
ncurses 6.3 - patch 20220129
[ncurses.git] / man / form.3x
index 811b9ff747398e6eb92d5b4f3a8e6125ed336310..5808d1e9427579add0088e9934f0664d243bc4b8 100644 (file)
@@ -1,6 +1,7 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998,2002 Free Software Foundation, Inc.                   *
+.\" Copyright 2018-2020,2021 Thomas E. Dickey                                *
+.\" Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" copy of this software and associated documentation files (the            *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form.3x,v 1.15 2002/01/19 22:48:05 tom Exp $
+.\" $Id: form.3x,v 1.38 2021/12/25 21:49:32 tom Exp $
 .TH form 3X ""
+.ie \n(.g .ds `` \(lq
+.el       .ds `` ``
+.ie \n(.g .ds '' \(rq
+.el       .ds '' ''
+.de bP
+.ie n  .IP \(bu 4
+.el    .IP \(bu 2
+..
 .SH NAME
-\fBform\f- curses extension for programming forms
+\fBform\fP \- curses extension for programming forms
 .SH SYNOPSIS
-\fB#include <form.h>\fR
+\fB#include <form.h>\fP
 .br
 .SH DESCRIPTION
-The \fBform\fR library provides terminal-independent facilities for composing
-form screens on character-cell terminals.  The library includes: field
+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.
-
-The \fBform\fR library uses the \fBcurses\fR libraries, and a curses
-initialization routine such as \fBinitscr\fR must be called before using any of
-these functions.  To use the \fBform\fR library, link with the options
-\fB-lform -lcurses\fR.
-
+.PP
+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
+     \fBsetlocale(LC_ALL, "");\fP
+.sp
+so that input/output processing will work.
+.PP
+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.  You
-can get or set this default by calling the appropriate \fBset_\fR
+.
+The \fBform\fP library maintains a default value for field attributes.
+You
+can get or set this default by calling the appropriate \fBset_\fP
 or retrieval
-routine with a \fBNULL\fR field pointer.  Changing this default with a
-\fBset_\fR function affects future field creations, but does not change the
+routine with a \fBNULL\fP field pointer.
+Changing this default with a
+\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.
+.
 .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_fieldinfo      \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_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_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_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)
-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.  Routines that return
+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:
 .TP 5
-\fBE_OK\fR
+.B E_OK
 The routine succeeded.
 .TP 5
-\fBE_CONNECTED\fR
-The field is already connected to a form.
-.TP 5
-\fBE_SYSTEM_ERROR\fR
-System error occurred (see \fBerrno\fR).
-.TP 5
-\fBE_BAD_ARGUMENT\fR
+.B E_BAD_ARGUMENT
 Routine detected an incorrect or out-of-range argument.
 .TP 5
-\fBE_POSTED\fR
-The form is already posted.
-.TP 5
-\fBE_BAD_STATE\fR
+.B E_BAD_STATE
 Routine was called from an initialization or termination function.
 .TP 5
-\fBE_NO_ROOM\fR
-Form is too large for its window.
-.TP 5
-\fBE_NOT_POSTED\fR
-The form has not been posted.
-.TP 5
-\fBE_UNKNOWN_COMMAND\fR
-The form driver code saw an unknown request code.
+.B E_CONNECTED
+The field is already connected to a form.
 .TP 5
-\fBE_INVALID_FIELD\fR
+.B E_INVALID_FIELD
 Contents of a field are not valid.
 .TP 5
-\fBE_NOT_CONNECTED\fR
+.B E_NOT_CONNECTED
 No fields are connected to the form.
 .TP 5
-\fBE_REQUEST_DENIED\fR
+.B E_NOT_POSTED
+The form has not been posted.
+.TP 5
+.B E_NO_ROOM
+Form is too large for its window.
+.TP 5
+.B E_POSTED
+The form is already posted.
+.TP 5
+.B E_REQUEST_DENIED
 The form driver could not process the request.
-.SH SEE ALSO
-\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed
-descriptions of the entry points.
+.TP 5
+.B E_SYSTEM_ERROR
+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 (which would
-give you a link error using GNU \fBld\fR(1) and many other linkers).
+you want to say \*(``\-lform \-lncurses\*('', not the other way around
+(which would give you a link error when using static libraries).
 .SH PORTABILITY
-These routines emulate the System V forms library.  They were not supported on
+These routines emulate the System V forms library.
+They were not supported on
 Version 7 or BSD versions.
+.PP
+The menu facility was documented in SVr4.2 in
+\fICharacter User Interface Programming (UNIX SVR4.2)\fP.
+.PP
+It is not part of X/Open Curses.
+.PP
+Aside from ncurses, there are few implementations:
+.bP
+systems based on SVr4 source code, e.g., Solaris.
+.bP
+NetBSD curses.
+.PP
+A few functions in this implementation are extensions added for ncurses,
+but not provided by other implementations, e.g.,
+\fBform_driver_w\fP,
+\fBunfocus_current_field\fP.
 .SH AUTHORS
-Juergen Pfeifer.  Manual pages and adaptation for ncurses by Eric
+Juergen Pfeifer.
+Manual pages and adaptation for ncurses by Eric
 S. Raymond.
-.\"#
-.\"# The following sets edit modes for GNU EMACS
-.\"# Local Variables:
-.\"# mode:nroff
-.\"# fill-column:79
-.\"# End:
+.SH SEE ALSO
+\fBcurses\fP(3X) and related pages whose names begin \*(``form_\*('' for detailed
+descriptions of the entry points.
+.PP
+This describes \fBncurses\fP
+version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).