freebsd-ports/devel/icu4/files/patch-enum-bug
Mikhail Teterin 45c58e688d 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
2006-12-18 05:52:45 +00:00

50 lines
2 KiB
Text

--- 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: