cvs: php4(PHP_4_3) /ext/yaz php_yaz.c

From: Date: Tue, 13 May 2003 11:05:56 +0000
Subject: cvs: php4(PHP_4_3) /ext/yaz php_yaz.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-20857@lists.php.net to get a copy of this message
dickmeiss Tue May 13 07:05:56 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/yaz php_yaz.c Log: Fix problem with yaz_record in array mode, when record is unavailable. Index: php4/ext/yaz/php_yaz.c diff -u php4/ext/yaz/php_yaz.c:1.57.2.2 php4/ext/yaz/php_yaz.c:1.57.2.3 --- php4/ext/yaz/php_yaz.c:1.57.2.2 Tue Dec 31 11:35:45 2002 +++ php4/ext/yaz/php_yaz.c Tue May 13 07:05:56 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_yaz.c,v 1.57.2.2 2002/12/31 16:35:45 sebastian Exp $ */ +/* $Id: php_yaz.c,v 1.57.2.3 2003/05/13 11:05:56 dickmeiss Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -944,44 +944,46 @@ if (!strcmp (type, "array")) { Z_External *ext = (Z_External *) ZOOM_record_get (r, "ext", 0); - oident *ent = oid_getentbyoid(ext->direct_reference); - - if (ext->which == Z_External_grs1 && ent->value == VAL_GRS1) - { - retval_grs1 (return_value, ext->u.grs1); - } - else if (ext->which == Z_External_octet) + if (ext) { - char *buf = (char *) (ext->u.octet_aligned->buf); - ODR odr = odr_createmem (ODR_DECODE); - Z_GenericRecord *rec = 0; - - switch (ent->value) + oident *ent = oid_getentbyoid(ext->direct_reference); + if (ext->which == Z_External_grs1 && ent->value == VAL_GRS1) + { + retval_grs1 (return_value, ext->u.grs1); + } + else if (ext->which == Z_External_octet) { - case VAL_SOIF: - case VAL_HTML: - break; - case VAL_TEXT_XML: - case VAL_APPLICATION_XML: - /* text2grs1 (&buf, &len, t->odr_in, 0, 0); */ - break; - default: - rec = marc_to_grs1 (buf, odr); + char *buf = (char *) (ext->u.octet_aligned->buf); + ODR odr = odr_createmem (ODR_DECODE); + Z_GenericRecord *rec = 0; + + switch (ent->value) + { + case VAL_SOIF: + case VAL_HTML: + break; + case VAL_TEXT_XML: + case VAL_APPLICATION_XML: + /* text2grs1 (&buf, &len, t->odr_in, 0, 0); */ + break; + default: + rec = marc_to_grs1 (buf, odr); + } + if (rec) + retval_grs1 (return_value, rec); + odr_destroy (odr); } - if (rec) - retval_grs1 (return_value, rec); - odr_destroy (odr); } } - else + else { - int rlen; + int rlen; const char *info = ZOOM_record_get (r, type, &rlen); - return_value->value.str.len = (rlen > 0) ? rlen : 0; - return_value->value.str.val = - estrndup(info, return_value->value.str.len); - return_value->type = IS_STRING; + return_value->value.str.len = (rlen > 0) ? rlen : 0; + return_value->value.str.val = + estrndup(info, return_value->value.str.len); + return_value->type = IS_STRING; } } }

« previous php.cvs (#20857) next »