/* Note that U_TZNAME does *not* have to be tzname, but if it is,
some platforms need to have it declared here. */
-#if defined(U_TZNAME) && (U_PLATFORM == U_PF_IRIX || U_PLATFORM_IS_DARWIN_BASED || U_PLATFORM == U_PF_CYGWIN)
+#if defined(U_TZNAME) && (U_PLATFORM == U_PF_IRIX || U_PLATFORM_IS_DARWIN_BASED || (U_PLATFORM == U_PF_CYGWIN && !U_PLATFORM_USES_ONLY_WIN32_API))
/* RS6000 and others reject char **tzname. */
extern U_IMPORT char *U_TZNAME[];
#endif
#ifdef U_TZSET
/* Use the predefined value. */
-#elif U_PLATFORM_HAS_WIN32_API
+#elif U_PLATFORM_USES_ONLY_WIN32_API
# define U_TZSET _tzset
#else
# define U_TZSET tzset
/* Use the predefined value. */
#elif U_PLATFORM_IS_LINUX_BASED
# define U_TIMEZONE __timezone
-#elif U_PLATFORM_HAS_WIN32_API
+#elif U_PLATFORM_USES_ONLY_WIN32_API
# define U_TIMEZONE _timezone
#else
# define U_TIMEZONE timezone
#ifdef U_TZNAME
/* Use the predefined value. */
-#elif U_PLATFORM_HAS_WIN32_API
+#elif U_PLATFORM_USES_ONLY_WIN32_API
# define U_TZNAME _tzname
#else
# define U_TZNAME tzname
#ifdef U_HAVE_POPEN
/* Use the predefined value. */
-#elif U_PLATFORM == U_PF_WINDOWS
+#elif U_PLATFORM_USES_ONLY_WIN32_API
# define U_HAVE_POPEN 0
#else
# define U_HAVE_POPEN 1
#if UCONFIG_NO_FILE_IO
# define MAP_IMPLEMENTATION MAP_NONE
-#elif U_PLATFORM_HAS_WIN32_API
+#elif U_PLATFORM_USES_ONLY_WIN32_API
# define MAP_IMPLEMENTATION MAP_WIN32
#elif U_HAVE_MMAP || U_PLATFORM == U_PF_OS390
# if U_PLATFORM == U_PF_OS390 && defined (OS390_STUBDATA)
# define U_PLATFORM U_PF_UNKNOWN
#endif
+/**
+ * \def CYGWINMSVC
+ * Defined if this is Windows with Cygwin, but using MSVC rather than gcc.
+ * Otherwise undefined.
+ * @internal
+ */
+#if U_PLATFORM == U_PF_CYGWIN && defined(_MSC_VER)
+# define CYGWINMSVC
+#endif
+
/**
* \def U_PLATFORM_USES_ONLY_WIN32_API
* Defines whether the platform uses only the Win32 API.
*/
#ifdef U_PLATFORM_USES_ONLY_WIN32_API
/* Use the predefined value. */
-#elif U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_MINGW
+#elif (U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_MINGW) || defined(CYGWINMSVC)
# define U_PLATFORM_USES_ONLY_WIN32_API 1
#else
/* Cygwin implements POSIX. */
#ifdef U_PLATFORM_HAS_WIN32_API
/* Use the predefined value. */
#elif U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN
-# if U_PLATFORM == U_PF_CYGWIN && defined(__GNUC__)
-# define U_PLATFORM_HAS_WIN32_API 0
-# else
-# define U_PLATFORM_HAS_WIN32_API 1
-# endif
+# define U_PLATFORM_HAS_WIN32_API 1
#else
# define U_PLATFORM_HAS_WIN32_API 0
#endif
# define U_PLATFORM_IMPLEMENTS_POSIX 1
#endif
-/**
- * \def CYGWINMSVC
- * Defined if this is Windows with Cygwin, but using MSVC rather than gcc.
- * Otherwise undefined.
- * @internal
- */
-#if U_PLATFORM == U_PF_CYGWIN && defined(_MSC_VER)
-# define CYGWINMSVC
-#endif
-
/**
* \def U_PLATFORM_IS_LINUX_BASED
* Defines whether the platform is Linux or one of its derivatives.
CFLAGS+=/GF /nologo
CXXFLAGS+=/GF /nologo /EHsc /Zc:wchar_t
CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE
-DEFS+=-DWIN32
+DEFS+=-DWIN32 -D__CYGWIN__
LDFLAGS+=/nologo
# Commands to compile
return NULL;
}
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
char buffer[8];
int32_t count = desiredLocale.getKeywordValue("compat", buffer, sizeof(buffer), status);
hostStrID.truncate(hostStrID.length()-1);
default_zone = createSystemTimeZone(hostStrID);
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
// hostID points to a heap-allocated location on Windows.
uprv_free(const_cast<char *>(hostID));
#endif
#include "unicode/utypes.h"
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
#if !UCONFIG_NO_FORMATTING
#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
#include "unicode/utypes.h"
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
#include "unicode/format.h"
#include "unicode/datefmt.h"
#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
#endif // __WINNMFMT
#define DELIM_PS 0x2029
/* TODO: is this correct for all codepages? Should we just use \n and let the converter handle it? */
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
static const UChar DELIMITERS [] = { DELIM_CR, DELIM_LF, 0x0000 };
static const uint32_t DELIMITERS_LEN = 2;
/* TODO: Default newline writing should be detected based upon the converter being used. */
void NumberFormatTest::TestHost()
{
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
Win32NumberTest::testLocales(this);
#endif
Locale loc("en_US@compat=host");
#include <string.h>
#include <ctype.h> // tolower, toupper
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
/* Prefer native Windows APIs even if POSIX is implemented (i.e., on Cygwin). */
# undef POSIX
#elif U_PLATFORM_IMPLEMENTS_POSIX
#include "unicode/calendar.h"
#include "ucaconf.h"
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
#define HAVE_IMP
# define VC_EXTRALEAN
#include "unicode/locid.h"
#include "putilimp.h"
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
/* Prefer native Windows APIs even if POSIX is implemented (i.e., on Cygwin). */
# undef POSIX
#elif U_PLATFORM_IMPLEMENTS_POSIX
TESTCLASSID_FACTORY(TaiwanCalendar, Calendar::createInstance(Locale("@calendar=roc"), status));
#if U_PLATFORM_HAS_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! */
#include "unicode/utypes.h"
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
#if !UCONFIG_NO_FORMATTING
#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif /* U_PLATFORM_HAS_WIN32_API */
+#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
#include "unicode/utypes.h"
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
#if !UCONFIG_NO_FORMATTING
#endif /* #if !UCONFIG_NO_FORMATTING */
-#endif // U_PLATFORM_HAS_WIN32_API
+#endif // U_PLATFORM_USES_ONLY_WIN32_API
#endif // __WINNMTST
// Windows specific code for starting threads
//
//------------------------------------------------------------------------------
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
#include "Windows.h"
#include "process.h"
#include <sys/stat.h>
#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
# define NOUSER
U_CAPI const char * U_EXPORT2
getLongPathname(const char *pathname) {
-#if U_PLATFORM_HAS_WIN32_API
+#if U_PLATFORM_USES_ONLY_WIN32_API
/* anticipate problems with "short" pathnames */
static WIN32_FIND_DATAA info;
HANDLE file=FindFirstFileA(pathname, &info);