This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
_A is predefined in some precompiler environments
authorH.Merijn Brand <h.m.brand@xs4all.nl>
Thu, 6 Oct 2011 08:10:31 +0000 (10:10 +0200)
committerH.Merijn Brand <h.m.brand@xs4all.nl>
Thu, 6 Oct 2011 08:10:31 +0000 (10:10 +0200)
On HP-UX 10.20 in the HP C-ANSI-C environment

  CAT2(macro, _A)

expands to

  macro01

as _A obviously expands to 01. This fix "breaks" the token

handy.h

diff --git a/handy.h b/handy.h
index 7a87d78..fc37b2f 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -919,7 +919,7 @@ EXTCONST U32 PL_charclass[];
  * the function.  This relies on the fact that ASCII characters have the same
  * representation whether utf8 or not */
 #define generic_utf8(macro, function, p) (isASCII(*(p))                        \
  * the function.  This relies on the fact that ASCII characters have the same
  * representation whether utf8 or not */
 #define generic_utf8(macro, function, p) (isASCII(*(p))                        \
-                                         ? CAT2(macro, _A)(*(p))               \
+                                         ? CAT2(CAT2(macro,_)A)(*(p))               \
                                          : (UTF8_IS_DOWNGRADEABLE_START(*(p))) \
                                            ? CAT2(macro, _L1)                  \
                                              (TWO_BYTE_UTF8_TO_UNI(*(p),       \
                                          : (UTF8_IS_DOWNGRADEABLE_START(*(p))) \
                                            ? CAT2(macro, _L1)                  \
                                              (TWO_BYTE_UTF8_TO_UNI(*(p),       \