PROCEDURE (HIDDEN) pup$generate_backup_listing (
  catalog, c: any of
      key
        all
      keyend
      file
    anyend = $optioanal
  set_name, sn: name = $optional
  backup_listing, bl: file = $required
  status)

"$FORMAT=OFF
VAR
  ignore_status:status
VAREND

"$FORMAT=ON

  IF $specified(catalog) AND $specified(set_name) THEN
    EXIT_PROC WITH $status(false, 'US', 3330, ..
'Either the CATALOG or the SET_NAME parameter may be specified bu..
t not both.')

  ELSEIF NOT $specified(catalog) AND NOT $specified(set_name) THEN
    EXIT_PROC WITH $status(false, 'US', 3330, ..
'Either the CATALOG or the SET_NAME  parameter must be specified.')

  ELSEIF $variable(cmv$deadstart_simulation, defined) THEN
    BACKUP_PERMANENT_FILES backup_file=$null list=backup_listing
      backup_catalog catalog=cmv$rss_working_catalog
    QUIT
    IF $variable(cmv$simulate_missing_files, defined) THEN
"$FORMAT=OFF
VAR
  missing_file_code: status_code = $status_code(pfe$volume_not_online)
  missing_cat_code: status_code =  $status_code(pfe$catalog_volume_not_online)
  unavail_file_code: status_code= $status_code(pfe$volume_unavailable)
  unavail_cat_code: status_code =  $status_code(pfe$catalog_volume_unavailable)
  short_mf: status = $status(false,'PF',missing_file_code,':nve.ajl.x')
  long_mf: status = $status(false,'PF',missing_file_code,':nve.ajl.aaaaaaaaa..
aaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.cccccccccccccccccccc..
ddddddddddddddddddddddddddddddddddddddddddddddd.e')
  short_uf:status = $status(false,'PF',unavail_file_code,':nve.ajl.y')
  long_uf: status = $status(false,'PF',unavail_file_code,':nve.ajl.aaaaaaaaa..
aaaaaaaaaaaaaaaaaaaaa.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.cccccccccccccccccccc..
ddddddddddddddddddddddddddddddddddddddddddddddd.e')
  missing_cat: status = $status(false,'PF',missing_cat_code,'vsn001')
  unavail_cat: status = $status(false,'PF',unavail_cat_code,'vsn002')
VAREND
"$FORMAT=ON
      put_line '       ' o=backup_listing.$eoi
      put_line ' xxxxxx' o=backup_listing.$eoi
      put_lines $apply($status_message(short_mf, 132, full), '  '//x) ..
            o=backup_listing.$eoi
      put_line ' yyyyyy' o=backup_listing.$eoi
      put_lines $apply($status_message(long_mf, 132, full), '  '//x) ..
            o=backup_listing.$eoi
      put_line ' zzzzzz' o=backup_listing.$eoi
      put_lines $apply($status_message(short_uf, 132, full), '  '//x) ..
            o=backup_listing.$eoi
      put_line ' aaaaaa' o=backup_listing.$eoi
      put_lines $apply($status_message(long_uf, 132, full), '  '//x) ..
            o=backup_listing.$eoi
      put_lines $apply($status_message(missing_cat, 132, full), '  '//x) ..
            o=backup_listing.$eoi
      put_lines $apply($status_message(unavail_cat, 132, full), '  '//x) ..
            o=backup_listing.$eoi
      delete_variable cmv$simulate_missing_files status=ignore_status
    IFEND
  ELSEIF $specified(catalog) THEN
    IF ($generic_type(catalog)= key) AND (catalog = all) THEN
      TASK ring=3
        BACKUP_PERMANENT_FILES backup_file=$null list=backup_listing
          backup_all_files
        QUIT
        change_file_attributes file=backup_listing ring_attributes=(11, 11, ..
              11)
      TASKEND
    ELSE
      BACKUP_PERMANENT_FILES backup_file=$null list=backup_listing
        backup_catalog catalog=catalog
      QUIT
    IFEND
  ELSEIF $specified(set_name) THEN
    TASK ring=3
      BACKUP_PERMANENT_FILES backup_file=$null list=backup_listing
        backup_set set_name=set_name
      QUIT
      change_file_attributes file=backup_listing ring_attributes=(11, 11, 11)
    TASKEND
  IFEND

PROCEND pup$generate_backup_listing

