  PROC rap$display_correction_package (
    correction_package, cp: file
    output, o: file = $output
    status)

    create_variable local_status k=status
    create_variable ignore_status k=status

    choose_display: BLOCK

      IF $specified(correction_package) THEN
        rap$display_corrections_command cp=$value(correction_package) o=$value(output) status=local_status
      ELSE
        unique_scratch_file = $unique
        rap$write_cp_to_scratch_file o=$fname(unique_scratch_file) status=local_status
        EXIT choose_display WHEN NOT local_status.normal
        rap$display_corrections_command cp=$fname(unique_scratch_file) o=$value(output) status=local_status
        delete_file f=$fname(unique_scratch_file) status=ignore_status
      IFEND

    BLOCKEND choose_display

    EXIT_PROC with local_status
  PROCEND rap$display_correction_package
