* Sebastian Hammer, Adam Dickmeiss
*
* $Log: ir-tcl.c,v $
- * Revision 1.105 1998-04-02 14:31:08 adam
+ * Revision 1.107 1998-06-10 13:00:46 adam
+ * Added ir-version command.
+ *
+ * Revision 1.106 1998/05/20 12:25:35 adam
+ * Fixed bug that occurred in rare cases when encoding of incoming
+ * records failed.
+ *
+ * Revision 1.105 1998/04/02 14:31:08 adam
* This version works with compiled ASN.1 code.
*
* Revision 1.104 1998/02/27 14:26:07 adam
ODR_MASK_ZERO (ob);
for (no = 0; no < argc; no++)
{
+ int ok = 0;
for (ti = tab; ti->name; ti++)
- if (!strcmp (argv[no], ti->name))
+ if (!strcmp(argv[no], "@all") || !strcmp (argv[no], ti->name))
{
ODR_MASK_SET (ob, ti->pos);
- break;
+ ok = 1;
}
- if (!ti->name)
+ if (!ok)
{
Tcl_AppendResult (interp, "bad bit mask ", argv[no], NULL);
return ir_tcl_error_exec (interp, argc, argv);
}
+/*
+ * ir_version: log ir version
+ */
+static int ir_version (ClientData clientData, Tcl_Interp *interp,
+ int argc, char **argv)
+{
+ Tcl_AppendElement (interp, IR_TCL_VERSION);
+ Tcl_AppendElement (interp, YAZ_VERSION);
+ return TCL_OK;
+}
+
+
/* ------------------------------------------------------- */
static void ir_initResponse (void *obj, Z_InitResponse *initrs)
{
{
struct oident *ident;
Z_ext_typeent *etype;
-
+
+ logf (LOG_DEBUG, "handleDBRecord size=%d", oe->u.octet_aligned->len);
rl->u.dbrec.size = oe->u.octet_aligned->len;
rl->u.dbrec.buf = NULL;
odr_setbuf (p->odr_in, (char*) oe->u.octet_aligned->buf,
oe->u.octet_aligned->len, 0);
if (!(*etype->fun)(p->odr_in, (char **) &rr, 0))
+ {
+ rl->u.dbrec.type = VAL_NONE;
return;
+ }
switch (etype->what)
{
case Z_External_sutrs:
(ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
Tcl_CreateCommand (interp, "ir-log", ir_log_proc,
(ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
+ Tcl_CreateCommand (interp, "ir-version", ir_version, (ClientData) NULL,
+ (Tcl_CmdDeleteProc *) NULL);
nmem_init ();
return TCL_OK;
}