#if PERL_VERSION_LT(5,15,4)
# define ISA_VERSION_OBJ(v) (sv_isobject(v) && sv_derived_from(v,"version"))
#else
# define ISA_VERSION_OBJ(v) (sv_isobject(v) && sv_derived_from_pvn(v,"version",7,0))
#endif
#if PERL_VERSION_GE(5,9,0) && !defined(PERL_CORE)
# define VUTIL_REPLACE_CORE 1
static
const
char
* Perl_scan_version2(pTHX_
const
char
*s, SV *rv,
bool
qv);
static
SV * Perl_new_version2(pTHX_ SV *ver);
static
SV * Perl_upg_version2(pTHX_ SV *sv,
bool
qv);
static
SV * Perl_vstringify2(pTHX_ SV *vs);
static
SV * Perl_vverify2(pTHX_ SV *vs);
static
SV * Perl_vnumify2(pTHX_ SV *vs);
static
SV * Perl_vnormal2(pTHX_ SV *vs);
static
SV * Perl_vstringify2(pTHX_ SV *vs);
static
int
Perl_vcmp2(pTHX_ SV *lsv, SV *rsv);
static
const
char
* Perl_prescan_version2(pTHX_
const
char
*s,
bool
strict,
const
char
** errstr,
bool
*sqv,
int
*ssaw_decimal,
int
*swidth,
bool
*salpha);
# define SCAN_VERSION(a,b,c) Perl_scan_version2(aTHX_ a,b,c)
# define NEW_VERSION(a) Perl_new_version2(aTHX_ a)
# define UPG_VERSION(a,b) Perl_upg_version2(aTHX_ a, b)
# define VSTRINGIFY(a) Perl_vstringify2(aTHX_ a)
# define VVERIFY(a) Perl_vverify2(aTHX_ a)
# define VNUMIFY(a) Perl_vnumify2(aTHX_ a)
# define VNORMAL(a) Perl_vnormal2(aTHX_ a)
# define VCMP(a,b) Perl_vcmp2(aTHX_ a,b)
# define PRESCAN_VERSION(a,b,c,d,e,f,g) Perl_prescan_version2(aTHX_ a,b,c,d,e,f,g)
# undef is_LAX_VERSION
# define is_LAX_VERSION(a,b) \
(a != Perl_prescan_version2(aTHX_ a, FALSE, b, NULL, NULL, NULL, NULL))
# undef is_STRICT_VERSION
# define is_STRICT_VERSION(a,b) \
(a != Perl_prescan_version2(aTHX_ a, TRUE, b, NULL, NULL, NULL, NULL))
#else
const
char
* Perl_scan_version(pTHX_
const
char
*s, SV *rv,
bool
qv);
SV * Perl_new_version(pTHX_ SV *ver);
SV * Perl_upg_version(pTHX_ SV *sv,
bool
qv);
SV * Perl_vverify(pTHX_ SV *vs);
SV * Perl_vnumify(pTHX_ SV *vs);
SV * Perl_vnormal(pTHX_ SV *vs);
SV * Perl_vstringify(pTHX_ SV *vs);
int
Perl_vcmp(pTHX_ SV *lsv, SV *rsv);
const
char
* Perl_prescan_version(pTHX_
const
char
*s,
bool
strict,
const
char
** errstr,
bool
*sqv,
int
*ssaw_decimal,
int
*swidth,
bool
*salpha);
# define SCAN_VERSION(a,b,c) Perl_scan_version(aTHX_ a,b,c)
# define NEW_VERSION(a) Perl_new_version(aTHX_ a)
# define UPG_VERSION(a,b) Perl_upg_version(aTHX_ a, b)
# define VSTRINGIFY(a) Perl_vstringify(aTHX_ a)
# define VVERIFY(a) Perl_vverify(aTHX_ a)
# define VNUMIFY(a) Perl_vnumify(aTHX_ a)
# define VNORMAL(a) Perl_vnormal(aTHX_ a)
# define VCMP(a,b) Perl_vcmp(aTHX_ a,b)
# define PRESCAN_VERSION(a,b,c,d,e,f,g) Perl_prescan_version(aTHX_ a,b,c,d,e,f,g)
# ifndef is_LAX_VERSION
# define is_LAX_VERSION(a,b) \
(a != Perl_prescan_version(aTHX_ a, FALSE, b, NULL, NULL, NULL, NULL))
# endif
# ifndef is_STRICT_VERSION
# define is_STRICT_VERSION(a,b) \
(a != Perl_prescan_version(aTHX_ a, TRUE, b, NULL, NULL, NULL, NULL))
# endif
#endif
#if PERL_VERSION_LT(5,11,4)
# define BADVERSION(a,b,c) \
if
(b) { \
*b = c; \
} \
return
a;
# define PERL_ARGS_ASSERT_PRESCAN_VERSION \
assert
(s);
assert
(sqv);
assert
(ssaw_decimal);\
assert
(swidth);
assert
(salpha);
# define PERL_ARGS_ASSERT_SCAN_VERSION \
assert
(s);
assert
(rv)
# define PERL_ARGS_ASSERT_NEW_VERSION \
assert
(ver)
# define PERL_ARGS_ASSERT_UPG_VERSION \
assert
(ver)
# define PERL_ARGS_ASSERT_VVERIFY \
assert
(vs)
# define PERL_ARGS_ASSERT_VNUMIFY \
assert
(vs)
# define PERL_ARGS_ASSERT_VNORMAL \
assert
(vs)
# define PERL_ARGS_ASSERT_VSTRINGIFY \
assert
(vs)
# define PERL_ARGS_ASSERT_VCMP \
assert
(lhv);
assert
(rhv)
# define PERL_ARGS_ASSERT_CK_WARNER \
assert
(pat)
#endif