summaryrefslogtreecommitdiffstats
path: root/funtools/fitsy/headget.c
blob: 89dd7c9a45721bd5438e454bbb242ccab37c1c6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/* Find and return values from a FITS header.

    EXAMPLES
+
		FITSHead	fits;
		FITSCard	card;


		int		simple;
		int		ax1, ax2;

	/-* Look up the SIMPLE card in the header and see if its is 
	   True.  If it's not found return False.
	 *-/
	simple = #ft_headgetl(fits, "SIMPLE", 0, 0, &card);

	/-* Look up the NAXIS1 and NAXIS2 cards in the header
	   if a card is not found return 0.
	 *-/
	ax1 = #ft_headgeti(fits, "NAXIS", 1, 0, &card);
	ax2 = #ft_headgeti(fits, "NAXIS", 2, 0, &card);
+
 */

#include <fitsy.h>

/* Find and return the value of a FITS card as a static string.
 */
char *ft_headget(fits, name, n, card)
        FITSHead         fits;	/* The FITS header to search.		*/
	char		*name;	/* Name of the card keyword to search for. */
	int		 n;	/* keyword index number, if is zero no
                                   index number is appended to the keyword.
                                 */
	FITSCard	*card;	/* The FITS card that was found.	*/
{
	 return ft_cardget(*(card) = ft_headfind(fits, name, n, 0));
}

/* Find and return the value of a FITS card as a logical.
 */
int ft_headgetl(fits, name, n, ldefault, card)
	FITSHead	 fits;
	char		*name;
	int		 n;
	int		 ldefault; /* Default logical value to return.	*/
	FITSCard	*card;
{
	FITSCard	C;

	if ( card == NULL ) card = &C;

	return ( (*(card) = ft_headfind(fits, name, n, 0)) ?
		ft_cardgetl(*(card)) : (int)(ldefault) );
}


/* Find and return the value of a FITS card as an integer.
 */
int ft_headgeti(fits, name, n, idefault, card)
	FITSHead	 fits;
	char		*name;
	int		 n;
	int		 idefault; /* Default integer value to return.	*/
	FITSCard	*card;
{
	FITSCard	C;

	if ( card == NULL ) card = &C;

	return ( (*(card) = ft_headfind(fits, name, n, 0)) ?
		ft_cardgeti(*(card)) : (int)(idefault) );
}

/* Find and return the value of a FITS card as an integer.
 */
longlong ft_headgetil(fits, name, n, idefault, card)
	FITSHead	 fits;
	char		*name;
	int		 n;
	longlong	 idefault; /* Default integer value to return.	*/
	FITSCard	*card;
{
	FITSCard	C;

	if ( card == NULL ) card = &C;

	return ( (*(card) = ft_headfind(fits, name, n, 0)) ?
		ft_cardgetil(*(card)) : (longlong)(idefault) );
}

/* Find and return the value of a FITS card as a real.
 */
double ft_headgetr(fits, name, n, ddefault, card)
	FITSHead	 fits;
	char		*name;
	int		 n;
	double		 ddefault; /* Default real value to return.	*/
	FITSCard	*card;
{
	FITSCard	C;

	if ( card == NULL ) card = &C;

	return ( (*(card) = ft_headfind(fits, name, n, 0)) ?
		ft_cardgetr(*(card)) : (double)(ddefault) );

}
/* Find and return the value of a FITS card as a allocated string.
 */
char *ft_headgets(fits, name, n, sdefault, card)
	FITSHead	 fits;
	char		*name;
	int		 n;
	char 		*sdefault; /* Default string value to return.	*/
	FITSCard	*card;
{
	FITSCard	C;

	if ( card == NULL ) card = &C;

	return ( (*(card) = ft_headfind(fits, name, n, 0)) ? 
		ft_cardgets(*(card)) : (sdefault == NULL 
					? NULL 
					: (char *)strdup(sdefault)) );
}