+</PRE><H3><a name="h3-set_fieldtype_arg">set_fieldtype_arg</a></H3><PRE>
+ The function <STRONG>set_fieldtype_arg</STRONG> associates three storage-management
+ functions with a field type:
+
+ <EM>make</EM><STRONG>_</STRONG><EM>arg</EM>
+ This function is automatically applied to the list of arguments
+ you give <STRONG>set_field_type</STRONG> when attaching validation to a field. It
+ stores the arguments in an allocated argument-block object which
+ is used when validating input.
+
+ <EM>copy</EM><STRONG>_</STRONG><EM>arg</EM>
+ This function may be used by applications to copy argument-blocks.
+
+ <EM>free</EM><STRONG>_</STRONG><EM>arg</EM>
+ Frees an argument-block structure.
+
+ You must supply the <EM>make</EM><STRONG>_</STRONG><EM>arg</EM> function. The other two are optional: you
+ may supply NULL for them. In this case, the form library assumes that
+ <EM>make</EM><STRONG>_</STRONG><EM>arg</EM> does not allocate memory but simply loads the argument into a
+ single scalar value.
+
+
+</PRE><H3><a name="h3-set_fieldtype_choice">set_fieldtype_choice</a></H3><PRE>
+ The form driver requests <STRONG>REQ_NEXT_CHOICE</STRONG> and <STRONG>REQ_PREV_CHOICE</STRONG> assume
+ that the possible values of a field form an ordered set, and provide
+ the forms user with a way to move through the set.
+
+ The <STRONG>set_fieldtype_choice</STRONG> function allows forms programmers to define
+ successor and predecessor functions for the field type. These
+ functions take the field pointer and an argument-block structure as
+ arguments.
+
+
+</PRE><H3><a name="h3-link_fieldtype">link_fieldtype</a></H3><PRE>
+ The function <STRONG>link_fieldtype</STRONG> creates a new field type from the two given
+ types. They are connected by an logical 'OR'.
+
+
+</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
+ The pointer-valued routines return NULL on error. They set <STRONG>errno</STRONG>
+ according to their success:
+
+ <STRONG>E_OK</STRONG> The routine succeeded.
+
+ <STRONG>E_BAD_ARGUMENT</STRONG>
+ Routine detected an incorrect or out-of-range argument.
+
+ <STRONG>E_SYSTEM_ERROR</STRONG>
+ System error occurred, e.g., malloc failure.
+
+ The integer-valued routines return one of the following codes on error:
+
+ <STRONG>E_OK</STRONG> The routine succeeded.
+
+ <STRONG>E_BAD_ARGUMENT</STRONG>
+ Routine detected an incorrect or out-of-range argument.
+
+ <STRONG>E_CONNECTED</STRONG>
+ The field is already connected to a form.
+
+ <STRONG>E_CURRENT</STRONG>
+ The field is the current field.
+
+ <STRONG>E_SYSTEM_ERROR</STRONG>
+ System error occurred (see <STRONG>errno(3)</STRONG>).