summaryrefslogtreecommitdiffstats
path: root/funtools/fitsy/headins.c
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/fitsy/headins.c')
-rw-r--r--funtools/fitsy/headins.c205
1 files changed, 205 insertions, 0 deletions
diff --git a/funtools/fitsy/headins.c b/funtools/fitsy/headins.c
new file mode 100644
index 0000000..a83a9f4
--- /dev/null
+++ b/funtools/fitsy/headins.c
@@ -0,0 +1,205 @@
+/* Routines to insert, append and delete FITS cards from a header.
+
+ These routines allow FITS cards to be inserted, appended and deleted
+ by keyword value.
+
+ The insertion routines format a new card with the supplied keyword and
+ value and insert it after indicated card. The append routines add new
+ cards to the end of the header (before the END card).
+
+ */
+
+#include "fitsy.h"
+
+/* Insert a logical value FITS card into a header.
+ */
+FITSCard ft_headinsl(fits, name, n, lvalue, comm, here)
+ FITSHead fits; /* FITS header to insert, append or
+ delete a card.
+ */
+ char *name; /* Name of the FITS card. */
+ int n; /* keyword index number, if is zero no
+ index number is appended to the
+ keyword.
+ */
+ int lvalue;/* Logical to format as a FITS value. */
+ char *comm; /* Comment for the new card. */
+ FITSCard here; /* Insert the new card after this card. */
+{
+ FITSBuff card;
+
+ return ft_cardins(fits
+ , ft_cardfmt(&card, name, n, FT_LOGICAL, &lvalue, 0, comm)
+ , here);
+}
+
+/* Insert a integer value FITS card into a header.
+ */
+FITSCard ft_headinsi(fits, name, n, ivalue, comm, here)
+ FITSHead fits;
+ char *name;
+ int n;
+ int ivalue;/* Integer to format as a FITS value. */
+ char *comm;
+ FITSCard here;
+{
+ FITSBuff card;
+
+ return ft_cardins(fits
+ , ft_cardfmt(&card, name, n, FT_INTEGER, &ivalue, 0, comm)
+ , here);
+}
+
+/* Insert a longlong integer value FITS card into a header.
+ */
+FITSCard ft_headinsil(fits, name, n, ivalue, comm, here)
+ FITSHead fits;
+ char *name;
+ int n;
+ longlong ivalue;/* Integer to format as a FITS value. */
+ char *comm;
+ FITSCard here;
+{
+ FITSBuff card;
+
+ return ft_cardins(fits
+ , ft_cardfmt(&card, name, n, FT_LONG, &ivalue, 0, comm)
+ , here);
+}
+
+/* Insert a real value FITS card into a header.
+ */
+FITSCard ft_headinsr(fits, name, n, dvalue, prec, comm, here)
+ FITSHead fits;
+ char *name;
+ int n;
+ double dvalue;/* Double to format as a FITS value. */
+ int prec; /* Precision for the value */
+ char *comm;
+ FITSCard here;
+{
+ FITSBuff card;
+
+ return ft_cardins(fits
+ , ft_cardfmt(&card, name, n, FT_REAL, &dvalue, prec, comm)
+ , here);
+}
+
+/* Insert a string value FITS card into a header.
+ */
+FITSCard ft_headinss(fits, name, n, svalue, comm, here)
+ FITSHead fits;
+ char *name;
+ int n;
+ char *svalue;/* String to format as a FITS value */
+ char *comm;
+ FITSCard here;
+{
+ FITSBuff card;
+
+ return ft_cardins(fits
+ , ft_cardfmt(&card, name, n, FT_STRING, svalue, 0, comm)
+ , here);
+}
+
+/* Insert a raw value FITS card into a header.
+ */
+FITSCard ft_headinsv(fits, name, n, vvalue, comm, here)
+ FITSHead fits;
+ char *name;
+ int n;
+ char *vvalue;/* Raw value to format as a FITS value */
+ char *comm;
+ FITSCard here;
+{
+ FITSBuff card;
+
+ return ft_cardins(fits
+ , ft_cardfmt(&card, name, n, FT_VALUE, vvalue, 0, comm)
+ , here);
+}
+
+/* Append a logical value FITS card to a header.
+ */
+FITSCard ft_headappl(fits, name, n, lvalue, comm)
+ FITSHead fits;
+ char *name;
+ int n;
+ int lvalue;
+ char *comm;
+{
+ return ft_headinsl(fits, name, n, lvalue, comm, NULL);
+}
+
+/* Append a integer value FITS card to a header.
+ */
+FITSCard ft_headappi(fits, name, n, ivalue, comm)
+ FITSHead fits;
+ char *name;
+ int n;
+ int ivalue;
+ char *comm;
+{
+ return ft_headinsi(fits, name, n, ivalue, comm, NULL);
+}
+
+/* Append a 64-bit integer value FITS card to a header.
+ */
+FITSCard ft_headappil(fits, name, n, ivalue, comm)
+ FITSHead fits;
+ char *name;
+ int n;
+ longlong ivalue;
+ char *comm;
+{
+ return ft_headinsil(fits, name, n, ivalue, comm, NULL);
+}
+
+/* Append a real value FITS card to a header.
+ */
+FITSCard ft_headappr(fits, name, n, dvalue, prec, comm)
+ FITSHead fits;
+ char *name;
+ int n;
+ double dvalue;
+ int prec;
+ char *comm;
+{
+ return ft_headinsr(fits, name, n, dvalue, prec, comm, NULL);
+}
+
+/* Append a string value FITS card to a header.
+ */
+FITSCard ft_headapps(fits, name, n, svalue, comm)
+ FITSHead fits;
+ char *name;
+ int n;
+ char *svalue;
+ char *comm;
+{
+ return ft_headinss(fits, name, n, svalue, comm, NULL);
+}
+
+
+/* Append a raw value FITS card to a header.
+ */
+FITSCard ft_headappv(fits, name, n, vvalue, comm)
+ FITSHead fits;
+ char *name;
+ int n;
+ char *vvalue;
+ char *comm;
+{
+ return ft_headinsv(fits, name, n, vvalue, comm, NULL);
+}
+
+
+/* Find and delete a card from a FITS header.
+ */
+FITSCard ft_headdel(fits, name, n)
+ FITSHead fits;
+ char *name;
+ int n;
+{
+ return ft_carddel(fits, ft_headfind(fits, name, n, 0));
+}