'\" t
.\"***************************************************************************
-.\" Copyright 2018-2019,2020 Thomas E. Dickey *
+.\" Copyright 2018-2020,2021 Thomas E. Dickey *
.\" Copyright 1998-2006,2010 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_fieldtype.3x,v 1.28 2020/12/12 17:11:21 tom Exp $
+.\" $Id: form_fieldtype.3x,v 1.30 2021/12/25 21:49:32 tom Exp $
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
..
.TH form_fieldtype 3X ""
.SH NAME
-\fBform_fieldtype\fR \- define validation-field types
+\fBform_fieldtype\fP \- define validation-field types
.SH SYNOPSIS
-\fB#include <form.h>\fR
+\fB#include <form.h>\fP
.sp
\fBFIELDTYPE *new_fieldtype(\fP
\fBbool (* const \fP\fIfield_check\fP\fB)(FIELD *, const void *),\fP
\fBFIELDTYPE *\fP\fItype2\fP\fB);\fP
.SH DESCRIPTION
.SS new_fieldtype
-The function \fBnew_fieldtype\fR creates a new field type usable for data
+The function \fBnew_fieldtype\fP creates a new field type usable for data
validation.
Its parameters are function pointers:
.TP 5
-\fIfield_check\fR
+\fIfield_check\fP
This function checks the
validity of an entered data string whenever the user attempts to leave a field.
It has two arguments:
argument-block structure, about which more below.
.RE
.TP 5
-\fIchar_check\fR
+\fIchar_check\fP
This function validates input characters as they are entered.
The form library passes it the character to be checked
and a pointer to an argument-block structure.
.SS free_fieldtype
.PP
-The \fBfree_fieldtype\fR function
+The \fBfree_fieldtype\fP function
frees the space allocated for a given validation type by \fBnew_fieldtype\fP.
.SS set_fieldtype_arg
.PP
-The function \fBset_fieldtype_arg\fR associates
+The function \fBset_fieldtype_arg\fP associates
three storage-management functions with a field type:
.TP 5
-\fImake_arg\fR
+\fImake_arg\fP
This function is automatically applied to the
-list of arguments you give \fBset_field_type\fR when attaching validation
+list of arguments you give \fBset_field_type\fP when attaching validation
to a field.
It stores the arguments in an allocated argument-block
object which is used when validating input.
.TP 5
-\fIcopy_arg\fR
+\fIcopy_arg\fP
This function may be used by applications to copy argument-blocks.
.TP 5
-\fIfree_arg\fR
+\fIfree_arg\fP
Frees an argument-block structure.
.PP
-You must supply the \fImake_arg\fR function.
+You must supply the \fImake_arg\fP function.
The other two are optional: you may supply NULL for them.
In this case, the form library assumes
-that \fImake_arg\fR does not allocate memory but simply loads the
+that \fImake_arg\fP does not allocate memory but simply loads the
argument into a single scalar value.
.SS set_fieldtype_choice
.PP
-The form driver requests \fBREQ_NEXT_CHOICE\fR and \fBREQ_PREV_CHOICE\fR assume
+The form driver requests \fBREQ_NEXT_CHOICE\fP and \fBREQ_PREV_CHOICE\fP assume
that the possible values of a field form an ordered set, and provide the forms
user with a way to move through the set.
.PP
-The \fBset_fieldtype_choice\fR
+The \fBset_fieldtype_choice\fP
function allows forms programmers to define successor and predecessor functions
for the field type.
These functions take the field pointer and an
argument-block structure as arguments.
.SS link_fieldtype
.PP
-The function \fBlink_fieldtype\fR creates
+The function \fBlink_fieldtype\fP creates
a new field type from the two given types.
They are connected by an logical 'OR'.
.SH RETURN VALUE
The field is the current field.
.TP 5
.B E_SYSTEM_ERROR
-System error occurred (see \fBerrno\fR(3)).
+System error occurred (see \fBerrno\fP(3)).
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBform\fR(3X),
-\fBform_field_validation\fR(3X).
+\fBcurses\fP(3X),
+\fBform\fP(3X),
+\fBform_field_validation\fP(3X).
.SH NOTES
-The header file \fB<form.h>\fR automatically includes the header file
-\fB<curses.h>\fR.
+The header file \fB<form.h>\fP automatically includes the header file
+\fB<curses.h>\fP.
.SH PORTABILITY
These routines emulate the System V forms library.
They were not supported on