+/*
+ * do_scan: Perform scan
+ */
+static int do_scan (void *obj, Tcl_Interp *interp, int argc, char **argv)
+{
+ Z_ScanRequest req;
+ Z_APDU apdu, *apdup = &apdu;
+ IRObj *p = obj;
+
+ if (!p->num_databaseNames)
+ {
+ interp->result = "no databaseNames";
+ return TCL_ERROR;
+ }
+ if (!p->cs_link)
+ {
+ interp->result = "not connected";
+ return TCL_ERROR;
+ }
+ apdu.which = Z_APDU_scanRequest;
+ apdu.u.scanRequest = &req;
+ req.referenceId = NULL;
+ req.num_databaseNames = p->num_databaseNames;
+ req.databaseNames = p->databaseNames;
+ req.attributeSet = oid_getoidbyent (&p->bib1);
+
+ req.stepSize = &p->stepSize;
+ req.numberOfTermsRequested = &p->numberOfTermsRequested;
+ req.preferredPositionInResponse = &p->preferredPositionInResponse;
+
+ return TCL_OK;
+}
+