X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fform_field_validation.3x.html;h=475fe46eee67aa8175752ba4996fa1fa677ece42;hb=2882050bf8b296813e7e026b1c5c45d4a23043e3;hp=08201ff1315ec002e3a5d5c4b4dac51b46e4f14b;hpb=761e4f0825b330e970558e82a4bd638383914429;p=ncurses.git diff --git a/doc/html/man/form_field_validation.3x.html b/doc/html/man/form_field_validation.3x.html index 08201ff1..475fe46e 100644 --- a/doc/html/man/form_field_validation.3x.html +++ b/doc/html/man/form_field_validation.3x.html @@ -1,7 +1,7 @@ - - +
-- -form_field_validation(3x) form_field_validation(3x) +form_field_validation(3x) Library calls form_field_validation(3x) --
+
form_field_validation - data type validation for fields --
+
#include <form.h> - int set_field_type(FIELD *field, FIELDTYPE *type, ...); - FIELDTYPE *field_type(const FIELD *field); - void *field_arg(const FIELD *field); - FIELDTYPE *TYPE_ALNUM; - FIELDTYPE *TYPE_ALPHA; - FIELDTYPE *TYPE_ENUM; - FIELDTYPE *TYPE_INTEGER; - FIELDTYPE *TYPE_NUMERIC; - FIELDTYPE *TYPE_REGEXP; - FIELDTYPE *TYPE_IPV4; + 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; --
- The function set_field_type declares a data type for a - given form field. This is the type checked by validation - functions. The predefined types are as follows: - - TYPE_ALNUM - Alphanumeric data. Requires a third int argument, a - minimum field width. - - TYPE_ALPHA - Character data. Requires a third int argument, a - minimum field width. - - TYPE_ENUM - Accept one of a specified set of strings. Requires a - third (char **) argument pointing to a string list; a - fourth int flag argument to enable case-sensitivity; - and a fifth int 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 copied. So you may use - a list that lives in automatic variables on the - stack. - - TYPE_INTEGER - Integer data, parsable to an integer by atoi(3). - Requires a third int argument controlling the preci- - sion, a fourth long argument constraining minimum - value, and a fifth long constraining maximum value. - If the maximum value is less than or equal to the - minimum value, the range is simply ignored. 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's man-page. - - TYPE_NUMERIC - Numeric data (may have a decimal-point part). - Requires a third int argument controlling the preci- - sion, a fourth double argument constraining minimum - value, and a fifth double constraining maximum value. - If your system supports locales, the decimal point - character to be used must be the one specified by - your locale. If the maximum value is less than or - equal to the minimum value, the range is simply - ignored. 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's - man-page. - - TYPE_REGEXP - Regular expression data. Requires a regular expres- - sion (char *) third argument; the data is valid if - the regular expression matches it. Regular expres- - sions are in the format of regcomp and regexec. - Please notice 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 posi- - tions 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_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 vali- - dated. 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 form_fieldtype(3x) manual page. +
+ By default, no validation is done on form fields. You can associate a + form with with a field type, making the form library validate input. + + +
+ Returns 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. + + +
+ Returns a pointer to the field type associated with the form field, + i.e., by calling set_field_type. + + +
+ The 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. + + +
+ It 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: + + +
+ Alphanumeric data. Required parameter: + + o a third int argument, a minimum field width. + + +
+ Character data. Required parameter: + + o a third int argument, a minimum field width. + + +
+ Accept one of a specified set of strings. Required parameters: + + o a third (char **) argument pointing to a string list; + + o a fourth int flag argument to enable case-sensitivity; + + o a fifth int 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. + + The library copies the string list, so you may use a list that lives in + automatic variables on the stack. --
- The functions field_type and field_arg return NULL on - error. The function set_field_type returns one of the fol- - lowing: + +
+ Integer data, parsable to an integer by atoi(3). Required parameters: + + o a third int argument controlling the precision, + + o a fourth long argument constraining minimum value, + + o a fifth long constraining maximum value. If the maximum value is + less than or equal to the minimum value, the range is simply + ignored. + + 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). + + +
+ Numeric data (may have a decimal-point part). Required parameters: + + o a third int argument controlling the precision, + + o a fourth double argument constraining minimum value, + + o and a fifth double constraining maximum value. If your system + supports locales, the decimal point character must be the one + specified by your locale. If the maximum value is less than or + equal to the minimum value, the range is simply ignored. + + 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). + + +
+ Regular expression data. Required parameter: + + o a third argument, a regular expression (char *) string. The data + is valid if the regular expression matches it. + + 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. + + +
+ An Internet Protocol Version 4 address. Required parameter: + + o none + + 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. + + +
+ The functions field_type and field_arg return NULL on error. The + function set_field_type returns one of the following: E_OK The routine succeeded. E_SYSTEM_ERROR - System error occurred (see errno). + System error occurred (see errno(3)). --
- curses(3x), form(3x), form_variables(3x). +
+ The header file <form.h> automatically includes the header file + <curses.h>. --
- The header file <form.h> automatically includes the header - file <curses.h>. +
+ These routines emulate the System V forms library. They were not + supported on Version 7 or BSD versions. --
- These routines emulate the System V forms library. They - were not supported on Version 7 or BSD versions. +
+ Juergen Pfeifer. Manual pages and adaptation for new curses by Eric S. + Raymond. --
- Juergen Pfeifer. Manual pages and adaptation for new - curses by Eric S. Raymond. +
+ curses(3x), form(3x), form_fieldtype(3x), form_variables(3x) - form_field_validation(3x) +ncurses 6.4 2023-10-07 form_field_validation(3x)-