# define MYSWAP
#endif
-/* Cannot include embed.h here on Win32 as win32.h has not
+/* Cannot include embed.h here on Win32 as win32.h has not
yet been included and defines some config variables e.g. HAVE_INTERP_INTERN
*/
#if !defined(PERL_FOR_X2P) && !(defined(WIN32)||defined(VMS))
#define DEBUG_TOP_FLAG 0x80000000 /* XXX what's this for ??? */
+# define DEBUG_p_TEST_ (PL_debug & DEBUG_p_FLAG)
+# define DEBUG_s_TEST_ (PL_debug & DEBUG_s_FLAG)
+# define DEBUG_l_TEST_ (PL_debug & DEBUG_l_FLAG)
+# define DEBUG_t_TEST_ (PL_debug & DEBUG_t_FLAG)
+# define DEBUG_o_TEST_ (PL_debug & DEBUG_o_FLAG)
+# define DEBUG_c_TEST_ (PL_debug & DEBUG_c_FLAG)
+# define DEBUG_P_TEST_ (PL_debug & DEBUG_P_FLAG)
+# define DEBUG_m_TEST_ (PL_debug & DEBUG_m_FLAG)
+# define DEBUG_f_TEST_ (PL_debug & DEBUG_f_FLAG)
+# define DEBUG_r_TEST_ (PL_debug & DEBUG_r_FLAG)
+# define DEBUG_x_TEST_ (PL_debug & DEBUG_x_FLAG)
+# define DEBUG_u_TEST_ (PL_debug & DEBUG_u_FLAG)
+# define DEBUG_L_TEST_ (PL_debug & DEBUG_L_FLAG)
+# define DEBUG_H_TEST_ (PL_debug & DEBUG_H_FLAG)
+# define DEBUG_X_TEST_ (PL_debug & DEBUG_X_FLAG)
+# define DEBUG_D_TEST_ (PL_debug & DEBUG_D_FLAG)
+# define DEBUG_S_TEST_ (PL_debug & DEBUG_S_FLAG)
+# define DEBUG_T_TEST_ (PL_debug & DEBUG_T_FLAG)
+# define DEBUG_R_TEST_ (PL_debug & DEBUG_R_FLAG)
+
#ifdef DEBUGGING
# undef YYDEBUG
# define YYDEBUG 1
-# define DEBUG_p_TEST (PL_debug & DEBUG_p_FLAG)
-# define DEBUG_s_TEST (PL_debug & DEBUG_s_FLAG)
-# define DEBUG_l_TEST (PL_debug & DEBUG_l_FLAG)
-# define DEBUG_t_TEST (PL_debug & DEBUG_t_FLAG)
-# define DEBUG_o_TEST (PL_debug & DEBUG_o_FLAG)
-# define DEBUG_c_TEST (PL_debug & DEBUG_c_FLAG)
-# define DEBUG_P_TEST (PL_debug & DEBUG_P_FLAG)
-# define DEBUG_m_TEST (PL_debug & DEBUG_m_FLAG)
-# define DEBUG_f_TEST (PL_debug & DEBUG_f_FLAG)
-# define DEBUG_r_TEST (PL_debug & DEBUG_r_FLAG)
-# define DEBUG_x_TEST (PL_debug & DEBUG_x_FLAG)
-# define DEBUG_u_TEST (PL_debug & DEBUG_u_FLAG)
-# define DEBUG_L_TEST (PL_debug & DEBUG_L_FLAG)
-# define DEBUG_H_TEST (PL_debug & DEBUG_H_FLAG)
-# define DEBUG_X_TEST (PL_debug & DEBUG_X_FLAG)
-# define DEBUG_D_TEST (PL_debug & DEBUG_D_FLAG)
-# define DEBUG_S_TEST (PL_debug & DEBUG_S_FLAG)
-# define DEBUG_T_TEST (PL_debug & DEBUG_T_FLAG)
-# define DEBUG_R_TEST (PL_debug & DEBUG_R_FLAG)
+# define DEBUG_p_TEST DEBUG_p_TEST_
+# define DEBUG_s_TEST DEBUG_s_TEST_
+# define DEBUG_l_TEST DEBUG_l_TEST_
+# define DEBUG_t_TEST DEBUG_t_TEST_
+# define DEBUG_o_TEST DEBUG_o_TEST_
+# define DEBUG_c_TEST DEBUG_c_TEST_
+# define DEBUG_P_TEST DEBUG_P_TEST_
+# define DEBUG_m_TEST DEBUG_m_TEST_
+# define DEBUG_f_TEST DEBUG_f_TEST_
+# define DEBUG_r_TEST DEBUG_r_TEST_
+# define DEBUG_x_TEST DEBUG_x_TEST_
+# define DEBUG_u_TEST DEBUG_u_TEST_
+# define DEBUG_L_TEST DEBUG_L_TEST_
+# define DEBUG_H_TEST DEBUG_H_TEST_
+# define DEBUG_X_TEST DEBUG_X_TEST_
+# define DEBUG_D_TEST DEBUG_D_TEST_
+# define DEBUG_S_TEST DEBUG_S_TEST_
+# define DEBUG_T_TEST DEBUG_T_TEST_
+# define DEBUG_R_TEST DEBUG_R_TEST_
# define DEB(a) a
# define DEBUG(a) if (PL_debug) a
#endif /* DEBUGGING */
-/* These constants should be used in preference to to raw characters
+/* These constants should be used in preference to raw characters
* when using magic. Note that some perl guts still assume
* certain character properties of these constants, namely that
* isUPPER() and toLOWER() may do useful mappings.
#define RsPARA(sv) (SvPOK(sv) && ! SvCUR(sv))
#define RsRECORD(sv) (SvROK(sv) && (SvIV(SvRV(sv)) > 0))
+#ifdef DEBUGGING
+/* A struct for keeping various DEBUGGING related stuff
+ * neatly packed. Currently only scratch variables for
+ * constructing debug output are included. */
+struct perl_debug_pad {
+ SV pad[3];
+};
+
+#define PERL_DEBUG_PAD(i) &(PL_debug_pad.pad[i])
+#define PERL_DEBUG_PAD_ZERO(i) (sv_setpvn(PERL_DEBUG_PAD(i), "", 0), PERL_DEBUG_PAD(i))
+#endif
+
/* Enable variables which are pointers to functions */
typedef void (CPERLscope(*peep_t))(pTHX_ OP* o);
typedef regexp*(CPERLscope(*regcomp_t)) (pTHX_ char* exp, char* xend, PMOP* pm);