/*
----------------------------------------------------------------------
- ppport.h -- Perl/Pollution/Portability Version 3.07
+ ppport.h -- Perl/Pollution/Portability Version 3.06_01
Automatically created by Devel::PPPort running under
- perl 5.008006 on Wed Jan 18 07:00:54 2006.
+ perl 5.008008 on Thu Feb 2 18:31:22 2006.
Do NOT edit this file directly! -- Edit PPPort_pm.PL and the
includes in parts/inc/ instead.
=head1 NAME
-ppport.h - Perl/Pollution/Portability version 3.07
+ppport.h - Perl/Pollution/Portability version 3.06_01
=head1 SYNOPSIS
--nochanges don't suggest changes
--nofilter don't filter input files
- --strip strip all script and doc functionality from
- ppport.h (this, obviously, cannot be undone)
-
--list-provided list provided API
--list-unsupported list unsupported API
--api-info=name show Perl API portability information
Perl version. The default is to check for compatibility with Perl
version 5.003. You can use this option to reduce the output
of F<ppport.h> if you intend to be backward compatible only
-down to a certain Perl version.
+up to a certain Perl version.
=head2 --cplusplus
Don't filter the list of input files. By default, files not looking
like source code (i.e. not *.xs, *.c, *.cc, *.cpp or *.h) are skipped.
-=head2 --strip
-
-Strip all script and documentation functionality from F<ppport.h>.
-This reduces the size of F<ppport.h> dramatically and may be useful
-if you want to include F<ppport.h> in smaller modules without
-increasing their distribution size too much.
-
=head2 --list-provided
Lists the API elements for which compatibility is provided by
=item *
-If you use one of a few functions or variables that were not present in
-earlier versions of Perl, and that can't be provided using a macro, you
-have to explicitly request support for these functions by adding one or
+If you use one of a few functions that were not present in earlier
+versions of Perl, and that can't be provided using a macro, you have
+to explicitly request support for these functions by adding one or
more C<#define>s in your source code before the inclusion of F<ppport.h>.
-These functions or variables will be marked C<explicit> in the list shown
-by C<--list-provided>.
+These functions will be marked C<explicit> in the list shown by
+C<--list-provided>.
Depending on whether you module has a single or multiple files that
-use such functions or variables, you want either C<static> or global
-variants.
+use such functions, you want either C<static> or global variants.
-For a C<static> function or variable (used only in a single source
-file), use:
+For a C<static> function, use:
#define NEED_function
- #define NEED_variable
-For a global function or variable (used in multiple source files),
-use:
+For a global function, use:
#define NEED_function_GLOBAL
- #define NEED_variable_GLOBAL
-Note that you mustn't have more than one global request for the
-same function or variable in your project.
+Note that you mustn't have more than one global request for one
+function in your project.
- Function / Variable Static Request Global Request
+ Function Static Request Global Request
-----------------------------------------------------------------------------------------
- PL_signals NEED_PL_signals NEED_PL_signals_GLOBAL
eval_pv() NEED_eval_pv NEED_eval_pv_GLOBAL
grok_bin() NEED_grok_bin NEED_grok_bin_GLOBAL
grok_hex() NEED_grok_hex NEED_grok_hex_GLOBAL
vnewSVpvf() NEED_vnewSVpvf NEED_vnewSVpvf_GLOBAL
To avoid namespace conflicts, you can change the namespace of the
-explicitly exported functions / variables using the C<DPPP_NAMESPACE>
-macro. Just C<#define> the macro before including C<ppport.h>:
+explicitly exported functions using the C<DPPP_NAMESPACE> macro.
+Just C<#define> the macro before including C<ppport.h>:
#define DPPP_NAMESPACE MyOwnNamespace_
#include "ppport.h"
=head1 COPYRIGHT
-Version 3.x, Copyright (c) 2004-2006, Marcus Holland-Moritz.
+Version 3.x, Copyright (c) 2004-2005, Marcus Holland-Moritz.
Version 2.x, Copyright (C) 2001, Paul Marquess.
changes => 1,
cplusplus => 0,
filter => 1,
- strip => 0,
);
my($ppport) = $0 =~ /([\w.]+)$/;
eval {
require Getopt::Long;
Getopt::Long::GetOptions(\%opt, qw(
- help quiet diag! filter! hints! changes! cplusplus strip
+ help quiet diag! filter! hints! changes! cplusplus
patch=s copy=s diff=s compat-version=s
list-provided list-unsupported api-info=s
)) or usage();
}
usage() if $opt{help};
-strip() if $opt{strip};
if (exists $opt{'compat-version'}) {
my($r,$v,$s) = eval { parse_version($opt{'compat-version'}) };
ERRSV|5.004050||p
EXTEND|||
EXTERN_C|5.005000||p
-F0convert|||n
FREETMPS|||
GIMME_V||5.004000|n
GIMME|||n
LEAVE|||
LVRET|||
MARK|||
-MULTICALL||5.009003|
MY_CXT_CLONE|5.009002||p
MY_CXT_INIT|5.007003||p
MY_CXT|5.007003||p
NVef|5.006001||p
NVff|5.006001||p
NVgf|5.006001||p
-Newxc|5.009003||p
-Newxz|5.009003||p
-Newx|5.009003||p
+Newc|||
+Newz|||
+New|||
Nullav|||
Nullch|||
Nullcv|||
PERL_SCAN_SILENT_ILLDIGIT|5.008001||p
PERL_SHORT_MAX|5.004000||p
PERL_SHORT_MIN|5.004000||p
-PERL_SIGNALS_UNSAFE_FLAG|5.008001||p
PERL_SUBVERSION|5.006000||p
PERL_UCHAR_MAX|5.004000||p
PERL_UCHAR_MIN|5.004000||p
PL_rsfp_filters|5.004050||p
PL_rsfp|5.004050||p
PL_rs|||n
-PL_signals|5.008001||p
PL_stack_base|5.004050||p
PL_stack_sp|5.004050||p
PL_stdingv|5.004050||p
PL_sv_yes|5.004050||pn
PL_tainted|5.004050||p
PL_tainting|5.004050||p
-POP_MULTICALL||5.009003|
POPi|||n
POPl|||n
POPn|||n
PTR2ul|5.007001||p
PTRV|5.006000||p
PUSHMARK|||
-PUSH_MULTICALL||5.009003|
PUSHi|||
PUSHmortal|5.009002||p
PUSHn|||
SvLEN_set|||
SvLEN|||
SvLOCK||5.007003|
-SvMAGIC_set|5.009003||p
+SvMAGIC_set||5.009003|
SvNIOK_off|||
SvNIOKp|||
SvNIOK|||
SvPOK_on|||
SvPOKp|||
SvPOK|||
-SvPVX_const|5.009003||p
-SvPVX_mutable|5.009003||p
SvPVX|||
SvPV_force_nomg|5.007002||p
SvPV_force|||
SvROK_off|||
SvROK_on|||
SvROK|||
-SvRV_set|5.009003||p
+SvRV_set||5.009003|
SvRV|||
SvSETMAGIC|||
SvSHARE||5.007003|
-SvSTASH_set|5.009003|5.009003|p
+SvSTASH_set||5.009003|
SvSTASH|||
SvSetMagicSV_nosteal||5.004000|
SvSetMagicSV||5.004000|
SvUVXx|5.004000||p
SvUVX|5.004000||p
SvUV_nomg|5.009001||p
-SvUV_set|5.009003||p
+SvUV_set||5.009003|
SvUVx|5.004000||p
SvUV|5.004000||p
SvVOK||5.008001|
XSRETURN_UNDEF|||
XSRETURN_UV|5.008001||p
XSRETURN_YES|||
-XSRETURN|||p
+XSRETURN|||
XST_mIV|||
XST_mNO|||
XST_mNV|||
XST_mYES|||
XS_VERSION_BOOTCHECK|||
XS_VERSION|||
-XSprePUSH|5.006000||p
XS|||
ZeroD|5.009002||p
Zero|||
add_data|||
allocmy|||
amagic_call|||
-amagic_cmp_locale|||
-amagic_cmp|||
-amagic_i_ncmp|||
-amagic_ncmp|||
any_dup|||
ao|||
append_elem|||
apply_attrs_string||5.006001|
apply_attrs|||
apply|||
+asIV|||
+asUV|||
atfork_lock||5.007003|n
atfork_unlock||5.007003|n
av_arylen_p||5.009003|
cast_iv||5.006000|
cast_ulong||5.006000|
cast_uv||5.006000|
-check_type_and_open|||
check_uni|||
checkcomma|||
checkposixcc|||
ck_rfun|||
ck_rvconst|||
ck_sassign|||
-ck_say|||
ck_select|||
ck_shift|||
ck_sort|||
ck_svconst|||
ck_trunc|||
ck_unpack|||
-ckwarn_d||5.009003|
-ckwarn||5.009003|
cl_and|||
cl_anything|||
cl_init_zero|||
cr_textfilter|||
croak_nocontext|||vn
croak|||v
-csighandler||5.009003|n
+csighandler||5.007001|n
custom_op_desc||5.007003|
custom_op_name||5.007003|
cv_ckproto|||
cx_dump||5.005000|
cx_dup|||
cxinc|||
-dAXMARK|5.009003||p
+dAXMARK||5.009003|
dAX|5.007002||p
dITEMS|5.007002||p
dMARK|||
-dMULTICALL||5.009003|
dMY_CXT_SV|5.007003||p
dMY_CXT|5.007003||p
dNOOP|5.006000||p
debstackptrs||5.007003|
debstack||5.007003|
deb||5.007003|v
+del_he|||
del_sv|||
delimcpy||5.004000|
+depcom|||
deprecate_old|||
deprecate|||
despatch_signals||5.007001|
-destroy_matcher|||
die_nocontext|||vn
die_where|||
die|||v
do_seek|||
do_semop|||
do_shmio|||
-do_smartmatch|||
do_spawn_nowait|||
do_spawn|||
do_sprintf|||
doopen_pm|||
doparseform|||
dopoptoeval|||
-dopoptogiven|||
dopoptolabel|||
dopoptoloop|||
dopoptosub_at|||
dopoptosub|||
-dopoptowhen|||
-doref||5.009003|
dounwind|||
dowantarray|||
dump_all||5.006000|
dump_mstats|||
dump_packsubs||5.006000|
dump_sub||5.006000|
-dump_sv_child|||
dump_vindent||5.006000|
dumpuntil|||
dup_attrlist|||
fbm_compile||5.005000|
fbm_instr||5.005000|
fd_on_nosuid_fs|||
-feature_is_enabled|||
filter_add|||
filter_del|||
filter_gets|||
find_rundefsvoffset||5.009002|
find_script|||
find_uninit_var|||
-first_symbol|||n
fold_constants|||
forbid_setid|||
force_ident|||
gv_AVadd|||
gv_HVadd|||
gv_IOadd|||
-gv_SVadd|||
gv_autoload4||5.004000|
gv_check|||
-gv_const_sv||5.009003|
gv_dump||5.006000|
gv_efullname3||5.004000|
gv_efullname4||5.006001|
gv_handler||5.007001|
gv_init_sv|||
gv_init|||
+gv_share|||
gv_stashpvn|5.006000||p
gv_stashpv|||
gv_stashsv|||
hsplit|||
hv_assert||5.009001|
hv_auxinit|||
-hv_backreferences_p|||
hv_clear_placeholders||5.009001|
hv_clear|||
hv_delayfree_ent||5.004000|
hv_iternextsv|||
hv_iternext|||
hv_iterval|||
-hv_kill_backrefs|||
hv_ksplit||5.004000|
hv_magic_check|||
hv_magic|||
ibcmp|||
incl_perldb|||
incline|||
-incpush_if_exists|||
incpush|||
ingroup|||
init_argv_symbols|||
is_utf8_char_slow|||
is_utf8_char||5.006000|
is_utf8_cntrl||5.006000|
-is_utf8_common|||
is_utf8_digit||5.006000|
is_utf8_graph||5.006000|
is_utf8_idcont||5.008000|
load_module_nocontext|||vn
load_module||5.006000|v
localize|||
-looks_like_bool|||
looks_like_number|||
lop|||
mPUSHi|5.009002||p
magic_sizepack|||
magic_wipepack|||
magicname|||
-make_matcher|||
make_trie|||
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
-matcher_matches_sv|||
measure_struct|||
memEQ|5.004000||p
memNE|5.004000||p
my_betohs|||n
my_bzero|||n
my_chsize|||
-my_clearenv|||
-my_cxt_init|||
my_exit_jump|||
my_exit|||
my_failure_exit||5.004000|
my_popen||5.004000|
my_setenv|||
my_socketpair||5.007003|n
-my_sprintf||5.009003|vn
my_stat|||
my_strftime||5.007002|
my_swabn|||n
my_swap|||
my_unexec|||
my|||
-need_utf8|||n
newANONATTRSUB||5.006000|
newANONHASH|||
newANONLIST|||
newDEFSVOP|||
newFORM|||
newFOROP|||
-newGIVENOP||5.009003|
-newGIVWHENOP|||
newGVOP|||
newGVREF|||
newGVgen|||
newSVuv|5.006000||p
newSV|||
newUNOP|||
-newWHENOP||5.009003|
newWHILEOP||5.009003|
newXSproto||5.006000|
newXS||5.006000|
nothreadhook||5.008000|
nuke_stacks|||
num_overflow|||n
-offer_nice_chunk|||
oopsAV|||
oopsCV|||
oopsHV|||
reentrant_init|||
reentrant_retry|||vn
reentrant_size|||
-ref_array_or_hash|||
refkids|||
refto|||
-ref||5.009003|
+ref|||
reg_node|||
reganode|||
regatom|||
regbranch|||
regclass_swash||5.007003|
regclass|||
+regcp_set_to|||
regcppop|||
regcppush|||
regcurly|||
report_uninit|||
require_errno|||
require_pv||5.006000|
-restore_magic|||
rninstr|||
rsignal_restore|||
rsignal_save|||
rsignal_state||5.004000|
rsignal||5.004000|
run_body|||
-run_user_filter|||
runops_debug||5.005000|
runops_standard||5.005000|
rvpv_dup|||
scan_word|||
scope|||
screaminstr||5.005000|
-seed||5.008001|
-sequence_num|||
-sequence|||
+seed|||
set_context||5.006000|n
set_csh|||
set_numeric_local||5.006000|
setdefout|||
setenv_getix|||
share_hek_flags|||
-share_hek||5.004000|
+share_hek|||
si_dup|||
sighandler|||n
simplify_sort|||
skipspace|||
-sortcv_stacked|||
-sortcv_xsub|||
-sortcv|||
-sortsv_flags||5.009003|
sortsv||5.007003|
ss_dup|||
stack_grow|||
strLT|||
strNE|||
str_to_version||5.006000|
-stringify_regexp|||
-strip_return|||
strnEQ|||
strnNE|||
study_chunk|||
sv_catpvf_nocontext|||vn
sv_catpvf||5.004000|v
sv_catpvn_flags||5.007002|
-sv_catpvn_mg|5.004050||p
+sv_catpvn_mg|5.006000||p
sv_catpvn_nomg|5.007002||p
sv_catpvn|||
sv_catpv|||
sv_catsv_flags||5.007002|
-sv_catsv_mg|5.004050||p
+sv_catsv_mg|5.006000||p
sv_catsv_nomg|5.007002||p
sv_catsv|||
sv_chop|||
sv_dump|||
sv_dup|||
sv_eq|||
-sv_exp_grow|||
sv_force_normal_flags||5.007001|
sv_force_normal||5.006000|
sv_free2|||
sv_free|||
sv_gets||5.004000|
sv_grow|||
-sv_i_ncmp|||
sv_inc|||
sv_insert|||
sv_isa|||
sv_isobject|||
sv_iv||5.005000|
-sv_kill_backrefs|||
sv_len_utf8||5.006000|
sv_len|||
sv_magicext||5.007003|
sv_magic|||
sv_mortalcopy|||
-sv_ncmp|||
sv_newmortal|||
sv_newref|||
sv_nolocking||5.007003|
svtype|||
swallow_bom|||
swash_fetch||5.007002|
-swash_get|||
swash_init||5.006000|
sys_intern_clear|||
sys_intern_dup|||
to_utf8_substr|||
to_utf8_title||5.007003|
to_utf8_upper||5.007003|
-tokenize_use|||
tokeq|||
tokereport|||
too_few_arguments|||
too_many_arguments|||
-uiv_2buf|||n
unlnk|||
unpack_rec|||
unpack_str||5.007003|
unshare_hek_or_pvn|||
unshare_hek|||
unsharepvn||5.004000|
-unwind_handler_stack|||
upg_version||5.009000|
usage|||
+utf16_textfilter|||
utf16_to_utf8_reversed||5.006001|
utf16_to_utf8||5.006001|
+utf16rev_textfilter|||
utf8_distance||5.006000|
utf8_hop||5.006000|
utf8_length||5.007001|
utf8_to_bytes||5.006001|
utf8_to_uvchr||5.007001|
utf8_to_uvuni||5.007001|
-utf8n_to_uvchr|||
+utf8n_to_uvchr||5.007001|
utf8n_to_uvuni||5.007001|
utilize|||
uvchr_to_utf8_flags||5.007003|
-uvchr_to_utf8|||
+uvchr_to_utf8||5.007001|
uvuni_to_utf8_flags||5.007003|
uvuni_to_utf8||5.007001|
validate_suid|||
vcmp||5.009000|
vcroak||5.006000|
vdeb||5.007003|
-vdie_common|||
-vdie_croak_common|||
vdie|||
vform||5.006000|
visit|||
vnormal||5.009002|
vnumify||5.009000|
vstringify||5.009000|
-vverify||5.009003|
vwarner||5.006000|
vwarn||5.006000|
wait4pid|||
warn|||v
watch|||
whichsig|||
-write_no_mem|||
write_to_stderr|||
yyerror|||
yylex|||
exit 2;
}
-sub strip
-{
- my $self = do { local(@ARGV,$/)=($0); <> };
- $self =~ s/^$HS+Do NOT edit.*?(?=^-)//ms;
- $self =~ s/^SKIP.*(?=^__DATA__)/SKIP
-if (\@ARGV && \$ARGV[0] eq '--unstrip') {
- eval { require Devel::PPPort };
- \$@ and die "Cannot require Devel::PPPort, please install.\\n";
- Devel::PPPort::WriteFile(\$0);
- exit 0;
-}
-print <<END;
-
-Sorry, but this is a stripped version of \$0.
-
-To be able to use its original script and doc functionality,
-please try to regenerate this file using:
-
- \$^X \$0 --unstrip
-
-END
-/ms;
-
- open OUT, ">$0" or die "cannot strip $0: $!\n";
- print OUT $self;
-
- exit 0;
-}
-
__DATA__
*/
#ifndef UVSIZE
# define UVSIZE IVSIZE
#endif
+
#ifndef sv_setuv
-# define sv_setuv(sv, uv) \
- STMT_START { \
- UV TeMpUv = uv; \
- if (TeMpUv <= IV_MAX) \
- sv_setiv(sv, TeMpUv); \
- else \
- sv_setnv(sv, (double)TeMpUv); \
- } STMT_END
+# define sv_setuv(sv, uv) \
+ STMT_START { \
+ UV TeMpUv = uv; \
+ if (TeMpUv <= IV_MAX) \
+ sv_setiv(sv, TeMpUv); \
+ else \
+ sv_setnv(sv, (double)TeMpUv); \
+ } STMT_END
#endif
+
#ifndef newSVuv
-# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))
+# define newSVuv(uv) ((uv) <= IV_MAX ? newSViv((IV)uv) : newSVnv((NV)uv))
#endif
#ifndef sv_2uv
# define sv_2uv(sv) ((PL_Sv = (sv)), (UV) (SvNOK(PL_Sv) ? SvNV(PL_Sv) : sv_2nv(PL_Sv)))
# define XPUSHu(u) STMT_START { sv_setuv(TARG, (UV)(u)); XPUSHTARG; } STMT_END
#endif
-#ifdef HAS_MEMCMP
-#ifndef memNE
-# define memNE(s1,s2,l) (memcmp(s1,s2,l))
-#endif
-
-#ifndef memEQ
-# define memEQ(s1,s2,l) (!memcmp(s1,s2,l))
-#endif
-
-#else
-#ifndef memNE
-# define memNE(s1,s2,l) (bcmp(s1,s2,l))
-#endif
-
-#ifndef memEQ
-# define memEQ(s1,s2,l) (!bcmp(s1,s2,l))
-#endif
-
-#endif
-#ifndef MoveD
-# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t))
-#endif
-
-#ifndef CopyD
-# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
-#endif
-
-#ifdef HAS_MEMSET
-#ifndef ZeroD
-# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t))
-#endif
-
-#else
-#ifndef ZeroD
-# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)), d)
-#endif
-
-#endif
-#ifndef Poison
-# define Poison(d,n,t) (void)memset((char*)(d), 0xAB, (n) * sizeof(t))
-#endif
-#ifndef Newx
-# define Newx(v,n,t) New(0,v,n,t)
-#endif
-
-#ifndef Newxc
-# define Newxc(v,n,t,c) Newc(0,v,n,t,c)
-#endif
-
-#ifndef Newxz
-# define Newxz(v,n,t) Newz(0,v,n,t)
-#endif
-
-#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
+#if (PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5))
/* Replace: 1 */
# define PL_DBsingle DBsingle
# define PL_DBsub DBsub
#endif
/* Replace: 0 */
-#ifndef dUNDERBAR
-# define dUNDERBAR dNOOP
+
+#ifdef HAS_MEMCMP
+#ifndef memNE
+# define memNE(s1,s2,l) (memcmp(s1,s2,l))
#endif
-#ifndef UNDERBAR
-# define UNDERBAR DEFSV
+#ifndef memEQ
+# define memEQ(s1,s2,l) (!memcmp(s1,s2,l))
#endif
-#ifndef dAX
-# define dAX I32 ax = MARK - PL_stack_base + 1
+
+#else
+#ifndef memNE
+# define memNE(s1,s2,l) (bcmp(s1,s2,l))
#endif
-#ifndef dITEMS
-# define dITEMS I32 items = SP - MARK
+#ifndef memEQ
+# define memEQ(s1,s2,l) (!bcmp(s1,s2,l))
#endif
-#ifndef dXSTARG
-# define dXSTARG SV * targ = sv_newmortal()
+
#endif
-#ifndef dAXMARK
-# define dAXMARK I32 ax = POPMARK; \
- register SV ** const mark = PL_stack_base + ax++
+#ifndef MoveD
+# define MoveD(s,d,n,t) memmove((char*)(d),(char*)(s), (n) * sizeof(t))
#endif
-#ifndef XSprePUSH
-# define XSprePUSH (sp = PL_stack_base + ax - 1)
+
+#ifndef CopyD
+# define CopyD(s,d,n,t) memcpy((char*)(d),(char*)(s), (n) * sizeof(t))
#endif
-#if ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 0)))
-# undef XSRETURN
-# define XSRETURN(off) \
- STMT_START { \
- PL_stack_sp = PL_stack_base + ax + ((off) - 1); \
- return; \
- } STMT_END
+#ifdef HAS_MEMSET
+#ifndef ZeroD
+# define ZeroD(d,n,t) memzero((char*)(d), (n) * sizeof(t))
#endif
-#ifndef PERL_SIGNALS_UNSAFE_FLAG
+#else
+#ifndef ZeroD
+# define ZeroD(d,n,t) ((void)memzero((char*)(d), (n) * sizeof(t)),d)
+#endif
-#define PERL_SIGNALS_UNSAFE_FLAG 0x0001
+#endif
+#ifndef Poison
+# define Poison(d,n,t) (void)memset((char*)(d), 0xAB, (n) * sizeof(t))
+#endif
+#ifndef dUNDERBAR
+# define dUNDERBAR dNOOP
+#endif
-#if defined(NEED_PL_signals)
-static U32 DPPP_(my_PL_signals) = PERL_SIGNALS_UNSAFE_FLAG;
-#elif defined(NEED_PL_signals_GLOBAL)
-U32 DPPP_(my_PL_signals) = PERL_SIGNALS_UNSAFE_FLAG;
-#else
-extern U32 DPPP_(my_PL_signals);
+#ifndef UNDERBAR
+# define UNDERBAR DEFSV
+#endif
+#ifndef dAX
+# define dAX I32 ax = MARK - PL_stack_base + 1
#endif
-#define PL_signals DPPP_(my_PL_signals)
+#ifndef dITEMS
+# define dITEMS I32 items = SP - MARK
+#endif
+#ifndef dXSTARG
+# define dXSTARG SV * targ = sv_newmortal()
#endif
#ifndef dTHR
# define dTHR dNOOP
* case below uses it to declare the data as static. */
#define START_MY_CXT
-#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 68)))
+#if (PERL_VERSION < 4 || (PERL_VERSION == 4 && PERL_SUBVERSION < 68 ))
/* Fetches the SV that keeps the per-interpreter data. */
#define dMY_CXT_SV \
SV *my_cxt_sv = get_sv(MY_CXT_KEY, FALSE)
#ifndef sv_pvn_force
# define sv_pvn_force(sv, len) SvPV_force(sv, len)
#endif
-#ifndef SvMAGIC_set
-# define SvMAGIC_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
- (((XPVMG*) SvANY(sv))->xmg_magic = (val)); } STMT_END
-#endif
-
-#if ((PERL_VERSION < 9) || ((PERL_VERSION == 9) && (PERL_SUBVERSION < 3)))
-#ifndef SvPVX_const
-# define SvPVX_const(sv) ((const char*) (0 + SvPVX(sv)))
-#endif
-
-#ifndef SvPVX_mutable
-# define SvPVX_mutable(sv) (0 + SvPVX(sv))
-#endif
-#ifndef SvRV_set
-# define SvRV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_RV); \
- (((XRV*) SvANY(sv))->xrv_rv = (val)); } STMT_END
-#endif
-
-#else
-#ifndef SvPVX_const
-# define SvPVX_const(sv) ((const char*)((sv)->sv_u.svu_pv))
-#endif
-
-#ifndef SvPVX_mutable
-# define SvPVX_mutable(sv) ((sv)->sv_u.svu_pv)
-#endif
-#ifndef SvRV_set
-# define SvRV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_RV); \
- ((sv)->sv_u.svu_rv = (val)); } STMT_END
-#endif
-
-#endif
-#ifndef SvSTASH_set
-# define SvSTASH_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) >= SVt_PVMG); \
- (((XPVMG*) SvANY(sv))->xmg_stash = (val)); } STMT_END
-#endif
-
-#if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 0)))
-#ifndef SvUV_set
-# define SvUV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
- (((XPVIV*) SvANY(sv))->xiv_iv = (IV) (val)); } STMT_END
-#endif
-
-#else
-#ifndef SvUV_set
-# define SvUV_set(sv, val) \
- STMT_START { assert(SvTYPE(sv) == SVt_IV || SvTYPE(sv) >= SVt_PVIV); \
- (((XPVUV*) SvANY(sv))->xuv_uv = (val)); } STMT_END
-#endif
-
-#endif
#if ((PERL_VERSION > 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION >= 0))) && !defined(vnewSVpvf)
#if defined(NEED_vnewSVpvf)
return TRUE;
}
}
-#endif
+#endif /* PERL_VERSION */
#endif /* USE_LOCALE_NUMERIC */
/* always try "." if numeric radix didn't match because
* we may have data from different locales mixed */