aboutsummaryrefslogtreecommitdiff
path: root/src/fes/cf_cp_hdr.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-03-04 21:21:30 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-03-04 21:21:30 -0500
commitd54fe7c1f704a63824c5bfa0ece65245572e9b27 (patch)
treeafc52015ffc2c74e0266653eecef1c8ef8ba5d91 /src/fes/cf_cp_hdr.c
downloadcalfuse-d54fe7c1f704a63824c5bfa0ece65245572e9b27.tar.gz
Initial commit
Diffstat (limited to 'src/fes/cf_cp_hdr.c')
-rw-r--r--src/fes/cf_cp_hdr.c71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/fes/cf_cp_hdr.c b/src/fes/cf_cp_hdr.c
new file mode 100644
index 0000000..7642f05
--- /dev/null
+++ b/src/fes/cf_cp_hdr.c
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Johns Hopkins University
+ * Center For Astrophysical Sciences
+ * FUSE
+ *******************************************************************************
+ *
+ * Synopsis: cf_cp_hdr(fitsfile *infits, int inhdu, fitsfile *outfits,
+ * int outhdu)
+ *
+ * Description: Copies the header, with no changes, from HDU inhdu of the
+ * input FITS file infits to HDU outhdu of the output FITS file
+ * outfits.
+ *
+ * Arguments: fitsfile *infits Input FITS file pointer
+ * int inhdu HDU to be copied from
+ * fitsfile *outfits Output FITS file pointer
+ * int outhdu HDU to be copied to
+ *
+ * Returns: none
+ *
+ * History: 04/02/98 gak Begin work
+ * 08/27/98 gak Initialized status, hdutype;
+ * return status
+ *
+ ******************************************************************************/
+
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "calfuse.h"
+
+#define CF_PRGM_ID "cf_cp_hdr"
+#define CF_VER_NUM "1.1"
+
+int cf_cp_hdr(fitsfile *infits, int inhdu, fitsfile *outfits, int outhdu)
+{
+ char buffer[FLEN_CARD];
+ int status, hdutype;
+ int nkeys, keynum;
+ int i;
+
+ status = 0;
+ hdutype = 0;
+
+ if ( fits_movabs_hdu(infits, inhdu, &hdutype, &status) ) {
+ cf_if_error(status);
+ exit(status);
+ }
+ if ( fits_movabs_hdu(outfits, outhdu, &hdutype, &status) ) {
+ cf_if_error(status);
+ exit(status);
+ }
+
+ /* Get number of keywords in the input header, loop & copy. */
+ if ( fits_get_hdrpos(infits, &nkeys, &keynum, &status) ) {
+ cf_if_error(status);
+ exit(status);
+ }
+ for ( i = 1; i <= nkeys; i++) {
+ if ( fits_read_record(infits, i, buffer, &status) ) {
+ cf_if_error(status);
+ exit(status);
+ }
+ if ( fits_write_record(outfits, buffer, &status) ) {
+ cf_if_error(status);
+ exit(status);
+ }
+ }
+
+ return status;
+}