
  PROCEDURE [INLINE] clp$extract_msg_module_contents
    (    message_module: ^ost$message_template_module;
     VAR header: ^ost$mtm_header;
     VAR codes: ^ost$mtm_condition_codes;
     VAR names: ^ost$mtm_condition_names);

?? PUSH (LISTEXT := ON) ??

    VAR
      msg_module: ^ost$message_template_module;

    msg_module := message_module;
    RESET msg_module;

  /validate/
    BEGIN
      NEXT header IN msg_module;
      IF (header = NIL) OR (header^.number_of_codes < 0) OR
            (header^.number_of_codes > (osc$max_status_condition_code + 1)) OR
            (header^.number_of_names < 0) OR (header^.number_of_names >
            (osc$max_status_condition_code + 1)) THEN
        EXIT /validate/;
      IFEND;
      IF header^.number_of_codes > 0 THEN
        NEXT codes: [0 .. header^.number_of_codes - 1] IN msg_module;
        IF codes = NIL THEN
          EXIT /validate/;
        IFEND;
      ELSE
        codes := NIL;
      IFEND;
      NEXT names: [0 .. header^.number_of_names - 1] IN msg_module;
      IF names = NIL THEN
        EXIT /validate/;
      IFEND;
      RETURN;
    END /validate/;
    header := NIL;

  PROCEND clp$extract_msg_module_contents;

*copyc ost$message_template_module
?? POP ??
