From: Karl Williamson Date: Wed, 26 Jun 2013 21:49:13 +0000 (-0600) Subject: handy.h: Make macro more efficient on EBCDIC X-Git-Tag: v5.21.1~304 X-Git-Url: https://perl5.git.perl.org/perl5.git/commitdiff_plain/e8fa43e2ca41ae473bc46c1faaddd42b50dbedcf handy.h: Make macro more efficient on EBCDIC The comments say it all --- diff --git a/handy.h b/handy.h index e4e5292..44dc64d 100644 --- a/handy.h +++ b/handy.h @@ -1550,7 +1550,15 @@ EXTCONST U32 PL_charclass[]; utf8, the non-utf8 macro works */ #define isBLANK_utf8(p) _generic_func_utf8(_CC_BLANK, is_HORIZWS_high, p) -#define isCNTRL_utf8(p) _generic_utf8(_CC_CNTRL, p, 0) + +#ifdef EBCDIC + /* Because all controls are UTF-8 invariants in EBCDIC, we can use this + * more efficient macro instead of the more general one */ +# define isCNTRL_utf8(p) isCNTRL_L1(p) +#else +# define isCNTRL_utf8(p) _generic_utf8(_CC_CNTRL, p, 0) +#endif + #define isDIGIT_utf8(p) _generic_utf8_no_upper_latin1(_CC_DIGIT, p, \ _is_utf8_FOO(_CC_DIGIT, p)) #define isGRAPH_utf8(p) _generic_swash_utf8(_CC_GRAPH, p)