* Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: zoom-c.c,v 1.65 2006-03-13 10:48:14 adam Exp $
+ * $Id: zoom-c.c,v 1.70 2006-04-21 10:28:07 adam Exp $
*/
/**
* \file zoom-c.c
assert (0);
}
xfree (task);
+
+ if (!c->tasks)
+ {
+ ZOOM_Event event = ZOOM_Event_create(ZOOM_EVENT_END);
+ ZOOM_connection_put_event(c, event);
+ }
}
}
if (!r)
return ;
- yaz_log(log_api, "%p ZOOM_resultset_records r=%p start=%d count=%d",
- r, r, start, count);
+ yaz_log(log_api, "%p ZOOM_resultset_records r=%p start=%ld count=%ld",
+ r, r, (long) start, (long) count);
if (count && recs)
force_present = 1;
ZOOM_resultset_retrieve (r, force_present, start, count);
ZOOM_options_get(c->options, "implementationName"),
odr_prepend(c->odr_out, "ZOOM-C", ireq->implementationName));
- version = odr_strdup(c->odr_out, "$Revision: 1.65 $");
+ version = odr_strdup(c->odr_out, "$Revision: 1.70 $");
if (strlen(version) > 10) /* check for unexpanded CVS strings */
version[strlen(version)-2] = '\0';
ireq->implementationVersion = odr_prepend(c->odr_out,
if ((oi_unit = yaz_oi_update(oi, c->odr_out, NULL, 0, 0)))
{
- char **charsets_addresses = 0;
- char **langs_addresses = 0;
- int charsets_count = 0;
- int langs_count = 0;
-
- if (c->charset)
- nmem_strsplit_blank(c->odr_out->mem, c->charset,
- &charsets_addresses, &charsets_count);
- if (c->lang)
- nmem_strsplit_blank(c->odr_out->mem, c->lang,
- &langs_addresses, &langs_count);
ODR_MASK_SET(ireq->options, Z_Options_negotiationModel);
oi_unit->which = Z_OtherInfo_externallyDefinedInfo;
oi_unit->information.externallyDefinedInfo =
- yaz_set_proposal_charneg(c->odr_out,
- (const char **) charsets_addresses,
- charsets_count,
- (const char **) langs_addresses,
- langs_count,
- 1);
+ yaz_set_proposal_charneg_list(c->odr_out, " ",
+ c->charset, c->lang, 1);
}
}
assert (apdu);
}
return 0;
}
- else if (!strcmp (type, "xml") || !strcmp(type, "oai"))
+ else if (!strcmp (type, "xml"))
{
Z_External *r = (Z_External *) npr->u.databaseRecord;
oident *ent = oid_getentbyoid(r->direct_reference);
const char *ret_buf;
int marc_decode_type = YAZ_MARC_MARCXML;
- if (!strcmp(type, "oai"))
- marc_decode_type = YAZ_MARC_OAIMARC;
switch (ent->value)
{
case VAL_SOIF:
*req->resultSetStartPoint = resultset->start + 1;
*req->numberOfRecordsRequested = resultset->step>0 ?
resultset->step : resultset->count;
+ if (*req->numberOfRecordsRequested + resultset->start > resultset->size)
+ *req->numberOfRecordsRequested = resultset->size - resultset->start;
assert (*req->numberOfRecordsRequested > 0);
-
if (syntax && *syntax)
req->preferredRecordSyntax =
yaz_str_to_z3950oid (c->odr_out, CLASS_RECSYN, syntax);