X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;ds=sidebyside;f=grs.c;h=afcaa4bb6d698f9429bf3a6ae60f153317261535;hb=d60c3f162beb6a82545509f282585b6517933ae6;hp=b8e95487f414e71bb1c5b0403304cb9e08025b2f;hpb=6b30d597fbae7be341e4b48056c72a2b0b8808f1;p=ir-tcl-moved-to-github.git diff --git a/grs.c b/grs.c index b8e9548..afcaa4b 100644 --- a/grs.c +++ b/grs.c @@ -5,7 +5,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: grs.c,v $ - * Revision 1.5 1996-05-29 20:28:08 adam + * Revision 1.7 1996-06-05 09:26:20 adam + * Bug fix: the change above introduced an error. + * + * Revision 1.6 1996/06/05 08:59:23 adam + * Changed syntax of element specs in GRS-1 retrieval. + * + * Revision 1.5 1996/05/29 20:28:08 adam * Bug fix: Function ir_tcl_grs_del sometimes free'd bad memory. * * Revision 1.4 1996/05/29 06:37:42 adam @@ -174,12 +180,14 @@ static int ir_tcl_get_grs_r (Tcl_Interp *interp, IrTcl_GRS_Record *grs_record, else { const char *cp0 = argv[argno]; - const char *cp1 = strchr (cp0, '.'); + const char *cp1 = strchr (cp0, ','); if (!cp1 || cp1-cp0 < 1) yes = 1; else { + if (*cp0 == '(') + cp0++; if (atoi(cp0) == e->tagType) { if (e->tagWhich == Z_StringOrNumeric_numeric) @@ -189,7 +197,11 @@ static int ir_tcl_get_grs_r (Tcl_Interp *interp, IrTcl_GRS_Record *grs_record, } else { - if (!strcmp (cp1+1, e->tagVal.str)) + int len = strlen(cp1+1); + if (cp1[len] == ')') + len--; + if (len && strlen(e->tagVal.str) == len && + !memcmp (cp1+1, e->tagVal.str, len)) yes = 1; } }