__);
#define DOM_GC_TRACE(...)
// HACK: sv_derived_from_pvn faster than sv_derived_from
#if PERL_BCDVERSION > 0x5015004
#undef sv_derived_from
#define sv_derived_from(sv, name) sv_derived_from_pvn(
me, len) sv_derived_from(sv, name)
#endif
// HACK: support older perl <5.6 (why not :D)
#if PERL_BCDVERSION < 0x5006000
#define SvUTF8(x) (0)
#define SvUTF8_on(x)
#define SvUTF8_off(x)
#endif
#de
v_t csv;
int result;
#if (PERL_BCDVERSION >= 0x5008000)
SV *ors = PL_ors_sv;
#endif
SetupCsv (&csv, hv, self);
csv.useIO = useIO;
#if (PERL_BCDVERSION >= 0x5008000)
if (*csv.eol
PRINT)
(void)hook (aTHX_ hv, "before_print", av);
result = Combine (&csv, io, av);
#if (PERL_BCDVERSION >= 0x5008000)
PL_ors_sv = ors;
#endif
if (result && !useIO && csv.utf8)
sv_utf8_up
AX_TYPE U64TYPE
#else
#define INT_MAX_TYPE I32TYPE
#define UINT_MAX_TYPE U32TYPE
#endif
#if PERL_BCDVERSION >= 0x5008005
# define psx_looks_like_number(sv) looks_like_number(sv)
#else
# define psx_lo
if (i == 0) {
if (!SvOK(buffers)) { /* Turn plain "my $buf" into array ref. */
#if PERL_BCDVERSION >= 0x5035004
sv_setrv_noinc(buffers, (SV*)newAV());
#else
sv_upgrade(bu
fndef CvGV_set
#define CvGV_set(cv, gv) (CvGV(cv) = (gv))
#endif
/* general utility */
#if PERL_BCDVERSION >= 0x5008005
#define LooksLikeNumber(x) looks_like_number(x)
#else
#define LooksLikeNumber(
ean (YAML *self, SV *value)
CODE:
(void)RETVAL;
if (SvPOK(value)) {
#if (PERL_BCDVERSION >= 0x5008009)
if (strEQ(SvPVX(value), "JSON::PP")) {
self->boolean =
}
croak("throw_error() did not throw the error (%"SVf")", message);
}
}
#if (PERL_BCDVERSION < 0x5014000)
/* workaround Perl-RT #69939 */
I32
typetiny_call_sv_safe(pTHX_ SV* const sv,
EQUIRE) && true_enabled(aTHX_ filename);
if (!enabled) {
goto done;
}
#if (PERL_BCDVERSION < 0x5024000)
/*
* on perl < 5.24, forcibly return true regardless of whether or no
\
} while (0)
#define THI_INVALIDATE_ITERATORS ++SvIVX(THIS->serial)
#if PERL_BCDVERSION < 0x5010000
# define HAS_OP_DOR 0
# define MY_OP_DOR OP_OR
#else
# define HAS_OP_DOR 1
#
OD(SCALAR);
PPCODE:
THI_DEBUG_METHOD;
THI_CHECK_OBJECT;
#if defined(hv_scalar) && PERL_BCDVERSION < 0x5025003
ST(0) = hv_scalar(THIS->hv);
#else
ST(0) = sv_newmortal();
if (HvFI
XPUSHs(val);
}
PUTBACK;
oldop = PL_op;
PL_op = (OP *) &myop;
#if PERL_BCDVERSION < 0x5006000
PL_ppaddr[PL_op->op_type](ARGS);
#else
PL_ppaddr[PL_op->op_type](aT
}
croak("throw_error() did not throw the error (%"SVf")", message);
}
}
#if (PERL_BCDVERSION < 0x5014000)
/* workaround Perl-RT #69939 */
I32
mouse_call_sv_safe(pTHX_ SV* const sv, I32
e "XSUB.h"
#define NEED_PL_parser
#include "ppport.h"
/* this should go into ppport */
#if PERL_BCDVERSION >= 0x5009005
#define PL_oldbufptr D_PPP_my_PL_parser_var(oldbufptr)
#endif
#if PERL_REVISI
ock_start conflicts with the perl API function exposed in 5.21.6. */
#undef block_start
#if PERL_BCDVERSION >= 0x5013006
STATIC void
block_start (pTHX_ int full) {
PERL_UNUSED_VAR (full);
if (SvLE
SABLE
UV
setup (class, f_class)
SV *class
char *f_class
PREINIT:
userdata_t *ud;
#if PERL_BCDVERSION >= 0x5013006
static BHK bhk;
#endif
INIT:
Newx (ud, 1, userdata_t);
ud->class = newS
){
warn("ignore unrecognized attribute :%"SVf"\n", ST(i));
}
#if PERL_BCDVERSION < 0x5008009
/* See RT #53420 */
{
const char* const
need
* to sometimes force PERL_USE_SAFE_PUTENV mode.
*/
#ifndef PERL_USE_SAFE_PUTENV
# if PERL_BCDVERSION >= 0x5009004 && defined(USE_ITHREADS) && defined(PERL_TRACK_MEMPOOL)
# define USE_SAFE_PUT
UB.h>
#define NEED_sv_2pv_flags 1
#include "ppport.h"
#if PERL_BCDVERSION >= 0x5006000
# include "multicall.h"
#endif
#if PERL_BCDVERSION < 0x5023008
# define UNUSED_VAR_newsp PERL_UNUSED_VAR(new
#endif
#include "ppport.h"
/* Perl 5.19.4 changed array indices from I32 to SSize_t */
#if PERL_BCDVERSION >= 0x5019004
#define AV_SIZE_MAX SSize_t_MAX
#else
#define AV_SIZE_MAX I32_MAX
#endif
#und
9962
*/
# if PERL_BCDVERSION >= 0x5009004 && defined(USE_ITHREADS) && defined(PERL_TRACK_MEMPOOL)
# define USE_SAFE_PUTENV 1
# elif PERL_BCDVERSION >= 0x5008000 && PERL_BCDVERSION < 0x5019006
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
#if PERL_BCDVERSION < 0x5010001
typedef unsigned Optype;
#endif /* <5.10.1 */
#ifndef wrap_op_checker
# define wrap_op_ch
h"
#ifndef HvNAMELEN_get
#define HvNAMELEN_get(stash) strlen(HvNAME_get(stash))
#endif
#if PERL_BCDVERSION < 0x5010000
#define HF_USE_TIE TRUE
#endif
#define PACKAGE "Hash::FieldHash"
#ifdef HF_US
h>
#include <perl.h>
#include <XSUB.h>
#define NEED_sv_2pv_flags 1
#include "ppport.h"
#if PERL_BCDVERSION >= 0x5006000
# include "multicall.h"
#endif
#ifndef CvISXSUB
# define CvISXSUB(cv) CvXSU
herefore platforms like win32, VMS etc have problems
so we redefine it here -- GMB
*/
#if PERL_BCDVERSION < 0x5007000
/* Not in 5.6.1. */
# ifdef cxinc
# undef cxinc
# endif
# define cxinc()
);
if(SvAMAGIC(sv) && (tempsv = AMG_CALLun(sv, numer))) {
sv = tempsv;
}
#if PERL_BCDVERSION < 0x5008005
if(SvPOK(sv) || SvPOKp(sv)) {
RETVAL = looks_like_number(sv);
}
12];
sprintf(nsec_str, "%.9f", fabs(sec - (int)sec));
nsec = atoi(nsec_str+2);
#if (PERL_BCDVERSION >= 0x5011001)
buf = my_gnu_strftime(aTHX_ SvPV_nolen(fmt), (int)sec, min, hour, mday, m
erate optimized entersubs for the accessors defined in XS/Array.xs and XS/Hash.xs.
*/
#if (PERL_BCDVERSION >= 0x5010000)
#define CXA_ENABLE_ENTERSUB_OPTIMIZATION
#endif
#ifdef CXA_ENABLE_ENTERSUB_O
/* free */
#if (PERL_BCDVERSION >= 0x5008000)
,0 /* copy */
,0 /* dup */
#if (PERL_BCDVERSION >= 0x5008009)
,0