
  PROCEDURE [INLINE] clp$find_command_input_block
    (    handle: clt$block_handle;
     VAR block: ^clt$block;
     VAR block_in_current_task: boolean);

?? PUSH (LISTEXT := ON) ??

    VAR
      block_is_synchronous: boolean,
      local_block: ^clt$block;


    clp$find_block_via_handle (handle, block, block_in_current_task,
          block_is_synchronous);
    IF block = NIL THEN
      RETURN;
    ELSEIF NOT (block_is_synchronous AND (block^.kind IN
*IF NOT $true(osv$unix)
          $clt$block_kinds [clc$command_proc_block, clc$function_proc_block,
          clc$input_block, clc$when_block, clc$task_block])) THEN
*ELSE
          $clt$block_kinds [clc$input_block, clc$task_block])) THEN
*IFEND
      block := NIL;
      RETURN;
    IFEND;

    WHILE block^.inheriting_block <> NIL DO
      block := block^.inheriting_block;
    WHILEND;

    block_in_current_task := TRUE;
    clp$find_current_block (local_block);
    WHILE (local_block <> NIL) AND (local_block <> block) DO
      IF local_block^.kind = clc$task_block THEN
        block_in_current_task := FALSE;
      IFEND;
      local_block := local_block^.previous_block;
    WHILEND;

  PROCEND clp$find_command_input_block;

?? POP ??
*copyc clp$find_block_via_handle
*copyc clp$find_current_block
