X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fzoom-sru.c;h=765777323469a950655ff2ee81c06288d4cdb622;hp=0185e68b23e6fb400e826882b8296eae00ce8b3f;hb=7c4f2139acd38e5ce81cbcda225a499566d44df2;hpb=291534d6ba703c3ca522d9324ddfe01eb3330f8d diff --git a/src/zoom-sru.c b/src/zoom-sru.c index 0185e68..7657773 100644 --- a/src/zoom-sru.c +++ b/src/zoom-sru.c @@ -254,6 +254,7 @@ static zoom_ret handle_srw_response(ZOOM_connection c, Z_SRW_searchRetrieveResponse *res) { ZOOM_resultset resultset = 0; + int *start, *count; int i; NMEM nmem; ZOOM_Event event; @@ -266,6 +267,8 @@ static zoom_ret handle_srw_response(ZOOM_connection c, return zoom_complete; resultset = c->tasks->u.search.resultset; + start = &c->tasks->u.search.start; + count = &c->tasks->u.search.count; syntax = c->tasks->u.search.syntax; elementSetName = c->tasks->u.search.elementSetName; schema = c->tasks->u.search.schema; @@ -374,6 +377,10 @@ static zoom_ret handle_srw_response(ZOOM_connection c, schema, diag); } } + *count -= i; + if (*count < 0) + *count = 0; + *start += i; nmem = odr_extract_mem(c->odr_in); nmem_transfer(odr_getmem(resultset->odr), nmem); nmem_destroy(nmem);