09/06/2006
Perl XS and SWIG interface to CLucene C++ text search engine
14
Swig XS Sample
lFrom argv.i
l
l// Creates a new Perl array and places a NULL-terminated char ** into it
l%typemap(out) char ** {
l        AV *myav;
l        SV **svs;
l        int i = 0,len = 0;
l        /* Figure out how many elements we have */
l        while ($1[len])
l           len++;
l        svs = (SV **) malloc(len*sizeof(SV *));
l        for (i = 0; i < len ; i++) {
l            svs[i] = sv_newmortal();
l            sv_setpv((SV*)svs[i],$1[i]);
l        };
l        myav =  av_make(len,svs);
l        free(svs);
l        $result = newRV((SV*)myav);
l        sv_2mortal($result);
l        argvi++;
l}
l