Anarres-Mud-Driver
view release on metacpan or search on metacpan
Efun/Core/Core.xs view on Meta::CPAN
#include <EXTERN.h>
#include <perl.h>
#include <XSUB.h>
MODULE = Anarres::Mud::Driver::Efun::Core PACKAGE = Anarres::Mud::Driver::Efun::Core
PROTOTYPES: ENABLE
MODULE = Anarres::Mud::Driver::Efun::Core PACKAGE = Anarres::Mud::Driver::Efun::Core::intp
int
invoke(arg)
SV * arg
CODE:
RETVAL = SvIOKp(arg); /* Not necessarily the best way? */
OUTPUT:
RETVAL
MODULE = Anarres::Mud::Driver::Efun::Core PACKAGE = Anarres::Mud::Driver::Efun::Core::floatp
int
invoke(arg)
SV * arg
CODE:
RETVAL = SvNOKp(arg);
OUTPUT:
RETVAL
MODULE = Anarres::Mud::Driver::Efun::Core PACKAGE = Anarres::Mud::Driver::Efun::Core::stringp
int
invoke(arg)
SV * arg
CODE:
RETVAL = SvPOKp(arg);
OUTPUT:
RETVAL
MODULE = Anarres::Mud::Driver::Efun::Core PACKAGE = Anarres::Mud::Driver::Efun::Core::replace_string
SV *
invoke(big, find, replace)
char * big
char * find
char * replace
CODE:
{
/* This is horribly slow but will do for now. */
char *op;
char *cp;
int flen;
int rlen;
flen = strlen(find);
rlen = strlen(replace);
RETVAL = sv_2mortal(newSVpvn("", 0));
op = big;
cp = strstr(big, find);
while (cp) {
sv_catpvn(RETVAL, op, (cp - op));
sv_catpvn(RETVAL, replace, rlen);
op = cp + flen;
cp = strstr(op, find);
}
sv_catpv(RETVAL, op);
}
OUTPUT:
RETVAL
MODULE = Anarres::Mud::Driver::Efun::Core PACKAGE = Anarres::Mud::Driver::Efun::Core::explode
SV *
( run in 1.316 second using v1.01-cache-2.11-cpan-2398b32b56e )