ICU-9579 merge from trunk of #9511 - r32737 through r32747

X-SVN-Rev: 32748
diff --git a/source/common/dictionarydata.cpp b/source/common/dictionarydata.cpp
index cc84542..a29e509 100644
--- a/source/common/dictionarydata.cpp
+++ b/source/common/dictionarydata.cpp
@@ -35,7 +35,7 @@
     return DictionaryData::TRIE_TYPE_UCHARS;
 }
 
-int32_t UCharsDictionaryMatcher::matches(UText *text, int32_t maxLength, int *lengths, int &count, int limit, int32_t *values) const {
+int32_t UCharsDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t *lengths, int32_t &count, int32_t limit, int32_t *values) const {
     UCharsTrie uct(characters);
     UChar32 c = utext_next32(text);
     if (c < 0) {
@@ -99,7 +99,7 @@
     return DictionaryData::TRIE_TYPE_BYTES;
 }
 
-int32_t BytesDictionaryMatcher::matches(UText *text, int32_t maxLength, int *lengths, int &count, int limit, int32_t *values) const {
+int32_t BytesDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t *lengths, int32_t &count, int32_t limit, int32_t *values) const {
     BytesTrie bt(characters);
     UChar32 c = utext_next32(text);
     if (c < 0) {
diff --git a/source/common/dictionarydata.h b/source/common/dictionarydata.h
index eedc926..ad4c928 100644
--- a/source/common/dictionarydata.h
+++ b/source/common/dictionarydata.h
@@ -68,8 +68,8 @@
 public:
     virtual ~DictionaryMatcher();
     // this should emulate CompactTrieDictionary::matches()
-    virtual int32_t matches(UText *text, int32_t maxLength, int32_t *lengths, int &count,
-                            int limit, int32_t *values = NULL) const = 0;
+    virtual int32_t matches(UText *text, int32_t maxLength, int32_t *lengths, int32_t &count,
+                            int32_t limit, int32_t *values = NULL) const = 0;
     /** @return DictionaryData::TRIE_TYPE_XYZ */
     virtual int32_t getType() const = 0;
 };
@@ -81,8 +81,8 @@
     // The UDataMemory * will be closed on this object's destruction.
     UCharsDictionaryMatcher(const UChar *c, UDataMemory *f) : characters(c), file(f) { }
     virtual ~UCharsDictionaryMatcher();
-    virtual int32_t matches(UText *text, int32_t maxLength, int32_t *lengths, int &count,
-                            int limit, int32_t *values = NULL) const;
+    virtual int32_t matches(UText *text, int32_t maxLength, int32_t *lengths, int32_t &count,
+                            int32_t limit, int32_t *values = NULL) const;
     virtual int32_t getType() const;
 private:
     const UChar *characters;
@@ -98,8 +98,8 @@
     BytesDictionaryMatcher(const char *c, int32_t t, UDataMemory *f)
             : characters(c), transformConstant(t), file(f) { }
     virtual ~BytesDictionaryMatcher();
-    virtual int32_t matches(UText *text, int32_t maxLength, int32_t *lengths, int &count,
-                            int limit, int32_t *values = NULL) const;
+    virtual int32_t matches(UText *text, int32_t maxLength, int32_t *lengths, int32_t &count,
+                            int32_t limit, int32_t *values = NULL) const;
     virtual int32_t getType() const;
 private:
     UChar32 transform(UChar32 c) const;
diff --git a/source/config/mh-os400 b/source/config/mh-os400
index 1a236de..4e83e0d 100644
--- a/source/config/mh-os400
+++ b/source/config/mh-os400
@@ -1,8 +1,12 @@
 ## -*-makefile-*-
 ## OS400-specific setup (for cross build)
-## Copyright (c) 1999-2011, International Business Machines Corporation and
+## Copyright (c) 1999-2012, International Business Machines Corporation and
 ## others. All Rights Reserved.
 
+# This otherwise breaks on OS400 - can't find "shell"
+CURR_FULL_DIR=.
+CURR_SRCCODE_FULL_DIR=.
+
 GEN_DEPS.c=	$(CC1) -E -M $(DEFS) $(CPPFLAGS)
 GEN_DEPS.cc=	$(CXX1) -E -M $(DEFS) $(CPPFLAGS)
 
diff --git a/source/i18n/decimfmt.cpp b/source/i18n/decimfmt.cpp
index a4cfa8d..c4662c9 100644
--- a/source/i18n/decimfmt.cpp
+++ b/source/i18n/decimfmt.cpp
@@ -1146,7 +1146,7 @@
     int32_t intBegin = appendTo.length();
 
     while((prependZero--)>0) {
-      appendTo.append(0x0030); // '0'
+      appendTo.append((UChar)0x0030); // '0'
     }
 
     appendTo.append(outputStr+destIdx+
diff --git a/source/i18n/tzfmt.cpp b/source/i18n/tzfmt.cpp
index 2c69476..a7c7f9a 100644
--- a/source/i18n/tzfmt.cpp
+++ b/source/i18n/tzfmt.cpp
@@ -2057,7 +2057,7 @@
     }
 
     UnicodeString sep;
-    int32_t idx_H = offsetHM.tempSubString(0, idx_mm).lastIndexOf(0x0048 /* H */);
+    int32_t idx_H = offsetHM.tempSubString(0, idx_mm).lastIndexOf((UChar)0x0048 /* H */);
     if (idx_H >= 0) {
         sep = offsetHM.tempSubString(idx_H + 1, idx_mm - (idx_H + 1));
     }
diff --git a/source/i18n/zonemeta.cpp b/source/i18n/zonemeta.cpp
index 932c5ab..34cc484 100644
--- a/source/i18n/zonemeta.cpp
+++ b/source/i18n/zonemeta.cpp
@@ -871,20 +871,20 @@
     id.setTo(gCustomTzPrefix, -1);
     if (hour != 0 || min != 0) {
         if (negative) {
-            id.append(0x2D);    // '-'
+          id.append((UChar)0x2D);    // '-'
         } else {
-            id.append(0x2B);    // '+'
+          id.append((UChar)0x2B);    // '+'
         }
         // Always use US-ASCII digits
-        id.append(0x30 + (hour%100)/10);
-        id.append(0x30 + (hour%10));
-        id.append(0x3A);    // ':'
-        id.append(0x30 + (min%100)/10);
-        id.append(0x30 + (min%10));
+        id.append((UChar)0x30 + (hour%100)/10);
+        id.append((UChar)0x30 + (hour%10));
+        id.append((UChar)0x3A);    // ':'
+        id.append((UChar)(0x30 + (min%100)/10));
+        id.append((UChar)(0x30 + (min%10)));
         if (sec != 0) {
-            id.append(0x3A);    // ':'
-            id.append(0x30 + (sec%100)/10);
-            id.append(0x30 + (sec%10));
+          id.append((UChar)0x3A);    // ':'
+          id.append((UChar)(0x30 + (sec%100)/10));
+          id.append((UChar)(0x30 + (sec%10)));
         }
     }
     return id;
diff --git a/source/test/intltest/plurfmts.cpp b/source/test/intltest/plurfmts.cpp
index 6af4a91..69e8f88 100644
--- a/source/test/intltest/plurfmts.cpp
+++ b/source/test/intltest/plurfmts.cpp
@@ -587,17 +587,17 @@
     if (errorCode.logDataIfFailureAndReset("PluralFormat(en, UPLURAL_TYPE_ORDINAL, pattern) failed")) {
       return;
     }
-    UnicodeString result = pf.format(321, errorCode);
+    UnicodeString result = pf.format((int32_t)321, errorCode);
     if (!errorCode.logIfFailureAndReset("PluralFormat.format(321) failed") &&
         result != UNICODE_STRING_SIMPLE("321st file")) {
       errln(UnicodeString("PluralFormat.format(321) wrong result string: ") + result);
     }
-    result = pf.format(22, errorCode);
+    result = pf.format((int32_t)22, errorCode);
     if (!errorCode.logIfFailureAndReset("PluralFormat.format(22) failed") &&
         result != UNICODE_STRING_SIMPLE("22nd file")) {
       errln(UnicodeString("PluralFormat.format(22) wrong result string: ") + result);
     }
-    result = pf.format(3, errorCode);
+    result = pf.format((int32_t)3, errorCode);
     if (!errorCode.logIfFailureAndReset("PluralFormat.format(3) failed") &&
         result != UNICODE_STRING_SIMPLE("3rd file")) {
       errln(UnicodeString("PluralFormat.format(3) wrong result string: ") + result);
@@ -609,12 +609,12 @@
     if (errorCode.logIfFailureAndReset("PluralFormat(en, UPLURAL_TYPE_ORDINAL, pattern) failed")) {
       return;
     }
-    result = pf2.format(456, errorCode);
+    result = pf2.format((int32_t)456, errorCode);
     if (!errorCode.logIfFailureAndReset("PluralFormat.format(456) failed") &&
         result != UNICODE_STRING_SIMPLE("456th file")) {
       errln(UnicodeString("PluralFormat.format(456) wrong result string: ") + result);
     }
-    result = pf2.format(111, errorCode);
+    result = pf2.format((int32_t)111, errorCode);
     if (!errorCode.logIfFailureAndReset("PluralFormat.format(111) failed") &&
         result != UNICODE_STRING_SIMPLE("111th file")) {
       errln(UnicodeString("PluralFormat.format(111) wrong result string: ") + result);