#include "handy.h"
-#ifdef USE_64_BITS
-# define USE_64_BIT_FILES
-#endif
-
-#if defined(USE_64_BIT_FILES) || defined(USE_LARGE_FILES)
-# define USE_64_BIT_OFFSETS /* Explicit */
+#if defined(USE_LARGE_FILES)
+# define USE_64_BIT_RAWIO /* Explicit */
# define USE_64_BIT_STDIO
#endif
-#if LSEEKSIZE == 8 && !defined(USE_64_BIT_OFFSETS)
-# define USE_64_BIT_OFFSETS /* Implicit */
+#if LSEEKSIZE == 8 && !defined(USE_64_BIT_RAWIO)
+# define USE_64_BIT_RAWIO /* Implicit */
#endif
/* Do we need FSEEKSIZE? */
#define USE_FREOPEN64
#endif
-#ifdef USE_64_BIT_OFFSETS
+#ifdef USE_64_BIT_RAWIO
# ifdef HAS_OFF64_T
# undef Off_t
# define Off_t off64_t
# endif
/* Most 64-bit environments have defines like _LARGEFILE_SOURCE that
* will trigger defines like the ones below. Some 64-bit environments,
- * however, do not. */
+ * however, do not. Therefore we have to explicitly mix and match. */
# if defined(USE_OPEN64)
# define open open64
# endif
# endif
#endif
+#ifdef IV_IS_QUAD
+# define UVuf PERL_PRIu64
+# define IVdf PERL_PRId64
+# define UVof PERL_PRIo64
+# define UVxf PERL_PRIx64
+#else
+# if LONGSIZE == 4
+# define UVuf "lu"
+# define IVdf "ld"
+# define UVof "lo"
+# define UVxf "lx"
+# else
+ /* Any good ideas? */
+# endif
+#endif
+
/* Used with UV/IV arguments: */
/* XXXX: need to speed it up */
#define CLUMP_2UV(iv) ((iv) < 0 ? 0 : (UV)(iv))
#endif
#ifndef Perl_debug_log
-#define Perl_debug_log PerlIO_stderr()
+# define Perl_debug_log PerlIO_stderr()
+#endif
+
+#ifndef Perl_error_log
+# define Perl_error_log (PL_stderrgv \
+ ? IoOFP(GvIOp(PL_stderrgv)) \
+ : PerlIO_stderr())
#endif
#ifdef DEBUGGING