Changeset 29938 for trunk/Ohana/src/libfits
- Timestamp:
- Dec 5, 2010, 10:04:42 PM (16 years ago)
- Location:
- trunk/Ohana/src/libfits
- Files:
-
- 2 edited
-
include/gfitsio.h (modified) (2 diffs)
-
table/F_read_T.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libfits/include/gfitsio.h
r29537 r29938 64 64 char *buffer; 65 65 off_t datasize; 66 off_t validsize; 66 67 } FTable; 67 68 … … 172 173 int gfits_define_table_column PROTO((Header *header, char *format, char *label, char *comment, char *unit)); 173 174 int gfits_fread_ftable PROTO((FILE *f, FTable *ftable, char *extname)); 174 int gfits_fread_ftable_data PROTO((FILE *f, FTable *ftable ));175 int gfits_fread_ftable_data PROTO((FILE *f, FTable *ftable, int padIfShort)); 175 176 int gfits_fread_ftable_range PROTO((FILE *f, FTable *ftable, off_t start, off_t Nrows)); 176 177 int gfits_fread_vtable PROTO((FILE *f, VTable *vtable, char *extname, off_t Nrow, off_t *row)); -
trunk/Ohana/src/libfits/table/F_read_T.c
r28241 r29938 36 36 gfits_scan (header, "EXTNAME", "%s", 1, tname); 37 37 if (!strcmp (tname, extname)) { 38 if (gfits_fread_ftable_data (f, table )) return (TRUE);38 if (gfits_fread_ftable_data (f, table, FALSE)) return (TRUE); 39 39 gfits_free_header (header); 40 40 return (FALSE); … … 50 50 51 51 /*********************** fits read ftable data ***********************************/ 52 int gfits_fread_ftable_data (FILE *f, FTable *table ) {52 int gfits_fread_ftable_data (FILE *f, FTable *table, int padIfShort) { 53 53 54 54 off_t Nbytes, Nread; … … 65 65 if (Nread < gfits_data_min_size (table[0].header)) { 66 66 fprintf (stderr, "error: fits read error in %s, read "OFF_T_FMT", need "OFF_T_FMT"\n", __func__, Nread, gfits_data_min_size (table[0].header)); 67 gfits_free_table (table); 68 return (FALSE); 67 if (padIfShort) { 68 memset (&table[0].buffer[Nread], 0, Nbytes - Nread); 69 fprintf (stderr, "warning: file missing data, padding with zeros: USE AT YOUR OWN RISK!\n"); 70 table[0].validsize = Nread; 71 table[0].datasize = Nbytes; 72 return (TRUE); 73 } else { 74 gfits_free_table (table); 75 return (FALSE); 76 } 69 77 } 70 78 fprintf (stderr, "warning: file missing pad\n"); 71 79 } 80 table[0].validsize = Nread; 72 81 table[0].datasize = Nbytes; 73 82 return (TRUE);
Note:
See TracChangeset
for help on using the changeset viewer.
