mach 2003/12/10 14:40:58
Modified: . Tag: axkit-pipeline-2 AxKit.xs Log: fix for xs_get_styles_fh not actually working. Now doesn't fallback in provider to doing get_strref. Revision Changes Path No revision No revision 1.6.6.1 +13 -16 xml-axkit/AxKit.xs Index: AxKit.xs =================================================================== RCS file: /home/cvs/xml-axkit/AxKit.xs,v retrieving revision 1.6 retrieving revision 1.6.6.1 diff -u -r1.6 -r1.6.6.1 --- AxKit.xs 5 Jun 2002 23:59:19 -0000 1.6 +++ AxKit.xs 10 Dec 2003 22:40:58 -0000 1.6.6.1 @@ -373,26 +373,22 @@ ret = -1; error_str = newSVpv("", 0); - xmlInitParser(); xmlDoValidityCheckingDefaultValue = 0; xmlSubstituteEntitiesDefaultValue = 0; xmlLoadExtDtdDefaultValue = 0; - read_length = read_perl(ioref, buffer, 4); - if (read_length > 0) { - ctxt = xmlCreatePushParserCtxt(axkitSAXHandler, - NULL, buffer, read_length, "filename"); - ctxt->userData = (void*)&results; - - while(read_length = read_perl(ioref, buffer, BUFSIZE)) { - xmlParseChunk(ctxt, buffer, read_length, 0); - } - ret = xmlParseChunk(ctxt, buffer, 0, 1); - - xmlFreeParserCtxt(ctxt); - } + read_length = 0; + ctxt = xmlCreatePushParserCtxt(axkitSAXHandler, + &results, buffer, read_length, "filename"); + + while(read_length = read_perl(ioref, buffer, BUFSIZE)) { + xmlParseChunk(ctxt, buffer, read_length, 0); + } + ret = xmlParseChunk(ctxt, buffer, 0, 1); + + xmlFreeParserCtxt(ctxt); sv_2mortal(error_str); @@ -406,11 +402,12 @@ STRLEN len; croak("xmlParse returned error: %d, %s", ret, SvPV(error_str, len)); } - + return_array = newAV(); av_push(return_array, newRV_noinc((SV*)results.xml_stylesheet)); av_push(return_array, newSVpv(results.start_element, 0)); av_push(return_array, newRV_noinc((SV*)results.start_attribs)); + if (results.dtd != NULL) { av_push(return_array, newSVpv(results.dtd, 0));