FreeBSD 7.0 manual page repository

FreeBSD is a free computer operating system based on BSD UNIX originally. Many IT companies, like DeployIS is using it to provide an up-to-date, stable operating system.

form_fieldtype - define validation-field types

 

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  predi‐
        cate 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 vali‐
        dation 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 predi‐
        cated.  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_field     
        type_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 arguments.
        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).
        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  sup‐
        ported on Version 7 or BSD versions.
 

AUTHORS

        Juergen Pfeifer.  Manual pages and adaptation for new curses by Eric S.
        Raymond.
 
                                                             form_fieldtype(3X)
 

Sections

Based on BSD UNIX
FreeBSD is an advanced operating system for x86 compatible (including Pentium and Athlon), amd64 compatible (including Opteron, Athlon64, and EM64T), UltraSPARC, IA-64, PC-98 and ARM architectures. It is derived from BSD, the version of UNIX developed at the University of California, Berkeley. It is developed and maintained by a large team of individuals. Additional platforms are in various stages of development.