?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE Message Generator : Set Message Level' ??
MODULE osm$set_message_level;

{
{ PURPOSE:
{   This module contains the procedure that changes the default for style
{   of formatting messages.
{
?? NEWTITLE := 'Global Declarations', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc clt$environment_object_contents
*copyc clt$environment_object_size
*copyc ose$message_gen_exceptions
*copyc ost$status
*copyc ost$status_message_level
?? POP ??
*copyc osp$find_status_message_level
*copyc osp$set_status_condition
?? TITLE := 'osp$eo_size_message_level', EJECT ??

  FUNCTION [XDCL] osp$eo_size_message_level: clt$environment_object_size;


    osp$eo_size_message_level := #SIZE (ost$status_message_level);

  FUNCEND osp$eo_size_message_level;
?? TITLE := 'osp$eo_init_message_level', EJECT ??

  PROCEDURE [XDCL] osp$eo_init_message_level
    (    object: ^clt$environment_object_contents);

    VAR
      status_message_level: ^ost$status_message_level;


    status_message_level := object;
    status_message_level^ := osc$full_message_level;

  PROCEND osp$eo_init_message_level;
?? TITLE := 'osp$set_message_level', EJECT ??
*copyc osh$set_message_level

  PROCEDURE [XDCL, #GATE] osp$set_message_level
    (    message_level: ost$status_message_level;
     VAR status: ost$status);

    VAR
      message_level_ptr: ^ost$status_message_level;


    status.normal := TRUE;

    IF (message_level < LOWERVALUE (ost$status_message_level)) OR
          (message_level > UPPERVALUE (ost$status_message_level)) THEN
      osp$set_status_condition (ose$bad_message_level, status);
      RETURN;
    IFEND;

    osp$find_status_message_level (message_level_ptr);

    message_level_ptr^ := message_level;

  PROCEND osp$set_message_level;

MODEND osm$set_message_level;
