
?? PUSH (LISTEXT := ON) ??
*copyc OSP$GET_STATUS_SEVERITY
*copyc PUE$ERROR_CONDITION_CODES
*copyc ame$open_validation_errors
*copyc ame$put_program_actions
*copyc PUT$STATUS_SEVERITY
?? POP ??

  PROCEDURE [INLINE] pup$get_status_severity (status: ost$status;
    VAR status_severity: put$status_severity);

    VAR
      ignore_status: ost$status,
      os_severity: ost$status_severity;

    IF status.normal THEN
      status_severity := puc$normal_status;
    ELSE
      CASE status.condition OF
      = ame$unrecovered_write_error , ame$no_write_ring =
        status_severity := puc$fatal_status;
      ELSE
        osp$get_status_severity (status.condition, os_severity, ignore_status);
        CASE os_severity OF
        = osc$informative_status =
          status_severity := puc$informative_status;
        = osc$warning_status =
          status_severity := puc$warning_status;
        = osc$error_status =
          status_severity := puc$error_status;
        = osc$fatal_status =
          status_severity := puc$fatal_status;
        ELSE
          status_severity := puc$catastrophic_status;
        CASEND;
      CASEND;
    IFEND;
  PROCEND pup$get_status_severity;
