%module "HTML::Tidy" %{ #include "tidyx.h" %} %ignore Source; %ignore Sink; %ignore ParseBuffer; %ignore ParseSource; %ignore SaveSink; %rename (SaveString) SaveBuffer; %typemap(perl5, ignore) Tidy::Buffer& outbuf %{ Tidy::Buffer tmpbuf; $1 = &tmpbuf; %} %typemap(perl5, argout) Tidy::Buffer& outbuf %{ if ( result >= 0 ) { if ( tmpbuf.Size() == 0 ) { warn( "Empty Tidy document" ); } else { if ( argvi >= items ) { EXTEND(sp,1); } ST(argvi) = sv_newmortal(); sv_setpvn( ST(argvi), (const char*) tmpbuf.Data(), tmpbuf.Size() ); argvi++; } } %} %import platform.h %include tidyenum.h %include tidyx.h