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
|