
  PROCEDURE [INLINE] clp$construct_block_handle_name
    (    block_handle: clt$block_handle;
*IF NOT $true(osv$unix)
     VAR block_handle_name: fst$path_handle_name);
*ELSE
     VAR block_handle_name: fst$path);
*IFEND

?? PUSH (LISTEXT := ON) ??

    VAR
      digits: array [1 .. 16] of 0 .. 15,
      count: 0 .. 16,
      i: 1 .. 31 + 1,
      j: 1 .. 16,
      n: integer;

    block_handle_name := 'FS$$__12345678_0';

    n := block_handle.segment_offset;
    FOR i := 14 DOWNTO 7 DO
      digits [1] := n MOD 16;
      n := n DIV 16;
      IF digits [1] <= 9 THEN
        block_handle_name (i) := $CHAR ($INTEGER ('0') + digits [1]);
      ELSE
        block_handle_name (i) := $CHAR ($INTEGER ('A') + digits [1] - 10);
      IFEND;
    FOREND;

    n := block_handle.assignment_counter;
    count := 0;
    REPEAT
      count := count + 1;
      digits [count] := n MOD 16;
      n := n DIV 16;
    UNTIL n = 0;
    i := 16;
    REPEAT
      IF digits [count] <= 9 THEN
        block_handle_name (i) := $CHAR ($INTEGER ('0') + digits [count]);
      ELSE
        block_handle_name (i) := $CHAR ($INTEGER ('A') + digits [count] - 10);
      IFEND;
      i := i + 1;
      count := count - 1;
    UNTIL count = 0;

    block_handle_name (5) := 'C';

  PROCEND clp$construct_block_handle_name;

*copyc clt$block_handle
*IF NOT $true(osv$unix)
*copyc fst$path_handle_name
*ELSE
*copyc fst$path
*IFEND
?? POP ??
