aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/lib/pttables/ptranges.x
blob: 7f37de19bc5ca6aad70f0516008914094e92f949 (plain) (blame)
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
# PT_RANGES -- Procedure to convert apphot ranges to the format expected
# by the xtools ranges package.

int procedure pt_ranges (aranges, ranges, element, maxch)

char	aranges[ARB]	# input ranges
char	ranges[ARB]	# output ranges
int	element		# range element
int	maxch		# maximum number of characters in ranges

char	left_bkt, right_bkt
int	findex, lindex, nchars, ip
int	stridx(), ctoi()
data	left_bkt /'['/, right_bkt /']'/

begin
	# Test for existence of ranges.
	element = 1
	ranges[1] = EOS
	if (aranges[1] == EOS)
	    return (OK)

	# Test for range delimiters.
	findex = stridx (left_bkt, aranges)
	lindex = stridx (right_bkt, aranges)
	if (findex == 0 || lindex == 0 || (lindex <= findex + 1))
	    return (ERR)

	# Compute the element selection.
	ip = 1
	nchars = ctoi (aranges[findex+1], ip, element)
	if (nchars == 0)
	    element = 1

	# Copy the ranges portion.
	call strcpy (aranges[findex+1], ranges, lindex - findex - 1)
	return (OK)
end