X-Git-Url: http://git.indexdata.com/?p=phpyaz-moved-to-github.git;a=blobdiff_plain;f=php_yaz.c;h=3dfdd5d799a6ba68788501c1d84713f38b0e12d4;hp=d55930bd287e620139c6d063ffd2a956584584f8;hb=ec1920117fc9a3310b64322881906dda20e66d1d;hpb=06640689c8cea4447b3a58928e4ecfc36ce346fb diff --git a/php_yaz.c b/php_yaz.c index d55930b..3dfdd5d 100644 --- a/php_yaz.c +++ b/php_yaz.c @@ -1337,18 +1337,23 @@ PHP_FUNCTION(yaz_record) if (p && p->zoom_set) { ZOOM_record r; - char type_args[4][60]; /* 0; 1=2,3 (1 is assumed charset) */ - type_args[0][0] = 0; - type_args[1][0] = 0; - type_args[2][0] = 0; - type_args[3][0] = 0; - sscanf(type, "%59[^;];%59[^=]=%59[^,],%59[^,]", type_args[0], - type_args[1], type_args[2], type_args[3]); r = ZOOM_resultset_record(p->zoom_set, pos-1); - if (!strcmp(type_args[0], "string")) { - type = "render"; - } if (r) { + char *type_tmp = 0; + char type_args[4][60]; /* 0; 1=2,3 (1 is assumed charset) */ + type_args[0][0] = 0; + type_args[1][0] = 0; + type_args[2][0] = 0; + type_args[3][0] = 0; + sscanf(type, "%59[^;];%59[^=]=%59[^,],%59[^,]", type_args[0], + type_args[1], type_args[2], type_args[3]); + + if (!strcmp(type_args[0], "string")) { + type_tmp = xstrdup(type); + strcpy(type_tmp, "render"); + strcat(type_tmp, type + 6); + type = type_tmp; + } if (!strcmp(type_args[0], "array") || !strcmp(type_args[0], "array1")) { @@ -1373,6 +1378,7 @@ PHP_FUNCTION(yaz_record) "to return record with type given", type); } } + xfree(type_tmp); } } release_assoc(p);