Reed Russell - rreed <[EMAIL PROTECTED]> writes:

> The sv_catpvn_utf8_upgrade macro used in hparser.c in versions 3.40 and 3.41
> of HTML::Parser doesn't seem to exist in Perl 5.8.0.  Can the macro be
> replaced, so that the module is compatible with this version of Perl?

Sure.  Applied.  I've simpified your patch to be:

Index: hparser.c
===================================================================
RCS file: /cvsroot/libwww-perl/html-parser/hparser.c,v
retrieving revision 2.117
diff -u -p -r2.117 hparser.c
--- hparser.c   2 Dec 2004 11:14:59 -0000       2.117
+++ hparser.c   2 Dec 2004 11:50:59 -0000
@@ -300,8 +300,10 @@ report_event(PSTATE* p_state,
            sv_catpvn(p_state->pend_text, beg, end - beg);
        }
        else {
-           SV *tmp = NULL;
-           sv_catpvn_utf8_upgrade(p_state->pend_text, beg, end - beg, tmp);
+           SV *tmp = newSVpvn(beg, end - beg);
+           sv_utf8_upgrade(tmp);
+           sv_catsv(p_state->pend_text, tmp);
+           SvREFCNT_dec(tmp);
        }
 #else
        sv_catpvn(p_state->pend_text, beg, end - beg);
@@ -639,8 +641,10 @@ IGNORE_EVENT:
 #ifdef UNICODE_HTML_PARSER
        }
        else {
-           SV *tmp = NULL;
-           sv_catpvn_utf8_upgrade(p_state->skipped_text, beg, end - beg, tmp);
+           SV *tmp = newSVpvn(beg, end - beg);
+           sv_utf8_upgrade(tmp);
+           sv_catsv(p_state->pend_text, tmp);
+           SvREFCNT_dec(tmp);
        }
 #endif
     }

Reply via email to