mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Fixes in MARC decoder (base adress, DANmarc case).
This commit is contained in:
parent
22aee18f0b
commit
f8d533d79d
@ -100,7 +100,7 @@ struct Yaz_AssociationInfo {
|
||||
char *addinfo;
|
||||
Yaz_ResultSet resultSets;
|
||||
int persistent;
|
||||
int in_use;
|
||||
int in_use;
|
||||
int order;
|
||||
int state;
|
||||
int mask_select;
|
||||
@ -773,8 +773,8 @@ static int send_search (Yaz_Association t)
|
||||
Z_SearchRequest *sreq = apdu->u.searchRequest;
|
||||
|
||||
/* resultSetPrepare (req, t, req->cur_pa); */
|
||||
if (t->resultSetStartPoint == 1 && t->piggyback &&
|
||||
t->numberOfRecordsRequested &&
|
||||
if (t->resultSetStartPoint == 1 && t->piggyback &&
|
||||
t->numberOfRecordsRequested &&
|
||||
(t->sort_criteria == 0 || *t->sort_criteria == 0) )
|
||||
{
|
||||
sreq->largeSetLowerBound = odr_malloc (t->odr_out, sizeof(int));
|
||||
@ -820,9 +820,9 @@ static int send_present (Yaz_Association t)
|
||||
Z_PresentRequest *req = apdu->u.presentRequest;
|
||||
int i = 0;
|
||||
|
||||
if (t->error) /* don't continue on error */
|
||||
if (t->error) /* don't continue on error */
|
||||
return 0;
|
||||
if (!t->resultSets) /* no result set yet? */
|
||||
if (!t->resultSets) /* no result set yet? */
|
||||
return 0;
|
||||
while (t->resultSets->recordList)
|
||||
{
|
||||
@ -881,52 +881,52 @@ static int send_present (Yaz_Association t)
|
||||
|
||||
static int *odr_intdup(ODR o, int v)
|
||||
{
|
||||
int *dst = (int*) odr_malloc (o, sizeof(int));
|
||||
*dst = v;
|
||||
return dst;
|
||||
int *dst = (int*) odr_malloc (o, sizeof(int));
|
||||
*dst = v;
|
||||
return dst;
|
||||
}
|
||||
|
||||
static Z_SortKeySpecList *yaz_sort_spec (ODR out, const char *arg)
|
||||
{
|
||||
int oid[OID_SIZE];
|
||||
oident bib1;
|
||||
char sort_string_buf[32], sort_flags[32];
|
||||
Z_SortKeySpecList *sksl = (Z_SortKeySpecList *)
|
||||
odr_malloc (out, sizeof(*sksl));
|
||||
int off;
|
||||
|
||||
sksl->num_specs = 0;
|
||||
sksl->specs = (Z_SortKeySpec **)odr_malloc (out, sizeof(sksl->specs) * 20);
|
||||
|
||||
bib1.proto = PROTO_Z3950;
|
||||
bib1.oclass = CLASS_ATTSET;
|
||||
bib1.value = VAL_BIB1;
|
||||
while ((sscanf (arg, "%31s %31s%n", sort_string_buf,
|
||||
sort_flags, &off)) == 2 && off > 1)
|
||||
{
|
||||
int i;
|
||||
int oid[OID_SIZE];
|
||||
oident bib1;
|
||||
char sort_string_buf[32], sort_flags[32];
|
||||
Z_SortKeySpecList *sksl = (Z_SortKeySpecList *)
|
||||
odr_malloc (out, sizeof(*sksl));
|
||||
int off;
|
||||
|
||||
sksl->num_specs = 0;
|
||||
sksl->specs = (Z_SortKeySpec **)odr_malloc (out, sizeof(sksl->specs) * 20);
|
||||
|
||||
bib1.proto = PROTO_Z3950;
|
||||
bib1.oclass = CLASS_ATTSET;
|
||||
bib1.value = VAL_BIB1;
|
||||
while ((sscanf (arg, "%31s %31s%n", sort_string_buf,
|
||||
sort_flags, &off)) == 2 && off > 1)
|
||||
{
|
||||
int i;
|
||||
char *sort_string_sep;
|
||||
char *sort_string = sort_string_buf;
|
||||
Z_SortKeySpec *sks = (Z_SortKeySpec *)odr_malloc (out, sizeof(*sks));
|
||||
Z_SortKey *sk = (Z_SortKey *)odr_malloc (out, sizeof(*sk));
|
||||
Z_SortKeySpec *sks = (Z_SortKeySpec *)odr_malloc (out, sizeof(*sks));
|
||||
Z_SortKey *sk = (Z_SortKey *)odr_malloc (out, sizeof(*sk));
|
||||
|
||||
arg += off;
|
||||
sksl->specs[sksl->num_specs++] = sks;
|
||||
sks->sortElement = (Z_SortElement *)
|
||||
odr_malloc (out, sizeof(*sks->sortElement));
|
||||
sks->sortElement->which = Z_SortElement_generic;
|
||||
sks->sortElement->u.generic = sk;
|
||||
|
||||
if ((sort_string_sep = strchr (sort_string, '=')))
|
||||
{
|
||||
arg += off;
|
||||
sksl->specs[sksl->num_specs++] = sks;
|
||||
sks->sortElement = (Z_SortElement *)
|
||||
odr_malloc (out, sizeof(*sks->sortElement));
|
||||
sks->sortElement->which = Z_SortElement_generic;
|
||||
sks->sortElement->u.generic = sk;
|
||||
|
||||
if ((sort_string_sep = strchr (sort_string, '=')))
|
||||
{
|
||||
int i = 0;
|
||||
sk->which = Z_SortKey_sortAttributes;
|
||||
sk->u.sortAttributes = (Z_SortAttributes *)
|
||||
sk->u.sortAttributes = (Z_SortAttributes *)
|
||||
odr_malloc (out, sizeof(*sk->u.sortAttributes));
|
||||
sk->u.sortAttributes->id = oid_ent_to_oid(&bib1, oid);
|
||||
sk->u.sortAttributes->list = (Z_AttributeList *)
|
||||
sk->u.sortAttributes->id = oid_ent_to_oid(&bib1, oid);
|
||||
sk->u.sortAttributes->list = (Z_AttributeList *)
|
||||
odr_malloc (out, sizeof(*sk->u.sortAttributes->list));
|
||||
sk->u.sortAttributes->list->attributes = (Z_AttributeElement **)
|
||||
sk->u.sortAttributes->list->attributes = (Z_AttributeElement **)
|
||||
odr_malloc (out, 10 *
|
||||
sizeof(*sk->u.sortAttributes->list->attributes));
|
||||
while (i < 10 && sort_string && sort_string_sep)
|
||||
@ -947,47 +947,47 @@ static Z_SortKeySpecList *yaz_sort_spec (ODR out, const char *arg)
|
||||
sort_string_sep = strchr (sort_string, '=');
|
||||
}
|
||||
}
|
||||
sk->u.sortAttributes->list->num_attributes = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
sk->which = Z_SortKey_sortField;
|
||||
sk->u.sortField = odr_strdup (out, sort_string);
|
||||
}
|
||||
sks->sortRelation = odr_intdup (out, Z_SortRelation_ascending);
|
||||
sks->caseSensitivity = odr_intdup (out, Z_SortCase_caseSensitive);
|
||||
sk->u.sortAttributes->list->num_attributes = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
sk->which = Z_SortKey_sortField;
|
||||
sk->u.sortField = odr_strdup (out, sort_string);
|
||||
}
|
||||
sks->sortRelation = odr_intdup (out, Z_SortRelation_ascending);
|
||||
sks->caseSensitivity = odr_intdup (out, Z_SortCase_caseSensitive);
|
||||
|
||||
sks->which = Z_SortKeySpec_null;
|
||||
sks->u.null = odr_nullval ();
|
||||
sks->which = Z_SortKeySpec_null;
|
||||
sks->u.null = odr_nullval ();
|
||||
|
||||
for (i = 0; sort_flags[i]; i++)
|
||||
{
|
||||
switch (sort_flags[i])
|
||||
{
|
||||
case 'd':
|
||||
case 'D':
|
||||
case '>':
|
||||
*sks->sortRelation = Z_SortRelation_descending;
|
||||
break;
|
||||
case 'a':
|
||||
case 'A':
|
||||
case '<':
|
||||
*sks->sortRelation = Z_SortRelation_ascending;
|
||||
break;
|
||||
case 'i':
|
||||
case 'I':
|
||||
*sks->caseSensitivity = Z_SortCase_caseInsensitive;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
*sks->caseSensitivity = Z_SortCase_caseSensitive;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!sksl->num_specs)
|
||||
for (i = 0; sort_flags[i]; i++)
|
||||
{
|
||||
switch (sort_flags[i])
|
||||
{
|
||||
case 'd':
|
||||
case 'D':
|
||||
case '>':
|
||||
*sks->sortRelation = Z_SortRelation_descending;
|
||||
break;
|
||||
case 'a':
|
||||
case 'A':
|
||||
case '<':
|
||||
*sks->sortRelation = Z_SortRelation_ascending;
|
||||
break;
|
||||
case 'i':
|
||||
case 'I':
|
||||
*sks->caseSensitivity = Z_SortCase_caseInsensitive;
|
||||
break;
|
||||
case 'S':
|
||||
case 's':
|
||||
*sks->caseSensitivity = Z_SortCase_caseSensitive;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!sksl->num_specs)
|
||||
return 0;
|
||||
return sksl;
|
||||
return sksl;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1290,9 +1290,9 @@ PHP_FUNCTION(yaz_connect)
|
||||
#ifdef ZTS
|
||||
tsrm_mutex_unlock (yaz_mutex);
|
||||
#endif
|
||||
RETURN_LONG(0); /* no free slot */
|
||||
RETURN_LONG(0); /* no free slot */
|
||||
}
|
||||
else /* "best" free slot */
|
||||
else /* "best" free slot */
|
||||
yaz_association_destroy(shared_associations[i]);
|
||||
}
|
||||
shared_associations[i] = as = yaz_association_mk ();
|
||||
@ -1615,52 +1615,52 @@ PHP_FUNCTION(yaz_hits)
|
||||
|
||||
static Z_GenericRecord *marc_to_grs1(const char *buf, ODR o, Odr_oid *oid)
|
||||
{
|
||||
int entry_p;
|
||||
int record_length;
|
||||
int indicator_length;
|
||||
int identifier_length;
|
||||
int base_address;
|
||||
int length_data_entry;
|
||||
int length_starting;
|
||||
int length_implementation;
|
||||
int max_elements = 256;
|
||||
Z_GenericRecord *r = odr_malloc (o, sizeof(*r));
|
||||
r->elements = odr_malloc (o, sizeof(*r->elements) * max_elements);
|
||||
r->num_elements = 0;
|
||||
int entry_p;
|
||||
int record_length;
|
||||
int indicator_length;
|
||||
int identifier_length;
|
||||
int base_address;
|
||||
int length_data_entry;
|
||||
int length_starting;
|
||||
int length_implementation;
|
||||
int max_elements = 256;
|
||||
Z_GenericRecord *r = odr_malloc (o, sizeof(*r));
|
||||
r->elements = odr_malloc (o, sizeof(*r->elements) * max_elements);
|
||||
r->num_elements = 0;
|
||||
|
||||
record_length = atoi_n (buf, 5);
|
||||
if (record_length < 25)
|
||||
return 0;
|
||||
indicator_length = atoi_n (buf+10, 1);
|
||||
identifier_length = atoi_n (buf+11, 1);
|
||||
base_address = atoi_n (buf+12, 4);
|
||||
record_length = atoi_n (buf, 5);
|
||||
if (record_length < 25)
|
||||
return 0;
|
||||
indicator_length = atoi_n (buf+10, 1);
|
||||
identifier_length = atoi_n (buf+11, 1);
|
||||
base_address = atoi_n (buf+12, 5);
|
||||
|
||||
length_data_entry = atoi_n (buf+20, 1);
|
||||
length_starting = atoi_n (buf+21, 1);
|
||||
length_implementation = atoi_n (buf+22, 1);
|
||||
length_data_entry = atoi_n (buf+20, 1);
|
||||
length_starting = atoi_n (buf+21, 1);
|
||||
length_implementation = atoi_n (buf+22, 1);
|
||||
|
||||
for (entry_p = 24; buf[entry_p] != ISO2709_FS; )
|
||||
{
|
||||
entry_p += 3+length_data_entry+length_starting;
|
||||
if (entry_p >= record_length)
|
||||
return 0;
|
||||
}
|
||||
base_address = entry_p+1;
|
||||
for (entry_p = 24; buf[entry_p] != ISO2709_FS; )
|
||||
{
|
||||
for (entry_p = 24; buf[entry_p] != ISO2709_FS; )
|
||||
{
|
||||
entry_p += 3+length_data_entry+length_starting;
|
||||
if (entry_p >= record_length)
|
||||
return 0;
|
||||
}
|
||||
base_address = entry_p+1;
|
||||
for (entry_p = 24; buf[entry_p] != ISO2709_FS; )
|
||||
{
|
||||
Z_TaggedElement *tag;
|
||||
int data_length;
|
||||
int data_length;
|
||||
int data_offset;
|
||||
int end_offset;
|
||||
int i;
|
||||
char tag_str[4];
|
||||
int identifier_flag = 1;
|
||||
|
||||
memcpy (tag_str, buf+entry_p, 3);
|
||||
memcpy (tag_str, buf+entry_p, 3);
|
||||
entry_p += 3;
|
||||
tag_str[3] = '\0';
|
||||
tag_str[3] = '\0';
|
||||
|
||||
if ((r->num_elements + 1) >= max_elements)
|
||||
if ((r->num_elements + 1) >= max_elements)
|
||||
{
|
||||
Z_TaggedElement **tmp = r->elements;
|
||||
|
||||
@ -1708,7 +1708,7 @@ static Z_GenericRecord *marc_to_grs1(const char *buf, ODR o, Odr_oid *oid)
|
||||
end_offset = i+data_length-1;
|
||||
|
||||
|
||||
if (indicator_length == 2)
|
||||
if (indicator_length > 0 && indicator_length < 5)
|
||||
{
|
||||
if (buf[i + indicator_length] != ISO2709_IDFS)
|
||||
identifier_flag = 0;
|
||||
@ -2090,28 +2090,28 @@ static const char *ill_array_lookup (void *clientData, const char *idx)
|
||||
|
||||
static Z_External *encode_ill_request (Yaz_Association t, HashTable *ht)
|
||||
{
|
||||
ODR out = t->odr_out;
|
||||
ILL_Request *req;
|
||||
Z_External *r = 0;
|
||||
struct ill_get_ctl ctl;
|
||||
ODR out = t->odr_out;
|
||||
ILL_Request *req;
|
||||
Z_External *r = 0;
|
||||
struct ill_get_ctl ctl;
|
||||
|
||||
ctl.odr = t->odr_out;
|
||||
ctl.clientData = ht;
|
||||
ctl.f = ill_array_lookup;
|
||||
ctl.odr = t->odr_out;
|
||||
ctl.clientData = ht;
|
||||
ctl.f = ill_array_lookup;
|
||||
|
||||
req = ill_get_ILLRequest(&ctl, "ill", 0);
|
||||
req = ill_get_ILLRequest(&ctl, "ill", 0);
|
||||
|
||||
if (!ill_Request (out, &req, 0, 0))
|
||||
{
|
||||
if (!ill_Request (out, &req, 0, 0))
|
||||
{
|
||||
int ill_request_size;
|
||||
char *ill_request_buf = odr_getbuf (out, &ill_request_size, 0);
|
||||
if (ill_request_buf)
|
||||
odr_setbuf (out, ill_request_buf, ill_request_size, 1);
|
||||
php_error(E_WARNING, "yaz_itemorder: Expected array parameter");
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
oident oid;
|
||||
int illRequest_size = 0;
|
||||
char *illRequest_buf = odr_getbuf (out, &illRequest_size, 0);
|
||||
@ -2132,96 +2132,96 @@ static Z_External *encode_ill_request (Yaz_Association t, HashTable *ht)
|
||||
r->u.single_ASN1_type->len = illRequest_size;
|
||||
r->u.single_ASN1_type->size = illRequest_size;
|
||||
memcpy (r->u.single_ASN1_type->buf, illRequest_buf, illRequest_size);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
static Z_ItemOrder *encode_item_order(Yaz_Association t,
|
||||
HashTable *ht)
|
||||
{
|
||||
Z_ItemOrder *req = odr_malloc (t->odr_out, sizeof(*req));
|
||||
const char *str;
|
||||
Z_ItemOrder *req = odr_malloc (t->odr_out, sizeof(*req));
|
||||
const char *str;
|
||||
|
||||
#ifdef ASN_COMPILED
|
||||
req->which=Z_IOItemOrder_esRequest;
|
||||
req->which=Z_IOItemOrder_esRequest;
|
||||
#else
|
||||
req->which=Z_ItemOrder_esRequest;
|
||||
req->which=Z_ItemOrder_esRequest;
|
||||
#endif
|
||||
req->u.esRequest = (Z_IORequest *)
|
||||
req->u.esRequest = (Z_IORequest *)
|
||||
odr_malloc(t->odr_out,sizeof(Z_IORequest));
|
||||
|
||||
/* to keep part ... */
|
||||
req->u.esRequest->toKeep = (Z_IOOriginPartToKeep *)
|
||||
/* to keep part ... */
|
||||
req->u.esRequest->toKeep = (Z_IOOriginPartToKeep *)
|
||||
odr_malloc(t->odr_out,sizeof(Z_IOOriginPartToKeep));
|
||||
req->u.esRequest->toKeep->supplDescription = 0;
|
||||
req->u.esRequest->toKeep->contact =
|
||||
req->u.esRequest->toKeep->supplDescription = 0;
|
||||
req->u.esRequest->toKeep->contact =
|
||||
odr_malloc (t->odr_out, sizeof(*req->u.esRequest->toKeep->contact));
|
||||
|
||||
str = array_lookup_string (ht, "contact-name");
|
||||
req->u.esRequest->toKeep->contact->name = str ?
|
||||
str = array_lookup_string (ht, "contact-name");
|
||||
req->u.esRequest->toKeep->contact->name = str ?
|
||||
nmem_strdup (t->odr_out->mem, str) : 0;
|
||||
|
||||
str = array_lookup_string (ht, "contact-phone");
|
||||
req->u.esRequest->toKeep->contact->phone = str ?
|
||||
str = array_lookup_string (ht, "contact-phone");
|
||||
req->u.esRequest->toKeep->contact->phone = str ?
|
||||
nmem_strdup (t->odr_out->mem, str) : 0;
|
||||
|
||||
str = array_lookup_string (ht, "contact-email");
|
||||
req->u.esRequest->toKeep->contact->email = str ?
|
||||
str = array_lookup_string (ht, "contact-email");
|
||||
req->u.esRequest->toKeep->contact->email = str ?
|
||||
nmem_strdup (t->odr_out->mem, str) : 0;
|
||||
|
||||
req->u.esRequest->toKeep->addlBilling = 0;
|
||||
req->u.esRequest->toKeep->addlBilling = 0;
|
||||
|
||||
/* not to keep part ... */
|
||||
req->u.esRequest->notToKeep = (Z_IOOriginPartNotToKeep *)
|
||||
/* not to keep part ... */
|
||||
req->u.esRequest->notToKeep = (Z_IOOriginPartNotToKeep *)
|
||||
odr_malloc(t->odr_out,sizeof(Z_IOOriginPartNotToKeep));
|
||||
|
||||
req->u.esRequest->notToKeep->resultSetItem = (Z_IOResultSetItem *)
|
||||
req->u.esRequest->notToKeep->resultSetItem = (Z_IOResultSetItem *)
|
||||
odr_malloc(t->odr_out, sizeof(Z_IOResultSetItem));
|
||||
req->u.esRequest->notToKeep->resultSetItem->resultSetId = "default";
|
||||
req->u.esRequest->notToKeep->resultSetItem->item =
|
||||
req->u.esRequest->notToKeep->resultSetItem->resultSetId = "default";
|
||||
req->u.esRequest->notToKeep->resultSetItem->item =
|
||||
(int *) odr_malloc(t->odr_out, sizeof(int));
|
||||
|
||||
str = array_lookup_string (ht, "itemorder-item");
|
||||
str = array_lookup_string (ht, "itemorder-item");
|
||||
*req->u.esRequest->notToKeep->resultSetItem->item =
|
||||
(str ? atoi(str) : 1);
|
||||
|
||||
req->u.esRequest->notToKeep->itemRequest =
|
||||
req->u.esRequest->notToKeep->itemRequest =
|
||||
encode_ill_request(t, ht);
|
||||
|
||||
return req;
|
||||
|
||||
return req;
|
||||
}
|
||||
|
||||
static Z_APDU *encode_es_itemorder (Yaz_Association t, HashTable *ht)
|
||||
{
|
||||
Z_APDU *apdu = zget_APDU(t->odr_out, Z_APDU_extendedServicesRequest);
|
||||
Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest;
|
||||
const char *str;
|
||||
struct oident oident;
|
||||
int oid[OID_SIZE];
|
||||
Z_APDU *apdu = zget_APDU(t->odr_out, Z_APDU_extendedServicesRequest);
|
||||
Z_ExtendedServicesRequest *req = apdu->u.extendedServicesRequest;
|
||||
const char *str;
|
||||
struct oident oident;
|
||||
int oid[OID_SIZE];
|
||||
Z_External *r = odr_malloc (t->odr_out, sizeof(*r));
|
||||
|
||||
*req->function = Z_ExtendedServicesRequest_create;
|
||||
oident.proto = PROTO_Z3950;
|
||||
oident.oclass = CLASS_EXTSERV;
|
||||
oident.proto = PROTO_Z3950;
|
||||
oident.oclass = CLASS_EXTSERV;
|
||||
oident.value = VAL_ITEMORDER;
|
||||
req->taskSpecificParameters = r;
|
||||
r->direct_reference =
|
||||
odr_oiddup(t->odr_out, oid_ent_to_oid(&oident, oid));
|
||||
odr_oiddup(t->odr_out, oid_ent_to_oid(&oident, oid));
|
||||
r->indirect_reference = 0;
|
||||
r->descriptor = 0;
|
||||
r->which = Z_External_itemOrder;
|
||||
r->u.itemOrder = encode_item_order (t, ht);
|
||||
req->packageType = odr_oiddup(t->odr_out, oid_ent_to_oid(&oident, oid));
|
||||
req->packageType = odr_oiddup(t->odr_out, oid_ent_to_oid(&oident, oid));
|
||||
|
||||
str = array_lookup_string(ht, "package-name");
|
||||
if (str && *str)
|
||||
req->packageName = nmem_strdup (t->odr_out->mem, str);
|
||||
str = array_lookup_string(ht, "package-name");
|
||||
if (str && *str)
|
||||
req->packageName = nmem_strdup (t->odr_out->mem, str);
|
||||
|
||||
str = array_lookup_string(ht, "user-id");
|
||||
if (str)
|
||||
str = array_lookup_string(ht, "user-id");
|
||||
if (str)
|
||||
req->userId = nmem_strdup (t->odr_out->mem, str);
|
||||
|
||||
return apdu;
|
||||
return apdu;
|
||||
}
|
||||
|
||||
|
||||
@ -2271,8 +2271,8 @@ PHP_FUNCTION(yaz_itemorder)
|
||||
static Z_APDU *encode_scan (Yaz_Association t, const char *type,
|
||||
const char *query, HashTable *ht)
|
||||
{
|
||||
Z_APDU *apdu = zget_APDU(t->odr_out, Z_APDU_scanRequest);
|
||||
Z_ScanRequest *req = apdu->u.scanRequest;
|
||||
Z_APDU *apdu = zget_APDU(t->odr_out, Z_APDU_scanRequest);
|
||||
Z_ScanRequest *req = apdu->u.scanRequest;
|
||||
const char *val;
|
||||
if (!strcmp(type, "rpn"))
|
||||
{
|
||||
@ -2321,7 +2321,7 @@ PHP_FUNCTION(yaz_scan)
|
||||
HashTable *flags_ht = 0;
|
||||
Yaz_Association p;
|
||||
if (ZEND_NUM_ARGS() == 3)
|
||||
{
|
||||
{
|
||||
if (zend_get_parameters_ex(3, &pval_id, &pval_type, &pval_query) ==
|
||||
FAILURE)
|
||||
{
|
||||
@ -2424,7 +2424,7 @@ PHP_FUNCTION(yaz_scan_result)
|
||||
pval **pval_id, **pval_opt = 0;
|
||||
Yaz_Association p;
|
||||
if (ZEND_NUM_ARGS() == 2)
|
||||
{
|
||||
{
|
||||
if (zend_get_parameters_ex(2, &pval_id, &pval_opt) == FAILURE)
|
||||
{
|
||||
WRONG_PARAM_COUNT;
|
||||
|
Loading…
Reference in New Issue
Block a user