Commit 55305906 authored by Ole Streicher's avatar Ole Streicher

New upstream version 2018.07.04

parent 842ac848
Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
The IRAF software is publicly available, but is NOT in the public domain.
The difference is that copyrights granting rights for unrestricted use and
redistribution have been placed on all of the software to identify its authors.
You are allowed and encouraged to take this software and use it as you wish,
subject to the restrictions outlined below.
Permission to use, copy, modify, and distribute this software and its
documentation is hereby granted without fee, provided that the above copyright
notice appear in all copies and that both that copyright notice and this
permission notice appear in supporting documentation, and that references to
the Association of Universities for Research in Astronomy Inc. (AURA),
the National Optical Astronomy Observatories (NOAO), or the Image Reduction
and Analysis Facility (IRAF) not be used in advertising or publicity
pertaining to distribution of the software without specific, written prior
permission from NOAO. NOAO makes no representations about the suitability
of this software for any purpose. It is provided "as is" without express or
implied warranty.
NOAO DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NOAO
BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Copyright (Unpublished--all rights reserved under the copyright laws of
the United States), U.S. Government as represented by the Administrator
of the National Aeronautics and Space Administration. No copyright is
claimed in the United States under Title 17, U.S. Code.
Permission to freely use, copy, modify, and distribute this software
and its documentation without fee is hereby granted, provided that this
copyright notice and disclaimer of warranty appears in all copies.
DISCLAIMER:
THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND,
EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO,
ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE
DOCUMENTATION WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE
SOFTWARE WILL BE ERROR FREE. IN NO EVENT SHALL NASA BE LIABLE FOR ANY
DAMAGES, INCLUDING, BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR
CONSEQUENTIAL DAMAGES, ARISING OUT OF, RESULTING FROM, OR IN ANY WAY
CONNECTED WITH THIS SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY,
CONTRACT, TORT , OR OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY
PERSONS OR PROPERTY OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED
FROM, OR AROSE OUT OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR
SERVICES PROVIDED HEREUNDER.
#
# Makefile for cfitsio library:
#
# Oct-96 : original version by
#
# JDD/WDP
# NASA GSFC
# Oct 1996
#
# 25-Jan-01 : removed conditional drvrsmem.c compilation because this
# is now handled within the source file itself.
# 09-Mar-98 : modified to conditionally compile drvrsmem.c. Also
# changes to target all (deleted clean), added DEFS, LIBS, added
# DEFS to .c.o, added SOURCES_SHMEM and MY_SHMEM, expanded getcol*
# and putcol* in SOURCES, modified OBJECTS, mv changed to /bin/mv
# (to bypass aliasing), cp changed to /bin/cp, add smem and
# testprog targets. See also changes and comments in configure.in
# Default library name:
PACKAGE = cfitsio
# CFITSIO version numbers:
CFITSIO_MAJOR = @CFITSIO_MAJOR@
CFITSIO_MINOR = @CFITSIO_MINOR@
CFITSIO_SONAME = @CFITSIO_SONAME@
prefix = @prefix@
exec_prefix = @exec_prefix@
CFITSIO_BIN = ${DESTDIR}@bindir@
CFITSIO_LIB = ${DESTDIR}@libdir@
CFITSIO_INCLUDE = ${DESTDIR}@includedir@
INSTALL_DIRS = @INSTALL_ROOT@ ${CFITSIO_INCLUDE} ${CFITSIO_LIB} ${CFITSIO_LIB}/pkgconfig
SHELL = /bin/sh
ARCHIVE = @ARCHIVE@
RANLIB = @RANLIB@
CC = @CC@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
SSE_FLAGS = @SSE_FLAGS@
FC = @FC@
LDFLAGS = @LDFLAGS@
LDFLAGS_BIN = @LDFLAGS_BIN@
DEFS = @DEFS@
LIBS = @LIBS@
FLEX = flex
BISON = bison
SHLIB_LD = @SHLIB_LD@
SHLIB_SUFFIX = @SHLIB_SUFFIX@
CFITSIO_SHLIB = @CFITSIO_SHLIB@
CFITSIO_SHLIB_SONAME = @CFITSIO_SHLIB_SONAME@
CORE_SOURCES = buffers.c cfileio.c checksum.c drvrfile.c drvrmem.c \
drvrnet.c drvrsmem.c editcol.c edithdu.c eval_l.c \
eval_y.c eval_f.c fitscore.c getcol.c getcolb.c getcold.c getcole.c \
getcoli.c getcolj.c getcolk.c getcoll.c getcols.c getcolsb.c \
getcoluk.c getcolui.c getcoluj.c getkey.c group.c grparser.c \
histo.c iraffits.c \
modkey.c putcol.c putcolb.c putcold.c putcole.c putcoli.c \
putcolj.c putcolk.c putcoluk.c putcoll.c putcols.c putcolsb.c \
putcolu.c putcolui.c putcoluj.c putkey.c region.c scalnull.c \
swapproc.c wcssub.c wcsutil.c imcompress.c quantize.c ricecomp.c \
pliocomp.c fits_hcompress.c fits_hdecompress.c \
simplerng.c @GSIFTP_SRC@
ZLIB_SOURCES = zlib/adler32.c zlib/crc32.c zlib/deflate.c zlib/infback.c \
zlib/inffast.c zlib/inflate.c zlib/inftrees.c zlib/trees.c \
zlib/uncompr.c zlib/zcompress.c zlib/zuncompress.c zlib/zutil.c
SOURCES = ${CORE_SOURCES} ${ZLIB_SOURCES} @F77_WRAPPERS@
OBJECTS = ${SOURCES:.c=.o}
CORE_OBJECTS = ${CORE_SOURCES:.c=.o} ${ZLIB_SOURCES:.c=.o}
FITSIO_SRC = f77_wrap1.c f77_wrap2.c f77_wrap3.c f77_wrap4.c
# ============ description of all targets =============
# - <<-- ignore error code
all:
@if [ "x${FC}" = x ]; then \
${MAKE} all-nofitsio; \
else \
${MAKE} stand_alone; \
fi
all-nofitsio:
${MAKE} stand_alone "FITSIO_SRC="
stand_alone: lib${PACKAGE}.a
lib${PACKAGE}.a: ${OBJECTS}
${ARCHIVE} $@ ${OBJECTS}; \
${RANLIB} $@;
shared: lib${PACKAGE}${SHLIB_SUFFIX}
lib${PACKAGE}${SHLIB_SUFFIX}: ${OBJECTS}
${SHLIB_LD} ${LDFLAGS} -o ${CFITSIO_SHLIB} ${OBJECTS} -lm ${LIBS}
@if [ "x${CFITSIO_SHLIB_SONAME}" != x ]; then \
ln -sf ${CFITSIO_SHLIB} ${CFITSIO_SHLIB_SONAME}; \
ln -sf ${CFITSIO_SHLIB_SONAME} $@; \
fi
install: lib${PACKAGE}.a ${INSTALL_DIRS}
@for lib in lib${PACKAGE}.a lib${PACKAGE}${SHLIB_SUFFIX} \
${CFITSIO_SHLIB} ${CFITSIO_SHLIB_SONAME}; do \
if [ -f $$lib ]; then \
echo "/bin/cp -a $$lib ${CFITSIO_LIB}"; \
/bin/cp -a $$lib ${CFITSIO_LIB}; \
fi; \
done
/bin/cp fitsio.h fitsio2.h longnam.h drvrsmem.h ${CFITSIO_INCLUDE}
/bin/cp cfitsio.pc ${CFITSIO_LIB}/pkgconfig
@for task in ${FPACK_UTILS} ${UTILS}; do \
if [ -f $$task ]; then \
if [ ! -d ${CFITSIO_BIN} ]; then mkdir -p ${CFITSIO_BIN}; fi; \
echo "/bin/cp $$task ${CFITSIO_BIN}"; \
/bin/cp $$task ${CFITSIO_BIN}; \
fi; \
done
.c.o:
${CC} -c -o ${<D}/${@F} ${CFLAGS} ${CPPFLAGS} ${DEFS} $<
UTILS = cookbook fitscopy imcopy smem speed testprog
FPACK_UTILS = fpack funpack
utils: ${FPACK_UTILS} ${UTILS}
swapproc.o: swapproc.c
${CC} -c ${CFLAGS} ${CPPFLAGS} ${SSE_FLAGS} ${DEFS} $<
smem: smem.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o -L. -l${PACKAGE} -lm
testprog: testprog.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o -L. -l${PACKAGE} -lm ${LIBS}
fpack: fpack.o fpackutil.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o fpackutil.o -L. -l${PACKAGE} -lm ${LIBS}
funpack: funpack.o fpackutil.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o fpackutil.o -L. -l${PACKAGE} -lm ${LIBS}
fitscopy: fitscopy.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o -L. -l${PACKAGE} -lm ${LIBS}
speed: speed.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o -L. -l${PACKAGE} -lm ${LIBS}
imcopy: imcopy.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o -L. -l${PACKAGE} -lm ${LIBS}
cookbook: cookbook.o lib${PACKAGE}.a ${OBJECTS}
${CC} ${LDFLAGS_BIN} ${DEFS} -o $@ ${@}.o -L. -l${PACKAGE} -lm ${LIBS}
eval: # Rebuild eval_* files from flex/bison source
${FLEX} -t eval.l > eval_l.c1
# Note workaround for yyfree=fffree conflict
/bin/sed -e 's/yy/ff/g' -e 's/YY/FF/g' eval_l.c1 -e 's/fffree/yyfffree/g' > eval_l.c
/bin/rm -f eval_l.c1
${BISON} -d -v -y eval.y
/bin/sed -e 's/yy/ff/g' -e 's/YY/FF/g' y.tab.c > eval_y.c
/bin/sed -e 's/yy/ff/g' -e 's/YY/FF/g' y.tab.h > eval_tab.h
/bin/rm -f y.tab.c y.tab.h
clean:
- /bin/rm -rf *.o zlib/*.o *.dSYM lib${PACKAGE}* y.output so_locations \
${UTILS} ${FPACK_UTILS} testprog.fit
distclean: clean
- /bin/rm -f Makefile cfitsio.pc config.log config.status configure.lineno
# Make target which outputs the list of the .o contained in the cfitsio lib
# usefull to build a single big shared library containing Tcl/Tk and other
# extensions. used for the Tcl Plugin.
cfitsioLibObjs:
@echo ${CORE_OBJECTS}
cfitsioLibSrcs:
@echo ${SOURCES}
# This target actually builds the objects needed for the lib in the above
# case
objs: ${CORE_OBJECTS}
${INSTALL_DIRS}:
@if [ ! -d $@ ]; then mkdir -p $@; fi
CFITSIO Interface Library
CFITSIO is a library of ANSI C routines for reading and writing FITS
format data files. A set of Fortran-callable wrapper routines are also
included for the convenience of Fortran programmers. This README file
gives a brief summary of how to build and test CFITSIO, but the CFITSIO
User's Guide, found in the files cfitsio.doc (plain text), cfitsio.tex
(LaTeX source file), cfitsio.ps, or cfitsio.pdf should be
referenced for the latest and most complete information.
BUILDING CFITSIO
----------------
The CFITSIO code is contained in about 40 *.c source files and several *.h
header files. CFITSIO should compile and run on most Unix platforms without
modification, except that Cray supercomputers computers are currently not
supported. The CFITSIO library is built on Unix systems by typing:
> ./configure [--prefix=/target/installation/path]
> make (or 'make shared')
> make install (this step is optional)
at the operating system prompt. The configure command customizes the
Makefile for the particular system, then the `make' command compiles the
source files and builds the library. Type `./configure' and not simply
`configure' to ensure that the configure script in the current directory
is run and not some other system-wide configure script. The optional
'prefix' argument to configure gives the path to the directory where
the CFITSIO library and include files should be installed via the later
'make install' command. For example,
> ./configure --prefix=/usr1/local
will cause the 'make install' command to copy the CFITSIO libcfitsio file
to /usr1/local/lib and the necessary include files to /usr1/local/include
(assuming of course that the process has permission to write to these
directories).
All the available configure options can be seen by entering the command
> ./configure --help
On VAX/VMS and ALPHA/VMS systems the make.com command file may be used
to build the cfitsio.olb object library using the default G-floating
point option for double variables. The make\_dfloat.com and make\_ieee.com
files may be used instead to build the library with the other floating
point options.
A precompiled DLL version of CFITSIO is available for IBM-PC users of
the Borland or Microsoft Visual C++ compilers in the files
cfitsiodll_xxxx_borland.zip and cfitsiodll_xxxx_vcc.zip, where 'xxxx'
represents the current release number. These zip archives also
contains other files and instructions on how to use the CFITSIO DLL
library. The CFITSIO library may also be built from the source code
using the makefile.bc or makefile.vcc files. Finally, the makepc.bat
file gives an example of building CFITSIO with the Borland C++ v4.5
compiler using simpler DOS commands.
Instructions for building CFITSIO on Mac OS can be found in
the README.MacOS file.
TESTING CFITSIO
---------------
The CFITSIO library should be tested by building and running
the testprog.c program that is included with the release.
On Unix systems, type:
-
% make testprog
% testprog > testprog.lis
% diff testprog.lis testprog.out
% cmp testprog.fit testprog.std
-
On VMS systems,
(assuming cc is the name of the C compiler command), type:
-
$ cc testprog.c
$ link testprog, cfitsio/lib
$ run testprog
-
The testprog program should produce a FITS file called `testprog.fit'
that is identical to the testprog.std FITS file included in this
release. The diagnostic messages (which were piped to the file
testprog.lis in the Unix example) should be identical to the listing
contained in the file testprog.out. The 'diff' and 'cmp' commands
shown above should not report any differences in the files.
USING CFITSIO
-------------
The CFITSIO User's Guide, contained in the files cfitsio.doc (plain
text file) and cfitsio.ps (postscript file), provides detailed
documentation about how to build and use the CFITSIO library.
It contains a description of every user-callable routine in the
CFITSIO interface.
The cookbook.c file provides some sample routines for performing common
operations on various types of FITS files. Programmers are urged to
examine these routines for recommended programming practices when using
CFITSIO. Users are free to copy or modify these routines for their own
purposes.
Any problem reports or suggestions for
improvements are welcome and should be sent to the HEASARC
help desk.
-------------------------------------------------------------------------
William D. Pence
HEASARC, NASA/GSFC
Note: IRAF only requires the CFITSIO library, and hence in this bundled version,
we removed all other files except the required license (License.txt) and changelog
(docs/changes.txt, which has the version number).
This diff is collapsed.
This diff is collapsed.
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
Name: cfitsio
Description: FITS File Subroutine Library
Version: @CFITSIO_MAJOR@.@CFITSIO_MINOR@
Libs: -L${libdir} -lcfitsio @LIBS@
Libs.private: -lm
Cflags: -I${includedir}
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/* S H A R E D M E M O R Y D R I V E R
=======================================
by Jerzy.Borkowski@obs.unige.ch
09-Mar-98 : initial version 1.0 released
23-Mar-98 : shared_malloc now accepts new handle as an argument
*/
#include <sys/ipc.h> /* this is necessary for Solaris/Linux */
#include <sys/shm.h>
#include <sys/sem.h>
#ifdef _AIX
#include <fcntl.h>
#else
#include <sys/fcntl.h>
#endif
/* configuration parameters */
#define SHARED_MAXSEG (16) /* maximum number of shared memory blocks */
#define SHARED_KEYBASE (14011963) /* base for shared memory keys, may be overriden by getenv */
#define SHARED_FDNAME ("/tmp/.shmem-lockfile") /* template for lock file name */
#define SHARED_ENV_KEYBASE ("SHMEM_LIB_KEYBASE") /* name of environment variable */
#define SHARED_ENV_MAXSEG ("SHMEM_LIB_MAXSEG") /* name of environment variable */
/* useful constants */
#define SHARED_RDONLY (0) /* flag for shared_(un)lock, lock for read */
#define SHARED_RDWRITE (1) /* flag for shared_(un)lock, lock for write */
#define SHARED_WAIT (0) /* flag for shared_lock, block if cannot lock immediate */
#define SHARED_NOWAIT (2) /* flag for shared_lock, fail if cannot lock immediate */
#define SHARED_NOLOCK (0x100) /* flag for shared_validate function */
#define SHARED_RESIZE (4) /* flag for shared_malloc, object is resizeable */
#define SHARED_PERSIST (8) /* flag for shared_malloc, object is not deleted after last proc detaches */
#define SHARED_INVALID (-1) /* invalid handle for semaphore/shared memory */
#define SHARED_EMPTY (0) /* entries for shared_used table */
#define SHARED_USED (1)
#define SHARED_GRANUL (16384) /* granularity of shared_malloc allocation = phys page size, system dependent */
/* checkpoints in shared memory segments - might be omitted */
#define SHARED_ID_0 ('J') /* first byte of identifier in BLKHEAD */
#define SHARED_ID_1 ('B') /* second byte of identifier in BLKHEAD */
#define BLOCK_REG (0) /* value for tflag member of BLKHEAD */
#define BLOCK_SHARED (1) /* value for tflag member of BLKHEAD */
/* generic error codes */
#define SHARED_OK (0)
#define SHARED_ERR_MIN_IDX SHARED_BADARG
#define SHARED_ERR_MAX_IDX SHARED_NORESIZE
#define DAL_SHM_FREE (0)
#define DAL_SHM_USED (1)
#define DAL_SHM_ID0 ('D')
#define DAL_SHM_ID1 ('S')
#define DAL_SHM_ID2 ('M')
#define DAL_SHM_SEGHEAD_ID (0x19630114)
/* data types */
/* BLKHEAD object is placed at the beginning of every memory segment (both
shared and regular) to allow automatic recognition of segments type */
typedef union
{ struct BLKHEADstruct
{ char ID[2]; /* ID = 'JB', just as a checkpoint */
char tflag; /* is it shared memory or regular one ? */
int handle; /* this is not necessary, used only for non-resizeable objects via ptr */
} s;
double d; /* for proper alignment on every machine */
} BLKHEAD;
typedef void *SHARED_P; /* generic type of shared memory pointer */
typedef struct SHARED_GTABstruct /* data type used in global table */
{ int sem; /* access semaphore (1 field): process count */
int semkey; /* key value used to generate semaphore handle */
int key; /* key value used to generate shared memory handle (realloc changes it) */
int handle; /* handle of shared memory segment */
int size; /* size of shared memory segment */
int nprocdebug; /* attached proc counter, helps remove zombie segments */
char attr; /* attributes of shared memory object */
} SHARED_GTAB;
typedef struct SHARED_LTABstruct /* data type used in local table */
{ BLKHEAD *p; /* pointer to segment (may be null) */
int tcnt; /* number of threads in this process attached to segment */
int lkcnt; /* >=0 <- number of read locks, -1 - write lock */
long seekpos; /* current pointer position, read/write/seek operations change it */
} SHARED_LTAB;
/* system dependent definitions */
#ifndef HAVE_FLOCK_T
typedef struct flock flock_t;
#define HAVE_FLOCK_T
#endif
#ifndef HAVE_UNION_SEMUN
union semun
{ int val;
struct semid_ds *buf;
unsigned short *array;
};
#define HAVE_UNION_SEMUN
#endif
typedef struct DAL_SHM_SEGHEAD_STRUCT DAL_SHM_SEGHEAD;
struct DAL_SHM_SEGHEAD_STRUCT
{ int ID; /* ID for debugging */
int h; /* handle of sh. mem */
int size; /* size of data area */
int nodeidx; /* offset of root object (node struct typically) */
};
/* API routines */
#ifdef __cplusplus
extern "C" {
#endif
void shared_cleanup(void); /* must be called at exit/abort */
int shared_init(int debug_msgs); /* must be called before any other shared memory routine */
int shared_recover(int id); /* try to recover dormant segment(s) after applic crash */
int shared_malloc(long size, int mode, int newhandle); /* allocate n-bytes of shared memory */
int shared_attach(int idx); /* attach to segment given index to table */
int shared_free(int idx); /* release shared memory */
SHARED_P shared_lock(int idx, int mode); /* lock segment for reading */
SHARED_P shared_realloc(int idx, long newsize); /* reallocate n-bytes of shared memory (ON LOCKED SEGMENT ONLY) */
int shared_size(int idx); /* get size of attached shared memory segment (ON LOCKED SEGMENT ONLY) */
int shared_attr(int idx); /* get attributes of attached shared memory segment (ON LOCKED SEGMENT ONLY) */
int shared_set_attr(int idx, int newattr); /* set attributes of attached shared memory segment (ON LOCKED SEGMENT ONLY) */
int shared_unlock(int idx); /* unlock segment (ON LOCKED SEGMENT ONLY) */
int shared_set_debug(int debug_msgs); /* set/reset debug mode */
int shared_set_createmode(int mode); /* set/reset debug mode */
int shared_list(int id); /* list segment(s) */
int shared_uncond_delete(int id); /* uncondintionally delete (NOWAIT operation) segment(s) */
int shared_getaddr(int id, char **address); /* get starting address of FITS file in segment */
int smem_init(void);
int smem_shutdown(void);
int smem_setoptions(int options);
int smem_getoptions(int *options);
int smem_getversion(int *version);
int smem_open(char *filename, int rwmode, int *driverhandle);
int smem_create(char *filename, int *driverhandle);
int smem_close(int driverhandle);
int smem_remove(char *filename);
int smem_size(int driverhandle, LONGLONG *size);
int smem_flush(int driverhandle);
int smem_seek(int driverhandle, LONGLONG offset);
int smem_read(int driverhandle, void *buffer, long nbytes);
int smem_write(int driverhandle, void *buffer, long nbytes);
#ifdef __cplusplus
}
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#define MAX_HDU_TRACKER 1000
typedef struct _HDUtracker HDUtracker;
struct _HDUtracker
{
int nHDU;
char *filename[MAX_HDU_TRACKER];
int position[MAX_HDU_TRACKER];
char *newFilename[MAX_HDU_TRACKER];
int newPosition[MAX_HDU_TRACKER];
};
/* functions used internally in the grouping convention module */
int ffgtdc(int grouptype, int xtensioncol, int extnamecol, int extvercol,
int positioncol, int locationcol, int uricol, char *ttype[],
char *tform[], int *ncols, int *status);
int ffgtgc(fitsfile *gfptr, int *xtensionCol, int *extnameCol, int *extverCol,
int *positionCol, int *locationCol, int *uriCol, int *grptype,
int *status);
int ffvcfm(fitsfile *gfptr, int xtensionCol, int extnameCol, int extverCol,
int positionCol, int locationCol, int uriCol, int *status);
int ffgmul(fitsfile *mfptr, int rmopt, int *status);
int ffgmf(fitsfile *gfptr, char *xtension, char *extname, int extver,
int position, char *location, long *member, int *status);
int ffgtrmr(fitsfile *gfptr, HDUtracker *HDU, int *status);
int ffgtcpr(fitsfile *infptr, fitsfile *outfptr, int cpopt, HDUtracker *HDU,
int *status);
int fftsad(fitsfile *mfptr, HDUtracker *HDU, int *newPosition,
char *newFileName);
int fftsud(fitsfile *mfptr, HDUtracker *HDU, int newPosition,
char *newFileName);
void prepare_keyvalue(char *keyvalue);
int fits_path2url(char *inpath, int maxlength, char *outpath, int *status);
int fits_url2path(char *inpath, char *outpath, int *status);
int fits_get_cwd(char *cwd, int *status);
int fits_get_url(fitsfile *fptr, char *realURL, char *startURL,
char *realAccess, char *startAccess, int *iostate,
int *status);
int fits_clean_url(char *inURL, char *outURL, int *status);
int fits_relurl2url(char *refURL, char *relURL, char *absURL, int *status);
int fits_url2relurl(char *refURL, char *absURL, char *relURL, int *status);
int fits_encode_url(char *inpath, int maxle