IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37730


Ignore:
Timestamp:
Dec 10, 2014, 6:04:07 AM (12 years ago)
Author:
eugene
Message:

add padIfShort option to gfits_fread_ftable_range

Location:
branches/eam_branches/ipp-20140904/Ohana/src/libfits
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20140904/Ohana/src/libfits/include/gfitsio.h

    r37658 r37730  
    188188int     gfits_fread_ftable             PROTO((FILE *f, FTable *ftable, char *extname));
    189189int     gfits_fread_ftable_data        PROTO((FILE *f, FTable *ftable, int padIfShort));
    190 int     gfits_fread_ftable_range       PROTO((FILE *f, FTable *ftable, off_t start, off_t Nrows));
     190int     gfits_fread_ftable_range       PROTO((FILE *f, int padIfShort, FTable *ftable, off_t start, off_t Nrows));
    191191int     gfits_fread_vtable             PROTO((FILE *f, VTable *vtable, char *extname, off_t Nrow, off_t *row));
    192192int     gfits_fread_vtable_range       PROTO((FILE *f, VTable *vtable, off_t start, off_t Nrows));
  • branches/eam_branches/ipp-20140904/Ohana/src/libfits/table/F_read_T.c

    r37658 r37730  
    6464
    6565/*********************** fits read ftable data ***********************************/
    66 int gfits_fread_ftable_range (FILE *f, FTable *table, off_t start, off_t Nrows) {
     66int gfits_fread_ftable_range (FILE *f, int padIfShort, FTable *table, off_t start, off_t Nrows) {
    6767
    6868  off_t Nbytes, Nread, Nskip, Nx, Ny;
     
    8989    if (ferror (f)) {
    9090      perror ("fits read error");
     91      free (table[0].buffer);
     92      return (FALSE);
     93    }
     94    fprintf (stderr, "error: fits read error in %s, read "OFF_T_FMT", need "OFF_T_FMT"\n", __func__,  Nread,  Nbytes);
     95    if (padIfShort) {
     96      memset (&table[0].buffer[Nread], 0, Nbytes - Nread);
     97      fprintf (stderr, "warning: file missing data, padding with zeros: USE AT YOUR OWN RISK!\n");
     98      table[0].validsize = Nread;
     99      table[0].datasize = Nbytes;
    91100    } else {
    92       fprintf (stderr, "unexpected eof\n");
    93     }     
    94     free (table[0].buffer);
    95     return (FALSE);
     101      free (table[0].buffer);
     102      return (FALSE);
     103    }
    96104  }
    97105
Note: See TracChangeset for help on using the changeset viewer.