
  PROCEDURE [INLINE] clp$find_caller_input_block
    (    file_name: amt$local_file_name;
     VAR block: ^clt$block;
     VAR block_in_current_task: boolean);

?? PUSH (LISTEXT := ON) ??

    block_in_current_task := TRUE;
    clp$find_current_block (block);

    IF file_name = clc$proc_caller_command_input THEN
*IF NOT $true(osv$unix)
      WHILE (block <> NIL) AND (block^.kind <> clc$command_proc_block) DO
*ELSE
      WHILE (block <> NIL) DO
*IFEND
        IF block^.kind = clc$task_block THEN
          IF NOT block^.synchronous_with_parent THEN
            IF block^.command_file = osc$null_name THEN
              block := NIL;
            IFEND;
            RETURN;
          IFEND;
          block_in_current_task := FALSE;
        IFEND;
        block := block^.previous_block;
      WHILEND;
      IF block <> NIL THEN
        block := block^.previous_block;
      IFEND;
    IFEND;

    WHILE block <> NIL DO
      CASE block^.kind OF
*IF NOT $true(osv$unix)
      = clc$command_proc_block, clc$function_proc_block =
        IF block^.parameters.evaluated THEN
          RETURN;
        IFEND;
*IFEND
      = clc$input_block =
        IF NOT block^.input.prompting_input THEN
          RETURN;
        IFEND;
      = clc$task_block =
        IF NOT block^.synchronous_with_parent THEN
          IF block^.command_file = osc$null_name THEN
            block := NIL;
          IFEND;
          RETURN;
        IFEND;
        block_in_current_task := FALSE;
*IF NOT $true(osv$unix)
      = clc$when_block =
        RETURN;
*IFEND
      ELSE
        ;
      CASEND;
      block := block^.previous_block;
    WHILEND;

  PROCEND clp$find_caller_input_block;

*copyc amt$local_file_name
*copyc clc$standard_file_names
?? POP ??
*copyc clp$find_current_block

