AIX cpp bug: having macro arguments and character constants
Jarkko Hietaniemi [Wed, 23 Jan 2002 03:11:31 +0000 (03:11 +0000)]
"the same" means trouble (here s and 's')
What broke now was 841 and 842 of t/op/pat.t, because of the
ANYOF_UNICODE_FOLD_SHARP_S() in utf8.h, ccversion 5.0.1.0
(note that breakage happened only under cc_r and usethreads+
useithreads)

p4raw-id: //depot/perl@14379

utf8.h

diff --git a/utf8.h b/utf8.h
index 2ac5f91..c1c69d2 100644 (file)
--- a/utf8.h
+++ b/utf8.h
@@ -199,10 +199,10 @@ END_EXTERN_C
 #define UNI_DISPLAY_QQ         (UNI_DISPLAY_ISPRINT|UNI_DISPLAY_BACKSLASH)
 #define UNI_DISPLAY_REGEX      (UNI_DISPLAY_ISPRINT|UNI_DISPLAY_BACKSLASH)
 
-#define ANYOF_UNICODE_FOLD_SHARP_S(n, s, e)    \
-       (ANYOF_BITMAP_TEST(n, UNICODE_LATIN_SMALL_LETTER_SHARP_S) && \
-        ANYOF_FLAGS(n) & ANYOF_UNICODE && \
-        ANYOF_FLAGS(n) & ANYOF_FOLD && \
-        ((e) > (s) + 1) && \
-        toLOWER((s)[0]) == 's' && \
-        toLOWER((s)[1]) == 's')
+#define ANYOF_UNICODE_FOLD_SHARP_S(node, input, end)   \
+       (ANYOF_BITMAP_TEST(node, UNICODE_LATIN_SMALL_LETTER_SHARP_S) && \
+        (ANYOF_FLAGS(node) & ANYOF_UNICODE) && \
+        (ANYOF_FLAGS(node) & ANYOF_FOLD) && \
+        ((end) > (input) + 1) && \
+        toLOWER((input)[0]) == 's' && \
+        toLOWER((input)[1]) == 's')