?? PUSH (LISTEXT := ON) ??
*copyc mmp$create_scratch_segment
*copyc mmp$delete_scratch_segment
?? POP ??

?? NEWTITLE := 'pfp$create_scratch_segments', EJECT ??

{ PURPOSE
{   This procedure creates the scratch segments used for holding object information, project information, and
{   limit information.

    PROCEDURE pfp$create_scratch_segments
      (VAR object_segment_pointer: amt$segment_pointer;
       VAR project_segment_pointer: amt$segment_pointer;
       VAR limit_segment_pointer: amt$segment_pointer;
       VAR status: ost$status);

      VAR
        ignore_status: ost$status;

      mmp$create_scratch_segment (amc$sequence_pointer, mmc$as_random, object_segment_pointer, status);
      IF NOT status.normal THEN
        RETURN;
      IFEND;

      mmp$create_scratch_segment (amc$sequence_pointer, mmc$as_random, project_segment_pointer, status);
      IF NOT status.normal THEN
        mmp$delete_scratch_segment (object_segment_pointer, ignore_status);
        RETURN;
      IFEND;

      mmp$create_scratch_segment (amc$sequence_pointer, mmc$as_random, limit_segment_pointer, status);
      IF NOT status.normal THEN
        mmp$delete_scratch_segment (object_segment_pointer, ignore_status);
        mmp$delete_scratch_segment (project_segment_pointer, ignore_status);
      IFEND;

    PROCEND pfp$create_scratch_segments;
?? OLDTITLE ??
