perl
view release on metacpan or search on metacpan
=cut
Trying to select a version that gives no warnings...
*/
#if !(defined(STMT_START) && defined(STMT_END))
# define STMT_START do
# define STMT_END while (0)
#endif
#ifndef BYTEORDER /* Should never happen -- byteorder is in config.h */
# define BYTEORDER 0x1234
#endif
/*
=for apidoc_section $genconfig
=for apidoc Amn#||ASCIIish
A preprocessor symbol that is defined iff the system is an ASCII platform; this
symbol would not be defined on C<L</EBCDIC>> platforms.
=cut
*/
#if 'A' == 65 && 'I' == 73 && 'J' == 74 && 'Z' == 90
# define ASCIIish
#else
# undef ASCIIish
#endif
/*
* The following contortions are brought to you on behalf of all the
* standards, semi-standards, de facto standards, not-so-de-facto standards
* of the world, as well as all the other botches anyone ever thought of.
* The basic theory is that if we work hard enough here, the rest of the
* code can be a lot prettier. Well, so much for theory. Sorry, Henry...
*/
/* define this once if either system, instead of cluttering up the src */
#if defined(WIN32)
#define DOSISH 1
#endif
/* These exist only for back-compat with XS modules. */
#ifndef PERL_CORE
#define VOL volatile
#define CAN_PROTOTYPE
#define _(args) args
#define I_LIMITS
#define I_STDARG
#define STANDARD_C
#endif
/* Don't compile 'code' if PERL_MEM_LOG is defined. This is used for
* constructs that don't play well when PERL_MEM_LOG is active, so that they
* automatically don't get compiled without having to use extra #ifdef's */
#ifndef PERL_MEM_LOG
# define UNLESS_PERL_MEM_LOG(code) code
#else
# define UNLESS_PERL_MEM_LOG(code)
#endif
/* By compiling a perl with -DNO_TAINT_SUPPORT or -DSILENT_NO_TAINT_SUPPORT,
* you get a perl without taint support, but doubtlessly with a lesser
* degree of support. Do not do so unless you know exactly what it means
* technically, have a good reason to do so, and know exactly how the
* perl will be used. perls with -DSILENT_NO_TAINT_SUPPORT are considered
* a potential security risk due to flat out ignoring the security-relevant
* taint flags. This being said, a perl without taint support compiled in
* has marginal run-time performance benefits.
* SILENT_NO_TAINT_SUPPORT implies NO_TAINT_SUPPORT.
* SILENT_NO_TAINT_SUPPORT is the same as NO_TAINT_SUPPORT except it
* silently ignores -t/-T instead of throwing an exception.
*
* DANGER! Using NO_TAINT_SUPPORT or SILENT_NO_TAINT_SUPPORT
* voids your nonexistent warranty!
*/
#if defined(SILENT_NO_TAINT_SUPPORT) && !defined(NO_TAINT_SUPPORT)
# define NO_TAINT_SUPPORT 1
#endif
/* NO_TAINT_SUPPORT can be set to transform virtually all taint-related
* operations into no-ops for a very modest speed-up. Enable only if you
* know what you're doing: tests and CPAN modules' tests are bound to fail.
*/
#ifdef NO_TAINT_SUPPORT
# define TAINT NOOP
# define TAINT_NOT NOOP
# define TAINT_IF(c) NOOP
# define TAINT_ENV() NOOP
# define TAINT_PROPER(s) NOOP
# define TAINT_set(s) NOOP
# define TAINT_get 0
# define TAINTING_get 0
# define TAINTING_set(s) NOOP
# define TAINT_WARN_get 0
# define TAINT_WARN_set(s) NOOP
#else
/*
=for apidoc_section $tainting
=for apidoc Cmn|void|TAINT
If we aren't in taint checking mode, do nothing;
otherwise indicate to L</C<TAINT_set>> and L</C<TAINT_PROPER>> that some
unspecified element is tainted.
=for apidoc Cmn|void|TAINT_NOT
Remove any taintedness previously set by, I<e.g.>, C<TAINT>.
=for apidoc Cm|void|TAINT_IF|bool c
If C<c> evaluates to true, call L</C<TAINT>> to indicate that something is
tainted; otherwise do nothing.
=for apidoc Cm|void|TAINT_ENV
Looks at several components of L<C<%ENV>|perlvar/%ENV> for taintedness, and
calls L</C<taint_proper>> if any are tainted. The components it searches are
things like C<$PATH>.
=for apidoc Cm|void|TAINT_PROPER|const char * s
If no element is tainted, do nothing;
otherwise output a message (containing C<s>) that indicates there is a
tainting violation. If such violations are fatal, it croaks.
( run in 1.123 second using v1.01-cache-2.11-cpan-4e7a2411597 )