MirBSD manpage: form_fieldtype(3), free_fieldtype(3), link_fieldtype(3), new_fieldtype(3), set_fieldtype_arg(3), set_fieldtype_choice(3)


form_fieldtype(3)   UNIX Programmer's Manual    form_fieldtype(3)

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 func-
     tion 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.

MirBSD #10-current     Printed 2022-12-23                       1

form_fieldtype(3)   UNIX Programmer's Manual    form_fieldtype(3)

     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 pro-
     grammers to define successor and predecessor functions for
     the field type. These functions take the field pointer and
     an argument-block structure as arguments.

RETURN VALUE

     The pointer-valued routines return NULL on error.

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

     E_OK The routine succeeded.

     E_SYSTEM_ERROR
          System error occurred (see errno).

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

     E_CONNECTED
          The field is already connected to a form.

SEE ALSO

     curses(3), form(3).

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 versions.

AUTHORS

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

MirBSD #10-current     Printed 2022-12-23                       2

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung