123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- <!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>
|