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
|
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
include <ctype.h>
include "stf.h"
# STF_GETI -- Return the integer value of a FITS encoded card.
procedure stf_geti (card, ival)
char card[ARB] # card to be decoded
int ival # receives integer value
int ip, ctoi()
char sval[FITS_SZVALSTR]
begin
call stf_gets (card, sval, FITS_SZVALSTR)
ip = 1
if (ctoi (sval, ip, ival) <= 0)
ival = 0
end
# STF_GETB -- Return the boolean/integer value of a FITS encoded card.
procedure stf_getb (card, bval)
char card[ARB] # card to be decoded
int bval # receives YES/NO
char sval[FITS_SZVALSTR]
begin
call stf_gets (card, sval, FITS_SZVALSTR)
if (sval[1] == 'T')
bval = YES
else
bval = NO
end
# STF_GETS -- Get the string value of a FITS encoded card. Strip leading
# and trailing whitespace and any quotes.
procedure stf_gets (card, outstr, maxch)
char card[ARB] # FITS card to be decoded
char outstr[ARB] # output string to receive parameter value
int maxch
int ip, op
int ctowrd(), strlen()
begin
ip = FITS_STARTVALUE
if (ctowrd (card, ip, outstr, maxch) > 0) {
# Strip trailing whitespace.
op = strlen (outstr)
while (op > 0 && (IS_WHITE(outstr[op]) || outstr[op] == '\n'))
op = op - 1
outstr[op+1] = EOS
} else
outstr[1] = EOS
end
# STF_GETCMT -- Get the comment field of a FITS encoded card.
procedure stf_getcmt (card, comment, maxch)
char card[ARB] #I FITS card to be decoded
char comment[ARB] #O output string to receive comment
int maxch #I max chars out
int ip, op
int lastch
begin
# Find the slash which marks the beginning of the comment field.
ip = FITS_ENDVALUE + 1
while (card[ip] != EOS && card[ip] != '\n' && card[ip] != '/')
ip = ip + 1
# Copy the comment to the output string, omitting the /, any
# trailing blanks, and the newline.
lastch = 0
do op = 1, maxch {
if (card[ip] == EOS)
break
ip = ip + 1
comment[op] = card[ip]
if (card[ip] > ' ')
lastch = op
}
comment[lastch+1] = EOS
end
|