msgc(1)
- NetBSD Manual Pages
MSGC(1) NetBSD General Commands Manual MSGC(1)
NAME
msgc, msg_window, msg_string, msg_clear, msg_standout, msg_standend,
msg_display, msg_display_add, msg_printf, msg_prompt, msg_prompt_add,
msg_prompt_win, msg_prompt_noecho, msg_row, msg_table_add -- simple mes-
sage list compiler
SYNOPSIS
msgc [-o name] file
#include "msg_defs.h"
void
msg_window(WINDOW *window);
const char *
msg_string(msg msg_no);
void
msg_clear(void);
void
msg_standout(void);
void
msg_standend(void);
void
msg_display(msg msg_no, ...);
void
msg_display_add(msg msg_no, ...);
void
msg_printf(fmt, ...);
void
msg_prompt(msg msg_no, const char *def, char *val, int max_chars, ...);
void
msg_prompt_add(msg msg_no, const char *def, char *val, int max_chars,
...);
void
msg_prompt_win(msg msg_no, WINDOW *win, const char *def, char *val,
int max_chars, ...);
void
msg_prompt_noecho(msg msg_no, const char *def, char *val, int max_chars,
...);
int
msg_row(void);
void
msg_table_add(msg msg_no, ...);
DESCRIPTION
This implements a curses based message display system. A source file
that lists messages with associated names is given to msgc and produces
both a .c and a .h file that implement the menu system. The standard
root name of the files is msg_defs. The -o name can be used to specify a
different root name.
ENVIRONMENT
MSGDEF Can be set to point to a different set of definition files for
msgc. The current location defaults to /usr/share/misc.
FILES
/usr/share/misc/msg_sys.def
SOURCE DESCRIPTION
The format is very simple. Each message is started with the word
`message' followed by the name of the message. The body of the message
is next and is started by a { and closed by a }. The braces are not part
of the message. Everything, including newlines between the braces, is
part of the message.
MESSAGE FUNCTIONS
The defined messages are used through calls to routines that manipulate
the messages. You first need to set the curses(3) environment up and
then tell the message system which window to use for displaying the mes-
sages by calling the function msg_window().
All variable argument lists in the functions are used as arguments to
sprintf(3). The messages may have sprintf(3) conversions in them and the
corresponding parameters should match. Messages are identified by name
using the notation `MSG_name' where ``name'' is the name in the message
source file. (The definitions are accessed by including the generated .h
file into each source file wanting to use the message routines.)
The function msg_string() just returns a pointer to the actual message
string. The functions msg_clear(), msg_standout() and msg_standend()
respectively clear the message window, set standout mode and clear stand-
out mode.
The functions msg_display() and msg_display_add() cause the given message
to be displayed in the message window and do the requested conversions
before printing. The difference is that msg_display() clears the window
before displaying the message. These functions fill paragraphs for read-
ability. The msg_table_add() function behaves like msg_display_add() but
does not fill text.
The function msg_printf() allows to display a raw message without going
through the message catalog.
The remaining functions deal with a prompt facility. A prompt message is
either taken from the message directory or from a given string. The mes-
sage is processed with sprintf(3) and then displayed. If the parameter
def is non-NULL and not a string of zero length, a default value is
printed in brackets. The user is allowed to type in a response. If the
user types just the newline character, the default is returned in the
value. The parameter max_chars is the length of the parameter val, where
the results are stored. The parameters def and val may point to the same
character array. If the default is chosen, the character array is not
changed. The functions msg_echo() and msg_noecho() control whether the
prompt routines echo or don't echo the input that is typed by the user.
msg_prompt_win() uses the specified curses window instead of the default
one.
msg_row() return the current row - i.e.: getcury(msg_win) + getb-
egy(msg_win).
AUTHORS
Philip A. Nelson for Piermont Information Systems Inc.
NetBSD 10.99 October 11, 2021 NetBSD 10.99
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.