![]() |
![]()
| ![]() |
![]()
NAMEform_field_validation - data type validation for fields SYNOPSIS#include <form.h> void *field_arg(const FIELD *field); FIELDTYPE *field_type(const FIELD *field); int set_field_type(FIELD *field, FIELDTYPE *type, ...); /* predefined field types */ FIELDTYPE *TYPE_ALNUM; FIELDTYPE *TYPE_ALPHA; FIELDTYPE *TYPE_ENUM; FIELDTYPE *TYPE_INTEGER; FIELDTYPE *TYPE_NUMERIC; FIELDTYPE *TYPE_REGEXP; FIELDTYPE *TYPE_IPV4; DESCRIPTIONBy default, no validation is done on form fields. You can associate a form with with a field type, making the form library validate input. field_argReturns a pointer to the field's argument block. The argument block is an opaque structure containing a copy of the arguments provided in a set_field_type call. field_typeReturns a pointer to the field type associated with the form field, i.e., by calling set_field_type. set_field_typeThe function set_field_type associates a field type with a given form field. This is the type checked by validation functions. Most field types are configurable, via arguments which the caller provides when calling set_field_type. Several field types are predefined by the form library. PREDEFINED TYPESIt is possible to set up new programmer-defined field types. Field types are implemented via the FIELDTYPE data structure, which contains several pointers to functions. See the form_fieldtype(3X) manual page, which describes functions which can be used to construct a field-type dynamically. The predefined types are as follows: TYPE_ALNUMAlphanumeric data. Required parameter:
TYPE_ALPHACharacter data. Required parameter:
TYPE_ENUMAccept one of a specified set of strings. Required parameters:
The library copies the string list, so you may use a list that lives in automatic variables on the stack. TYPE_INTEGERInteger data, parsable to an integer by atoi(3). Required parameters:
On return, the field buffer is formatted according to the printf format specification “.*ld”, where the “*” is replaced by the precision argument. For details of the precision handling see printf(3). TYPE_NUMERICNumeric data (may have a decimal-point part). Required parameters:
On return, the field buffer is formatted according to the printf format specification “.*f”, where the “*” is replaced by the precision argument. For details of the precision handling see printf(3). TYPE_REGEXPRegular expression data. Required parameter:
Regular expressions are in the format of regcomp and regexec. 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. TYPE_IPV4An Internet Protocol Version 4 address. Required parameter:
The form library checks whether or not the buffer has the form a.b.c.d, where a, b, c, and d are numbers in the range 0 to 255. Trailing blanks in the buffer are ignored. The address itself is not validated. This is an ncurses extension; this field type may not be available in other curses implementations. RETURN VALUEThe functions field_type and field_arg return NULL on error. The function set_field_type returns one of the following:
PORTABILITYThese routines emulate the System V forms library. They were not supported on Version 7 or BSD versions. AUTHORSJuergen Pfeifer. Manual pages and adaptation for new curses by Eric S. Raymond. SEE ALSOcurses(3X), form(3X), form_fieldtype(3X), form_variables(3X)
|