aboutsummaryrefslogtreecommitdiff
path: root/pkg/xtools/catquery/cqlocate.x
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/xtools/catquery/cqlocate.x')
-rw-r--r--pkg/xtools/catquery/cqlocate.x40
1 files changed, 40 insertions, 0 deletions
diff --git a/pkg/xtools/catquery/cqlocate.x b/pkg/xtools/catquery/cqlocate.x
new file mode 100644
index 00000000..7070f8c0
--- /dev/null
+++ b/pkg/xtools/catquery/cqlocate.x
@@ -0,0 +1,40 @@
+include "cqdef.h"
+
+# CQ_LOCATE -- Locate a catalog by name. Return 0 if the catalog is not found.
+
+int procedure cq_locate (cq, name)
+
+pointer cq #I the catalog descriptor
+char name[ARB] #I the catalog name
+
+int i
+bool streq()
+
+begin
+ do i = 1, CQ_NRECS(cq) {
+ if (streq (name, CQ_NAME(cq, i)))
+ return (i)
+ }
+
+ return (0)
+end
+
+
+# CQ_LOCATEN -- Locate a catalog by number and retrieve its name. Return 0 if
+# the catalog is not found.
+
+int procedure cq_locaten (cq, catno, name, maxch)
+
+pointer cq #I the catalog descriptor
+int catno #I the catalog sequence record number
+char name[ARB] #O the output catalog name
+int maxch #I the maximum size of the catalog name
+
+begin
+ if (catno > 0 && catno <= CQ_NRECS(cq)) {
+ call strcpy (CQ_NAME(cq, catno), name, maxch)
+ return (catno)
+ }
+
+ return (0)
+end