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

FreeBSD Manual Pages

  
 
  

home | help
form_field_validation(3X)			     form_field_validation(3X)

NAME
       form_field_validation - data type validation for	fields

SYNOPSIS
       #include	<form.h>
       int set_field_type(FIELD	*field,	FIELDTYPE *type, ...);
       FIELDTYPE *field_type(const FIELD *field);
       void *field_arg(const FIELD *field);

       FIELDTYPE *TYPE_ALNUM;
       FIELDTYPE *TYPE_ALPHA;
       FIELDTYPE *TYPE_ENUM;
       FIELDTYPE *TYPE_INTEGER;
       FIELDTYPE *TYPE_NUMERIC;
       FIELDTYPE *TYPE_REGEXP;
       FIELDTYPE *TYPE_IPV4;

DESCRIPTION
       The  function  set_field_type  declares	a  data	 type for a given form
       field.  This is the type	checked	by validation functions.   The	prede-
       fined types are as follows:

       TYPE_ALNUM
	    Alphanumeric data.	Requires a third int argument, a minimum field
	    width.

       TYPE_ALPHA
	    Character data.  Requires a	third int argument,  a	minimum	 field
	    width.

       TYPE_ENUM
	    Accept  one	of a specified set of strings.	Requires a third (char
	    **)	argument pointing to a string list; a fourth int flag argument
	    to enable case-sensitivity;	and a fifth int	flag argument specify-
	    ing	whether	a partial match	must be	a unique one (if this flag  is
	    off,  a  prefix matches the	first of any set of more than one list
	    elements with that prefix).	Please notice that the string list  is
	    copied. So you may use a list that lives in	automatic variables on
	    the	stack.

       TYPE_INTEGER
	    Integer data, parsable to an integer by atoi(3).  Requires a third
	    int	 argument  controlling	the  precision,	a fourth long argument
	    constraining minimum value,	and a fifth long constraining  maximum
	    value.   If	the maximum value is less than or equal	to the minimum
	    value, the range is	simply ignored.	On return the field buffer  is
	    formatted  according  to  the  printf format specification ".*ld",
	    where the '*' is replaced by the precision argument.  For  details
	    of the precision handling see printf's man-page.

       TYPE_NUMERIC
	    Numeric data (may have a decimal-point part). Requires a third int
	    argument controlling the precision,	a fourth double	argument  con-
	    straining  minimum	value, and a fifth double constraining maximum
	    value. If your system supports locales, the	decimal	point  charac-
	    ter	 to  be	used must be the one specified by your locale.	If the
	    maximum value is less than or equal	 to  the  minimum  value,  the
	    range  is  simply ignored. On return the field buffer is formatted
	    according to the printf format specification ".*f",	where the  '*'
	    is	replaced by the	precision argument.  For details of the	preci-
	    sion handling see printf's man-page.

       TYPE_REGEXP
	    Regular expression data.  Requires a regular expression  (char  *)
	    third  argument;  the  data	 is  valid  if	the regular expression
	    matches it.	 Regular expressions are in the	format of regcomp  and
	    regexec.  Please notice that the regular expression	must match the
	    whole field. If you	have  for  example  an	eight  character  wide
	    field,  a regular expression "^[0-9]*$" always means that you have
	    to fill all	eight positions	with digits.  If  you  want  to	 allow
	    fewer  digits,  you	may use	for example "^[0-9]* *$" which is good
	    for	trailing spaces	(up to an empty	 field),  or  "^  *[0-9]*  *$"
	    which is good for leading and trailing spaces around the digits.

       TYPE_IPV4
	    An	Internet  Protocol  Version  4 address.	This requires no addi-
	    tional argument. It	is checked whether or not the buffer  has  the
	    form  a.b.c.d,  where  a,b,c  and d	are numbers between 0 and 255.
	    Trailing blanks in the buffer are ignored. The address  itself  is
	    not	validated. Please note that this is an ncurses extension. This
	    field type may not be available in other curses implementations.

       It is possible to set up	new programmer-defined field types.   See  the
       form_fieldtype(3X) manual page.

RETURN VALUE
       The  functions field_type and field_arg return NULL on error. The func-
       tion set_field_type returns one of the following:

       E_OK The	routine	succeeded.

       E_SYSTEM_ERROR
	    System error occurred (see errno).

SEE ALSO
       curses(3X), form(3X), form_variables(3X).

NOTES
       The  header  file  <form.h>  automatically  includes  the  header  file
       <curses.h>.

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

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

						     form_field_validation(3X)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | SEE ALSO | NOTES | PORTABILITY | AUTHORS

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

home | help