{
{   The purpose of this request is to format a message according to a template
{ for  that  message.   The  template  consists of message text and formatting
{ codes that direct the formatting process.  Parameters to be substituted into
{ the message are supplied  via  an  array of pointers to strings, each string
{ representing  a particular message parameter.  The formatting process may be
{ extended  by  supplying  a  procedure  that  retrieves another condition and
{ corresponding message parameters.
{
{   The    message    is   returned   in   a   sequence   which   contains   a
{ ost$status_message_line_count followed by that  many  message  lines.   Each
{ message line consists of a ost$status_message_line_size followed by a string
{ of that size.  These lines can be written to  a  file  via  the  appropriate
{ interfaces.   Each  line begins with a space character to serve as a "format
{ effector" in the event the formatted message is written to a list file.
{
{       OSP$FORMAT_MULT_PART_MESSAGE (MESSAGE_LEVEL, MESSAGE_HEADER_KIND,
{         MAX_MESSAGE_LINE, STATUS_CONDITION, MESSAGE_PARAMETERS,
{         GET_MESSAGE_PART, MESSAGE, STATUS)
{
{ MESSAGE_LEVEL: (input) This parameter specifies the level of message  to  be
{       formatted.
{
{ MESSAGE_HEADER_KIND: (input) This parameter specifies the form of the header
{       in the formatted message.  An OSC$STANDARD_STATUS_MESSAGE_HDR has  the
{       severity  in  upper  case  letters and is surrounded by dashes (if the
{       message_level is OSC$BRIEF_MESSAGE_LEVEL and  the  status_severity  is
{       OSC$INFORMATIVE_STATUS only dashes constitute the message header).  An
{       OSC$SUBDUED_STATUS_MESSAGE_HDR has the severity in lower  case  except
{       for  the  first  letter  and  is  terminated  with  a  colon  (if  the
{       status_severity  is  OSC$INFORMATIVE_STATUS  no  header is  included).
{       OSC$NO_STATUS_MESSAGE_HDR  suppresses  the  production  of  a  message
{       header.   Selecting  OSC$ERROR_STATUS_MESSAGE_HDR  is  like  selecting
{       OSC$STANDARD_STATUS_MESSAGE_HDR if status_severity is something  other
{       than  OSC$INFORMATIVE_STATUS  and  is  like  OSC$NO_STATUS_MESSAGE_HDR
{       otherwise.
{
{ MAX_MESSAGE_LINE:  (input)  This  parameter  specifies the maximum number of
{       characters that can be placed in a line produced by this request.  The
{       message  formatter  will try to "break" long lines at a delimiter; but
{       if this cannot be done, two dots will be placed  at  the  end  of  the
{       "broken" line to mark its continuation.
{
{ STATUS_CONDITION: (input) This parameter specifies the condition code of the
{       status whose message is to be formatted.
{
{ MESSAGE_PARAMETERS: (input) This parameter specifies the items of text to be
{       substituted  into  the message according to the parameter substitution
{       formatting codes in the message template.  If  NIL  is  specified  for
{       this  parameter,  all  message  parameters  are considered to be null.
{       If NIL is specified for any  particular  element  of  the  array,  the
{       corresponding message parameter is considered to be null.
{
{ GET_MESSAGE_PART:  (input) This parameter specifies a procedure to be called
{       to get an additional condition and corresponding  message  parameters.
{       Use of such a procedure allows the construction of  a  single  message
{       from  a  number  of  distinct templates.  In effect, the templates are
{       concatenated to form a single template; but the numbering  of  message
{       parameters  is  maintained  on  an  individual  template  basis.   The
{       procedure specified by this parameter is called  repeatedly  until  it
{       returns  FALSE for its end_of_message parameter. If FALSE is specified
{       for this parameter no additonal conditions and message parameters  are
{       used.
{
{ MESSAGE:  (output)  This parameter specifies the container for the formatted
{       message.
{
{ STATUS: (output) This parameter specifies the request status.
{       CONDITIONS:
{
