# Sebastian Hammer, Adam Dickmeiss
#
# $Log: client.tcl,v $
-# Revision 1.78 1995-10-18 15:45:36 quinn
+# Revision 1.79 1995-10-18 16:42:37 adam
+# New settings: smallSetElementSetNames and mediumSetElementSetNames.
+#
+# Revision 1.78 1995/10/18 15:45:36 quinn
# *** empty log message ***
#
# Revision 1.77 1995/10/18 15:37:46 adam
}
if {$elementSetNames == "None" } {
z39.$setNo elementSetNames {}
+ z39.$setNo smallSetElementSetNames {}
+ z39.$setNo mediumSetElementSetNames {}
} else {
z39.$setNo elementSetNames $elementSetNames
+ z39.$setNo smallSetElementSetNames $elementSetNames
+ z39.$setNo mediumSetElementSetNames $elementSetNames
}
z39 callback {search-response}
z39.$setNo search $query
global setNo
global busy
+ dputs "add-title-lines offset=${offset} no=${no}"
if {$setno != -1} {
set setNo $setno
} else {
set setno $setNo
}
if {$offset == 1} {
+
.bot.a.set configure -text $setno
.data.record delete 0.0 end
}
set o [expr $i + $offset]
set type [z39.$setno type $o]
if {$type == ""} {
+ dputs "no more at $o"
break
}
.data.record tag bind r$o <Any-Enter> {}
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ir-tcl.c,v $
- * Revision 1.60 1995-10-18 15:43:31 adam
+ * Revision 1.61 1995-10-18 16:42:42 adam
+ * New settings: smallSetElementSetNames and mediumSetElementSetNames.
+ *
+ * Revision 1.60 1995/10/18 15:43:31 adam
* In search: mediumSetElementSetNames and smallSetElementSetNames are
* set to elementSetNames.
*
return TCL_OK;
}
+/*
+ * do_smallSetElementSetNames: Set/Get element Set Names
+ */
+static int do_smallSetElementSetNames (void *obj, Tcl_Interp *interp,
+ int argc, char **argv)
+{
+ IrTcl_SetCObj *p = obj;
+
+ if (argc == 0)
+ {
+ p->smallSetElementSetNames = NULL;
+ return TCL_OK;
+ }
+ else if (argc == -1)
+ return ir_tcl_strdel (interp, &p->smallSetElementSetNames);
+ if (argc == 3)
+ {
+ free (p->smallSetElementSetNames);
+ if (ir_tcl_strdup (interp, &p->smallSetElementSetNames,
+ argv[2]) == TCL_ERROR)
+ return TCL_ERROR;
+ }
+ Tcl_AppendResult (interp, p->smallSetElementSetNames, NULL);
+ return TCL_OK;
+}
+
+/*
+ * do_mediumSetElementSetNames: Set/Get element Set Names
+ */
+static int do_mediumSetElementSetNames (void *obj, Tcl_Interp *interp,
+ int argc, char **argv)
+{
+ IrTcl_SetCObj *p = obj;
+
+ if (argc == 0)
+ {
+ p->mediumSetElementSetNames = NULL;
+ return TCL_OK;
+ }
+ else if (argc == -1)
+ return ir_tcl_strdel (interp, &p->mediumSetElementSetNames);
+ if (argc == 3)
+ {
+ free (p->mediumSetElementSetNames);
+ if (ir_tcl_strdup (interp, &p->mediumSetElementSetNames,
+ argv[2]) == TCL_ERROR)
+ return TCL_ERROR;
+ }
+ Tcl_AppendResult (interp, p->mediumSetElementSetNames, NULL);
+ return TCL_OK;
+}
+
static IrTcl_Method ir_method_tab[] = {
{ 1, "comstack", do_comstack },
{ 0, "mediumSetPresentNumber", do_mediumSetPresentNumber},
{ 0, "referenceId", do_referenceId },
{ 0, "elementSetNames", do_elementSetNames },
+{ 0, "smallSetElementSetNames", do_smallSetElementSetNames },
+{ 0, "mediumSetElementSetNames", do_mediumSetElementSetNames },
{ 0, NULL, NULL}
};
apdu = zget_APDU (p->odr_out, Z_APDU_searchRequest);
req = apdu->u.searchRequest;
+ obj->start = 1;
+
bib1.proto = p->protocol_type;
bib1.class = CLASS_ATTSET;
bib1.value = VAL_BIB1;
else
req->preferredRecordSyntax = 0;
- if (obj->set_inher.elementSetNames && *obj->set_inher.elementSetNames)
+ if (obj->set_inher.smallSetElementSetNames &&
+ *obj->set_inher.smallSetElementSetNames)
{
Z_ElementSetNames *esn = odr_malloc (p->odr_out, sizeof(*esn));
-
+
esn->which = Z_ElementSetNames_generic;
esn->u.generic = obj->set_inher.elementSetNames;
- req->mediumSetElementSetNames = esn;
req->smallSetElementSetNames = esn;
}
else
- {
- req->mediumSetElementSetNames = NULL;
req->smallSetElementSetNames = NULL;
+
+ if (obj->set_inher.mediumSetElementSetNames &&
+ *obj->set_inher.mediumSetElementSetNames)
+ {
+ Z_ElementSetNames *esn = odr_malloc (p->odr_out, sizeof(*esn));
+
+ esn->which = Z_ElementSetNames_generic;
+ esn->u.generic = obj->set_inher.elementSetNames;
+ req->mediumSetElementSetNames = esn;
}
-
+ else
+ req->mediumSetElementSetNames = NULL;
+
req->query = &query;
-
+
if (!strcmp (obj->set_inher.queryType, "rpn"))
{
Z_RPNQuery *RPNquery;
return TCL_ERROR;
rl = find_IR_record (obj, offset);
if (!rl)
+ {
+ logf (LOG_DEBUG, "No record at position %d", offset);
return TCL_OK;
+ }
switch (rl->which)
{
case Z_NamePlusRecord_databaseRecord:
}
else
req->preferredRecordSyntax = 0;
+
if (obj->set_inher.elementSetNames && *obj->set_inher.elementSetNames)
{
Z_ElementSetNames *esn = odr_malloc (p->odr_out, sizeof(*esn));
== TCL_ERROR)
return TCL_ERROR;
+ if (ir_tcl_strdup (interp, &dst->smallSetElementSetNames,
+ src->smallSetElementSetNames)
+ == TCL_ERROR)
+ return TCL_ERROR;
+
+ if (ir_tcl_strdup (interp, &dst->mediumSetElementSetNames,
+ src->mediumSetElementSetNames)
+ == TCL_ERROR)
+ return TCL_ERROR;
+
if (src->preferredRecordSyntax &&
(dst->preferredRecordSyntax
= ir_tcl_malloc (sizeof(*dst->preferredRecordSyntax))))