xref: /netbsd-src/lib/libform/form_field_buffer.3 (revision fd5cb0acea84d278e04e640d37ca2398f894991f)
1.\"	$NetBSD: form_field_buffer.3,v 1.11 2004/11/24 12:26:23 wiz Exp $
2.\"
3.\" Copyright (c) 2001
4.\"	Brett Lymn - blymn@baea.com.au, brett_lymn@yahoo.com.au
5.\"
6.\" This code is donated to The NetBSD Foundation by the author.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\"    notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice, this list of conditions and the following disclaimer in the
15.\"    documentation and/or other materials provided with the distribution.
16.\" 3. The name of the Author may not be used to endorse or promote
17.\"    products derived from this software without specific prior written
18.\"    permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.Dd November 24, 2004
33.Dt FORMS 3
34.Os
35.Sh NAME
36.Nm field_buffer ,
37.Nm field_status ,
38.Nm set_field_buffer ,
39.Nm set_field_printf ,
40.Nm set_field_status ,
41.Nm set_max_field
42.Nd form library
43.Sh LIBRARY
44.Lb libform
45.Sh SYNOPSIS
46.In form.h
47.Ft char *
48.Fn field_buffer "FIELD *field" "int buffer"
49.Ft int
50.Fn field_status "FIELD *field"
51.Ft int
52.Fn set_field_buffer "FIELD *field" "int buffer" "char *value"
53.Ft int
54.Fn set_field_printf "FIELD *field" "int buffer" "char *fmt" "..."
55.Ft int
56.Fn set_field_status "FIELD *field" "int status"
57.Sh DESCRIPTION
58The
59.Fn field_buffer
60function returns the contents of the buffer number specified by
61.Fa buffer
62for the given field.
63If the requested buffer number exceeds the
64number of buffers attached to the field then
65.Dv NULL
66will be returned.
67If the field option
68.Dv O_REFORMAT
69is enabled on the given field then
70storage will be allocated to hold the reformatted buffer.
71This storage must be release by calling
72.Xr free 3
73when it is no longer required.
74If the
75.Dv O_REFORMAT
76field option is not set then no extra storage is allocated.
77The field buffer may be set by calling
78.Fn set_field_buffer
79which will set the given buffer number to the contents of the string
80passed.
81A buffer may also be set by calling
82.Fn set_field_printf
83which sets the buffer using the format arg
84.Fa fmt
85after being expanded using the subsequent arguments in the same manner
86as
87.Xr sprintf 3
88does.
89Calling
90.Fn field_status
91will return the status of the first buffer attached to the field.
92If the field has been modified then the function will return
93.Dv TRUE
94otherwise
95.Dv FALSE
96is returned, the status of the first buffer may be
97programmatically set by calling
98.Fn set_field_status .
99The maximum growth of a dynamic field can be set by calling
100.Fn set_max_field
101which limits the fields rows if the field is a multiline field or the
102fields columns if the field only has a single row.
103.Sh RETURN VALUES
104Functions returning pointers will return
105.Dv NULL
106if an error is detected.
107The functions that return an int will return one of the following error
108values:
109.Pp
110.Bl -tag -width E_UNKNOWN_COMMAND -compact
111.It Er E_OK
112The function was successful.
113.It Er E_BAD_ARGUMENT
114A bad parameter was passed to the function.
115.It Er E_SYSTEM_ERROR
116A system error occurred performing the function.
117.El
118.Sh SEE ALSO
119.Xr curses 3 ,
120.Xr forms 3
121.Sh NOTES
122The header
123.Aq Pa form.h
124automatically includes both
125.Aq Pa curses.h
126and
127.Aq Pa eti.h .
128The function
129.Fn set_field_printf
130is a
131.Nx
132extension and must not be used in portable code.
133