+++ /dev/null
-<HTML>
-<BODY BGCOLOR="#99ccbb" TEXT="#000000" LINK="#4060b0" VLINK="#000080" ALINK="#ff4040">
-<PRE>
- <STRONG>form_fieldtype</STRONG> - define validation-field types
-
-
-</PRE>
-<H2>SYNOPSIS</H2><PRE>
- <STRONG>#include</STRONG> <STRONG><form.h></STRONG>
- FIELDTYPE *new_fieldtype(
- bool (* const field_check)(FIELD *, const void *),
- bool (* const char_check)(int, const void *));
- int free_fieldtype(FIELDTYPE *fieldtype);
- int set_fieldtype_arg(
- FIELDTYPE *fieldtype,
- void *(* const make_arg)(va_list *),
- void *(* const copy_arg)(const void *),
- void (* const free_arg)(void *));
- int set_fieldtype_choice(
- FIELDTYPE *fieldtype
- bool (* const next_choice)(FIELD *, const void *),
- bool (* const prev_choice)(FIELD *, const void *));
- FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
- FIELDTYPE *type2);
-
-
-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The function <STRONG>new_fieldtype</STRONG> creates a new field type usable
- for data validation. You supply it with <EM>field</EM><STRONG>_</STRONG><EM>check</EM>, a
- predicate to check the validity of an entered data string
- whenever the user attempt to leave a field. The (FIELD *)
- argument is passed in so the validation predicate can see
- the field's buffer, sizes and other attributes; the second
- argument is an argument-block structure, about which more
- below.
-
- You also supply <STRONG>new_fieldtype</STRONG> with <EM>char</EM><STRONG>_</STRONG><EM>check</EM>, a function
- to validate input characters as they are entered; it will
- be passed the character to be checked and a pointer to an
- argument-block structure.
-
- The function <STRONG>free_fieldtype</STRONG> frees the space allocated for
- a given validation type.
-
- The function <STRONG>set_fieldtype</STRONG> associates three storage-man-
- agement functions with a field type. The <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> function
- is automatically applied to the list of arguments you give
- <STRONG>set_field_type</STRONG> when attaching validation to a field; its
- job is to bundle these into an allocated argument-block
- object which can later be passed to validation predicated.
- The other two hook arguments should copy and free argu-
- ment-block structures. They will be used by the forms-
- driver code. You must supply the <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> function, the
- other two are optional, you may supply NULL for them. In
- this case it is assumed, that <EM>mak</EM><STRONG>_</STRONG><EM>arg</EM> doesn't allocate
- memory but simply loads the argument into a single scalar
- value.
-
- form an ordered set, and provide the forms user with a way
- to move through the set. The <STRONG>set_fieldtype_choice</STRONG> func-
- tion allows forms programmers to define successor and pre-
- decessor functions for the field type. These functions
- take the field pointer and an argument-block structure as
- arguments.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- The pointer-valued routines return NULL on error.
-
- The integer-valued routines return one of the following
- codes on error:
-
- <STRONG>E_OK</STRONG> The routine succeeded.
-
- <STRONG>E_SYSTEM_ERROR</STRONG>
- System error occurred (see <STRONG>errno</STRONG>).
-
- <STRONG>E_BAD_ARGUMENT</STRONG>
- Routine detected an incorrect or out-of-range argu-
- ment.
-
- <STRONG>E_CONNECTED</STRONG>
- The field is already connected to a form.
-
-
-</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>.
-
- All of the <STRONG>(char</STRONG> <STRONG>*)</STRONG> arguments of these functions should
- actually be <STRONG>(void</STRONG> <STRONG>*)</STRONG>. The type has been left uncorrected
- for strict compatibility with System V.
-
-
-</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.
-
-
-
-
-
-
-
-
-
-</PRE>
-</BODY>
-</HTML>