?? TITLE := 'clp$put_path_reference_subtitle', EJECT ??

  PROCEDURE clp$put_path_reference_subtitle
    (    path: fst$file_reference;
         header: string ( * );
     VAR status: ost$status);

    VAR
      header_length: ost$string_size,
      i: 1 .. fsc$max_path_elements,
      terminate_string: string (2);


    header_length := STRLENGTH (header) + 1;
    terminate_string := '..';

    IF NOT clv$subtitles_built THEN
      clv$path_display_string := path;
      clp$build_path_subtitle (clv$path_display_string,
            clp$trimmed_string_size (clv$path_display_string),
            (clv$page_width - header_length), clv$path_display_chunk_count,
            clv$path_display_chunks);
      clv$subtitles_built := TRUE;
    IFEND;

    FOR i := 1 TO clv$path_display_chunk_count DO
      IF i = 1 THEN
        clp$put_partial_display (display_control, header, clc$no_trim,
              amc$continue, status);
        IF NOT status.normal THEN
          RETURN;
        IFEND;
      ELSE
        clp$horizontal_tab_display (display_control, header_length, status);
        IF NOT status.normal THEN
          RETURN;
        IFEND;
      IFEND;

      IF i = clv$path_display_chunk_count THEN
        terminate_string := '  ';
      IFEND;
      clp$put_partial_display (display_control,
            clv$path_display_string (clv$path_display_chunks [i].position,
            clv$path_display_chunks [i].length), clc$trim, amc$continue,
            status);
      IF NOT status.normal THEN
        RETURN;
      IFEND;
      clp$put_partial_display (display_control, terminate_string, clc$trim,
            amc$terminate, status);
      IF NOT status.normal THEN
        RETURN;
      IFEND;
    FOREND;

  PROCEND clp$put_path_reference_subtitle;
