view release on metacpan or search on metacpan
EfficiencyCI.xs view on Meta::CPAN
double conflevel
PREINIT:
double mode = 0.0;
double low = 0.0;
double high = 0.0;
PPCODE:
efficiency_ci(aTHX_ k, N, conflevel, &mode, &low, &high);
EXTEND(SP, 3);
mPUSHn(mode);
mPUSHn(low);
mPUSHn(high);
void
log_gamma(x)
double x
PPCODE:
dTARG;
if (x <= 0
&& ( fabs(x - (int)x) <= DBL_EPSILON))
{
XSRETURN_UNDEF;
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Inline/C.pm view on Meta::CPAN
if ($o->{CONFIG}{_TESTING}) {
$XS .= <<END;
PREINIT:
PerlIO* stream;
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
$function($arg_name_list);
stream = PerlIO_open(\"$dir/void_test\", \"a\");
if (stream == NULL) warn(\"%s\\n\", \"Unable to open $dir/void_test for appending\");
if (PL_markstack_ptr != temp) {
inc/Inline/C.pm view on Meta::CPAN
}
else {
$XS .= <<END;
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
$function($arg_name_list);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
view all matches for this distribution
view release on metacpan or search on metacpan
fallback/const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
type = constant(aTHX_ s, len);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
switch (type) {
case PERL_constant_NOTFOUND:
view all matches for this distribution
view release on metacpan or search on metacpan
RETVAL
void filter(df, pred)
SV *df
SV *pred
PPCODE:
{
if (!df || !SvROK(df))
croak("filter: first argument must be a HASH or ARRAY reference (a data frame)");
bool is_code = (pred && SvROK(pred) && SvTYPE(SvRV(pred)) == SVt_PVCV);
if (!is_code && (!pred || !SvROK(pred) || SvTYPE(SvRV(pred)) != SVt_PVHV))
RETVAL
PROTOTYPES: ENABLE
void write_table(...)
PPCODE:
{
SV *restrict data_sv = NULL;
SV *restrict file_sv = NULL;
unsigned int arg_idx = 0;
// Mimic the Perl shift logic
PREINIT:
AV *restrict av;
HV *restrict ret_hash;
size_t n_raw, n = 0;
NV *restrict x, w = 0.0, p_val = 0.0, mean = 0.0, ssq = 0.0;
PPCODE:
if (!SvROK(data) || SvTYPE(SvRV(data)) != SVt_PVAV) {
croak("Expected an array reference");
}
av = (AV *)SvRV(data);
PREINIT:
HV *restrict counts;
HV *restrict originals;
size_t max_count = 0, arg_count = 0;
HE *restrict he;
PPCODE:
/* counts: string(value) -> occurrence count */
/* originals: string(value) -> SV* first-seen original */
counts = (HV *)sv_2mortal((SV *)newHV());
originals = (HV *)sv_2mortal((SV *)newHV());
arr[i].p = (tv && SvOK(*tv)) ? SvNV(*tv) : 1.0;
arr[i].orig_idx = i;
}
// Sort ascending (Stable sort using original index)
qsort(arr, n, sizeof(PVal), cmp_pval);
PPCODE:
if (strcmp(meth, "bonferroni") == 0) {
for (size_t i = 0; i < n; i++) {
NV v = arr[i].p * n;
adj[arr[i].orig_idx] = (v < 1.0) ? v : 1.0;
}
OUTPUT:
RETVAL
void scale(...)
PROTOTYPE: @
PPCODE:
{
bool do_center_mean = TRUE, do_scale_sd = TRUE;
NV center_val = 0.0, scale_val = 1.0;
size_t data_items = items;
// 1. Parse Options Hash (if it exists as the last argument)
void seq(from, to, by = 1.0)
NV from
NV to
NV by
PPCODE:
{
//Handle the zero 'by' case
if (by == 0.0) {
if (from == to) {
EXTEND(SP, 1);
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = Storable::AMF0 PACKAGE = Storable::AMF0::TemporaryStorage
PROTOTYPES: DISABLE
void
new(SV *class, SV *option=0)
PPCODE:
PERL_UNUSED_VAR( class );
XPUSHs( sv_2mortal( tmpstorage_create_sv( aTHX_ NULL, option )));
void
DESTROY(SV *self)
PPCODE:
tmpstorage_destroy_sv( aTHX_ self );
PROTOTYPES: ENABLE
MODULE = Storable::AMF0 PACKAGE = Storable::AMF0
Storable::AMF::dclone= 1
Storable::AMF3::dclone= 2
PROTOTYPE: $
INIT:
SV* retvalue;
PPCODE:
PERL_UNUSED_VAR(ix);
retvalue = deep_clone(aTHX_ data);
sv_2mortal(retvalue);
XPUSHs(retvalue);
amf_tmp_storage(...)
INIT:
SV * retvalue;
SV * sv_option;
PROTOTYPE: ;$
PPCODE:
if (items<0 || items > 1)
croak("sv_option=0");
if (items<1)
sv_option = 0;
else
PROTOTYPE: $;$
INIT:
SV* retvalue;
SV* sv_option;
struct io_struct *io;
PPCODE:
PERL_UNUSED_VAR(ix);
check_bounds(1,2, "sv_option=0");
if ( items == 1 )
sv_option = 0;
else
Storable::AMF::deparse_amf0=2
INIT:
SV* retvalue;
SV* sv_option;
struct io_struct *io;
PPCODE:
check_bounds(1,2, "sv_option=0");
if ( items == 1 )
sv_option = 0;
else
sv_option = ST(1);
PROTOTYPE: $;$
INIT:
SV * retvalue;
SV * sv_option;
struct io_struct *io;
PPCODE:
check_bounds(1,2, "sv_option=0");
if ( items == 1 )
sv_option = 0;
else
sv_option = ST(1);
PROTOTYPE: $;$
INIT:
SV* retvalue;
SV* sv_option = 0;
struct io_struct *io;
PPCODE:
check_bounds(1,2, "sv_option=0");
if ( items == 1 )
sv_option = 0;
else
sv_option = ST(1);
SV* retvalue;
SV *sv_option = 0;
struct io_struct *io;
ALIAS:
Storable::AMF::thaw3=1
PPCODE:
check_bounds(1,2, "sv_option=0");
if ( items == 1 )
sv_option = 0;
else
sv_option = ST(1);
_test_thaw_integer(SV*data)
PROTOTYPE: $
INIT:
SV* retvalue;
struct io_struct *io;
PPCODE:
io = tmpstorage_create_and_cache(aTHX_ cv );
if ( ! Sigsetjmp(io->target_error, 0)){
io->subname = "Storable::AMF3::_test_thaw_integer( data, option )";
io_in_init(aTHX_ io, data, AMF3_VERSION, 0 );
retvalue = (SV*) (amf3_parse_integer(aTHX_ io));
_test_freeze_integer(SV*data)
PROTOTYPE: $
PREINIT:
SV * retvalue;
struct io_struct *io;
PPCODE:
io = tmpstorage_create_and_cache(aTHX_ cv );
if (! Sigsetjmp(io->target_error, 0)){
io_out_init(aTHX_ io, 0, AMF3_VERSION);
amf3_write_integer(aTHX_ io, SvIV(data));
retvalue = io_buffer(io);
void
endian()
PROTOTYPE:
PREINIT:
SV * retvalue;
PPCODE:
retvalue = newSVpvf("%s %x\n",GAX, BYTEORDER);
sv_2mortal(retvalue);
XPUSHs(retvalue);
void freeze(SV *data, SV *sv_option = 0 )
PREINIT:
SV * retvalue;
struct io_struct *io;
ALIAS:
Storable::AMF::freeze3=1
PPCODE:
PERL_UNUSED_VAR(ix);
io = tmpstorage_create_and_cache(aTHX_ cv );
if (! Sigsetjmp(io->target_error, 0)){
io_out_init(aTHX_ io, sv_option, AMF3_VERSION);
amf3_format_one(aTHX_ io, data);
Storable::AMF::new_amfdate =1
Storable::AMF0::new_amfdate=2
Storable::AMF::new_date =3
Storable::AMF0::new_date=4
Storable::AMF3::new_date=5
PPCODE:
PERL_UNUSED_VAR( ix );
mortal=sv_newmortal();
sv_setref_nv( mortal, "*", timestamp ); /*Stupid but it works */
XPUSHs( mortal );
SV *mortal;
PROTOTYPE: $
ALIAS:
Storable::AMF::perl_date=1
Storable::AMF0::perl_date=2
PPCODE:
PERL_UNUSED_VAR( ix );
if ( SvROK( date ) && util_is_date( (SV*) SvRV(date))){
XPUSHs((SV*) SvRV(date));
}
else if ( SvNOK( date )){
Storable::AMF::parse_option=1
Storable::AMF0::parse_option=2
Storable::AMF::parse_serializator_option=3
Storable::AMF3::parse_serializator_option=4
Storable::AMF0::parse_serializator_option=5
PPCODE:
PERL_UNUSED_VAR( ix );
s_strict = 0;
s_utf8_decode = 0;
s_utf8_encode = 0;
s_milldate = 0;
MODULE = Storable::AMF0 PACKAGE = Storable::AMF::Util
void
total_sv()
PROTOTYPE:
PPCODE:
I32 visited = 0;
SV* sva;
for( sva = PL_sv_arenaroot; sva; sva = (SV*)SvANY(sva)) {
SV * svend = &sva[SvREFCNT(sva)];
SV * svi;
PROTOTYPE: $$;$
INIT:
SV * retvalue;
SV *sv_option;
struct io_struct *io;
PPCODE:
check_bounds(2,3, "sv_option=0");
if ( items == 2 )
sv_option = 0;
else
sv_option = ST(2);
view all matches for this distribution
view release on metacpan or search on metacpan
Storable.xs view on Meta::CPAN
pstore(f,obj)
OutputStream f
SV* obj
ALIAS:
net_pstore = 1
PPCODE:
RETVAL = do_store(aTHX_ f, obj, 0, ix, (SV **)0) ? &PL_sv_yes : &PL_sv_undef;
/* do_store() can reallocate the stack, so need a sequence point to ensure
that ST(0) knows about it. Hence using two statements. */
ST(0) = RETVAL;
XSRETURN(1);
view all matches for this distribution
view release on metacpan or search on metacpan
apse_t* ap
SV* text
PREINIT:
apse_size_t match_begin;
apse_size_t match_size;
PPCODE:
if (ap->use_minimal_distance) {
apse_slice(ap,
(unsigned char *)SvPV(text, PL_na),
(apse_size_t)sv_len(text),
&match_begin,
apse_t* ap
SV* text
PREINIT:
apse_size_t match_begin;
apse_size_t match_size;
PPCODE:
if (apse_slice_next(ap,
(unsigned char *)SvPV(text, PL_na),
sv_len(text),
&match_begin,
&match_size)) {
view all matches for this distribution
view release on metacpan or search on metacpan
PREINIT:
int data_len;
INPUT:
char *data = (char *)SvPV(ST(0),data_len);
int bits;
PPCODE:
{
crc_hash_t h;
U32 *rv;
SV *sv;
view all matches for this distribution
view release on metacpan or search on metacpan
crc32(data, ...)
char *data = NO_INIT
PREINIT:
U32 crcinit = 0;
STRLEN data_len;
PPCODE:
int sv_type;
IO *io;
SV *sv;
U32 rv = 0;
{
view all matches for this distribution
view release on metacpan or search on metacpan
DiffLine.xs view on Meta::CPAN
char *s1;
char *s2;
PREINIT:
STRLEN l,l1,l2,nll,i,lpos,lines;
char *nl,lnl;
PPCODE:
l1=SvCUR(ST(0));
l2=SvCUR(ST(1));
nl=SvPV(perl_get_sv("/",FALSE),nll);
if(nll==0) nl="\n";
lnl=nl[nll?nll-1:0];
view all matches for this distribution
view release on metacpan or search on metacpan
lcss_all = 2
PREINIT:
int list_cx;
int wide;
SV* rv;
PPCODE:
if (!SvOK(s) || !SvOK(t))
XSRETURN_UNDEF;
list_cx = GIMME_V == G_ARRAY;
view all matches for this distribution
view release on metacpan or search on metacpan
lrc(data, ...)
char *data = NO_INIT
PREINIT:
unsigned char lrcinit = 0x00;
STRLEN data_len;
PPCODE:
int sv_type;
IO *io;
SV *sv;
unsigned char rv;
{
view all matches for this distribution
view release on metacpan or search on metacpan
INIT:
int i;
int blacks = 0;
int whites = 0;
int colors_in_string_h[colors], colors_in_string_t[colors];
PPCODE:
for ( i = 0; i < colors; i++ ) {
colors_in_string_h[i] = colors_in_string_t[i] = 0;
}
for ( i = 0; i < strlen( hidden ); i++ ) {
if ( hidden[i] == target[i] ) {
INIT:
int i;
int blacks = 0;
int whites = 0;
int colors_in_string_h[colors], colors_in_string_t[colors];
PPCODE:
for ( i = 0; i < colors; i++ ) {
colors_in_string_h[i] = colors_in_string_t[i] = 0;
}
for ( i = 0; i < strlen( hidden ); i++ ) {
if ( hidden[i] == target[i] ) {
int i;
int blacks = 0;
int whites = 0;
int colors = 26;
int colors_in_string_h[colors], colors_in_string_t[colors];
PPCODE:
for ( i = 0; i < colors; i++ ) {
colors_in_string_h[i] = colors_in_string_t[i] = 0;
}
for ( i = 0; i < strlen( hidden ); i++ ) {
if ( hidden[i] == target[i] ) {
INIT:
int i;
int blacks = 0;
int whites = 0;
int colors_in_string_h[colors], colors_in_string_t[colors];
PPCODE:
AV* hidden;
AV* target;
hidden = (AV*) SvRV(hidden_ref);
target = (AV*) SvRV(target_ref);
for ( i = 0; i < colors; i++ ) {
view all matches for this distribution
view release on metacpan or search on metacpan
inc/Inline/C.pm view on Meta::CPAN
if ($o->{CONFIG}{_TESTING}) {
$XS .= <<END;
PREINIT:
PerlIO* stream;
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
$function($arg_name_list);
stream = PerlIO_open(\"$dir/void_test\", \"a\");
if (stream == NULL) warn(\"%s\\n\", \"Unable to open $dir/void_test for appending\");
if (PL_markstack_ptr != temp) {
inc/Inline/C.pm view on Meta::CPAN
}
else {
$XS .= <<END;
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
$function($arg_name_list);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
view all matches for this distribution
view release on metacpan or search on metacpan
Attribute.xs view on Meta::CPAN
dMY_CXT;
HV* const hinthv = GvHVn(PL_hintgv);
HV* stash;
MAGIC* mg;
I32 i;
PPCODE:
mg = mg_find_by_vtbl((SV*)hinthv, &hook_scope_vtbl);
if(!mg){
sv_magicext((SV*)hinthv, NULL, PERL_MAGIC_ext, &hook_scope_vtbl, NULL, 0);
PL_hints |= HINT_LOCALIZE_HH;
}
view all matches for this distribution
view release on metacpan or search on metacpan
void
checkFunc(svFunc)
SV *svFunc
PPCODE:
{
if (SvROK(svFunc)){
svFunc = SvRV(svFunc);
}
view all matches for this distribution
view release on metacpan or search on metacpan
#ifdef USE_ITHREADS
void
CLONE(...)
PPCODE:
{
tTHX owner;
HV* cloned;
{
#endif /* USE_ITHREADS */
void
disable_cv_call(SV* cv)
PPCODE:
{
if (SvROK(cv)) cv = SvRV(cv);
if (SvTYPE(cv) != SVt_PVCV) croak("Not a CODE reference");
cv_set_call_checker((CV*)cv, disable_function_checker, cv);
XSRETURN_UNDEF;
}
void
disable_named_call(SV* package, SV* func)
PPCODE:
{
HV* stash = gv_stashsv(package, GV_ADD);
HE* hent = hv_fetch_ent(stash, func, 0, 0);
GV* glob = hent ? (GV*)HeVAL(hent) : NULL;
XSRETURN_UNDEF;
}
void
disable_method_call(SV* package, SV* method)
PPCODE:
{
dMY_CXT;
SV* shared_method_sv;
if (!SvIsCOW_shared_hash(method)) {
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Sub/Filter.xs view on Meta::CPAN
_test_xs(...)
PROTOTYPE: @
PREINIT:
AV *av;
I32 i, len;
PPCODE:
av = get_av("Sub::Filter::got_in", 1);
av_clear(av);
for(i = 0; i != items; i++)
av_store(av, i, SvREFCNT_inc(ST(i)));
av = get_av("Sub::Filter::want_out", 1);
view all matches for this distribution
view release on metacpan or search on metacpan
fallback/const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
/* Change this to constant(aTHX_ s, len, &iv, &nv);
if you need to return both NVs and IVs */
type = constant(aTHX_ s, len, &iv);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
view all matches for this distribution
view release on metacpan or search on metacpan
Identify.xs view on Meta::CPAN
get_code_info(coderef)
SV* coderef
PREINIT:
char* name;
char* pkg;
PPCODE:
if (SvOK(coderef) && SvROK(coderef) && SvTYPE(SvRV(coderef)) == SVt_PVCV) {
coderef = SvRV(coderef);
if (CvGV(coderef)) {
name = GvNAME( CvGV(coderef) );
pkg = HvNAME( GvSTASH(CvGV(coderef)) );
Identify.xs view on Meta::CPAN
get_code_location(coderef)
SV* coderef
PREINIT:
char* file;
line_t line;
PPCODE:
if (SvOK(coderef) && SvROK(coderef) && SvTYPE(SvRV(coderef)) == SVt_PVCV) {
coderef = SvRV(coderef);
if (CvSTART(coderef) && !CvISXSUB(coderef)) {
file = CvFILE(coderef);
line = CopLINE((const COP*)CvSTART(coderef));
view all matches for this distribution
view release on metacpan or search on metacpan
STRLEN namelen;
const char* nameptr = SvPV(name, namelen);
int utf8flag = SvUTF8(name);
int quotes_seen = 0;
bool need_subst = FALSE;
PPCODE:
if (!SvROK(sub) && SvGMAGICAL(sub))
mg_get(sub);
if (SvROK(sub))
cv = (CV *) SvRV(sub);
else if (SvTYPE(sub) == SVt_PVGV)
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPE: DISABLE
PREINIT:
HV *map;
CV *placeholder;
tTHX owner;
PPCODE:
{
dMY_CXT;
owner = MY_CXT.owner;
map = (HV *) so_clone((SV *) MY_CXT.map, owner);
placeholder = (CV *) so_clone((SV *) MY_CXT.placeholder, owner);
#endif /* SO_THREADSAFE */
void
_placeholder(SV *sv)
PROTOTYPE: $
PPCODE:
if (SvROK(sv)) {
sv = SvRV(sv);
if (SvTYPE(sv) >= SVt_PVCV) {
dMY_CXT;
SvREFCNT_dec(MY_CXT.placeholder);
_custom_name(SV *op)
PROTOTYPE: $
PREINIT:
OP *o;
so_op_name_t *on;
PPCODE:
if (!SvROK(op))
XSRETURN_UNDEF;
o = INT2PTR(OP *, SvIV(SvRV(op)));
if (!o || o->op_type != OP_CUSTOM)
XSRETURN_UNDEF;
XSRETURN(1);
void
_constant_sub(SV *sv)
PROTOTYPE: $
PPCODE:
if (!SvROK(sv))
XSRETURN_UNDEF;
sv = SvRV(sv);
if (SvTYPE(sv) < SVt_PVCV)
XSRETURN_UNDEF;
view all matches for this distribution
view release on metacpan or search on metacpan
StopCalls.xs view on Meta::CPAN
PROTOTYPES: DISABLE
void
stop(...)
PPCODE:
stop(aTHX_ SP, items);
if ( GIMME_V == G_SCALAR && items > 1 )
mPUSHi(items);
else
SP += items;
view all matches for this distribution
view release on metacpan or search on metacpan
File/File.xs view on Meta::CPAN
const char *type_str;
ea_object_t object;
SV *sv;
static const char *const type_map[] =
{ "EO_NONE", "EO_GROUP", "EO_ITEM" };
PPCODE:
/* Call the appropriate next/last function. */
if (ix == 0) {
type = ea_next_object(self, &object);
} else {
type = ea_previous_object(self, &object);
view all matches for this distribution
view release on metacpan or search on metacpan
void
activeprojects()
PREINIT:
int nitems;
PPCODE:
PUTBACK;
nitems = 0;
project_walk(&pwalk_cb, (void*)&nitems);
XSRETURN(nitems);
void
getprojent()
PREINIT:
struct project proj, *projp;
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
if (projp = getprojent(&proj, buf, sizeof (buf))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
getprojbyname(name)
char *name
PREINIT:
struct project proj, *projp;
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
if (projp = getprojbyname(name, &proj, buf, sizeof (buf))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
getprojbyid(id)
projid_t id
PREINIT:
struct project proj, *projp;
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
if (projp = getprojbyid(id, &proj, buf, sizeof (buf))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
getdefaultproj(user)
char *user
PREINIT:
struct project proj, *projp;
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
if (projp = getdefaultproj(user, &proj, buf, sizeof (buf))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
fgetprojent(fh)
FILE *fh
PREINIT:
struct project proj, *projp;
char buf[PROJECT_BUFSZ];
PPCODE:
PUTBACK;
if (projp = fgetprojent(fh, &proj, buf, sizeof (buf))) {
XSRETURN(pushret_project(projp));
} else {
XSRETURN_EMPTY;
int
getprojidbyname(proj)
char *proj
PREINIT:
int id;
PPCODE:
if ((id = getprojidbyname(proj)) == -1) {
XSRETURN_UNDEF;
} else {
XSRETURN_IV(id);
}
view all matches for this distribution
view release on metacpan or search on metacpan
ucred_getgroups(uc)
Sun::Solaris::Ucred::Ucred *uc;
PREINIT:
const gid_t *gids;
int n;
PPCODE:
n = ucred_getgroups(uc, &gids);
if (n < 0)
XSRETURN_UNDEF;
PUTBACK;
view all matches for this distribution
view release on metacpan or search on metacpan
void
OpenDisplay(args,...)
String_Array args = NO_INIT
PROTOTYPE: @
PPCODE:
{
int i;
args = XS_unpack_String_Array(ax,items);
if (!items) {
*args = "Main Sx Window"; items = 1;
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = Syntax::Feature::Loop PACKAGE = Syntax::Feature::Loop
void
hint_key()
PPCODE:
SvREFCNT_inc( hint_key_sv );
XPUSHs( hint_key_sv );
XSRETURN( 1 );
view all matches for this distribution
view release on metacpan or search on metacpan
QwComments.xs view on Meta::CPAN
MODULE = Syntax::Feature::QwComments PACKAGE = Syntax::Feature::QwComments
void
hint_key()
PPCODE:
SvREFCNT_inc( hint_key_sv );
XPUSHs( hint_key_sv );
XSRETURN( 1 );
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = Syntax::Feature::Void PACKAGE = Syntax::Feature::Void
void
hint_key()
PPCODE:
SvREFCNT_inc( hint_key_sv );
XPUSHs( hint_key_sv );
XSRETURN( 1 );
view all matches for this distribution