Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

MSGC(1)                     General Commands Manual                    MSGC(1)

     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
     message list compiler

     msgc [-o name] file

     #include "msg_defs.h"

     msg_window(WINDOW *window);

     const char *
     msg_string(msg msg_no);




     msg_display(msg msg_no, ...);

     msg_display_add(msg msg_no, ...);

     msg_printf(fmt, ...);

     msg_prompt(msg msg_no, const char *def, char *val, int max_chars, ...);

     msg_prompt_add(msg msg_no, const char *def, char *val, int max_chars,

     msg_prompt_win(msg msg_no, WINDOW *win, const char *def, char *val,
         int max_chars, ...);

     msg_prompt_noecho(msg msg_no, const char *def, char *val, int max_chars,


     msg_table_add(msg msg_no, ...);

     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.

     MSGDEF  Can be set to point to a different set of definition files for
             msgc.  The current location defaults to /usr/share/misc.


     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.

     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
     messages 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
     standout 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
     readability.  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
     message 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

     msg_row() return the current row - i.e.: getcury(msg_win) +

     Philip A. Nelson for Piermont Information Systems Inc.

NetBSD 9.99                    October 11, 2021                    NetBSD 9.99