X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=ir-tcl.c;h=07844611cb346ede177dca949a31cff6db59cd7a;hb=e1cd6b9b368f10e79a2fe36b2f0c6d671e892729;hp=591914d76fa6118e981b1f8ccdb962e23af1060b;hpb=1dacbb936d32d0fc313535d511f7ccdefa0078dc;p=ir-tcl-moved-to-github.git diff --git a/ir-tcl.c b/ir-tcl.c index 591914d..0784461 100644 --- a/ir-tcl.c +++ b/ir-tcl.c @@ -5,7 +5,19 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: ir-tcl.c,v $ - * Revision 1.106 1998-05-20 12:25:35 adam + * Revision 1.110 1998-10-20 15:15:31 adam + * Changed scan response handler. + * + * Revision 1.109 1998/10/13 21:23:26 adam + * Fixed searchStatus method. + * + * Revision 1.108 1998/10/12 11:48:08 adam + * Removed printf call. + * + * 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. * @@ -657,13 +669,14 @@ int ir_tcl_named_bits (struct ir_named_entry *tab, Odr_bitmask *ob, 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); @@ -3334,7 +3347,6 @@ static int do_scanLine (void *obj, Tcl_Interp *interp, int argc, char **argv) " position\"", NULL); return TCL_ERROR; } - printf ("argv[2]=%s\n", argv[2]); if (Tcl_GetInt (interp, argv[2], &i) == TCL_ERROR) return TCL_ERROR; if (!p->entries_flag || !p->entries || i >= p->num_entries || i < 0) @@ -3489,6 +3501,18 @@ static int ir_log_proc (ClientData clientData, Tcl_Interp *interp, } +/* + * 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) { @@ -3753,11 +3777,13 @@ static void ir_searchResponse (void *o, Z_SearchResponse *searchrs, logf (LOG_DEBUG, "Search response, no object!"); return; } - setobj->searchStatus = searchrs->searchStatus ? 1 : 0; + setobj->searchStatus = *searchrs->searchStatus; get_referenceId (&setobj->set_inher.referenceId, searchrs->referenceId); setobj->resultCount = *searchrs->resultCount; if (searchrs->presentStatus) setobj->presentStatus = *searchrs->presentStatus; + else + setobj->presentStatus = Z_RES_NONE; if (searchrs->nextResultSetPosition) setobj->nextResultSetPosition = *searchrs->nextResultSetPosition; @@ -3846,7 +3872,6 @@ static void ir_scanResponse (void *o, Z_ScanResponse *scanrs, Z_Entry **ze; scanobj->entries_flag = 1; -#ifdef ASN_COMPILED if (scanrs->entries) { scanobj->num_entries = scanrs->entries->num_entries; @@ -3854,15 +3879,6 @@ static void ir_scanResponse (void *o, Z_ScanResponse *scanrs, sizeof(*scanobj->entries)); ze = scanrs->entries->entries; } -#else - if (scanrs->entries->which == Z_ListEntries_entries) - { - scanobj->num_entries = scanrs->entries->u.entries->num_entries; - scanobj->entries = ir_tcl_malloc (scanobj->num_entries * - sizeof(*scanobj->entries)); - ze = scanrs->entries->u.entries->entries; - } -#endif for (i=0; inum_entries; i++, ze++) { scanobj->entries[i].which = (*ze)->which; @@ -3894,21 +3910,11 @@ static void ir_scanResponse (void *o, Z_ScanResponse *scanrs, break; } } -#ifdef ASN_COMPILED if (scanrs->entries->nonsurrogateDiagnostics) ir_handleDiags (&scanobj->nonSurrogateDiagnosticList, &scanobj->nonSurrogateDiagnosticNum, scanrs->entries->nonsurrogateDiagnostics, scanrs->entries->num_nonsurrogateDiagnostics); -#else - if (scanrs->entries->which == Z_ListEntries_nonSurrogateDiagnostics) - ir_handleDiags (&scanobj->nonSurrogateDiagnosticList, - &scanobj->nonSurrogateDiagnosticNum, - scanrs->entries->u.nonSurrogateDiagnostics-> - diagRecs, - scanrs->entries->u.nonSurrogateDiagnostics-> - num_diagRecs); -#endif } } @@ -4203,6 +4209,8 @@ EXPORT (int,Irtcl_Init) (Tcl_Interp *interp) (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; }