'\" t
.TH form_field_validation 3X ""
.SH NAME
\fBform_field_validation\fR - data type validation for fields 
.SH SYNOPSIS
\fB#include <form.h>\fR
.br
int set_field_type(FIELD *field, FIELDTYPE *type, ...);
.br
FIELDTYPE *field_type(FIELD *field);
.br
char *field_arg(FIELD *field);
.br
.SH DESCRIPTION
The function \fBset_field_type\fR declares a data type for a given form field.
This is the type checked by validation functions.  The types are as follows:
.TP 5
TYPE_ALNUM
Alphanumeric data.  Requires a third argument, a minimum field width.
.TP 5
TYPE_ALPHA
Character data.  Requires a third argument, a minimum field width.
.TP 5
TYPE_ENUM
Accept one of a specified set of strings.  Requires a third (char **)
argument pointing to a string list; a fourth flag argument to enable
case-sensitivity; and a fifth flag argument specifying whether a partial
match must be a unique one (if this flag is off, a prefix matches the first
of any set of more than one list elements with that prefix).
.TP 5
TYPE_INTEGER
Integer data, parsable to an integer by \fBatoi(3)\fR.  Requires a third
integer precision argument that sets zero-padding, a fourth argument 
constraining minimum value, and a fifth constraining maximum value.
.TP 5
TYPE_NUMERIC
Numeric data (may have a decimal-point part).  Requires following
arguments as for TYPE_INTEGER data.
.TP 5
TYPE_REGEXP
Regular expression data.  Requires a regular expression third argument;
the data is valid if the regular expression matches it.  Regular expressions
are in the format of \fBregcomp\fR(3x) and \fBregexec\fR(3X).

It is possible to set up new programmer-defined field types.  See the
\fBform_fieldtype\fR(3X) manual page.
.SH RETURN VALUE
The functions \fBfield_type\fR and \fB\field_argfR return \fBNULL\fR on
error. The function \fBset_field_type\fR returns one of the following:
.TP 5
\fBE_OK\fR
The routine succeeded.
.TP 5
\fBE_SYSTEM_ERROR\fR
System error occurred (see \fBerrno\fR).
.SH SEE ALSO
\fBcurses\fR(3X), \fBform\fR(3X).
.SH NOTES
The header file \fB<form.h>\fR automatically includes the header file
\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library.  They were not supported on
Version 7 or BSD versions.
.SH AUTHORS
Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric
S. Raymond.
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End: