git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7710 626c5289-ae23-0410-ae9c-e8d60b6d4f22
97 lines
2 KiB
Text
97 lines
2 KiB
Text
%insert(runtime) %{
|
|
|
|
#include <EXTERN.h>
|
|
#include <perl.h>
|
|
#include <XSUB.h>
|
|
|
|
#ifndef pTHX_
|
|
#define pTHX_
|
|
#endif
|
|
|
|
#include <string.h>
|
|
|
|
/* Macro to call an XS function */
|
|
|
|
#ifdef PERL_OBJECT
|
|
# define SWIG_CALLXS(_name) _name(cv,pPerl)
|
|
#else
|
|
# ifndef MULTIPLICITY
|
|
# define SWIG_CALLXS(_name) _name(cv)
|
|
# else
|
|
# define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv)
|
|
# endif
|
|
#endif
|
|
|
|
/* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */
|
|
|
|
#ifdef PERL_OBJECT
|
|
#define MAGIC_PPERL CPerlObj *pPerl = (CPerlObj *) this;
|
|
typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
typedef int (CPerlObj::*SwigMagicFuncHack)(SV *, MAGIC *);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
|
|
#define SWIGCLASS_STATIC
|
|
#else
|
|
#define MAGIC_PPERL
|
|
#define SWIGCLASS_STATIC static SWIGUNUSED
|
|
#ifndef MULTIPLICITY
|
|
#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
|
|
typedef int (*SwigMagicFunc)(SV *, MAGIC *);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
typedef int (*SwigMagicFuncHack)(SV *, MAGIC *);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
#else
|
|
#define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
|
|
typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
typedef int (*SwigMagicFuncHack)(struct interpreter *, SV *, MAGIC *);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
|
|
#define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
|
|
#endif
|
|
|
|
/* Modifications for newer Perl 5.005 releases */
|
|
|
|
#if !defined(PERL_REVISION) || ((PERL_REVISION >= 5) && ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 50))))
|
|
# ifndef PL_sv_yes
|
|
# define PL_sv_yes sv_yes
|
|
# endif
|
|
# ifndef PL_sv_undef
|
|
# define PL_sv_undef sv_undef
|
|
# endif
|
|
# ifndef PL_na
|
|
# define PL_na na
|
|
# endif
|
|
#endif
|
|
|
|
#include <stdlib.h>
|
|
|
|
%}
|
|
|
|
|
|
%runtime "swigrun.swg" // Common C API type-checking code
|
|
%runtime "perlrun.swg" // Perl runtime functions
|
|
%runtime "noembed.h" // undefine Perl5 macros
|
|
|