
  PROCEDURE [INLINE] clp$construct_path_handle_name
    (    path_handle: fmt$path_handle;
     VAR path_handle_name: fst$path_handle_name);

?? PUSH (LISTEXT := ON) ??

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

    path_handle_name := 'FS$$__12345678_0';

    offset_converter.segment_offset := path_handle.segment_offset;
    FOR i := 1 TO 8 DO
      path_handle_name (i + 6) := clv$hex_digits [offset_converter.nibble [i]];
    FOREND;

    n := path_handle.assignment_counter;
    count := 0;
    REPEAT
      count := count + 1;
      digits [count] := n MOD 16;
      n := n DIV 16;
    UNTIL n = 0;
    i := 16;
    REPEAT
      path_handle_name (i) := clv$hex_digits [digits [count]];
      i := i + 1;
      count := count - 1;
    UNTIL count = 0;

    clp$put_open_pos_in_path_handle (path_handle.open_position,
          path_handle_name);

  PROCEND clp$construct_path_handle_name;

*copyc fmt$path_handle
*copyc fmt$path_handle_offset_nibbles
*copyc fst$path_handle_name
?? POP ??
*copyc clp$put_open_pos_in_path_handle
*copyc clv$hex_digits
