| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> |
| <!-- |
| **************************************************************************** |
| * Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. * |
| * * |
| * Permission is hereby granted, free of charge, to any person obtaining a * |
| * copy of this software and associated documentation files (the * |
| * "Software"), to deal in the Software without restriction, including * |
| * without limitation the rights to use, copy, modify, merge, publish, * |
| * distribute, distribute with modifications, sublicense, and/or sell * |
| * copies of the Software, and to permit persons to whom the Software is * |
| * furnished to do so, subject to the following conditions: * |
| * * |
| * The above copyright notice and this permission notice shall be included * |
| * in all copies or substantial portions of the Software. * |
| * * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| * * |
| * Except as contained in this notice, the name(s) of the above copyright * |
| * holders shall not be used in advertising or otherwise to promote the * |
| * sale, use or other dealings in this Software without prior written * |
| * authorization. * |
| **************************************************************************** |
| * @Id: form_field_validation.3x,v 1.16 2006/12/24 16:08:08 tom Exp @ |
| --> |
| <HTML> |
| <HEAD> |
| <TITLE>form_field_validation 3x</TITLE> |
| <link rev=made href="mailto:bug-ncurses@gnu.org"> |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> |
| </HEAD> |
| <BODY> |
| <H1>form_field_validation 3x</H1> |
| <HR> |
| <PRE> |
| <!-- Manpage converted by man2html 3.0.1 --> |
| <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> |
| |
| |
| |
| |
| </PRE> |
| <H2>NAME</H2><PRE> |
| <STRONG>form_field_validation</STRONG> - data type validation for fields |
| |
| |
| </PRE> |
| <H2>SYNOPSIS</H2><PRE> |
| <STRONG>#include</STRONG> <STRONG><form.h></STRONG> |
| 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; |
| |
| |
| </PRE> |
| <H2>DESCRIPTION</H2><PRE> |
| The function <STRONG>set_field_type</STRONG> 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 <STRONG>int</STRONG> argument, a |
| minimum field width. |
| |
| TYPE_ALPHA |
| Character data. Requires a third <STRONG>int</STRONG> argument, a |
| minimum field width. |
| |
| TYPE_ENUM |
| Accept one of a specified set of strings. Requires a |
| third <STRONG>(char</STRONG> <STRONG>**)</STRONG> argument pointing to a string list; a |
| fourth <STRONG>int</STRONG> flag argument to enable case-sensitivity; |
| and a fifth <STRONG>int</STRONG> 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 using a list that lives in automatic variables |
| on the stack. |
| |
| TYPE_INTEGER |
| Integer data, parsable to an integer by <STRONG>atoi(3)</STRONG>. |
| Requires a third <STRONG>int</STRONG> argument controlling the preci- |
| sion, a fourth <STRONG>long</STRONG> argument constraining minimum |
| value, and a fifth <STRONG>long</STRONG> 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 <STRONG>printf</STRONG> |
| format specification ".*ld", where the '*' is |
| replaced by the precision argument. For details of |
| the precision handling see <STRONG>printf's</STRONG> man-page. |
| |
| TYPE_NUMERIC |
| Numeric data (may have a decimal-point part). |
| Requires a third <STRONG>int</STRONG> argument controlling the preci- |
| sion, a fourth <STRONG>double</STRONG> argument constraining minimum |
| value, and a fifth <STRONG>double</STRONG> 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 <STRONG>printf</STRONG> format specification ".*f", |
| where the '*' is replaced by the precision argument. |
| For details of the precision handling see <STRONG>printf's</STRONG> |
| man-page. |
| |
| TYPE_REGEXP |
| Regular expression data. Requires a regular expres- |
| sion <STRONG>(char</STRONG> <STRONG>*)</STRONG> third argument; the data is valid if |
| the regular expression matches it. Regular expres- |
| sions are in the format of <STRONG>regcomp</STRONG> and <STRONG>regexec</STRONG>. |
| 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 <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> manual page. |
| |
| |
| </PRE> |
| <H2>RETURN VALUE</H2><PRE> |
| The functions <STRONG>field_type</STRONG> and <STRONG>field_arg</STRONG> return <STRONG>NULL</STRONG> on |
| error. The function <STRONG>set_field_type</STRONG> returns one of the fol- |
| lowing: |
| |
| <STRONG>E_OK</STRONG> The routine succeeded. |
| |
| <STRONG>E_SYSTEM_ERROR</STRONG> |
| System error occurred (see <STRONG>errno</STRONG>). |
| |
| |
| </PRE> |
| <H2>SEE ALSO</H2><PRE> |
| <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>. |
| |
| |
| </PRE> |
| <H2>NOTES</H2><PRE> |
| The header file <STRONG><form.h></STRONG> automatically includes the header |
| file <STRONG><curses.h></STRONG>. |
| |
| |
| </PRE> |
| <H2>PORTABILITY</H2><PRE> |
| These routines emulate the System V forms library. They |
| were not supported on Version 7 or BSD versions. |
| |
| |
| </PRE> |
| <H2>AUTHORS</H2><PRE> |
| Juergen Pfeifer. Manual pages and adaptation for new |
| curses by Eric S. Raymond. |
| |
| |
| |
| <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> |
| </PRE> |
| <HR> |
| <ADDRESS> |
| Man(1) output converted with |
| <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a> |
| </ADDRESS> |
| </BODY> |
| </HTML> |