    function  $file_list (
      input_file_list : any of key all, ..
                               keyend, ..
                               list of file, ..
                         anyend = $required)

    var
      output_file_list : list of file
    varend

   "construct output file list from input list

   if $generic_type(input_file_list) = 'list' then
     for each fl_file in input_file_list do

    "add contents of this catalog to the file list

    if $file(fl_file,catalog) then
      output_file_list = $join(output_file_list,$catalog_contents(fl_file ..
        if,p))

   "add this file to the file list
    else

      output_file_list = $join(output_file_list,fl_file)
    ifend
   forend

  "construct output file list from working catalog

   else
     output_file_list=$catalog_contents($working_catalog,if,p)
   ifend
disv output_file_list do=ds
  exit with output_file_list

  funcend $file_list
