#ifdef PERL_IMPLICIT_CONTEXT
# ifdef USE_5005THREADS
struct perl_thread;
-# define pTHX register struct perl_thread *thr
+# define pTHX register struct perl_thread *thr PERL_UNUSED_DECL
# define aTHX thr
# define dTHR dNOOP /* only backward compatibility */
# define dTHXa(a) pTHX = (struct perl_thread*)a
# ifndef MULTIPLICITY
# define MULTIPLICITY
# endif
-# define pTHX register PerlInterpreter *my_perl
+# define pTHX register PerlInterpreter *my_perl PERL_UNUSED_DECL
# define aTHX my_perl
# define dTHXa(a) pTHX = (PerlInterpreter*)a
# endif
# define pTHX_4 4
#endif
-#ifndef pTHXo
+/* these are only defined for compatibility; should not be used internally */
+#if !defined(pTHXo) && !defined(PERL_CORE)
# define pTHXo pTHX
# define pTHXo_ pTHX_
# define aTHXo aTHX
# endif
#endif
+#ifndef Nullformat
+# ifdef CHECK_FORMAT
+# define Nullformat "%s",""
+# else
+# define Nullformat Nullch
+# endif
+#endif
+
/* Some unistd.h's give a prototype for pause() even though
HAS_PAUSE ends up undefined. This causes the #define
below to be rejected by the compiler. Sigh.
#define HINT_FILETEST_ACCESS 0x00400000
#define HINT_UTF8 0x00800000
-/* Various states of an input record separator SV (rs, nrs) */
+/* Various states of the input record separator SV (rs) */
#define RsSNARF(sv) (! SvOK(sv))
#define RsSIMPLE(sv) (SvOK(sv) && (! SvPOK(sv) || SvCUR(sv)))
#define RsPARA(sv) (SvPOK(sv) && ! SvCUR(sv))
#define GROK_NUMERIC_RADIX(sp, send) grok_numeric_radix(sp, send)
+/* Input flags: */
+#define PERL_SCAN_ALLOW_UNDERSCORES 0x01 /* grok_??? accept _ in numbers */
+#define PERL_SCAN_DISALLOW_PREFIX 0x02 /* grok_??? reject 0x in hex etc */
+/* Output flags: */
+#define PERL_SCAN_GREATER_THAN_UV_MAX 0x02 /* should this merge with above? */
+
/* to let user control profiling */
#ifdef PERL_GPROF_CONTROL
extern void moncontrol(int);