This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Updated CPAN path for Module::CoreList in Maintainers.pl
[perl5.git] / handy.h
diff --git a/handy.h b/handy.h
index d390667..848cc0e 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -190,8 +190,13 @@ typedef U64TYPE U64;
 #               define INT64_C(c)      CAT2(c,L)
 #               define UINT64_C(c)     CAT2(c,UL)
 #           else
-#               define INT64_C(c)      ((I64TYPE)(c))
-#               define UINT64_C(c)     ((U64TYPE)(c))
+#               if defined(_WIN64) && defined(_MSC_VER)
+#                   define INT64_C(c)  CAT2(c,I64)
+#                   define UINT64_C(c) CAT2(c,UI64)
+#               else
+#                   define INT64_C(c)  ((I64TYPE)(c))
+#                   define UINT64_C(c) ((U64TYPE)(c))
+#               endif
 #           endif
 #       endif
 #   endif
@@ -424,7 +429,7 @@ Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
 alphanumeric character (including underscore) or digit.
 
 =for apidoc Am|bool|isALPHA|char ch
-Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin) 
+Returns a boolean indicating whether the C C<char> is a US-ASCII (Basic Latin)
 alphabetic character.
 
 =for apidoc Am|bool|isSPACE|char ch
@@ -474,7 +479,9 @@ US-ASCII (Basic Latin) range are viewed as not having any case.
 #   define isPUNCT(c)  ispunct(c)
 #   define isXDIGIT(c) isxdigit(c)
 #   define toUPPER(c)  toupper(c)
+#   define toUPPER_LATIN1_MOD(c)    UNI_TO_NATIVE(PL_mod_latin1_uc[(U8) NATIVE_TO_UNI(c)])
 #   define toLOWER(c)  tolower(c)
+#   define toLOWER_LATIN1(c)   UNI_TO_NATIVE(PL_latin1_lc[(U8) NATIVE_TO_UNI(c)])
 #else
 #   define isUPPER(c)  ((c) >= 'A' && (c) <= 'Z')
 #   define isLOWER(c)  ((c) >= 'a' && (c) <= 'z')
@@ -485,6 +492,15 @@ US-ASCII (Basic Latin) range are viewed as not having any case.
 #   define isPRINT(c)  (((c) >= 32 && (c) < 127))
 #   define isPUNCT(c)  (((c) >= 33 && (c) <= 47) || ((c) >= 58 && (c) <= 64)  || ((c) >= 91 && (c) <= 96) || ((c) >= 123 && (c) <= 126))
 #   define isXDIGIT(c)  (isDIGIT(c) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F'))
+
+/* Use table lookup for speed */
+#   define toLOWER_LATIN1(c)   (PL_latin1_lc[(U8) c])
+
+/* Modified uc.  Is correct uc except for three non-ascii chars which are
+ * all mapped to one of them, and these need special handling */
+#   define toUPPER_LATIN1_MOD(c)    (PL_mod_latin1_uc[(U8) c])
+
+/* ASCII casing. */
 #   define toUPPER(c)  (isLOWER(c) ? (c) - ('a' - 'A') : (c))
 #   define toLOWER(c)  (isUPPER(c) ? (c) + ('a' - 'A') : (c))
 #endif
@@ -557,7 +573,6 @@ US-ASCII (Basic Latin) range are viewed as not having any case.
 #define isDIGIT_uni(c)         is_uni_digit(c)
 #define isUPPER_uni(c)         is_uni_upper(c)
 #define isLOWER_uni(c)         is_uni_lower(c)
-#define isALNUMC_uni(c)                is_uni_alnumc(c)
 #define isASCII_uni(c)         is_uni_ascii(c)
 #define isCNTRL_uni(c)         is_uni_cntrl(c)
 #define isGRAPH_uni(c)         is_uni_graph(c)
@@ -579,7 +594,6 @@ US-ASCII (Basic Latin) range are viewed as not having any case.
 #define isDIGIT_LC_uvchr(c)    (c < 256 ? isDIGIT_LC(c) : is_uni_digit_lc(c))
 #define isUPPER_LC_uvchr(c)    (c < 256 ? isUPPER_LC(c) : is_uni_upper_lc(c))
 #define isLOWER_LC_uvchr(c)    (c < 256 ? isLOWER_LC(c) : is_uni_lower_lc(c))
-#define isALNUMC_LC_uvchr(c)   (c < 256 ? isALNUMC_LC(c) : is_uni_alnumc_lc(c))
 #define isCNTRL_LC_uvchr(c)    (c < 256 ? isCNTRL_LC(c) : is_uni_cntrl_lc(c))
 #define isGRAPH_LC_uvchr(c)    (c < 256 ? isGRAPH_LC(c) : is_uni_graph_lc(c))
 #define isPRINT_LC_uvchr(c)    (c < 256 ? isPRINT_LC(c) : is_uni_print_lc(c))
@@ -598,7 +612,6 @@ US-ASCII (Basic Latin) range are viewed as not having any case.
 #define isDIGIT_utf8(p)                is_utf8_digit(p)
 #define isUPPER_utf8(p)                is_utf8_upper(p)
 #define isLOWER_utf8(p)                is_utf8_lower(p)
-#define isALNUMC_utf8(p)       is_utf8_alnumc(p)
 #define isASCII_utf8(p)                is_utf8_ascii(p)
 #define isCNTRL_utf8(p)                is_utf8_cntrl(p)
 #define isGRAPH_utf8(p)                is_utf8_graph(p)
@@ -905,6 +918,13 @@ void Perl_mem_log_del_sv(const SV *sv, const char *filename, const int linenumbe
 #define pTHX__VALUE
 #endif /* USE_ITHREADS */
 
+/* Perl_deprecate was not part of the public API, and did not have a deprecate()
+   shortcut macro defined without -DPERL_CORE. Neither codesearch.google.com nor
+   CPAN::Unpack show any users outside the core.  */
+#ifdef PERL_CORE
+#  define deprecate(s) Perl_ck_warner_d(aTHX_ packWARN(WARN_DEPRECATED), "Use of " s " is deprecated")
+#endif
+
 /*
  * Local variables:
  * c-indentation-style: bsd