	_HAS_ -> _USES_ONLY_ for WIN32_API and Cygwin.

Index: source/common/umutex.h
===================================================================
--- source/common/umutex.h	(revision 43491)
+++ source/common/umutex.h	(working copy)
@@ -76,7 +76,7 @@
 }
 U_NAMESPACE_END
 
-#elif U_PLATFORM_HAS_WIN32_API
+#elif U_PLATFORM_USES_ONLY_WIN32_API
 
 // MSVC compiler. Reads and writes of volatile variables have
 //                acquire and release memory semantics, respectively.
Index: source/common/wintz.c
===================================================================
--- source/common/wintz.c	(revision 43491)
+++ source/common/wintz.c	(working copy)
@@ -13,7 +13,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #include "wintz.h"
 #include "cmemory.h"
@@ -438,4 +438,4 @@
     return icuid;
 }
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
Index: source/common/wintz.h
===================================================================
--- source/common/wintz.h	(revision 43491)
+++ source/common/wintz.h	(working copy)
@@ -16,7 +16,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 /**
  * \file 
@@ -31,6 +31,6 @@
 U_CFUNC const char* U_EXPORT2
 uprv_detectWindowsTimeZone();
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
 
 #endif /* __WINTZ */
Index: source/i18n/datefmt.cpp
===================================================================
--- source/i18n/datefmt.cpp	(revision 43491)
+++ source/i18n/datefmt.cpp	(working copy)
@@ -498,7 +498,7 @@
 DateFormat::create(EStyle timeStyle, EStyle dateStyle, const Locale& locale)
 {
     UErrorCode status = U_ZERO_ERROR;
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
     char buffer[8];
     int32_t count = locale.getKeywordValue("compat", buffer, sizeof(buffer), status);
 
Index: source/i18n/windtfmt.cpp
===================================================================
--- source/i18n/windtfmt.cpp	(revision 43491)
+++ source/i18n/windtfmt.cpp	(working copy)
@@ -13,7 +13,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -314,5 +314,5 @@
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
 
Index: source/i18n/windtfmt.h
===================================================================
--- source/i18n/windtfmt.h	(revision 43491)
+++ source/i18n/windtfmt.h	(working copy)
@@ -16,7 +16,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -133,6 +133,6 @@
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
 
 #endif // __WINDTFMT
Index: source/i18n/wintzimpl.cpp
===================================================================
--- source/i18n/wintzimpl.cpp	(revision 43491)
+++ source/i18n/wintzimpl.cpp	(working copy)
@@ -13,7 +13,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API && !UCONFIG_NO_FORMATTING 
+#if U_PLATFORM_USES_ONLY_WIN32_API && !UCONFIG_NO_FORMATTING 
 
 #include "wintzimpl.h"
 
Index: source/i18n/wintzimpl.h
===================================================================
--- source/i18n/wintzimpl.h	(revision 43491)
+++ source/i18n/wintzimpl.h	(working copy)
@@ -16,7 +16,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 /**
  * \file 
  * \brief C API: Utilities for dealing w/ Windows time zones.
@@ -34,6 +34,6 @@
 uprv_getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar *icuid, int32_t length);
 
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
 
 #endif /* __WINTZIMPL */
Index: source/test/intltest/dtfmttst.cpp
===================================================================
--- source/test/intltest/dtfmttst.cpp	(revision 43491)
+++ source/test/intltest/dtfmttst.cpp	(working copy)
@@ -25,7 +25,7 @@
 #include "caltest.h"  // for fieldName
 #include <stdio.h> // for sprintf
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 #include "windttst.h"
 #endif
 
@@ -2374,7 +2374,7 @@
 
 void DateFormatTest::TestHost(void)
 {
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
     Win32DateTimeTest::testLocales(this);
 #endif
 }
Index: source/test/intltest/uobjtest.cpp
===================================================================
--- source/test/intltest/uobjtest.cpp	(revision 43491)
+++ source/test/intltest/uobjtest.cpp	(working copy)
@@ -384,13 +384,11 @@
     TESTCLASSID_FACTORY(IndianCalendar, Calendar::createInstance(Locale("@calendar=indian"), status));
     TESTCLASSID_FACTORY(ChineseCalendar, Calendar::createInstance(Locale("@calendar=chinese"), status));
     TESTCLASSID_FACTORY(TaiwanCalendar, Calendar::createInstance(Locale("@calendar=roc"), status));
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
     TESTCLASSID_FACTORY(Win32DateFormat, DateFormat::createDateInstance(DateFormat::kFull, Locale("@compat=host")));
-#if U_PLATFORM_USES_ONLY_WIN32_API
     TESTCLASSID_FACTORY(Win32NumberFormat, NumberFormat::createInstance(Locale("@compat=host"), status));
 #endif
 #endif
-#endif
 
 #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO
     /* TESTCLASSID_ABSTRACT(BreakIterator); No staticID!  */
Index: source/test/intltest/windttst.cpp
===================================================================
--- source/test/intltest/windttst.cpp	(revision 43491)
+++ source/test/intltest/windttst.cpp	(working copy)
@@ -13,7 +13,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -193,4 +193,4 @@
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
Index: source/test/intltest/windttst.h
===================================================================
--- source/test/intltest/windttst.h	(revision 43491)
+++ source/test/intltest/windttst.h	(working copy)
@@ -16,7 +16,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -38,6 +38,6 @@
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
 
 #endif // __WINDTTST
Index: source/test/intltest/winutil.cpp
===================================================================
--- source/test/intltest/winutil.cpp	(revision 43491)
+++ source/test/intltest/winutil.cpp	(working copy)
@@ -13,7 +13,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -95,4 +95,4 @@
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
Index: source/test/intltest/winutil.h
===================================================================
--- source/test/intltest/winutil.h	(revision 43491)
+++ source/test/intltest/winutil.h	(working copy)
@@ -16,7 +16,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 #if !UCONFIG_NO_FORMATTING
 
@@ -43,6 +43,6 @@
 
 #endif /* #if !UCONFIG_NO_FORMATTING */
 
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
 
 #endif // __WINUTIL
Index: source/test/perf/collperf/collperf.cpp
===================================================================
--- source/test/perf/collperf/collperf.cpp	(revision 43491)
+++ source/test/perf/collperf/collperf.cpp	(working copy)
@@ -118,7 +118,7 @@
             ucol_getSortKey(col, data[i].icu_data, data[i].icu_data_len, icu_key, MAX_KEY_LENGTH);
         }
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         // pre-generated in CollPerfTest::prepareData(), need not to check error here
         void win_key_null(int32_t i){
             //LCMAP_SORTsk             0x00000400  // WC sort sk (normalize)
@@ -300,7 +300,7 @@
         return strcmp((char *) da->icu_key, (char *) db->icu_key); 
     }
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
     static int win_cmp_null(const void *a, const void *b) {
         QCAST();
         //CSTR_LESS_THAN		1
@@ -335,7 +335,7 @@
 
     QFUNC(posix_strcoll_null, strcoll, posix_data)
         QFUNC(posix_cmpkey, strcmp, posix_key)
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         QFUNC(win_cmpkey, strcmp, win_key)
         QFUNC(win_wcscmp, wcscmp, win_data)
 #endif
@@ -455,7 +455,7 @@
             return strcmp( (char *) rnd[i].icu_key, (char *) ord[j].icu_key );
         }
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         int win_cmp_null(int32_t i, int32_t j) {
             int t = CompareStringW(win_langid, 0, rnd[i].win_data, -1, ord[j].win_data, -1);
             if (t == 0){
@@ -592,7 +592,7 @@
             locale = "en_US";   // set default locale
         }
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         if (options[i].doesOccur) {
             char *endp;
             int tmp = strtol(options[i].value, &endp, 0);
@@ -692,7 +692,7 @@
         TEST_KEYGEN(TestIcu_KeyGen_null, icu_key_null);
         TEST_KEYGEN(TestIcu_KeyGen_len,  icu_key_len);
         TEST_KEYGEN(TestPosix_KeyGen_null, posix_key_null);
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         TEST_KEYGEN(TestWin_KeyGen_null, win_key_null);
         TEST_KEYGEN(TestWin_KeyGen_len, win_key_len);
 #endif
@@ -718,7 +718,7 @@
         TEST_QSORT(TestIcu_qsort_usekey, icu_cmpkey);
         TEST_QSORT(TestPosix_qsort_strcoll_null, posix_strcoll_null);
         TEST_QSORT(TestPosix_qsort_usekey, posix_cmpkey);
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         TEST_QSORT(TestWin_qsort_CompareStringW_null, win_cmp_null);
         TEST_QSORT(TestWin_qsort_CompareStringW_len, win_cmp_len);
         TEST_QSORT(TestWin_qsort_usekey, win_cmpkey);
@@ -733,7 +733,7 @@
         TEST_BIN(TestIcu_BinarySearch_cmpCPO, icu_cmpcpo);
         TEST_BIN(TestPosix_BinarySearch_strcoll_null, posix_strcoll_null);
         TEST_BIN(TestPosix_BinarySearch_usekey, posix_cmpkey);
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         TEST_BIN(TestWin_BinarySearch_CompareStringW_null, win_cmp_null);
         TEST_BIN(TestWin_BinarySearch_CompareStringW_len, win_cmp_len);
 #endif
@@ -833,7 +833,7 @@
             t = strxfrm(posix_key->last(), posix_data->dataOf(i), s);
             if (t != s) {status = U_INVALID_FORMAT_ERROR;return;}
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
             // Win data
             s = icu_data->lengthOf(i) + 1; // plus terminal NULL
             win_data->append_one(s);
@@ -856,7 +856,7 @@
             rnd_index[i].posix_key = posix_key->last();
             rnd_index[i].posix_data = posix_data->dataOf(i);
             rnd_index[i].posix_data_len = posix_data->lengthOf(i);
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
             rnd_index[i].win_key = win_key->dataOf(i);
             rnd_index[i].win_data = win_data->dataOf(i);
             rnd_index[i].win_data_len = win_data->lengthOf(i);
@@ -875,7 +875,7 @@
         SORT(ord_icu_key, icu_cmpkey);
         SORT(ord_posix_data, posix_strcoll_null);
         SORT(ord_posix_key, posix_cmpkey);
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
         SORT(ord_win_data, win_cmp_len);
         SORT(ord_win_key, win_cmpkey);
         SORT(ord_win_wcscmp, win_wcscmp);
Index: source/test/perf/normperf/normperf.h
===================================================================
--- source/test/perf/normperf/normperf.h	(revision 43491)
+++ source/test/perf/normperf/normperf.h	(working copy)
@@ -319,7 +319,7 @@
 }
 #endif
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
 int32_t WinNormNFD(const UChar* src, int32_t srcLen, UChar* dest, int32_t dstLen, int32_t options, UErrorCode* status) {
     return FoldStringW(MAP_COMPOSITE,src,srcLen,dest,dstLen);
Index: source/tools/ctestfw/unicode/utimer.h
===================================================================
--- source/tools/ctestfw/unicode/utimer.h	(revision 43491)
+++ source/tools/ctestfw/unicode/utimer.h	(working copy)
@@ -12,7 +12,7 @@
 
 #include "unicode/utypes.h"
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 #   define VC_EXTRALEAN
 #   define WIN32_LEAN_AND_MEAN
 #   include <windows.h>
@@ -162,7 +162,7 @@
 typedef void FuntionToBeTimed(void* param);
 
 
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
 
     struct UTimer{
         LARGE_INTEGER start;
Index: source/tools/genrb/derb.cpp
===================================================================
--- source/tools/genrb/derb.cpp	(revision 43491)
+++ source/tools/genrb/derb.cpp	(working copy)
@@ -206,7 +206,7 @@
         UBool fromICUData = !uprv_strcmp(inputDir, "-");
         if (!fromICUData) {
             UBool absfilename = *arg == U_FILE_SEP_CHAR;
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_HAS_WIN32_API && U_PLATFORM != U_PF_CYGWIN
             if (!absfilename) {
                 absfilename = (uprv_strlen(arg) > 2 && isalpha(arg[0])
                     && arg[1] == ':' && arg[2] == U_FILE_SEP_CHAR);
Index: source/tools/toolutil/udbgutil.cpp
===================================================================
--- source/tools/toolutil/udbgutil.cpp	(revision 43491)
+++ source/tools/toolutil/udbgutil.cpp	(working copy)
@@ -351,8 +351,10 @@
  */
 U_CAPI const char *udbg_getPlatform(void)
 {
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
     return "Windows";
+#elif U_PLATFORM == U_PF_CYGWIN
+    return "Cygwin";
 #elif U_PLATFORM == U_PF_UNKNOWN
     return "unknown";
 #elif U_PLATFORM == U_PF_DARWIN
