dslinux/user/perl/ext/B/C C.xs Makefile.PL

cayenne dslinux_cayenne at user.in-berlin.de
Mon Dec 4 17:59:08 CET 2006


Update of /cvsroot/dslinux/dslinux/user/perl/ext/B/C
In directory antilope:/tmp/cvs-serv17422/ext/B/C

Added Files:
	C.xs Makefile.PL 
Log Message:
Adding fresh perl source to HEAD to branch from

--- NEW FILE: C.xs ---
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>

static int
my_runops(pTHX)
{
    HV* regexp_hv = get_hv( "B::C::REGEXP", 0 );
    SV* key = newSViv( 0 );

    do {
	PERL_ASYNC_CHECK();

        if( PL_op->op_type == OP_QR ) {
            PMOP* op;
            REGEXP* rx = PM_GETRE( (PMOP*)PL_op );
            SV* rv = newSViv( 0 );

            Newx( op, 1, PMOP );
            Copy( PL_op, op, 1, PMOP );
            /* we need just the flags */
            op->op_next = NULL;
            op->op_sibling = NULL;
            op->op_first = NULL;
            op->op_last = NULL;
            op->op_pmreplroot = NULL;
            op->op_pmreplstart = NULL;
            op->op_pmnext = NULL;
#ifdef USE_ITHREADS
            op->op_pmoffset = 0;
#else
            op->op_pmregexp = 0;
#endif

            sv_setiv( key, PTR2IV( rx ) );
            sv_setref_iv( rv, "B::PMOP", PTR2IV( op ) );

            hv_store_ent( regexp_hv, key, rv, 0 );
        }
    } while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX)));

    SvREFCNT_dec( key );

    TAINT_NOT;
    return 0;
}

MODULE=B__C PACKAGE=B::C

PROTOTYPES: DISABLE

BOOT:
    PL_runops = my_runops;

--- NEW FILE: Makefile.PL ---
#!perl

use ExtUtils::MakeMaker;

WriteMakefile( NAME => 'B::C',
               VERSION_FROM => '../B/C.pm'
             );





More information about the dslinux-commit mailing list