Changeset 24399 for trunk/Ohana/src/libautocode/def/autocode.c
- Timestamp:
- Jun 14, 2009, 10:30:29 AM (17 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/libautocode/def/autocode.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libautocode/def/autocode.c
r15038 r24399 7 7 8 8 if (size != $SIZE) { 9 fprintf (stderr, "ERROR: mismatch in data types $STRUCT: %d vs %d\n", 10 size, $SIZE); 11 exit (1); 9 fprintf (stderr, "WARNING: mismatch in data types $STRUCT: %d vs %d\n", size, $SIZE); 10 return (FALSE); 12 11 } 13 12 … … 26 25 } 27 26 27 $STRUCT *gfits_downsize_and_convert_$STRUCT ($STRUCT *data, int size, int nitems) { 28 29 int i; 30 unsigned char *byte, tmp; 31 $STRUCT *output; 32 33 if ($SIZE > size) { 34 fprintf (stderr, "ERROR: uncorrectable mismatch in data types $STRUCT: %d vs %d\n", size, $SIZE); 35 exit (1); 36 } 37 38 // allocate a new array 39 ALLOCATE (output, $STRUCT, nitems); 40 for (i = 0; i < nitems; i++) { 41 memcpy (&output[i], &data[i], $SIZE); 42 } 43 44 /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */ 45 i = tmp = 0; 46 byte = NULL; 47 48 # ifdef BYTE_SWAP 49 byte = (unsigned char *) output; 50 for (i = 0; i < nitems; i++, byte += size) { 51 /** BYTE SWAP **/ 52 } 53 # endif 54 55 return (output); 56 } 57 28 58 /*** add test of EXTNAME and header-defined columns? ***/ 29 59 /* return internal structure representation */ 30 60 $STRUCT *gfits_table_get_$STRUCT (FTable *ftable, int *Ndata, int *swapped) { 31 61 32 $STRUCT *data ;62 $STRUCT *data, *output; 33 63 34 64 *Ndata = ftable[0].header[0].Naxis[1]; 35 65 data = ($STRUCT *) ftable[0].buffer; 36 66 if ((swapped == NULL) || (*swapped == FALSE)) { 37 gfits_convert_$STRUCT (data, sizeof ($STRUCT), *Ndata); 67 if (!gfits_convert_$STRUCT (data, sizeof ($STRUCT), *Ndata)) { 68 output = gfits_downsize_and_convert_$STRUCT (data, sizeof ($STRUCT), *Ndata); 69 free (ftable[0].buffer); 70 ftable[0].buffer = output; 71 // XXX do I need to change NX? 72 } 38 73 gfits_table_scale_data (ftable); 39 74 if (swapped != NULL) *swapped = TRUE;
Note:
See TracChangeset
for help on using the changeset viewer.
