Changeset 37807 for trunk/Ohana/src/libfits
- Timestamp:
- Jan 11, 2015, 2:14:39 PM (12 years ago)
- Location:
- trunk/Ohana
- Files:
-
- 6 edited
- 1 copied
-
. (modified) (1 prop)
-
src/libfits/Makefile (modified) (1 diff)
-
src/libfits/header/F_find_H.c (copied) (copied from branches/eam_branches/ipp-20140904/Ohana/src/libfits/header/F_find_H.c )
-
src/libfits/header/F_free_H.c (modified) (1 diff)
-
src/libfits/include/gfitsio.h (modified) (3 diffs)
-
src/libfits/table/F_read_T.c (modified) (3 diffs)
-
src/libfits/table/F_write_T.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
- Property svn:mergeinfo changed
-
trunk/Ohana/src/libfits/Makefile
r34088 r37807 32 32 $(HEAD)/F_scan.$(ARCH).o $(HEAD)/F_print.$(ARCH).o \ 33 33 $(HEAD)/F_copy_H.$(ARCH).o $(HEAD)/F_delete.$(ARCH).o \ 34 $(HEAD)/F_read_XH.$(ARCH).o $(HEAD)/F_init_H.$(ARCH).o \ 35 $(HEAD)/F_convert_H.$(ARCH).o $(HEAD)/version.$(ARCH).o 34 $(HEAD)/F_find_H.$(ARCH).o $(HEAD)/F_init_H.$(ARCH).o \ 35 $(HEAD)/F_convert_H.$(ARCH).o $(HEAD)/F_read_XH.$(ARCH).o \ 36 $(HEAD)/version.$(ARCH).o 36 37 37 38 MATRIX_OBJ = \ -
trunk/Ohana/src/libfits/header/F_free_H.c
r7054 r37807 4 4 /*********************** fits free header ***********************************/ 5 5 void gfits_free_header (Header *header) { 6 7 // fprintf (stderr, "free data for %zx\n", (size_t) header->buffer); 6 8 7 9 if (header[0].buffer == (char *) NULL) return; -
trunk/Ohana/src/libfits/include/gfitsio.h
r37039 r37807 17 17 # define NEWLINE 10 /* UNIX RETURN character */ 18 18 # endif /* NEWLINE */ 19 20 /* gfits_bintable_format returns 'byte' as the type associated with one-byte logical (non-char) values */ 21 typedef char byte; 19 22 20 23 /********** FITS Constants *********/ … … 116 119 int gfits_modify_alt PROTO((Header *header, char *field, char *mode, int N,...)); 117 120 int gfits_print_alt PROTO((Header *header, char *field, char *mode, int N,...)); 121 int gfits_find_Xheader PROTO((FILE *f, Header *header, char *extname)); 118 122 int gfits_read_Xheader PROTO((char *filename, Header *header, int N)); 119 123 int gfits_read_header PROTO((char *filename, Header *header)); … … 184 188 int gfits_fread_ftable PROTO((FILE *f, FTable *ftable, char *extname)); 185 189 int gfits_fread_ftable_data PROTO((FILE *f, FTable *ftable, int padIfShort)); 186 int gfits_fread_ftable_range PROTO((FILE *f, FTable *ftable, off_t start, off_t Nrows));190 int gfits_fread_ftable_range PROTO((FILE *f, int padIfShort, FTable *ftable, off_t start, off_t Nrows)); 187 191 int gfits_fread_vtable PROTO((FILE *f, VTable *vtable, char *extname, off_t Nrow, off_t *row)); 188 192 int gfits_fread_vtable_range PROTO((FILE *f, VTable *vtable, off_t start, off_t Nrows)); -
trunk/Ohana/src/libfits/table/F_read_T.c
r29938 r37807 19 19 int gfits_fread_ftable (FILE *f, FTable *table, char *extname) { 20 20 21 int j, found;22 off_t Nbytes;23 21 Header *header; 24 char tname[80];25 22 26 23 header = table[0].header; 27 fseeko (f, 0, SEEK_SET); 28 29 found = FALSE; 30 for (j = -1; !found; j++) { 31 /* load data for this header */ 32 if (!gfits_load_header (f, header)) return (FALSE); 33 34 /* check if this is the correct extension or not */ 35 bzero (tname, 80); 36 gfits_scan (header, "EXTNAME", "%s", 1, tname); 37 if (!strcmp (tname, extname)) { 38 if (gfits_fread_ftable_data (f, table, FALSE)) return (TRUE); 39 gfits_free_header (header); 40 return (FALSE); 41 } 42 43 /* skip to next header */ 44 Nbytes = gfits_data_size (header); 45 fseeko (f, Nbytes, SEEK_CUR); 46 gfits_free_header (header); 47 } 48 return (TRUE); 49 } 24 if (!gfits_find_Xheader (f, header, extname)) return FALSE; 25 26 if (gfits_fread_ftable_data (f, table, FALSE)) return (TRUE); 27 gfits_free_header (header); 28 return (FALSE); 29 } 50 30 51 31 /*********************** fits read ftable data ***********************************/ … … 84 64 85 65 /*********************** fits read ftable data ***********************************/ 86 int gfits_fread_ftable_range (FILE *f, FTable *table, off_t start, off_t Nrows) {66 int gfits_fread_ftable_range (FILE *f, int padIfShort, FTable *table, off_t start, off_t Nrows) { 87 67 88 68 off_t Nbytes, Nread, Nskip, Nx, Ny; … … 109 89 if (ferror (f)) { 110 90 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; 111 100 } else { 112 fprintf (stderr, "unexpected eof\n"); 113 } 114 free (table[0].buffer); 115 return (FALSE); 101 free (table[0].buffer); 102 return (FALSE); 103 } 116 104 } 117 105 -
trunk/Ohana/src/libfits/table/F_write_T.c
r28241 r37807 95 95 96 96 // cursor must be at start of the table (after table header) 97 fseeko (f, Nskip, SEEK_CUR); 97 if (fseeko (f, Nskip, SEEK_CUR)) { 98 fprintf (stderr, "can't seek table start\n"); 99 return (FALSE); 100 } 101 98 102 Nwrite = fwrite (ftable[0].buffer, sizeof (char), Nbytes, f); 99 103 if (Nwrite != Nbytes) {
Note:
See TracChangeset
for help on using the changeset viewer.
