view release on metacpan or search on metacpan
opengl_array.xs view on Meta::CPAN
#//# @data = $oga->retrieve($pos,$len);
#//- Get OGA data array, by offset and length
void
retrieve(oga, ...)
OpenGL::Array oga
PPCODE:
{
GLint pos = (items > 1) ? SvIV(ST(1)) : 0;
GLint len = (items > 2) ? SvIV(ST(2)) : (oga->item_count - pos);
char * offset;
int end = pos + len;
opengl_array.xs view on Meta::CPAN
#//# @dimensions = $oga->get_dimensions();
#//- Get OGA data array, by offset and length
void
get_dimensions(oga)
OpenGL::Array oga
PPCODE:
{
int end = oga->dimension_count;
int i = 0;
EXTEND(sp, end);
view all matches for this distribution
view release on metacpan or search on metacpan
void
ftglCreateBitmapFont(file);
const char * file
PREINIT:
FTGLfont* RETVAL;
PPCODE:
RETVAL = ftglCreateBitmapFont(file);
if ( RETVAL ) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "FTGLfontPtr", (void*)RETVAL);
XSRETURN(1);
void
ftglCreateBufferFont(file);
const char * file
PREINIT:
FTGLfont* RETVAL;
PPCODE:
RETVAL = ftglCreateBufferFont(file);
if ( RETVAL ) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "FTGLfontPtr", (void*)RETVAL);
XSRETURN(1);
void
ftglCreateExtrudeFont(file);
const char * file
PREINIT:
FTGLfont* RETVAL;
PPCODE:
RETVAL = ftglCreateExtrudeFont(file);
if ( RETVAL ) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "FTGLfontPtr", (void*)RETVAL);
XSRETURN(1);
void
ftglCreateOutlineFont(file);
const char * file
PREINIT:
FTGLfont* RETVAL;
PPCODE:
RETVAL = ftglCreateOutlineFont(file);
if ( RETVAL ) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "FTGLfontPtr", (void*)RETVAL);
XSRETURN(1);
void
ftglCreatePixmapFont(file);
const char * file
PREINIT:
FTGLfont* RETVAL;
PPCODE:
RETVAL = ftglCreatePixmapFont(file);
if ( RETVAL ) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "FTGLfontPtr", (void*)RETVAL);
XSRETURN(1);
void
ftglCreatePolygonFont(file);
const char * file
PREINIT:
FTGLfont* RETVAL;
PPCODE:
RETVAL = ftglCreatePolygonFont(file);
if ( RETVAL ) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "FTGLfontPtr", (void*)RETVAL);
XSRETURN(1);
void
ftglCreateTextureFont(file);
const char * file
PREINIT:
FTGLfont* RETVAL;
PPCODE:
RETVAL = ftglCreateTextureFont(file);
if ( RETVAL ) {
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), "FTGLfontPtr", (void*)RETVAL);
XSRETURN(1);
ftglGetFontCharMapList (font)
FTGLfont *font;
PREINIT:
int n, i;
FT_Encoding * p;
PPCODE:
n = ftglGetFontCharMapCount (font);
if (n>0) {
p = ftglGetFontCharMapList(font);
EXTEND(SP, n);
for (i=0; i<n; i++,p++) {
ftglGetFontLineHeight (font)
FTGLfont *font
void
ftglGetFontBBox (...)
PPCODE:
FTGLfont *font;
char *string;
STRLEN len;
float bounds[6];
int i;
view all matches for this distribution
view release on metacpan or search on metacpan
void
glfwGetMonitors();
PREINIT:
GLFWmonitor** monitors = NULL;
int n, count;
PPCODE:
monitors = glfwGetMonitors(&count);
printf("glfwGetMonitors() returns %d values\n",count);
for (n=0; n<count; n++)
XPUSHs(sv_2mortal(newRV_noinc(newSViv(PTR2IV(monitors+n)))));
PREINIT:
HV * hash;
const GLFWvidmode* vidms = NULL;
int nmodes = -1;
int n;
PPCODE:
// get video modes
vidms = glfwGetVideoModes(monitor,&nmodes);
if (!vidms) croak("null pointer as GLFWvidmode-s");
if (nmodes <= 0) croak("no GLFWvidmode-s returned");
void
glfwGetJoystickAxes(int joy);
PREINIT:
const float* axes = NULL;
int n, count;
PPCODE:
axes = glfwGetJoystickAxes(joy,&count);
printf("glfwGetJoystickAxes() returns %d values\n",count);
for (n=0; n<count; n++)
XPUSHs(sv_2mortal(newSVnv(*(axes+n))));
void
glfwGetJoystickButtons(int joy);
PREINIT:
const unsigned char* buttons = NULL;
int n, count;
PPCODE:
buttons = glfwGetJoystickButtons(joy,&count);
printf("glfwGetJoystickButtons() returns %d values\n",count);
for (n=0; n<count; n++)
XPUSHs(sv_2mortal(newSViv(*(buttons+n))));
void
glfwGetError();
PREINIT:
int errcode;
char* description;
PPCODE:
errcode = glfwGetError((const char**)&description);
EXTEND(SP, 2);
PUSHs(sv_2mortal(newSViv(errcode)));
PUSHs(!description ? &PL_sv_undef : sv_2mortal(newSVpv(description, 0)));
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
void
gluProject_p(objx, objy, objz, m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16, o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11,o12,o13,o14,o15,o16, v1,v2,v3,v4)
GLdouble objx
GLdouble objy
GLdouble objz
PPCODE:
{
GLdouble m[16], p[16], winx, winy, winz;
GLint v[4];
int i;
for (i=0;i<16;i++)
void
gluUnProject_p(winx,winy,winz, m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12,m13,m14,m15,m16, o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11,o12,o13,o14,o15,o16, v1,v2,v3,v4)
GLdouble winx
GLdouble winy
GLdouble winz
PPCODE:
{
GLdouble m[16], p[16], objx, objy, objz;
GLint v[4];
int i;
view all matches for this distribution
view release on metacpan or search on metacpan
utils/common.pl view on Meta::CPAN
}
$this{retout} = "\nOUTPUT:\n RETVAL";
$this{retnames} = ["\$$retval"];
} elsif (my $output = delete $dynlang{OUTPUT}) {
$this{aftercall} = "\n $output";
$this{xs_code} = "PPCODE:\n";
} elsif (grep $indynlang{$_} =~ /\bOUT(?:ARRAY|SCALAR)\b/, keys %indynlang) {
my @retnames = map $indynlang{$_} =~ /\bOUTSCALAR\b/ ? ['$',$_] :
$indynlang{$_} =~ /\bOUTARRAY\b/ ? ['\\@',$_] :
(), grep $indynlang{$_}, map $_->[0], @argdata;
$this{retnames} = [ $isvoid ? () : '$retval', map join('', @$_), @retnames ];
$this{xs_code} = "PPCODE:\n";
my $aftercall = "EXTEND(sp, ".(@{ $this{retnames} }).");";
if (!$isvoid) {
my $newval = $s->{restype} =~ /^\s*void\s*\*\s*$/ ? "newSViv(PTR2IV(RETVAL))" : "newSV".lc(substr typefunc($s->{restype}), 0, 2)."(RETVAL)";
$aftercall .= "\n mPUSHs($newval);";
}
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
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
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
void glGetClipPlane(...)
PREINIT:
GLdouble equation[4];
int i;
PPCODE:
if (1==items) {
/* Dump everything on the stack */
glGetClipPlane(SvIV(ST(0)),equation);
EXTEND(sp,4);
/* Dunno if this should really be allocated on the stack. */
GLdouble doublearr[16];
GLint intarr[4];
GLboolean boolarr[4];
int nvals; /* No of values returned by glGet() */
PPCODE:
if ( (1!=items) && (2!=items) ) {
croak("glGet() requires 1 or 2 arguments");
}
if ( (2==items) && (!SvROK(ST(1))) ) {
PREINIT:
GLuint *texture=NULL;
int n;
AV *array;
SV **svpp;
PPCODE:
if ( (1!=items) && (2!=items) ) {
croak("Bad number of arguments");
}
n = SvUV(ST(0));
view all matches for this distribution
view release on metacpan or search on metacpan
XScreenSaver.xs view on Meta::CPAN
OUTPUT:
RETVAL
void
xss_viewport_dimensions()
PPCODE:
XWindowAttributes xwa;
XGetWindowAttributes(dpy, win, &xwa);
XPUSHs(sv_2mortal(newSVnv(xwa.width)));
XPUSHs(sv_2mortal(newSVnv(xwa.height)));
view all matches for this distribution
view release on metacpan or search on metacpan
newhash(const char *password)
INIT:
int rv;
char buf [_PASSWORD_LEN];
PPCODE:
rv = crypt_newhash(password, "bcrypt,a", buf, sizeof(buf));
if (rv == 0)
XPUSHs(sv_2mortal(newSVpv(buf, 0)));
else
XPUSHs(sv_newmortal());
view all matches for this distribution
view release on metacpan or search on metacpan
=cut
int
constant(name)
char * name
PPCODE:
{
SV *Return;
int result;
if ( (result = constant_int(name)) != 0 )
{
view all matches for this distribution
view release on metacpan or search on metacpan
PREINIT:
dMY_CXT;
MYSQL_RES *res = NULL;
MYSQL_FIELD *fields;
int num_fields, i;
PPCODE:
switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = ( (MY_RES *) resid )->res;
break;
case MY_TYPE_STMT:
PREINIT:
dMY_CXT;
MYSQL_RES *res;
MYSQL_FIELD *field;
unsigned int flags;
PPCODE:
switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = ( (MY_RES *) resid )->res;
break;
case MY_TYPE_STMT:
MYSQL_ROW row;
DWORD *lengths;
MY_STMT *stmt;
MYSQL_BIND *result;
DWORD num_fields, i;
PPCODE:
switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
row = mysql_fetch_row( res->res );
if( ! row ) goto error;
MY_RES *res;
MYSQL_ROW row;
DWORD *lengths;
MY_STMT *stmt;
MYSQL_BIND *result;
PPCODE:
switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
EXTEND( SP, res->numrows );
while( ( row = mysql_fetch_row( res->res ) ) ) {
MYSQL_FIELD *fields;
MY_STMT *stmt;
MYSQL_BIND *result;
DWORD *lengths;
DWORD num_fields, i;
PPCODE:
switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
row = mysql_fetch_row( res->res );
if( ! row ) goto error;
PREINIT:
dMY_CXT;
DWORD *lengths;
DWORD num_fields, i;
MY_STMT *stmt;
PPCODE:
switch( my_mysql_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
lengths = mysql_fetch_lengths( ( (MY_RES *) resid )->res );
if( lengths ) {
num_fields = mysql_num_fields( ( (MY_RES *) resid )->res );
PREINIT:
dMY_CXT;
MY_CON *con;
MYSQL_RES *res;
MYSQL_ROW row;
PPCODE:
if( ! ( linkid = my_verify_linkid( &MY_CXT, linkid ) ) ) goto error;
con = (MY_CON *) linkid;
res = mysql_list_dbs( con->conid, wild );
if( res ) {
while( ( row = mysql_fetch_row( res ) ) ) {
MY_CON *con;
MYSQL_RES *res;
MYSQL_ROW row;
char sql[512], *p1;
AV *av;
PPCODE:
if( ! ( linkid = my_verify_linkid( &MY_CXT, linkid ) ) ) goto error;
con = (MY_CON *) linkid;
if( db && db[0] != '\0' ) {
p1 = my_strcpy( sql, "SHOW TABLES FROM `" );
p1 = my_strcpy( p1, db );
MYSQL_RES *res;
MYSQL_ROW row;
int numfields, numrows, r;
char sql[512], *p1;
AV *av;
PPCODE:
if( items < ( SvIOK( ST(0) ) ? 2 : 1 ) || items > 5 )
Perl_croak( aTHX_ "Usage: " __PACKAGE__ "::show_fields(linkid = 0, table, schema = NULL, db = NULL, wild = NULL)" );
if( SvIOK( ST( itemp ) ) ) {
linkid = INT2PTR( void *, SvIV( ST( itemp ) ) );
itemp ++;
MYSQL_ROW row;
char sql[512], *p1;
int step, num_fields, num_rows, itemp = 0;
long r;
AV *av;
PPCODE:
if( items < ( SvIOK( ST(0) ) ? 2 : 1 ) || items > 4 )
Perl_croak( aTHX_ "Usage: " __PACKAGE__ "::show_index(linkid = 0, table, schema = NULL, db = NULL)" );
if( SvIOK( ST( itemp ) ) ) {
linkid = INT2PTR( void *, SvIV( ST( itemp ) ) );
itemp ++;
view all matches for this distribution
view release on metacpan or search on metacpan
Postgres.xs view on Meta::CPAN
PREINIT:
dMY_CXT;
MY_RES *res;
const char *name;
int num_fields, i;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
Postgres.xs view on Meta::CPAN
PREINIT:
dMY_CXT;
MY_RES *res = NULL;
const char *tmps;
UV tmpu;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
Postgres.xs view on Meta::CPAN
PREINIT:
dMY_CXT;
DWORD i, l;
MY_RES *res;
const char *val;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
Postgres.xs view on Meta::CPAN
PREINIT:
dMY_CXT;
MY_RES *res;
DWORD i, l;
const char *val;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
Postgres.xs view on Meta::CPAN
PREINIT:
dMY_CXT;
MY_RES *res;
DWORD i, l;
const char *val, *name;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
Postgres.xs view on Meta::CPAN
void * resid;
PREINIT:
dMY_CXT;
MY_RES *res;
DWORD i, s;
PPCODE:
switch( my_stmt_or_result( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
Postgres.xs view on Meta::CPAN
dMY_CXT;
MY_CON *con;
PGresult *pres;
DWORD numrows, i, l;
const char *val;
PPCODE:
con = my_con_verify( &MY_CXT, linkid );
if( con == NULL ) goto error;
pres = PQexec( con->con, "select datname from pg_database" );
if( PQresultStatus( pres ) == PGRES_TUPLES_OK ) {
numrows = PQntuples( pres );
Postgres.xs view on Meta::CPAN
DWORD numrows, i, l, dbl;
int itemp = 0;
const char *val;
AV *av;
PGresult *res;
PPCODE:
if( items < 0 || items > 4 )
Perl_croak( aTHX_ "Usage: " __PACKAGE__ "::show_tables(linkid = 0, schema = NULL, db = NULL, wild = NULL)" );
if( SvIOK( ST( itemp ) ) ) {
linkid = INT2PTR( void *, SvIV( ST( itemp ) ) );
itemp ++;
view all matches for this distribution
view release on metacpan or search on metacpan
void * resid;
PREINIT:
dMY_CXT;
MY_RES *res;
DWORD i;
PPCODE:
switch( my_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
MY_RES *res;
MY_STMT *stmt;
DWORD i;
const char *table, *catalog, *dt, *cs;
int nn, pk, ai, r;
PPCODE:
switch( my_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
stmt = res->stmt;
break;
PREINIT:
dMY_CXT;
MY_RES *res;
MY_ROWS *row;
unsigned long i;
PPCODE:
switch( my_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
PREINIT:
dMY_CXT;
MY_RES *res;
MY_ROWS *row;
unsigned long i;
PPCODE:
switch( my_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
PREINIT:
dMY_CXT;
MY_RES *res;
MY_ROWS *row;
DWORD i;
PPCODE:
switch( my_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
PREINIT:
dMY_CXT;
MY_RES *res;
MY_ROWS *row;
DWORD i;
PPCODE:
switch( my_stmt_or_res( &MY_CXT, resid ) ) {
case MY_TYPE_RES:
res = (MY_RES *) resid;
break;
case MY_TYPE_STMT:
const char *wild;
PREINIT:
dMY_CXT;
int r;
MY_CON *con;
PPCODE:
int _intcb( void *arg, int columns, char **data, char **names ) {
if( columns > 1 )
XPUSHs( sv_2mortal( newSVpvn( data[1], strlen( data[1] ) ) ) );
return 0;
}
PREINIT:
dMY_CXT;
MY_CON *con;
AV *av;
char sql[256], *p1;
PPCODE:
// TABLE, SCHEMA, DB, TYPE
int _intcb( void *arg, int columns, char **data, char **names ) {
/*
int i;
const char *wild = NULL;
int itemp = 0;
MY_CON *con;
AV *av;
char *sql, *p1;
PPCODE:
// COLUMN, NULLABLE, DEFAULT, IS_PRIMARY, IS_UNIQUE, TYPENAME, AUTOINC
int _intcb( void *arg, int columns, char **data, char **names ) {
// cid|name|type|notnull|dflt_value|pk
int pk;
const char *db = NULL;
int itemp = 0;
MY_CON *con;
AV *av;
char *sql, **il_data, *p1;
PPCODE:
// NAME, COLUMN, TYPE
int _intcb_ii( void *arg, int columns, char **data, char **names ) {
// seqno|cid|name
view all matches for this distribution
view release on metacpan or search on metacpan
xs/PAB3/PAB3.xs view on Meta::CPAN
SV *sv;
HV *hv;
int itemp;
STRLEN lkey, lval;
char *key, *val;
PPCODE:
sv = sv_2mortal( (SV*) newHV() );
tv = my_thread_var_add( &MY_CXT, sv );
for( itemp = 1; itemp < items - 1; itemp += 2 ) {
if( ! SvPOK( ST(itemp) ) ) continue;
key = SvPVx( ST(itemp), lkey );
xs/PAB3/PAB3.xs view on Meta::CPAN
reset( this )
SV *this;
PREINIT:
dMY_CXT;
my_thread_var_t *tv;
PPCODE:
if( ( tv = my_thread_var_find( &MY_CXT, this ) ) != NULL ) {
my_parser_session_cleanup( tv );
my_loop_def_cleanup( tv );
my_hashmap_cleanup( tv );
}
xs/PAB3/PAB3.xs view on Meta::CPAN
my_thread_var_t *tv;
STRLEN ltmp, ltpl;
char *tmp, *p1;
char tpl[256], cac[256];
/*PerlIO *pfile;*/
PPCODE:
if( (tv = my_thread_var_find( &MY_CXT, this )) == NULL )
goto ferror;
tv->last_error[0] = '\0';
tmp = SvPVx( template, ltpl );
if( ltpl + tv->path_template_length < 256 ) {
xs/PAB3/PAB3.xs view on Meta::CPAN
error( this )
SV *this;
PREINIT:
dMY_CXT;
my_thread_var_t *tv;
PPCODE:
if( ( tv = my_thread_var_find( &MY_CXT, this ) ) == NULL ) goto error;
if( tv->last_error[0] != '\0' ) {
XPUSHs( sv_2mortal( newSVpvn( tv->last_error, strlen( tv->last_error ) ) ) );
}
goto exit;
xs/PAB3/PAB3.xs view on Meta::CPAN
SV *this;
char *msg;
PREINIT:
dMY_CXT;
my_thread_var_t *tv;
PPCODE:
if( ( tv = my_thread_var_find( &MY_CXT, this ) ) == NULL ) return;
my_strncpy( tv->last_error, msg, sizeof( tv->last_error ) );
#/*****************************************************************************
xs/PAB3/PAB3.xs view on Meta::CPAN
DESTROY( this )
SV *this;
PREINIT:
dMY_CXT;
my_thread_var_t *tv;
PPCODE:
if( ( tv = my_thread_var_find( &MY_CXT, this ) ) == NULL ) return;
_debug( __PACKAGE__ " destroying tv: 0x%08X\n", tv );
my_thread_var_rem( &MY_CXT, tv );
view all matches for this distribution
view release on metacpan or search on metacpan
getenvlist(pam_handle)
pam_handle_t *pam_handle
PREINIT:
char **env;
char **env_orig;
PPCODE:
env = pam_getenvlist(pam_handle);
env_orig = env;
while (env != NULL) {
XPUSHs(sv_2mortal(newSVpv(*env, 0)));
env++;
view all matches for this distribution
view release on metacpan or search on metacpan
sql_ufetch = 3
sql_fetchall = 4
sql_ufetchall = 5
sql_exists = 6
sql_uexists = 7
PPCODE:
{
if (items == 0)
croak ("Usage: sql_exec [database-handle,] [bind-var-refs,... ] \"sql-statement\", [arguments, ...]");
else
{
view all matches for this distribution
view release on metacpan or search on metacpan
void
surl(...)
PROTOTYPE: @
ALIAS:
salternative = 1
PPCODE:
{
int i;
UV xalternative;
SV *surl;
AV *args = newAV ();
void
find_path (path)
SV * path
PROTOTYPE: $
PPCODE:
HV *hash;
char *elem = find_path (path, &hash);
EXTEND (SP, 2);
PUSHs (sv_2mortal (newRV_inc ((SV *)hash)));
XSRETURN_NO;
void
obj_of (SV *ref)
PROTOTYPE: $
PPCODE:
if (SvROK (ref) && SvMAGICAL (SvRV (ref)))
{
MAGIC *mg = mg_find (SvRV (ref), PERL_MAGIC_tiedelem);
/* turn magic off before destruction, to ease perls job */
SvRMAGICAL_off (SvRV (rv));
void
FETCH(SV *self, SV *key)
PPCODE:
agni_try_patch (Perl_pp_helem, agni_fetch_op);
{
SV *ret;
PUTBACK;
ret = agni_fetch (self, key);
XPUSHs (ret);
}
void
STORE(SV *self, SV *key, SV *value)
PPCODE:
/*agni_try_patch (Perl_pp_helem, agni_store_op);*/
PUTBACK;
agni_store (self, key, value);
SPAGAIN;
void
EXISTS(SV *self, SV *key)
PPCODE:
HV *hv = (HV*) SvRV (self);
HV *hvt;
char *key_ = SvPV_nolen (key);
SvRMAGICAL_off (hv);
SvRMAGICAL_on (hv);
void
DELETE(SV *self, SV *key)
PPCODE:
HV *hv = (HV*) SvRV (self);
char *key_ = SvPV_nolen (key);
SV *value;
SvRMAGICAL_off (hv);
void
NEXTKEY(self, ...)
SV * self
ALIAS:
FIRSTKEY = 1
PPCODE:
HV *hv = (HV*) SvRV (self);
HV *hvt;
HE *he;
SvRMAGICAL_off (hv);
view all matches for this distribution
view release on metacpan or search on metacpan
Attr/Attr.xs view on Meta::CPAN
void
set_name(self, name)
struct attrl *self
char *name
PPCODE:
self->name = strdup(name);
char *
get_resource(self)
struct attrl *self
Attr/Attr.xs view on Meta::CPAN
void
set_resource(self, resource)
struct attrl *self
char *resource
PPCODE:
self->resource = strdup(resource);
char *
get_value(self)
struct attrl *self
Attr/Attr.xs view on Meta::CPAN
void
set_value(self, value)
struct attrl *self
char *value
PPCODE:
self->value = strdup(value);
void
push(self, next)
struct attrl *self
struct attrl *next
PPCODE:
self->next = next;
void
set_current(self, values)
struct attrl *self
HV *values
PREINIT:
SV **ssv;
PPCODE:
ssv = hv_fetch(values, "name", strlen("name"), 0);
if (ssv != NULL) {
self->name = SvPV_nolen(*ssv);
}
Attr/Attr.xs view on Meta::CPAN
DESTROY(self)
struct attrl *self
PREINIT:
struct attrl *p;
struct attrl *q;
PPCODE:
if (self != NULL) {
p = self;
while (p != NULL) {
q = p;
p = p->next;
view all matches for this distribution
view release on metacpan or search on metacpan
SaveAsString(pdf)
PDF::Haru pdf
PREINIT:
unsigned char * buf;
unsigned int siz;
PPCODE:
HPDF_SaveToStream (pdf);
HPDF_ResetStream (pdf);
siz = HPDF_GetStreamSize (pdf);
buf = (unsigned char*)malloc(siz);
HPDF_ReadFromStream (pdf, buf, &siz);
void
GetCurrentPos (page)
PDF::Haru::Page page
PREINIT:
HPDF_Point point;
PPCODE:
point = HPDF_Page_GetCurrentPos (page);
XPUSHs(sv_2mortal(newSVnv(point.x)));
XPUSHs(sv_2mortal(newSVnv(point.y)));
void
GetCurrentTextPos (page)
PDF::Haru::Page page
PREINIT:
HPDF_Point point;
PPCODE:
point = HPDF_Page_GetCurrentTextPos (page);
XPUSHs(sv_2mortal(newSVnv(point.x)));
XPUSHs(sv_2mortal(newSVnv(point.y)));
PDF::Haru::Font
void
GetTransMatrix (page)
PDF::Haru::Page page
PREINIT:
HPDF_TransMatrix matrix;
PPCODE:
matrix = HPDF_Page_GetTransMatrix (page);
XPUSHs(sv_2mortal(newSVnv(matrix.a)));
XPUSHs(sv_2mortal(newSVnv(matrix.b)));
XPUSHs(sv_2mortal(newSVnv(matrix.c)));
XPUSHs(sv_2mortal(newSVnv(matrix.d)));
PDF::Haru::Page page
PREINIT:
AV * ptn;
int n;
HPDF_DashMode mode;
PPCODE:
mode = HPDF_Page_GetDash (page);
ptn = (AV *)sv_2mortal((SV *)newAV());
for (n = 0; n < mode.num_ptn; n++) {
av_push(ptn, newSViv(mode.ptn[n]));
}
void
GetRGBFill (page)
PDF::Haru::Page page
PREINIT:
HPDF_RGBColor color;
PPCODE:
color = HPDF_Page_GetRGBFill (page);
XPUSHs(sv_2mortal(newSVnv(color.r)));
XPUSHs(sv_2mortal(newSVnv(color.g)));
XPUSHs(sv_2mortal(newSVnv(color.b)));
void
GetRGBStroke (page)
PDF::Haru::Page page
PREINIT:
HPDF_RGBColor color;
PPCODE:
color = HPDF_Page_GetRGBStroke (page);
XPUSHs(sv_2mortal(newSVnv(color.r)));
XPUSHs(sv_2mortal(newSVnv(color.g)));
XPUSHs(sv_2mortal(newSVnv(color.b)));
void
GetCMYKFill (page)
PDF::Haru::Page page
PREINIT:
HPDF_CMYKColor color;
PPCODE:
color = HPDF_Page_GetCMYKFill (page);
XPUSHs(sv_2mortal(newSVnv(color.c)));
XPUSHs(sv_2mortal(newSVnv(color.m)));
XPUSHs(sv_2mortal(newSVnv(color.y)));
XPUSHs(sv_2mortal(newSVnv(color.k)));
void
GetCMYKStroke (page)
PDF::Haru::Page page
PREINIT:
HPDF_CMYKColor color;
PPCODE:
color = HPDF_Page_GetCMYKStroke (page);
XPUSHs(sv_2mortal(newSVnv(color.c)));
XPUSHs(sv_2mortal(newSVnv(color.m)));
XPUSHs(sv_2mortal(newSVnv(color.y)));
XPUSHs(sv_2mortal(newSVnv(color.k)));
void
GetTextMatrix (page)
PDF::Haru::Page page
PREINIT:
HPDF_TransMatrix matrix;
PPCODE:
matrix = HPDF_Page_GetTextMatrix (page);
XPUSHs(sv_2mortal(newSVnv(matrix.a)));
XPUSHs(sv_2mortal(newSVnv(matrix.b)));
XPUSHs(sv_2mortal(newSVnv(matrix.c)));
XPUSHs(sv_2mortal(newSVnv(matrix.d)));
void
GetBBox (font);
PDF::Haru::Font font
PREINIT:
HPDF_Box box;
PPCODE:
box = HPDF_Font_GetBBox (font);
XPUSHs(sv_2mortal(newSVnv(box.left)));
XPUSHs(sv_2mortal(newSVnv(box.bottom)));
XPUSHs(sv_2mortal(newSVnv(box.right)));
XPUSHs(sv_2mortal(newSVnv(box.top)));
PDF::Haru::Font font
const char *text
HPDF_UINT len
PREINIT:
HPDF_TextWidth textwidth;
PPCODE:
textwidth = HPDF_Font_TextWidth (font,(const unsigned char*)text,len);
XPUSHs(sv_2mortal(newSViv(textwidth.numchars)));
XPUSHs(sv_2mortal(newSViv(textwidth.numwords)));
XPUSHs(sv_2mortal(newSViv(textwidth.width)));
XPUSHs(sv_2mortal(newSViv(textwidth.numspace)));
void
HPDF_Image_GetSize (image)
PDF::Haru::Image image
PREINIT:
HPDF_Point point;
PPCODE:
point = HPDF_Image_GetSize (image);
XPUSHs(sv_2mortal(newSVnv(point.x)));
XPUSHs(sv_2mortal(newSVnv(point.y)));
HPDF_UINT
view all matches for this distribution
view release on metacpan or search on metacpan
lib/PDL/GSL/RNG.pd view on Meta::CPAN
void
set_seed(rng, seed)
gsl_rng * rng
int seed
PPCODE:
gsl_rng_set(rng,seed);
XPUSHs(ST(0)); /* return self */
unsigned int
min(rng)
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = PDL::Graphics::IIS PACKAGE = PDL::Graphics::IIS
void
_iiscur_int()
PPCODE:
float x,y;
char ch;
int frame = (int)SvIV( perl_get_sv("iisframe", FALSE) );
iis_open(SvPV_nolen(perl_get_sv("fifi",FALSE)),SvPV_nolen(perl_get_sv("fifo",FALSE)),
view all matches for this distribution
view release on metacpan or search on metacpan
void
$func(x, y, grid)
double x
double y
$type grid
PPCODE:
PLFLT tx, ty;
$func(x, y, &tx, &ty, (PLPointer) grid);
EXTEND (SP, 2);
PUSHs(sv_2mortal(newSVnv((double) tx)));
PUSHs(sv_2mortal(newSVnv((double) ty)));
pp_addxs (<<"EOC");
void
plFreeGrid (pg)
PLcGridPtr pg
PPCODE:
PLPTR_RECEIVE_IN(PLcGrid, grid, pg)
Safefree(grid->xg);
Safefree(grid->yg);
Safefree(grid);
EOC
pp_addxs (<<"EOC");
void
plFree2dGrid(pg)
PLcGrid2Ptr pg
PPCODE:
PLPTR_RECEIVE_IN(PLcGrid2, grid, pg)
plFree2dGrid(grid->xg, grid->nx, grid->ny);
plFree2dGrid(grid->yg, grid->nx, grid->ny);
free(grid);
EOC
EOPM
pp_addxs (<<"EOC");
void
plGetCursor ()
PPCODE:
PLGraphicsIn gin;
if (plGetCursor (&gin)) {
EXTEND (SP, 24);
PUSHs (sv_2mortal (newSVpv ("type", 0)));
PUSHs (sv_2mortal (newSViv ((IV) gin.type)));
SV* line_widths_rv
SV* symbol_colors_rv
SV* symbol_scales_rv
SV* symbol_numbers_rv
SV* symbols_rv
PPCODE:
int i;
double p_legend_width;
double p_legend_height;
int opt_array[nlegend];
int text_colors[nlegend];
pp_addxs (<<"EOC");
int
plspal0 (filename)
char* filename
PPCODE:
plspal0((const char *)filename);
EOC
pp_add_exported ('plspal0');
#----------------------------------------------------------------------------
pp_addxs (<<"EOC");
int
plspal1 (filename, interpolate)
char* filename
int interpolate
PPCODE:
plspal1((const char *)filename, (PLBOOL)interpolate);
EOC
pp_add_exported ('plspal1');
pp_addpm (<<'EOPM');
pp_addxs (<<"EOC");
void
plbtime (ctime)
double ctime
PPCODE:
PLINT year;
PLINT month;
PLINT day;
PLINT hour;
PLINT min;
int month
int day
int hour
int min
double sec
PPCODE:
c_plconfigtime((PLFLT) scale, (PLFLT) offset1, (PLFLT) offset2,
(PLINT) ccontrol, (PLBOOL) ifbtime_offset, (PLINT) year,
(PLINT) month, (PLINT) day, (PLINT) hour, (PLINT) min, (PLFLT) sec);
EOC
pp_add_exported ('plconfigtime');
int month
int day
int hour
int min
double sec
PPCODE:
PLFLT ctime;
c_plctime(year, month, day, hour, min, sec, &ctime);
EXTEND (SP, 1);
PUSHs (sv_2mortal (newSVnv (ctime)));
EOC
pp_addxs (<<"EOC");
void
pltimefmt(fmt)
char *fmt
PPCODE:
c_pltimefmt((const char *)fmt);
EOC
pp_add_exported ('pltimefmt');
pp_addpm (<<'EOPM');
pp_addxs (<<"EOC");
void
plsesc (esc)
SV* esc
PPCODE:
char *esc_c;
esc_c = (char *)SvPV_nolen(esc);
c_plsesc((char)*esc_c);
EOC
view all matches for this distribution
view release on metacpan or search on metacpan
PREINIT:
int dsetCount = 0;
char ** datasetNames; /* Array of dataset names */
char ** datasetPtr; /* temp pointer to datasetNames */
int i; /* Index variable */
PPCODE:
/* Get the number of datasets */
H5Giterate(groupID, groupName, NULL, incIfDset, &dsetCount);
if( dsetCount > 0){ /* Datasets found */
PREINIT:
int groupCount = 0;
char ** groupNames; /* Array of group names */
char ** groupPtr; /* temp pointer to groupnames */
int i; /* Index variable */
PPCODE:
/* Get the number of datasets */
H5Giterate(groupID, groupName, NULL, incIfGroup, &groupCount);
if( groupCount > 0){ /* Groups found */
view all matches for this distribution
view release on metacpan or search on metacpan
OUTPUT:
RETVAL
void
dump_bitmap(PDL::IO::Image self, int target_bpp=0)
PPCODE:
{
SV *bmp_sv, *pal_sv;
unsigned char *bmp = NULL, *pal = NULL;
unsigned w, h, bpp, cu, it, sz, szp, szl, y, i;
FIBITMAP *newdib = NULL, *b = NULL;
OUTPUT:
RETVAL
void
format_list(SV *class)
PPCODE:
{
int i;
for(i = 0; i < FreeImage_GetFIFCount(); i++) {
if(FreeImage_IsPluginEnabled((FREE_IMAGE_FORMAT)i)) {
const char *f = FreeImage_GetFormatFromFIF((FREE_IMAGE_FORMAT)i);
OUTPUT:
RETVAL
void
set_dots_per_meter_x(PDL::IO::Image self, unsigned res)
PPCODE:
FreeImage_SetDotsPerMeterX(self->dib, res);
XPUSHs(ST(0)); /* return self */
unsigned
get_dots_per_meter_y(PDL::IO::Image self)
OUTPUT:
RETVAL
void
set_dots_per_meter_y(PDL::IO::Image self, unsigned res)
PPCODE:
FreeImage_SetDotsPerMeterY(self->dib, res);
XPUSHs(ST(0)); /* return self */
const char*
get_color_type(PDL::IO::Image self)
OUTPUT:
RETVAL
void
set_transparent_index(PDL::IO::Image self, int index)
PPCODE:
FreeImage_SetTransparentIndex(self->dib, index);
XPUSHs(ST(0)); /* return self */
void
flip_horizontal(PDL::IO::Image self)
PPCODE:
if(!FreeImage_FlipHorizontal(self->dib)) {
warn("FreeImage_FlipHorizontal failed");
}
XPUSHs(ST(0)); /* return self */
void
flip_vertical(PDL::IO::Image self)
PPCODE:
if(!FreeImage_FlipVertical(self->dib)) {
warn("FreeImage_FlipVertical failed");
}
XPUSHs(ST(0)); /* return self */
void
convert_image_type(PDL::IO::Image self, SV * dst_image_type, int scale_linear=1)
PPCODE:
{
FREE_IMAGE_TYPE fit = _sv2fit(dst_image_type);
if (fit == FIT_UNKNOWN) {
warn("invalid dst_image_type");
}
XPUSHs(ST(0)); /* return self */
}
void
adjust_colors(PDL::IO::Image self, double brightness=0, double contrast=0, double gamma=0, int invert=0)
PPCODE:
if(!FreeImage_AdjustColors(self->dib, brightness, contrast, gamma, invert)) {
warn("FreeImage_AdjustColors failed");
}
XPUSHs(ST(0)); /* return self */
void
tone_mapping(PDL::IO::Image self, int tmo, double p1=0, double p2=0)
PPCODE:
if (tmo == FITMO_DRAGO03 || tmo == FITMO_REINHARD05 || tmo == FITMO_FATTAL02) {
FIBITMAP *newdib = FreeImage_ToneMapping(self->dib, tmo, p1, p2);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
}
XPUSHs(ST(0)); /* return self */
void
rotate(PDL::IO::Image self, double angle, ...)
PPCODE:
{
FIBITMAP *newdib = NULL;
unsigned bpp = FreeImage_GetBPP(self->dib);
FREE_IMAGE_TYPE fit = FreeImage_GetImageType(self->dib);
XPUSHs(ST(0)); /* return self */
}
void
color_dither(PDL::IO::Image self, int algorithm=FID_FS)
PPCODE:
{
FIBITMAP *newdib = FreeImage_Dither(self->dib, algorithm);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_threshhold(PDL::IO::Image self, unsigned threshold=127)
PPCODE:
{
FIBITMAP *newdib = FreeImage_Threshold(self->dib, (BYTE)threshold);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_quantize(PDL::IO::Image self, int quantize=FIQ_WUQUANT)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ColorQuantize(self->dib, quantize);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_to_4bpp(PDL::IO::Image self)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ConvertTo4Bits(self->dib);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_to_8bpp(PDL::IO::Image self)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ConvertTo8Bits(self->dib);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_to_8bpp_grey(PDL::IO::Image self)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ConvertToGreyscale(self->dib);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_to_16bpp_555(PDL::IO::Image self)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ConvertTo16Bits555(self->dib);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_to_16bpp_565(PDL::IO::Image self)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ConvertTo16Bits565(self->dib);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_to_24bpp(PDL::IO::Image self)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ConvertTo24Bits(self->dib);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
color_to_32bpp(PDL::IO::Image self)
PPCODE:
{
FIBITMAP *newdib = FreeImage_ConvertTo32Bits(self->dib);
if (newdib) {
if (self->dib) FreeImage_Unload(self->dib);
self->dib = newdib;
XPUSHs(ST(0)); /* return self */
}
void
rescale(PDL::IO::Image self, int dst_width=0, int dst_height=0, int filter=FILTER_CATMULLROM)
PPCODE:
{
if (dst_height<=0 && dst_width>0) {
double ratio = (double)dst_width / (double)FreeImage_GetWidth(self->dib);
dst_height = (int)floor(0.5 + ratio * (double)FreeImage_GetHeight(self->dib));
}
XPUSHs(ST(0)); /* return self */
}
void
rescale_pct(PDL::IO::Image self, double dst_width_pct=0, double dst_height_pct=0, int filter=FILTER_CATMULLROM)
PPCODE:
{
int dst_height = (int)floor(0.5 + (double)FreeImage_GetHeight(self->dib) * dst_height_pct / 100.0);
int dst_width = (int)floor(0.5 + (double)FreeImage_GetWidth(self->dib) * dst_width_pct / 100.0);
if (dst_height<=0 && dst_width>0) {
XPUSHs(ST(0)); /* return self */
}
void
save(PDL::IO::Image self, SV * destination, SV * f=NULL, int flags=0);
PPCODE:
{
if (self->dib) {
FIMEMORY *hmem = NULL;
BYTE *mem_buffer = NULL;
DWORD size_in_bytes = 0;
view all matches for this distribution
view release on metacpan or search on metacpan
void
get_library_version()
INIT:
int major,minor,release;
PPCODE:
Mat_GetLibraryVersion(&major, &minor, &release);
XPUSHs(sv_2mortal(newSVnv(major)));
XPUSHs(sv_2mortal(newSVnv(minor)));
XPUSHs(sv_2mortal(newSVnv(release)));
void
_convert_next_matvar_to_pdl(matfp,onedr)
mat_t * matfp
int onedr
PPCODE:
pdl * retpdl;
matvar_t * matvar;
retpdl = convert_next_matvar_to_pdl(matfp, &matvar, onedr);
SV * s = sv_newmortal();
SV * p = sv_newmortal();
# LocalWords: iopts undef wvarname wvarnum elsif ver cpan
# LocalWords: matvar varname foreach printdata Lapeyre qq
# LocalWords: jlapeyre Hulbert addhdr stdlib addxs RETVAL
# LocalWords: ACC RDONLY RDWR matname hdr str CreateVer
# LocalWords: matfp retval GetVersion fprintf stderr vers
# LocalWords: VarReadDataAll INIT PPCODE XPUSHs sv feof
# LocalWords: GetLibraryVersion newSVnv filehandle fp EOF
# LocalWords: newmortal SetSV namekey varbasew exobj todo
# LocalWords: hardcoded retpdl setpv VarFree disa
view all matches for this distribution
view release on metacpan or search on metacpan
SV* varids
SV* datatypes
SV* strlen
int idx
SV* values
PPCODE:
int i;
int dt;
int varid;
char c_elem;
int ncid
SV* varids
SV* datatypes
SV* strlen
int idx
PPCODE:
int i;
int dt;
int varid;
char c_elem;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/PDL/PP.pm view on Meta::CPAN
my $preamble = @preinit ? qq[\n PREINIT:@{[join "\n ", "", @preinit]}\n INPUT:\n] : '';
join '', qq[
\nvoid
pdl_run_$name(@{[join ', ', @xsargs]})$svdecls
$preamble@{[join "\n ", "", @inputdecls]}
PPCODE:
], map "$_\n", $argcode;
}),
# globalnew implies internal usage, not XS
PDL::PP::Rule::Returns->new("VarArgsXSReturn","GlobalNew",undef),
view all matches for this distribution