Search all pages
Professions, Sciences, Humanities, Business, ...
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...
Conversions, tests, processing, manipulation,...
Integer, Floating point, Matrix, Statistics, Boolean, ...
Algorithms, Memory, Process control, Debugging, ...
Data storage, Integrity, Encryption, Compression, ...
Networks, protocols, Interprocess, Remote, Client Server, ...
Timing, Calendar and Clock, Audio, Video, Printer, Controls...
Management, Filtering, File & Directory access, Viewers, ...
RocketLink!--> Man page versions:
form_fieldtype - define validation-field types
bool (* const field_check)(FIELD *, const void *),
bool (* const char_check)(int, const void *));
int free_fieldtype(FIELDTYPE *fieldtype);
void *(* const make_arg)(va_list *),
void *(* const copy_arg)(const void *),
void (* const free_arg)(void *));
bool (* const next_choice)(FIELD *, const void *),
bool (* const prev_choice)(FIELD *, const void *));
FIELDTYPE *link_fieldtype(FIELDTYPE *type1,
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 attempt 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
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
The function free_fieldtype frees the space allocated for
a given validation type.
The function set_fieldtype associates three storage-man-
agement functions with a field type. The mak_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 argu-
ment-block structures. They will be used by the forms-
driver code. You must supply the mak_arg function, the
other two are optional, you may supply NULL for them. In
this case it is assumed, that mak_arg doesn't allocate
memory but simply loads the argument into a single scalar
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 func-
tion allows forms programmers to define successor and pre-
decessor functions for the field type. These functions
take the field pointer and an argument-block structure as
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.
System error occurred (see errno).
Routine detected an incorrect or out-of-range argu-
The field is already connected to a form.
The header file <form.h> automatically includes the header
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 supported on Version 7 or BSD versions.
Juergen Pfeifer. Manual pages and adaptation for new
curses by Eric S. Raymond.
Source: OpenBSD 2.6 man pages. Copyright: Portions are copyrighted by BERKELEY
SOFTWARE DESIGN, INC., The Regents of the University of California, Massachusetts
Institute of Technology, Free Software Foundation, FreeBSD Inc., and others.
(Corrections, notes, and links courtesy of RocketAware.com)
OpenBSD sources for form_fieldtype(3)
Up to: Curses forms - Curses (Library for text display interface) on screen forms
RocketLink!--> Man page versions:
Search | About | Comments | Submit Path: RocketAware > man pages >
RocketAware.com is a service of Mib Software
Copyright 1999, Forrest J. Cavalier III. All Rights Reserved.
We welcome submissions and comments