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
|
include <pkg/mef.h>
# MEF_GNBC -- Get the Number of Blank Cards in a FITS header pointed by
# mef. This is the number of cards available to insert before an expantion by
# one block is required. If the header has not being read and EOF (-2) is
# returned.
int procedure mef_gnbc (mef)
pointer mef
int len, hd, ip, nbc, hsize, k, ncards
int strlen(), strncmp()
begin
if (MEF_HDRP(mef) == NULL)
return (EOF)
hd = MEF_HDRP(mef)
len = strlen(Memc[hd])
# Go to the end of buffer and get last line
ip = hd + MEF_HSIZE(mef) - LEN_CARDNL
# See if line is blank
nbc = 0
while (ip > 0) {
do k = 0, LEN_CARD-1
if (Memc[ip+k] != ' ')
break
if (k != LEN_CARD && k != 0) # blank keyw card
break
else if (k == 0) {
if (strncmp ("END ", Memc[ip], 8) == 0) {
ip = ip - LEN_CARDNL
next
} else
break
} else
nbc = nbc + 1
ip = ip - LEN_CARDNL
}
hsize = MEF_HSIZE(mef)
ncards = (hsize + 80)/81
ncards = ((ncards + 35)/36)*36 - ncards
nbc = nbc + ncards
return (nbc)
end
|