?? RIGHT := 110 ??
?? NEWTITLE := 'Module for RAP$CONVERT_PATH_TO_PF_FORMAT procedure.' ??
MODULE ram$convert_path_to_pf_format;

{ PURPOSE:
{   This compiled module contains the interface and procedure that
{   converts a catalog path to PF format.
{
{ DESIGN:
{   The compiled module resides in RAF$LIBRARY.
{
{ NOTES:
{

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc rae$install_software_cc
*copyc rat$installation_control_record
?? POP ??
*copyc osp$append_status_parameter
*copyc osp$disestablish_cond_handler
*copyc osp$establish_block_exit_hndlr
*copyc osp$set_status_abnormal
*copyc pfp$convert_fs_path_to_pf_path
*copyc pfp$convert_string_to_fs_path


?? TITLE := 'Global Declarations Declared by This Module', EJECT ??

?? TITLE := '[XDCL] rap$convert_path_to_pf_format', EJECT ??

{ PURPOSE:
{   This procedure converts a catalog path string to PF format.
{
{ DESIGN:
{   Existing routines are called which convert from string to FS format,
{   and from FS format to PF format.  This routine simply combines these
{   steps into one process.
{
{ NOTES:
{

  PROCEDURE [XDCL] rap$convert_path_to_pf_format
    (    catalog_path: rat$path;
     VAR pf_destination_p: ^pft$path;
     VAR processing_seq_p: ^rat$processing_sequence;
     VAR status: ost$status);


    VAR
      fs_path: string (fsc$max_path_size),
      ignore_cycle_reference: fst$cycle_reference,
      ignore_cycle_selector: clt$cycle_selector,
      ignore_open_position: fst$open_position,
      number_of_elements: fst$number_of_path_elements;


    status.normal := TRUE;

    pfp$convert_string_to_fs_path (catalog_path.path (1, catalog_path.size), fs_path,
          number_of_elements, ignore_cycle_reference, ignore_open_position, status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

    NEXT pf_destination_p: [1 .. number_of_elements] IN processing_seq_p;
    IF pf_destination_p = NIL THEN
      osp$set_status_abnormal ('RA', rae$accessed_beyond_segment_eoi, 'PROCESSING SEQUENCE', status);
      osp$append_status_parameter (osc$status_parameter_delimiter, 'PF CONVERSION PROCESS', status);
      RETURN;
    IFEND;

    pfp$convert_fs_path_to_pf_path (fs_path, pf_destination_p, ignore_cycle_reference, ignore_cycle_selector,
          status);
    IF NOT status.normal THEN
      RETURN;
    IFEND;

  PROCEND rap$convert_path_to_pf_format;

MODEND ram$convert_path_to_pf_format;

