1998-03-01 12:21:12 +08:00
|
|
|
.'" $Id: form_field_validation.3x,v 0.9 1997/12/06 22:08:27 tom Exp $
|
1997-05-15 12:00:00 +08:00
|
|
|
.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(const FIELD *field);
|
|
|
|
.br
|
|
|
|
void *field_arg(const 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 \fBint\fR argument, a minimum field width.
|
|
|
|
.TP 5
|
|
|
|
TYPE_ALPHA
|
|
|
|
Character data. Requires a third \fBint\fR argument, a minimum field width.
|
|
|
|
.TP 5
|
|
|
|
TYPE_ENUM
|
|
|
|
Accept one of a specified set of strings. Requires a third \fB(char **)\fR
|
|
|
|
argument pointing to a string list; a fourth \fBint\fR flag argument to enable
|
|
|
|
case-sensitivity; and a fifth \fBint\fR 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). Please notice
|
|
|
|
that the string list is not copied, only a reference to it is stored in the
|
|
|
|
field. So you should avoid to use a list that lives in automatic variables
|
|
|
|
on the stack.
|
|
|
|
.TP 5
|
|
|
|
TYPE_INTEGER
|
|
|
|
Integer data, parsable to an integer by \fBatoi(3)\fR. Requires a third
|
|
|
|
\fBint\fR argument controlling the precision, a fourth \fBlong\fR argument
|
|
|
|
constraining minimum value, and a fifth \fBlong\fR constraining maximum value.
|
|
|
|
If the maximum value is less or equal the minimum value, the range is simply
|
|
|
|
ignored. On return the field buffer is formatted according to the \fBprintf\fR
|
|
|
|
format specification ".*ld", where the '*' is replaced by the precision argument.
|
|
|
|
For details of the precision handling see \fBprintf's\fR man-page.
|
|
|
|
.TP 5
|
|
|
|
TYPE_NUMERIC
|
|
|
|
Numeric data (may have a decimal-point part). Requires a third
|
|
|
|
\fBint\fR argument controlling the precision, a fourth \fBdouble\fR
|
|
|
|
argument constraining minimum value, and a fifth \fBdouble\fR constraining
|
|
|
|
maximum value. If your system supports locale's, the decimal point character
|
|
|
|
to be used must be the one specified by your locale.
|
|
|
|
If the maximum value is less or equal the minimum value, the range is simply
|
|
|
|
ignored. On return the field buffer is formatted according to the \fBprintf\fR
|
|
|
|
format specification ".*f", where the '*' is replaced by the precision argument.
|
|
|
|
For details of the precision handling see \fBprintf's\fR man-page.
|
|
|
|
.TP 5
|
|
|
|
TYPE_REGEXP
|
|
|
|
Regular expression data. Requires a regular expression \fB(char *)\fR third argument;
|
|
|
|
the data is valid if the regular expression matches it. Regular expressions
|
1998-03-01 12:21:12 +08:00
|
|
|
are in the format of \fBregcomp\fR(3X) and \fBregexec\fR(3X). Please notice
|
1997-05-15 12:00:00 +08:00
|
|
|
that the regular expression must match the whole field. If you have for
|
|
|
|
example an eight character wide field, a regular expression "^[0-9]*$" always
|
|
|
|
means that you have to fill all eight positions with digits. If you want to
|
|
|
|
allow fewer digits, you may use for example "^[0-9]* *$" which is good for
|
|
|
|
trailing spaces (up to an empty field), or "^ *[0-9]* *$" which is good for
|
|
|
|
leading and trailing spaces around the digits.
|
|
|
|
.TP 5
|
|
|
|
TYPE_IPV4
|
|
|
|
An Internet Protocol Version 4 address. This requires no additional argument. It
|
|
|
|
is checked whether or not the buffer has the form a.b.c.d, where a,b,c and d are
|
|
|
|
numbers between 0 and 255. Trailing blanks in the buffer are ignored. The address
|
|
|
|
itself is not validated. Please note that this is an ncurses extension. This
|
|
|
|
field type may not be available in other curses implementations.
|
|
|
|
|
|
|
|
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 \fBfield_arg\fR 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:
|