perl

 view release on metacpan or  search on metacpan

perl.h  view on Meta::CPAN

=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 )