aboutsummaryrefslogtreecommitdiff
path: root/src/libcf/cf_fes_proc_update.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/libcf/cf_fes_proc_update.c
downloadcalfuse-d54fe7c1f704a63824c5bfa0ece65245572e9b27.tar.gz
Initial commit
Diffstat (limited to 'src/libcf/cf_fes_proc_update.c')
-rw-r--r--src/libcf/cf_fes_proc_update.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/libcf/cf_fes_proc_update.c b/src/libcf/cf_fes_proc_update.c
new file mode 100644
index 0000000..14f1f78
--- /dev/null
+++ b/src/libcf/cf_fes_proc_update.c
@@ -0,0 +1,68 @@
+/******************************************************************************
+ * Johns Hopkins University
+ * Center For Astrophysical Sciences
+ * FUSE
+ ******************************************************************************
+ *
+ * Synopsis: cf_fes_proc_update(fitsfile *fptr, char *prgm_id,
+ * char *key_value)
+ *
+ * Description: cf_fes_proc_update will update the FITS header keyword
+ * which corresponds to the given prgm_id in the file
+ * fptr to the value given in key_value.
+ *
+ * Arguments: fitsfile *fptr Pointer to input file
+ * char *prgm_id Procedure name
+ * char *key_value Updated procedure status
+ *
+ * History: 07/21/98 emm Begin work.
+ * 08/19/2004 1.1 wvd Move to v3.0, add CF_VER_NUM,
+ * change cf_errmsg to cf_if_error.
+ * Delete fits_print_err.
+ * 09/07/2007 1.2 bot Removed unused CF_VER_NUM and CF_PRGM_ID
+ *
+ *****************************************************************************/
+
+#include <stdio.h>
+#include <string.h>
+#include "calfuse.h"
+
+int cf_fes_proc_update(fitsfile *fptr, char *prgm_id, char *key_value)
+{
+ int i=0, status=0;
+ /*
+ * The calfuse.h file contains the definitions of fes_keyword_tab
+ * NUM_FES_PROC_STEPS, and FES_CALIBRATION_STEP_KEYS.
+ */
+ struct fes_keyword_tab keytab[NUM_FES_PROC_STEPS]=FES_CALIBRATION_STEP_KEYS;
+ /*
+ * Find the keyword associated with prgm_id by looping
+ * through keytab[i].proc
+ */
+ while ((strncmp(keytab[i].proc,prgm_id, strlen(keytab[i].proc)) != 0) &&
+ (i < NUM_FES_PROC_STEPS)) i++;
+ if (i < NUM_FES_PROC_STEPS) {
+ /*
+ * We found a match to prgm_id, so change the associated
+ * keyword in the header.
+ */
+ fits_modify_key_str(fptr,keytab[i].name,key_value,
+ "&",&status);
+ if (status) {
+ cf_if_error("Error updating keyword");
+ return status;
+ }
+ }
+ else {
+ /*
+ * The given prgm_id did not match any of the known
+ * keytab[i].hist_proc, so return 1.
+ */
+ cf_if_error("Program ID does not apply to this"
+ "type of file, could not update");
+ fprintf(stderr,"Failed to update program id:%20.20s\n",
+ prgm_id);
+ return 1;
+ }
+ return status;
+}