This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Use two colons for lexsub warning
[perl5.git] / handy.h
diff --git a/handy.h b/handy.h
index 62752a8..c670398 100644 (file)
--- a/handy.h
+++ b/handy.h
 #ifdef NULL
 #undef NULL
 #endif
-#ifndef I286
 #  define NULL 0
-#else
-#  define NULL 0L
-#endif
 #endif
 
 #ifndef PERL_CORE
@@ -105,7 +101,7 @@ Null SV pointer. (No longer available when C<PERL_CORE> is defined.)
 #endif /* NeXT || __NeXT__ */
 
 #ifndef HAS_BOOL
-# if defined(UTS) || defined(VMS)
+# if defined(VMS)
 #  define bool int
 # else
 #  define bool char
@@ -127,7 +123,7 @@ Null SV pointer. (No longer available when C<PERL_CORE> is defined.)
 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined(__SUNPRO_C)) /* C99 or close enough. */
 #  define FUNCTION__ __func__
 #else
-#  if (defined(_MSC_VER) && _MSC_VER < 1300) || /* Pre-MSVC 7.0 has neither __func__ nor __FUNCTION and no good workarounds, either. */ \
+#  if (defined(_MSC_VER) && _MSC_VER < 1300) || /* MSVC6 has neither __func__ nor __FUNCTION and no good workarounds, either. */ \
       (defined(__DECC_VER)) /* Tru64 or VMS, and strict C89 being used, but not modern enough cc (in Tur64, -c99 not known, only -std1). */
 #    define FUNCTION__ ""
 #  else
@@ -195,13 +191,13 @@ typedef U64TYPE U64;
 #       define PeRl_INT64_C(c) CAT2(c,LL)
 #       define PeRl_UINT64_C(c)        CAT2(c,ULL)
 #   else
-#       if LONGSIZE == 8 && QUADKIND == QUAD_IS_LONG
-#           define PeRl_INT64_C(c)     CAT2(c,L)
-#           define PeRl_UINT64_C(c)    CAT2(c,UL)
+#       if QUADKIND == QUAD_IS___INT64
+#           define PeRl_INT64_C(c)     CAT2(c,I64)
+#           define PeRl_UINT64_C(c)    CAT2(c,UI64)
 #       else
-#           if defined(_WIN64) && defined(_MSC_VER)
-#               define PeRl_INT64_C(c) CAT2(c,I64)
-#               define PeRl_UINT64_C(c)        CAT2(c,UI64)
+#           if LONGSIZE == 8 && QUADKIND == QUAD_IS_LONG
+#               define PeRl_INT64_C(c) CAT2(c,L)
+#               define PeRl_UINT64_C(c)        CAT2(c,UL)
 #           else
 #               define PeRl_INT64_C(c) ((I64TYPE)(c))
 #               define PeRl_UINT64_C(c)        ((U64TYPE)(c))
@@ -599,13 +595,14 @@ patched there.  The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
  * digits */
 #define isOCTAL_A(c)  cBOOL(FITS_IN_8_BITS(c) && (0xF8 & (c)) == '0')
 
-
 /* ASCII range only */
 #ifdef H_PERL       /* If have access to perl.h, lookup in its table */
 
-/* Character class numbers.  These are used in PL_charclass[].  These use names
- * used in l1_char_class_tab.h but their actual definitions are here.  If that
- * has a name not used here, it won't compile. */
+/* Character class numbers.  These are used in PL_charclass[] and the ones
+ * up through the one that corresponds to <_HIGHEST_REGCOMP_DOT_H_SYNC> are
+ * used by regcomp.h.  These use names used in l1_char_class_tab.h but their
+ * actual definitions are here.  If that has a name not used here, it won't
+ * compile. */
 #  define _CC_WORDCHAR           0
 #  define _CC_SPACE              1
 #  define _CC_DIGIT              2
@@ -621,11 +618,14 @@ patched there.  The file as of this writing is cpan/Devel-PPPort/parts/inc/misc
 #  define _CC_XDIGIT            12
 #  define _CC_PSXSPC            13
 #  define _CC_BLANK             14
+#  define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_BLANK
+
 #  define _CC_IDFIRST           15
 #  define _CC_CHARNAME_CONT     16
 #  define _CC_NONLATIN1_FOLD    17
 #  define _CC_QUOTEMETA         18
-/* Unused: 19-31
+#  define _CC_NON_FINAL_FOLD    19
+/* Unused: 20-31
  * If more bits are needed, one could add a second word for non-64bit
  * QUAD_IS_INT systems, using some #ifdefs to distinguish between having a 2nd
  * word or not. */
@@ -675,6 +675,8 @@ EXTCONST U32 PL_charclass[];
 #   define _HAS_NONLATIN1_FOLD_CLOSURE_ONLY_FOR_USE_BY_REGCOMP_DOT_C_AND_REGEXEC_DOT_C(c) ((! cBOOL(FITS_IN_8_BITS(c))) || (PL_charclass[(U8) NATIVE_TO_UNI(c)] & _CC_mask(_CC_NONLATIN1_FOLD)))
 
 #   define _isQUOTEMETA(c) _generic_isCC(c, _CC_QUOTEMETA)
+#   define _IS_NON_FINAL_FOLD_ONLY_FOR_USE_BY_REGCOMP_DOT_C(c) \
+                                            _generic_isCC(c, _CC_NON_FINAL_FOLD)
 #else   /* No perl.h. */
 #   ifdef EBCDIC
 #       define isALNUMC_A(c)   (isASCII(c) && isALNUMC(c))