X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=ir-tcl.c;h=37386aefc10d4468ea26cff7c86d54bc926c30f8;hb=cd15ffa62cfab32a1b984f7dc587dfc403f0d11f;hp=5b0e50e156b371425f32cdec1cf6f0a32d911761;hpb=931e3064081dadcc5beeaa4319f85dcbb7d764b3;p=ir-tcl-moved-to-github.git diff --git a/ir-tcl.c b/ir-tcl.c index 5b0e50e..37386ae 100644 --- a/ir-tcl.c +++ b/ir-tcl.c @@ -5,7 +5,17 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: ir-tcl.c,v $ - * Revision 1.47 1995-06-25 10:25:04 adam + * Revision 1.49 1995-06-30 12:39:21 adam + * Bug fix: loadFile didn't set record type. + * The MARC routines are a little less strict in the interpretation. + * Script display.tcl replaces the old marc.tcl. + * New interactive script: shell.tcl. + * + * Revision 1.48 1995/06/27 19:03:50 adam + * Bug fix in do_present in ir-tcl.c: p->set_child member weren't set. + * nextResultSetPosition used instead of setOffset. + * + * Revision 1.47 1995/06/25 10:25:04 adam * Working on triggerResourceControl. Description of compile/install * procedure moved to ir-tcl.sgml. * @@ -363,7 +373,8 @@ int ir_method (Tcl_Interp *interp, int argc, char **argv, IrTcl_Methods *tab) if (argc <= 0) return TCL_OK; - Tcl_AppendResult (interp, "Bad method. Possible methods:", NULL); + Tcl_AppendResult (interp, "Bad method: ", argv[1], + ". Possible methods:", NULL); for (tab_i = tab; tab_i->tab; tab_i++) for (t = tab_i->tab; t->name; t++) Tcl_AppendResult (interp, " ", t->name, NULL); @@ -989,8 +1000,6 @@ static int do_connect (void *obj, Tcl_Interp *interp, IrTcl_eval (p->interp, p->callback); } } - if (p->hostname) - Tcl_AppendElement (interp, p->hostname); return TCL_OK; } @@ -1561,13 +1570,14 @@ static int do_search (void *o, Tcl_Interp *interp, int argc, char **argv) Z_APDU *apdu; Odr_oct ccl_query; IrTcl_SetObj *obj = o; - IrTcl_Obj *p = obj->parent; + IrTcl_Obj *p; int r; oident bib1; if (argc <= 0) return TCL_OK; + p = obj->parent; p->set_child = o; if (argc != 3) { @@ -1747,7 +1757,10 @@ static int do_nextResultSetPosition (void *o, Tcl_Interp *interp, IrTcl_SetObj *obj = o; if (argc <= 0) + { + obj->nextResultSetPosition = 0; return TCL_OK; + } return get_set_int (&obj->nextResultSetPosition, interp, argc, argv); } @@ -2044,7 +2057,7 @@ static int do_present (void *o, Tcl_Interp *interp, int argc, char **argv) { IrTcl_SetObj *obj = o; - IrTcl_Obj *p = obj->parent; + IrTcl_Obj *p; Z_APDU *apdu; Z_PresentRequest *req; int start; @@ -2072,6 +2085,9 @@ static int do_present (void *o, Tcl_Interp *interp, interp->result = "not connected"; return TCL_ERROR; } + p = obj->parent; + p->set_child = obj; + odr_reset (p->odr_out); obj->start = start; obj->number = number; @@ -2157,6 +2173,7 @@ static int do_loadFile (void *o, Tcl_Interp *interp, IrTcl_RecordList *rl; rl = new_IR_record (setobj, no, Z_NamePlusRecord_databaseRecord); + rl->u.dbrec.type = VAL_USMARC; rl->u.dbrec.buf = buf; rl->u.dbrec.size = size; no++; @@ -2768,9 +2785,8 @@ static void ir_handleRecords (void *o, Z_Records *zrs) rl->u.dbrec.size = zr->u.octet_aligned->len; rl->u.dbrec.type = VAL_USMARC; - ident = oid_getentbyoid (oe->direct_reference); - rl->u.dbrec.type = ident->value; - + if ((ident = oid_getentbyoid (oe->direct_reference))) + rl->u.dbrec.type = ident->value; if (oe->which == ODR_EXTERNAL_octet && rl->u.dbrec.size > 0) { char *buf = (char*) zr->u.octet_aligned->buf;