NAME:
  rdsource
 PURPOSE:   (one line only)
  Read in a source list file created by findsrc or srcast
 DESCRIPTION:
 CATEGORY:
  CCD data processing
 CALLING SEQUENCE:
  rdsource,fn,sinfo
 INPUTS:
  fn - Name of file to read (with path if needed)
 OPTIONAL INPUT PARAMETERS:
 KEYWORD INPUT PARAMETERS:
 OUTPUTS:
  sinfo - Anonymous structure with everything from the file.
          The tags in the structure depend on which type of file is
          being read (src or srd).  The srd structure is a superset of src.
          The scalar tags provided for src files are:
            object, airmass, xsize, ysize, sigthresh, gap, objrad, sigwsize,
            gain, binfac, exptime, maxsig, meanfwhm, skylevel, skysigma,
            obscura1, obscura2, nsrcs
          The extra scalar tags provided for srd files are:
            photzp, maglimit, satlimit
          The vector tags provided for src files are:
            xpos, ypos, fwhm, mag, err, snr
          The additional vector tags provided for srd files are:
            ra, dec, smag
          See findsrc.pro for details on the src file information and see
            srcast.pro for details on the srd file information.
          If there is an error reading the file then sinfo will be returned
            as a scalar zero.
 KEYWORD OUTPUT PARAMETERS:
  HDR - Optional return of the FITS header of the file in case there are
           extra keywords not parsed by this routine.
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 MODIFICATION HISTORY:
  2016/04/13, Written by Marc W. Buie, Southwest Research Institute
  2016/08/18, MWB, added support for reading srg files (same format as src).
  2021/05/17, MWB, fixed so that it properly handles empty source files.