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



        form_fieldtype - define validation-field types


        #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);


        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
        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.
             Routine detected an incorrect or out-of-range argument.
             System error occurred, e.g., malloc failure.
        The integer-valued routines return one of the following codes on error:
        E_OK The routine succeeded.
             Routine detected an incorrect or out-of-range argument.
             The field is already connected to a form.
             The field is the current field.
             System error occurred (see errno).
        curses(3X), form(3X).


        The  header  file  <form.h>  automatically  includes  the  header  file
        All of the (char *) arguments of these  functions  should  actually  be
        (void  *).  The type has been left uncorrected for strict compatibility
        with System V.


        These routines emulate the System V forms library.  They were not  sup‐
        ported on Version 7 or BSD versions.


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


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.