
  PROCEDURE [INLINE] clp$search_module_for_name
    (    message_module: ^ost$message_template_module;
         name: ost$status_condition_name;
     VAR language: ost$natural_language;
     VAR code: ost$status_condition_code;
     VAR severity: ost$message_module_severity;
     VAR template: ^ost$message_template;
     VAR entry_found: boolean;
     VAR status: ost$status);

?? PUSH (LISTEXT := ON) ??

    VAR
      lower: 0 .. osc$max_status_condition_code + 1,
      upper: -1 .. osc$max_status_condition_code,
      codes: ^ost$mtm_condition_codes,
      names: ^ost$mtm_condition_names,
      header: ^ost$mtm_header,
      temp: integer,
      name_index: ost$message_template_index;

    entry_found := FALSE;
    clp$extract_msg_module_contents (message_module, header, codes, names);
    IF header = NIL THEN
      osp$set_status_abnormal ('CL', cle$bad_help_module, '', status);
      RETURN;
    IFEND;
    language := header^.language;
    lower := 0;
    upper := UPPERBOUND (names^);

  /binary_search/
    WHILE (lower <= upper) DO
      temp := lower + upper;
      name_index := temp DIV 2;
*IF NOT $true(osv$unix)
      IF (name = names^ [name_index].name) AND
            (names^ [name_index].kind = osc$status_message) THEN
*ELSE
      IF (name = names^ [name_index].name) THEN
*IFEND
        entry_found := TRUE;
        EXIT /binary_search/;
      ELSEIF name > names^ [name_index].name THEN
        lower := name_index + 1;
      ELSE
        upper := name_index - 1;
      IFEND;
    WHILEND /binary_search/;

    IF entry_found THEN
      code := names^ [name_index].code;
      severity := names^ [name_index].severity;
*IF NOT $true(osv$unix)
      template := #PTR (names^ [name_index].template, message_module^);
*ELSE
      template^ := names^ [name_index].template;
*IFEND
    IFEND;

  PROCEND clp$search_module_for_name;

*copyc cle$ecc_mt_generator
*copyc ost$message_module_severity
*copyc ost$message_template
*copyc ost$message_template_module
*copyc ost$mtm_condition_codes
*copyc ost$mtm_condition_names
*copyc ost$mtm_header
*copyc ost$natural_language
*copyc ost$status
*copyc ost$status_condition_code
*copyc ost$status_condition_name
?? POP ??
*copyc clp$extract_msg_module_contents
*copyc osp$set_status_abnormal
