PageRenderTime 18ms CodeModel.GetById 15ms app.highlight 0ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Lib/perl5/perlhead.swg

#
Unknown | 102 lines | 87 code | 15 blank | 0 comment | 0 complexity | cee58e8532363af56758d1a327d57902 MD5 | raw file
  1#ifdef __cplusplus
  2/* Needed on some windows machines---since MS plays funny games with the header files under C++ */
  3#include <math.h>
  4#include <stdlib.h>
  5extern "C" {
  6#endif
  7#include "EXTERN.h"
  8#include "perl.h"
  9#include "XSUB.h"
 10
 11/* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
 12
 13/* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
 14#ifndef PERL_REVISION
 15#  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
 16#    define PERL_PATCHLEVEL_H_IMPLICIT
 17#    include <patchlevel.h>
 18#  endif
 19#  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
 20#    include <could_not_find_Perl_patchlevel.h>
 21#  endif
 22#  ifndef PERL_REVISION
 23#    define PERL_REVISION       (5)
 24#    define PERL_VERSION        PATCHLEVEL
 25#    define PERL_SUBVERSION     SUBVERSION
 26#  endif
 27#endif
 28
 29#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
 30#define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
 31#endif
 32
 33#ifndef SvIOK_UV
 34# define SvIOK_UV(sv)       (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
 35#endif
 36
 37#ifndef SvUOK
 38# define SvUOK(sv)           SvIOK_UV(sv)
 39#endif
 40
 41#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
 42#  define PL_sv_undef               sv_undef
 43#  define PL_na	                    na
 44#  define PL_errgv                  errgv
 45#  define PL_sv_no                  sv_no
 46#  define PL_sv_yes                 sv_yes
 47#  define PL_markstack_ptr          markstack_ptr
 48#endif
 49
 50#ifndef IVSIZE
 51#  ifdef LONGSIZE
 52#    define IVSIZE LONGSIZE
 53#  else
 54#    define IVSIZE 4 /* A bold guess, but the best we can make. */
 55#  endif
 56#endif
 57
 58#ifndef INT2PTR
 59#  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
 60#    define PTRV                  UV
 61#    define INT2PTR(any,d)        (any)(d)
 62#  else
 63#    if PTRSIZE == LONGSIZE
 64#      define PTRV                unsigned long
 65#    else
 66#      define PTRV                unsigned
 67#    endif
 68#    define INT2PTR(any,d)        (any)(PTRV)(d)
 69#  endif
 70
 71#  define NUM2PTR(any,d)  (any)(PTRV)(d)
 72#  define PTR2IV(p)       INT2PTR(IV,p)
 73#  define PTR2UV(p)       INT2PTR(UV,p)
 74#  define PTR2NV(p)       NUM2PTR(NV,p)
 75
 76#  if PTRSIZE == LONGSIZE
 77#    define PTR2ul(p)     (unsigned long)(p)
 78#  else
 79#    define PTR2ul(p)     INT2PTR(unsigned long,p)
 80#  endif
 81#endif /* !INT2PTR */
 82
 83#ifndef SvPV_nolen
 84# define SvPV_nolen(x) SvPV(x,PL_na)
 85#endif
 86
 87#ifndef get_sv
 88#  define get_sv perl_get_sv
 89#endif
 90
 91#ifndef ERRSV
 92#  define ERRSV get_sv("@",FALSE)
 93#endif
 94
 95#ifndef pTHX_
 96#define pTHX_
 97#endif   
 98
 99#include <string.h>
100#ifdef __cplusplus
101}
102#endif