form_fieldtype man page on Archlinux

Printed from

form_fieldtype(3X)					    form_fieldtype(3X)

       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.


List of man pages available for Archlinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net