Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
form_fieldtype(3X)		  Library calls 	      form_fieldtype(3X)

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
   new_fieldtype
     The function new_fieldtype creates a new field type usable for data valida-
     tion.  Its parameters are function pointers:

     field_check
	  This	function  checks the validity of an entered data string whenever
	  the user attempts to leave a field.  It has two arguments:

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

     char_check
	  This function validates input characters as  they  are  entered.   The
	  form library passes it the character to be checked and a pointer to an
	  argument-block structure.

   free_fieldtype
     The  free_fieldtype  function frees the space allocated for a given valida-
     tion type by new_fieldtype.

   set_fieldtype_arg
     The function set_fieldtype_arg associates	three  storage-management  func-
     tions with a field type:

     make_arg
	  This	function  is  automatically applied to the list of arguments you
	  give set_field_type when attaching validation to a field.   It  stores
	  the arguments in an allocated argument-block object which is used when
	  validating input.

     copy_arg
	  This function may be used by applications to copy argument-blocks.

     free_arg
	  Frees an argument-block structure.

     You must supply the make_arg function.  The other two are optional: you may
     supply NULL for them.  In this case, the form library assumes that make_arg
     does not allocate memory but simply loads the argument into a single scalar
     value.

   set_fieldtype_choice
     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 programmers to define suc-
     cessor and predecessor functions for the field type.  These functions  take
     the field pointer and an argument-block structure as arguments.

   link_fieldtype
     The  function  link_fieldtype  creates  a new field type from the two given
     types.  They are connected by a logical "or".

RETURN VALUE
     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(3)).

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.

SEE ALSO
     curses(3X), form(3X), form_field_validation(3X)

ncurses 6.5			   2025-01-18		      form_fieldtype(3X)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=form_fieldtype&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help