
  PROCEDURE [INLINE] clp$search_parameter_names
    (    name: clt$parameter_name;
         names: ^clt$pdt_parameter_names;
     VAR index: clt$parameter_name_index;
     VAR found: boolean);

?? PUSH (LISTEXT := ON) ??

    VAR
      low_index: 1 .. clc$max_parameter_names + 1,
      high_index: 0 .. clc$max_parameter_names,
      temp: integer,
      current_index: clt$parameter_name_index;


    found := FALSE;
    IF names <> NIL THEN
      low_index := 1;
      high_index := UPPERBOUND (names^);
      REPEAT
        temp := low_index + high_index;
        current_index := temp DIV 2;
        IF name = names^ [current_index].name THEN
          index := current_index;
          found := TRUE;
        ELSEIF name > names^ [current_index].name THEN
          low_index := current_index + 1;
        ELSE
          high_index := current_index - 1;
        IFEND;
      UNTIL found OR (low_index > high_index);
    IFEND;

  PROCEND clp$search_parameter_names;

*copyc clt$parameter_name
*copyc clt$parameter_name_index
*copyc clt$pdt_parameter_names
?? POP ??
