IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 14, 2009, 10:30:29 AM (17 years ago)
Author:
eugene
Message:

adding ipp-2.9 build files: moving to cfitsio3100-p2 (automatic install of funpack, fpack); build/install of extsrc/gpcsw for burntool and tiltystreak

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/libautocode/def/autocode.c

    r15038 r24399  
    77
    88  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);
    1211  }
    1312
     
    2625}
    2726
     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
    2858/*** add test of EXTNAME and header-defined columns? ***/
    2959/* return internal structure representation */
    3060$STRUCT *gfits_table_get_$STRUCT (FTable *ftable, int *Ndata, int *swapped) {
    3161
    32   $STRUCT *data;
     62  $STRUCT *data, *output;
    3363
    3464  *Ndata = ftable[0].header[0].Naxis[1];
    3565  data = ($STRUCT *) ftable[0].buffer;
    3666  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    }
    3873    gfits_table_scale_data (ftable);
    3974    if (swapped != NULL) *swapped = TRUE;
Note: See TracChangeset for help on using the changeset viewer.