cvs: php4(PHP_4_3) /ext/yaz php_yaz.c
| From: | Adam Dickmeiss | 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;
}
}
}