/*
- * $Id: zoom-c.c,v 1.4 2002-10-04 11:23:50 adam Exp $
+ * $Id: zoom-c.c,v 1.7 2002-11-15 10:38:37 adam Exp $
*
* ZOOM layer for C, connections, result sets, queries.
*/
}
else if (!strcmp (type, "syntax"))
{
+ const char *desc = 0;
if (npr->which == Z_NamePlusRecord_databaseRecord)
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
oident *ent = oid_getentbyoid(r->direct_reference);
if (ent)
- {
- if (len)
- *len = strlen(ent->desc);
- return ent->desc;
- }
+ desc = ent->desc;
}
- return "none";
+ if (!desc)
+ desc = "none";
+ if (len)
+ *len = strlen(desc);
+ return desc;
}
else if (!strcmp (type, "render") &&
npr->which == Z_NamePlusRecord_databaseRecord)
}
else if (r->which == Z_External_grs1)
{
- if (len) *len = 5;
- return "GRS-1";
+ if (!rec->wrbuf_marc)
+ rec->wrbuf_marc = wrbuf_alloc();
+ wrbuf_rewind (rec->wrbuf_marc);
+ yaz_display_grs1(rec->wrbuf_marc, r->u.grs1, 0);
+ if (len)
+ *len = wrbuf_len(rec->wrbuf_marc);
+ return wrbuf_buf(rec->wrbuf_marc);
}
return 0;
}
}
else
{
- // c->reconnect_ok = 0;
c->mask = ZOOM_SELECT_READ|ZOOM_SELECT_EXCEPT;
yaz_log (LOG_DEBUG, "do_write_ex 2 mask=%d", c->mask);
}