diff options
Diffstat (limited to 'noao/digiphot/lib/pttables/ptranges.x')
-rw-r--r-- | noao/digiphot/lib/pttables/ptranges.x | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/noao/digiphot/lib/pttables/ptranges.x b/noao/digiphot/lib/pttables/ptranges.x new file mode 100644 index 00000000..7f37de19 --- /dev/null +++ b/noao/digiphot/lib/pttables/ptranges.x @@ -0,0 +1,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 |