aboutsummaryrefslogtreecommitdiff
path: root/devel/icu
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2006-12-18 05:52:45 +0000
committerMikhail Teterin <mi@FreeBSD.org>2006-12-18 05:52:45 +0000
commit45c58e688d2efb4448c712897650ee1f21d8ca47 (patch)
tree29a81571b671c45291646d8c90240d6c91d24636 /devel/icu
parent9e9429b8741c74635fa505a33b51aa99a22b8088 (diff)
downloadports-45c58e688d2efb4448c712897650ee1f21d8ca47.tar.gz
ports-45c58e688d2efb4448c712897650ee1f21d8ca47.zip
Work around the apparent bug in enum-to-enum casting in the 5.3 compiler
by using the int-to-enum casting instead. The port should now build on 5.3 and wherever else the self-tests were failing before. Submitted to vendor. Obtained from: Michael Cornelius
Notes
Notes: svn path=/head/; revision=180055
Diffstat (limited to 'devel/icu')
-rw-r--r--devel/icu/files/patch-enum-bug50
1 files changed, 50 insertions, 0 deletions
diff --git a/devel/icu/files/patch-enum-bug b/devel/icu/files/patch-enum-bug
new file mode 100644
index 000000000000..4c254481a0dc
--- /dev/null
+++ b/devel/icu/files/patch-enum-bug
@@ -0,0 +1,50 @@
+--- i18n/regexcmp.h Thu Oct 20 10:54:02 2005
++++ i18n/regexcmp.h Mon Dec 11 13:42:54 2006
+@@ -38,9 +38,6 @@
+ // to the depth of parentheses nesting
+ // that is allowed in the rules.
+
+-enum EParseAction {dummy01, dummy02}; // Placeholder enum for the specifier for
+- // actions that are specified in the
+- // rule parsing state table.
+ struct RegexTableEl;
+ class RegexPattern;
+
+@@ -83,7 +80,7 @@
+ private:
+
+
+- UBool doParseActions(EParseAction a);
++ UBool doParseActions(int a);
+ void error(UErrorCode e); // error reporting convenience function.
+
+ UChar32 nextCharLL();
+--- i18n/regexcmp.cpp Wed Feb 1 22:37:14 2006
++++ 118n/regexcmp.cpp Mon Dec 11 13:43:21 2006
+@@ -191,7 +191,7 @@
+ // We've found the row of the state table that matches the current input
+ // character from the rules string.
+ // Perform any action specified by this row in the state table.
+- if (doParseActions((EParseAction)tableEl->fAction) == FALSE) {
++ if (doParseActions(tableEl->fAction) == FALSE) {
+ // Break out of the state machine loop if the
+ // the action signalled some kind of error, or
+ // the action was to exit, occurs on normal end-of-rules-input.
+@@ -321,7 +321,7 @@
+ //
+ //
+ //------------------------------------------------------------------------------
+-UBool RegexCompile::doParseActions(EParseAction action)
++UBool RegexCompile::doParseActions(int action)
+ {
+ UBool returnVal = TRUE;
+
+@@ -342,7 +342,7 @@
+
+ // Standard open nonCapture paren action emits the two NOPs and
+ // sets up the paren stack frame.
+- doParseActions((EParseAction)doOpenNonCaptureParen);
++ doParseActions(doOpenNonCaptureParen);
+ break;
+
+ case doPatFinish: