This manual page is for Mac OS X version 10.6

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



form_fieldtype(3X)                                                                        form_fieldtype(3X)



NAME
       form_fieldtype - define validation-field types

SYNOPSIS
       #include <form.h>
       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);

DESCRIPTION
       The  function  new_fieldtype creates a new field type usable for data validation.  You supply it with
       field_check, a predicate to check the validity of an entered data string whenever the  user  attempts
       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  new_fieldtype with char_check, 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 free_fieldtype frees the space allocated for a given validation type.

       The  function set_fieldtype_arg associates three storage-management functions with a field type.  The
       make_arg function is automatically applied to the list of  arguments  you  give  set_field_type  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  argument-block  structures.   They  will be used by the forms-driver code.  You must supply the
       make_arg function, the other two are optional, you may supply NULL for them.   In  this  case  it  is
       assumed  that  make_arg  does  not allocate memory but simply loads the argument into a single scalar
       value.

       The function link_fieldtype creates a new field type from the two given types.  They are connected by
       an logical 'OR'.

       The  form  driver  requests  REQ_NEXT_CHOICE and REQ_PREV_CHOICE 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
       set_fieldtype_choice  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  argu-ments. arguments.
       ments.

RETURN VALUE
       The pointer-valued routines return NULL on error.  They set errno according to their success:

       E_OK The routine succeeded.

       E_BAD_ARGUMENT
            Routine detected an incorrect or out-of-range argument.

       E_SYSTEM_ERROR
            System error occurred, e.g., malloc failure.

       The integer-valued routines return one of the following codes on error:

       E_OK The routine succeeded.

       E_BAD_ARGUMENT
            Routine detected an incorrect or out-of-range argument.

       E_CONNECTED
            The field is already connected to a form.

       E_CURRENT
            The field is the current field.

       E_SYSTEM_ERROR
            System error occurred (see errno).

SEE ALSO
       curses(3X), form(3X).

NOTES
       The header file <form.h> automatically includes the header file <curses.h>.

       All of the (char *) arguments of these functions should actually be (void *).  The type has been left
       uncorrected for strict compatibility with System V.

PORTABILITY
       These routines emulate the System V forms library.  They were not supported on Version 7 or BSD  ver-sions. versions.
       sions.

AUTHORS
       Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric S. Raymond.



                                                                                          form_fieldtype(3X)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.