You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.6 KiB
102 lines
2.6 KiB
#ifdef __cplusplus |
|
/* Needed on some windows machines---since MS plays funny games with the header files under C++ */ |
|
#include <math.h> |
|
#include <stdlib.h> |
|
extern "C" { |
|
#endif |
|
#include "EXTERN.h" |
|
#include "perl.h" |
|
#include "XSUB.h" |
|
|
|
/* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */ |
|
|
|
/* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */ |
|
#ifndef PERL_REVISION |
|
# if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION)) |
|
# define PERL_PATCHLEVEL_H_IMPLICIT |
|
# include <patchlevel.h> |
|
# endif |
|
# if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL))) |
|
# include <could_not_find_Perl_patchlevel.h> |
|
# endif |
|
# ifndef PERL_REVISION |
|
# define PERL_REVISION (5) |
|
# define PERL_VERSION PATCHLEVEL |
|
# define PERL_SUBVERSION SUBVERSION |
|
# endif |
|
#endif |
|
|
|
#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE) |
|
#define PerlIO_exportFILE(fh,fl) (FILE*)(fh) |
|
#endif |
|
|
|
#ifndef SvIOK_UV |
|
# define SvIOK_UV(sv) (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv))) |
|
#endif |
|
|
|
#ifndef SvUOK |
|
# define SvUOK(sv) SvIOK_UV(sv) |
|
#endif |
|
|
|
#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5))) |
|
# define PL_sv_undef sv_undef |
|
# define PL_na na |
|
# define PL_errgv errgv |
|
# define PL_sv_no sv_no |
|
# define PL_sv_yes sv_yes |
|
# define PL_markstack_ptr markstack_ptr |
|
#endif |
|
|
|
#ifndef IVSIZE |
|
# ifdef LONGSIZE |
|
# define IVSIZE LONGSIZE |
|
# else |
|
# define IVSIZE 4 /* A bold guess, but the best we can make. */ |
|
# endif |
|
#endif |
|
|
|
#ifndef INT2PTR |
|
# if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE) |
|
# define PTRV UV |
|
# define INT2PTR(any,d) (any)(d) |
|
# else |
|
# if PTRSIZE == LONGSIZE |
|
# define PTRV unsigned long |
|
# else |
|
# define PTRV unsigned |
|
# endif |
|
# define INT2PTR(any,d) (any)(PTRV)(d) |
|
# endif |
|
|
|
# define NUM2PTR(any,d) (any)(PTRV)(d) |
|
# define PTR2IV(p) INT2PTR(IV,p) |
|
# define PTR2UV(p) INT2PTR(UV,p) |
|
# define PTR2NV(p) NUM2PTR(NV,p) |
|
|
|
# if PTRSIZE == LONGSIZE |
|
# define PTR2ul(p) (unsigned long)(p) |
|
# else |
|
# define PTR2ul(p) INT2PTR(unsigned long,p) |
|
# endif |
|
#endif /* !INT2PTR */ |
|
|
|
#ifndef SvPV_nolen |
|
# define SvPV_nolen(x) SvPV(x,PL_na) |
|
#endif |
|
|
|
#ifndef get_sv |
|
# define get_sv perl_get_sv |
|
#endif |
|
|
|
#ifndef ERRSV |
|
# define ERRSV get_sv("@",FALSE) |
|
#endif |
|
|
|
#ifndef pTHX_ |
|
#define pTHX_ |
|
#endif |
|
|
|
#include <string.h> |
|
#ifdef __cplusplus |
|
} |
|
#endif
|
|
|