aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/lib/pttables/ptranges.x
diff options
context:
space:
mode:
Diffstat (limited to 'noao/digiphot/lib/pttables/ptranges.x')
-rw-r--r--noao/digiphot/lib/pttables/ptranges.x38
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