
  PROCEDURE [INLINE] clp$search_help_module
    (    name: clt$parameter_name;
         kind: ost$message_template_kind;
         names: ^ost$mtm_condition_names;
         help_module: ^ost$help_module;
     VAR template: ^ost$message_template);

?? PUSH (LISTEXT := ON) ??

    VAR
      index: ost$status_condition_code,
      temp: integer,
      lower: 0 .. osc$max_status_condition_code + 1,
      upper: -1 .. osc$max_status_condition_code + 1,
      upper_case_name: ost$name;

    IF name <> osc$null_name THEN
      #TRANSLATE (osv$lower_to_upper, name, upper_case_name);
    ELSE
      upper_case_name := name;
    IFEND;

    lower := 0;
    upper := UPPERBOUND (names^);

  /search_help_module/

    WHILE lower <= upper DO
      temp := lower + upper;
      index := temp DIV 2;
      IF names^ [index].name = upper_case_name THEN
        IF names^ [index].kind = kind THEN
          template := #PTR (names^ [index].template, help_module^);
          EXIT /search_help_module/;
        ELSEIF names^ [index].kind > kind THEN
          upper := index - 1;
        ELSE
          lower := index + 1;
        IFEND;
      ELSEIF names^ [index].name > upper_case_name THEN
        upper := index - 1;
      ELSE
        lower := index + 1;
      IFEND;
    WHILEND /search_help_module/;

  PROCEND clp$search_help_module;

*copyc clt$parameter_name
*copyc ost$help_module
*copyc ost$message_template
*copyc ost$message_template_kind
*copyc ost$mtm_condition_names
?? POP ??
*copyc osv$lower_to_upper
