const declaration fixup
[p5sagit/p5-mst-13.2.git] / perl.h
diff --git a/perl.h b/perl.h
index 4436d1a..5c38aab 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -2173,6 +2173,7 @@ union any {
     I32                any_i32;
     IV         any_iv;
     long       any_long;
+    bool       any_bool;
     void       (*any_dptr) (void*);
     void       (*any_dxptr) (pTHX_ void*);
 };
@@ -2616,6 +2617,7 @@ Gid_t getegid (void);
 #define PERL_MAGIC_uvar_elem     'u' /* Reserved for use by extensions */
 #define PERL_MAGIC_vec           'v' /* vec() lvalue */
 #define PERL_MAGIC_vstring       'V' /* SV was vstring literal */
+#define PERL_MAGIC_utf8                  'w' /* Cached UTF-8 information */
 #define PERL_MAGIC_substr        'x' /* substr() lvalue */
 #define PERL_MAGIC_defelem       'y' /* Shadow "foreach" iterator variable /
                                        smart parameter vivification */
@@ -3204,23 +3206,26 @@ enum {          /* pass one of these to get_vtbl */
     want_vtbl_amagicelem,
     want_vtbl_regdata,
     want_vtbl_regdatum,
-    want_vtbl_backref
+    want_vtbl_backref,
+    want_vtbl_utf8
 };
 
                                /* Note: the lowest 8 bits are reserved for
                                   stuffing into op->op_private */
 #define HINT_PRIVATE_MASK      0x000000ff
-#define HINT_INTEGER           0x00000001
-#define HINT_STRICT_REFS       0x00000002
-#define HINT_LOCALE            0x00000004
-#define HINT_BYTES             0x00000008
+#define HINT_INTEGER           0x00000001 /* integer pragma */
+#define HINT_STRICT_REFS       0x00000002 /* strict pragma */
+#define HINT_LOCALE            0x00000004 /* locale pragma */
+#define HINT_BYTES             0x00000008 /* bytes pragma */
 /* #define HINT_notused10      0x00000010 */
                                /* Note: 20,40,80 used for NATIVE_HINTS */
+                               /* currently defined by vms/vmsish.h */
 
 #define HINT_BLOCK_SCOPE       0x00000100
-#define HINT_STRICT_SUBS       0x00000200
-#define HINT_STRICT_VARS       0x00000400
+#define HINT_STRICT_SUBS       0x00000200 /* strict pragma */
+#define HINT_STRICT_VARS       0x00000400 /* strict pragma */
 
+/* The HINT_NEW_* constants are used by the overload pragma */
 #define HINT_NEW_INTEGER       0x00001000
 #define HINT_NEW_FLOAT         0x00002000
 #define HINT_NEW_BINARY                0x00004000
@@ -3228,12 +3233,13 @@ enum {          /* pass one of these to get_vtbl */
 #define HINT_NEW_RE            0x00010000
 #define HINT_LOCALIZE_HH       0x00020000 /* %^H needs to be copied */
 
-#define HINT_RE_TAINT          0x00100000
-#define HINT_RE_EVAL           0x00200000
+#define HINT_RE_TAINT          0x00100000 /* re pragma */
+#define HINT_RE_EVAL           0x00200000 /* re pragma */
 
-#define HINT_FILETEST_ACCESS   0x00400000
-#define HINT_UTF8              0x00800000
+#define HINT_FILETEST_ACCESS   0x00400000 /* filetest pragma */
+#define HINT_UTF8              0x00800000 /* utf8 pragma */
 
+/* The following are stored in $sort::hints, not in PL_hints */
 #define HINT_SORT_SORT_BITS    0x000000FF /* allow 256 different ones */
 #define HINT_SORT_QUICKSORT    0x00000001
 #define HINT_SORT_MERGESORT    0x00000002
@@ -3499,6 +3505,10 @@ EXT MGVTBL PL_vtbl_backref =       {0,   0,
 EXT MGVTBL PL_vtbl_ovrld   =     {0,   0,
                                        0,      0,      MEMBER_TO_FPTR(Perl_magic_freeovrld)};
 
+EXT MGVTBL PL_vtbl_utf8 = {0,
+                               MEMBER_TO_FPTR(Perl_magic_setutf8),
+                                       0,      0,      0};
+
 #else /* !DOINIT */
 
 EXT MGVTBL PL_vtbl_sv;
@@ -3537,6 +3547,7 @@ EXT MGVTBL PL_vtbl_amagic;
 EXT MGVTBL PL_vtbl_amagicelem;
 
 EXT MGVTBL PL_vtbl_backref;
+EXT MGVTBL PL_vtbl_utf8;
 
 #endif /* !DOINIT */
 
@@ -3816,17 +3827,6 @@ typedef struct am_table_short AMTS;
 #   define Atoul(s)    Strtoul(s, (char **)NULL, 10)
 #endif
 
-#if !defined(PERLIO_IS_STDIO)
-/*
- * Remap printf
- */
-#undef printf
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__) && !defined(PERL_GCC_PEDANTIC)
-#define printf(fmt,args...) PerlIO_stdoutf(fmt,##args)
-#else
-#define printf PerlIO_stdoutf
-#endif
-#endif
 
 /* if these never got defined, they need defaults */
 #ifndef PERL_SET_CONTEXT
@@ -4167,6 +4167,8 @@ extern void moncontrol(int);
 #  define PIPESOCK_MODE
 #endif
 
+#define PERL_MAGIC_UTF8_CACHESIZE      2
+
 /* and finally... */
 #define PERL_PATCHLEVEL_H_IMPLICIT
 #include "patchlevel.h"