xref: /netbsd/usr.bin/msgc/msgc.1 (revision c4a72b64)
1.\"	$NetBSD: msgc.1,v 1.17 2002/09/26 01:26:53 wiz Exp $
2.\"
3.\" Copyright 1997 Piermont Information Systems Inc.
4.\" All rights reserved.
5.\"
6.\" Written by Philip A. Nelson for Piermont Information Systems Inc.
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. All advertising materials mentioning features or use of this software
17.\"    must display the following acknowledgement:
18.\"      This product includes software developed for the NetBSD Project by
19.\"      Piermont Information Systems Inc.
20.\" 4. The name of Piermont Information Systems Inc. may not be used to endorse
21.\"    or promote products derived from this software without specific prior
22.\"    written permission.
23.\"
24.\" THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``AS IS''
25.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27.\" ARE DISCLAIMED. IN NO EVENT SHALL PIERMONT INFORMATION SYSTEMS INC. BE
28.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
34.\" THE POSSIBILITY OF SUCH DAMAGE.
35.\"
36.Dd September 26, 1997
37.Os
38.Dt MSGC 1
39.Sh NAME
40.Nm msgc ,
41.Nm msg_window ,
42.Nm msg_string ,
43.Nm msg_clear ,
44.Nm msg_standout ,
45.Nm msg_standend ,
46.Nm msg_display ,
47.Nm msg_display_add ,
48.Nm msg_prompt ,
49.Nm msg_prompt_add ,
50.Nm msg_prompt_noecho ,
51.Nm msg_table_add
52.Nd simple message list compiler
53.Sh SYNOPSIS
54msgc
55.Op Fl o Ar name
56.Ar file
57.Pp
58.Fd #include \b'"'msg_defs.h\b'"'
59.Ft void
60.Fn msg_window "WINDOW *window"
61.Ft const char *
62.Fn msg_string "msg msg_no"
63.Ft void
64.Fn msg_clear "void"
65.Ft void
66.Fn msg_standout "void"
67.Ft void
68.Fn msg_standend "void"
69.Ft void
70.Fn msg_display "msg msg_no" ...
71.Ft void
72.Fn msg_display_add "msg msg_no" ...
73.Ft void
74.Fn msg_prompt  "msg msg_no" "const char *def" "char *val" "int max_chars" ...
75.Ft void
76.Fn msg_prompt_add  "msg msg_no" "const char *def" "char *val" "int max_chars" ...
77.Ft void
78.Fn msg_prompt_noecho  "msg msg_no" "const char *def" "char *val" "int max_chars" ...
79.Ft void
80.Fn msg_table_add "msg msg_no" ...
81.Sh DESCRIPTION
82This implements a curses based message display system.
83A source file that lists messages with associated names is given to
84.Nm
85and produces both a .c and a .h file that implement the menu system.
86The standard root name of the files is
87.Pa msg_defs .
88The
89.Fl o Ar name
90can be used to specify a different root name.
91.Sh ENVIRONMENT
92.Bl -tag -width MSGDEF
93.It Ev MSGDEF
94Can be set to point to a different set of
95definition files for
96.Nm msgc .
97The current location defaults to
98.Pa /usr/share/misc .
99.El
100.Sh FILES
101.Bl -item -width /usr/share/misc/msg_sys.def
102.It
103.Pa /usr/share/misc/msg_sys.def
104.El
105.Sh SOURCE DESCRIPTION
106The format is very simple.
107Each message is started with the word
108.Sq message
109followed by the name of the message.
110The body of the message is next and is started by a { and closed by a }.
111The braces are not part of the message.
112Everything, including newlines between the braces are part of the message.
113.Sh MESSAGE FUNCTIONS
114The defined messages are used through calls routines that manipulate
115the messages.
116You first need to set the
117.Xr curses 3
118environment up and then tell the message system which window to use
119for displaying message by calling the function
120.Fn msg_window .
121.Pp
122All variable argument lists in the functions are used as
123are arguments to
124.Xr sprintf 3 .
125The messages may have
126.Xr sprintf 3
127conversions in them and the corresponding parameters should match.
128Messages are identified by name using the notation
129.Sq MENU_name
130where
131.Dq name
132is the name in the message source file.
133(The definitions are accessed by including the generated .h file into a
134source file wanting to use the message routines.)
135.Pp
136The function
137.Fn msg_string
138just returns a pointer to the actual message string.
139The functions
140.Fn msg_clear ,
141.Fn msg_standout
142and
143.Fn msg_standend
144respectively clear the message window, set standout mode and clear standout
145mode.
146.Pp
147The functions
148.Fn msg_display
149and
150.Fn msg_display_add
151cause a defined message to be displayed in the message window and does
152the requested conversions before printing.
153The difference is that
154.Fn msg_display
155clears the window before displaying the message.
156These functions fill paragraphs for readability.
157The
158.Fn msg_table_add
159function behaves like
160.Fn msg_display_add
161but does not fill text.
162.Pp
163The remaining functions deal with a prompt facility.
164A prompt message is either taken from the message directory or from a
165given string.
166The message is processed with
167.Xr sprintf 3
168and then displayed.
169If the parameter
170.Ar def
171is
172.No non- Ns Dv NULL
173and not a string of zero length, a default value is printed
174in brackets.
175The user is allowed to type in a response.
176If the user types just the newline character, the default is returned
177in the value.
178The parameter
179.Ar max_chars
180is the length of the parameter
181.Ar val ,
182where the results are stored.
183The parameters
184.Ar def
185and
186.Ar val
187may point to the same character array.
188If the default is chosen, the character array is not changed.
189The functions
190.Fn msg_echo
191and
192.Fn msg_noecho
193control whether the prompt routine echo or don't echo the input that
194is typed by the user.
195.Sh AUTHORS
196Philip A. Nelson for Piermont Information Systems Inc.
197