ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
214 lines
7.7 KiB
Plaintext
214 lines
7.7 KiB
Plaintext
.\"***************************************************************************
|
|
.\" Copyright 2018-2024,2025 Thomas E. Dickey *
|
|
.\" Copyright 1998-2010,2017 Free Software Foundation, Inc. *
|
|
.\" *
|
|
.\" Permission is hereby granted, free of charge, to any person obtaining a *
|
|
.\" copy of this software and associated documentation files (the *
|
|
.\" "Software"), to deal in the Software without restriction, including *
|
|
.\" without limitation the rights to use, copy, modify, merge, publish, *
|
|
.\" distribute, distribute with modifications, sublicense, and/or sell *
|
|
.\" copies of the Software, and to permit persons to whom the Software is *
|
|
.\" furnished to do so, subject to the following conditions: *
|
|
.\" *
|
|
.\" The above copyright notice and this permission notice shall be included *
|
|
.\" in all copies or substantial portions of the Software. *
|
|
.\" *
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
|
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
|
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
|
.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
|
.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
|
.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
|
.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
|
.\" *
|
|
.\" Except as contained in this notice, the name(s) of the above copyright *
|
|
.\" holders shall not be used in advertising or otherwise to promote the *
|
|
.\" sale, use or other dealings in this Software without prior written *
|
|
.\" authorization. *
|
|
.\"***************************************************************************
|
|
.\"
|
|
.\" $Id: form_field_validation.3x,v 1.62 2025/08/16 19:11:47 tom Exp $
|
|
.TH form_field_validation 3X 2025-08-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
|
|
.ie \n(.g \{\
|
|
.ds `` \(lq
|
|
.ds '' \(rq
|
|
.\}
|
|
.el \{\
|
|
.ie t .ds `` ``
|
|
.el .ds `` ""
|
|
.ie t .ds '' ''
|
|
.el .ds '' ""
|
|
.\}
|
|
.
|
|
.de bP
|
|
.ie n .IP \(bu 4
|
|
.el .IP \(bu 2
|
|
..
|
|
.SH NAME
|
|
\fBform_field_validation\fP \-
|
|
data type validation for fields
|
|
.SH SYNOPSIS
|
|
.nf
|
|
\fB#include <form.h>
|
|
.PP
|
|
\fBvoid *field_arg(const FIELD *\fIfield\fP);
|
|
\fBFIELDTYPE *field_type(const FIELD *\fIfield\fP);
|
|
\fBint set_field_type(FIELD *\fIfield\fP, FIELDTYPE *\fItype\fP, ...);
|
|
.PP
|
|
\fI/* field types */\fP
|
|
\fBFIELDTYPE *TYPE_ALNUM;
|
|
\fBFIELDTYPE *TYPE_ALPHA;
|
|
\fBFIELDTYPE *TYPE_ENUM;
|
|
\fBFIELDTYPE *TYPE_INTEGER;
|
|
\fBFIELDTYPE *TYPE_NUMERIC;
|
|
\fBFIELDTYPE *TYPE_REGEXP;
|
|
\fBFIELDTYPE *TYPE_IPV4;
|
|
.fi
|
|
.SH DESCRIPTION
|
|
By default, no validation is done on form fields.
|
|
You can associate a form with a \fIfield type\fP,
|
|
making the form library validate input.
|
|
.SS field_arg
|
|
Returns a pointer to the field's argument block.
|
|
The \fIargument block\fP is an opaque structure containing
|
|
a copy of the arguments provided in a \fBset_field_type\fP call.
|
|
.SS field_type
|
|
Returns a pointer to the \fIfield type\fP associated with the form field,
|
|
i.e., by calling \fBset_field_type\fP.
|
|
.SS set_field_type
|
|
The function \fBset_field_type\fP associates
|
|
a field type with a given form field.
|
|
This is the type checked by validation functions.
|
|
Most field types are configurable,
|
|
via arguments which the caller provides when calling \fBset_field_type\fP.
|
|
.SH "FIELD TYPES"
|
|
The
|
|
.I form
|
|
library defines several field types.
|
|
They are implemented via the \fBFIELDTYPE\fP data structure,
|
|
which contains several pointers to functions.
|
|
.PP
|
|
See the \fBform_fieldtype\fP(3X) manual page,
|
|
which describes functions which can be used to construct
|
|
a field-type dynamically.
|
|
.PP
|
|
The predefined types are as follows:
|
|
.SS TYPE_ALNUM
|
|
Alphanumeric data.
|
|
Required parameter:
|
|
.bP
|
|
a third \fBint\fP argument, a minimum field width.
|
|
.SS TYPE_ALPHA
|
|
Character data.
|
|
Required parameter:
|
|
.bP
|
|
a third \fBint\fP argument, a minimum field width.
|
|
.SS TYPE_ENUM
|
|
Accept one of a specified set of strings.
|
|
Required parameters:
|
|
.bP
|
|
a third \fB(char **)\fP argument pointing to a string list;
|
|
.bP
|
|
a fourth \fBint\fP flag argument to enable case-sensitivity;
|
|
.bP
|
|
a fifth \fBint\fP flag argument specifying 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.
|
|
.PP
|
|
The library copies the string list,
|
|
so you may use a list that lives in automatic variables on the stack.
|
|
.SS TYPE_INTEGER
|
|
Integer data, parsable to an integer by \fBatoi\fP(3).
|
|
Required parameters:
|
|
.bP
|
|
a third \fBint\fP argument controlling the precision,
|
|
.bP
|
|
a fourth \fBlong\fP argument constraining minimum value,
|
|
.bP
|
|
a fifth \fBlong\fP constraining maximum value.
|
|
If the maximum value is less than or equal to the minimum value, the range is
|
|
simply ignored.
|
|
.PP
|
|
On return, the field buffer is formatted according to the
|
|
\fBprintf\fP format specification \*(``.*ld\*('',
|
|
where the \*(``*\*('' is replaced by the precision argument.
|
|
.PP
|
|
For details of the precision handling see \fBprintf\fP(3).
|
|
.SS TYPE_NUMERIC
|
|
Numeric data (may have a decimal-point part).
|
|
Required parameters:
|
|
.bP
|
|
a third \fBint\fP argument controlling the precision,
|
|
.bP
|
|
a fourth \fBdouble\fP argument constraining minimum value,
|
|
.bP
|
|
and a fifth \fBdouble\fP constraining maximum value.
|
|
If your system supports locales,
|
|
the decimal point character 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.
|
|
.PP
|
|
On return, the field buffer is formatted according to the
|
|
\fBprintf\fP format specification \*(``.*f\*('',
|
|
where the \*(``*\*('' is replaced by the precision argument.
|
|
.PP
|
|
For details of the precision handling see \fBprintf\fP(3).
|
|
.SS TYPE_REGEXP
|
|
Regular expression data.
|
|
Required parameter:
|
|
.bP
|
|
a third argument, a regular expression \fB(char *)\fP string.
|
|
The data is valid if the regular expression matches it.
|
|
.PP
|
|
Regular expressions
|
|
are in the format of \fBregcomp\fP and \fBregexec\fP.
|
|
.PP
|
|
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.
|
|
.SS TYPE_IPV4
|
|
An Internet Protocol Version\ 4 address.
|
|
Required parameter:
|
|
.bP
|
|
none
|
|
.PP
|
|
The form library checks whether or not the buffer has the form \fIa.b.c.d\fP,
|
|
where \fIa\fP, \fIb\fP, \fIc\fP, and \fId\fP are numbers in the range 0 to 255.
|
|
Trailing blanks in the buffer are ignored.
|
|
The address itself is not validated.
|
|
.PP
|
|
This is an \fI\%ncurses\fP extension;
|
|
this field type may not be available in other curses implementations.
|
|
.PP
|
|
It is possible to set up new programmer-defined field types.
|
|
.SH RETURN VALUE
|
|
The functions \fBfield_type\fP and \fBfield_arg\fP return
|
|
.I NULL
|
|
on error.
|
|
The function \fBset_field_type\fP returns one of the following:
|
|
.TP 5
|
|
.B E_OK
|
|
The routine succeeded.
|
|
.TP 5
|
|
.B E_SYSTEM_ERROR
|
|
System error occurred (see \fBerrno\fP(3)).
|
|
.SH PORTABILITY
|
|
These routines emulate the System V forms library.
|
|
They were not supported on
|
|
Version 7 or BSD versions.
|
|
.SH AUTHORS
|
|
Juergen Pfeifer.
|
|
Manual pages and adaptation for new curses by Eric S. Raymond.
|
|
.SH SEE ALSO
|
|
\fB\%curses\fP(3X),
|
|
\fB\%form\fP(3X),
|
|
\fB\%form_fieldtype\fP(3X),
|
|
\fB\%form_variables\fP(3X)
|