   else
   	@echo "$@" > $@
   endif
+*** misc/icu/source/i18n/windtfmt.cpp	Tue Aug 15 08:48:02 2006
+--- misc/build/icu/source/i18n/windtfmt.cpp	Mon Apr 30 17:32:58 2007
+***************
+*** 232,249 ****
+      UChar stackBuffer[STACK_BUFFER_SIZE];
+      UChar *buffer = stackBuffer;
+  
+!     result = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, STACK_BUFFER_SIZE);
+  
+      if (result == 0) {
+          if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+              int newLength = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0);
+  
+              buffer = NEW_ARRAY(UChar, newLength);
+!             GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, newLength);
+          }
+      }
+  
+!     appendTo.append(buffer, (int32_t) wcslen(buffer));
+  
+      if (buffer != stackBuffer) {
+          DELETE_ARRAY(buffer);
+--- 232,249 ----
+      UChar stackBuffer[STACK_BUFFER_SIZE];
+      UChar *buffer = stackBuffer;
+  
+!     result = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE);
+  
+      if (result == 0) {
+          if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+              int newLength = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0);
+  
+              buffer = NEW_ARRAY(UChar, newLength);
+!             GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, reinterpret_cast<LPWSTR>(buffer), newLength);
+          }
+      }
+  
+!     appendTo.append(buffer, (int32_t) u_strlen(buffer));
+  
+      if (buffer != stackBuffer) {
+          DELETE_ARRAY(buffer);
+***************
+*** 258,275 ****
+      UChar stackBuffer[STACK_BUFFER_SIZE];
+      UChar *buffer = stackBuffer;
+  
+!     result = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, STACK_BUFFER_SIZE);
+  
+      if (result == 0) {
+          if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+              int newLength = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, NULL, 0);
+  
+              buffer = NEW_ARRAY(UChar, newLength);
+!             GetDateFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, newLength);
+          }
+      }
+  
+!     appendTo.append(buffer, (int32_t) wcslen(buffer));
+  
+      if (buffer != stackBuffer) {
+          DELETE_ARRAY(buffer);
+--- 258,275 ----
+      UChar stackBuffer[STACK_BUFFER_SIZE];
+      UChar *buffer = stackBuffer;
+  
+!     result = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE);
+  
+      if (result == 0) {
+          if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+              int newLength = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, NULL, 0);
+  
+              buffer = NEW_ARRAY(UChar, newLength);
+!             GetDateFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, reinterpret_cast<LPWSTR>(buffer), newLength);
+          }
+      }
+  
+!     appendTo.append(buffer, (int32_t) u_strlen(buffer));
+  
+      if (buffer != stackBuffer) {
+          DELETE_ARRAY(buffer);
+*** misc/icu/source/i18n/winnmfmt.cpp	Thu Aug 17 07:21:06 2006
+--- misc/build/icu/source/i18n/winnmfmt.cpp	Mon Apr 30 17:32:58 2007
+***************
+*** 86,95 ****
+      GetLocaleInfoA(lcid, LOCALE_SGROUPING, buf, 10);
+      fmt->Grouping = getGrouping(buf);
+  
+!     fmt->lpDecimalSep = NEW_ARRAY(UChar, 6);
+      GetLocaleInfoW(lcid, LOCALE_SDECIMAL,  fmt->lpDecimalSep,  6);
+  
+!     fmt->lpThousandSep = NEW_ARRAY(UChar, 6);
+      GetLocaleInfoW(lcid, LOCALE_STHOUSAND, fmt->lpThousandSep, 6);
+  
+      GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+--- 86,95 ----
+      GetLocaleInfoA(lcid, LOCALE_SGROUPING, buf, 10);
+      fmt->Grouping = getGrouping(buf);
+  
+!     fmt->lpDecimalSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6));
+      GetLocaleInfoW(lcid, LOCALE_SDECIMAL,  fmt->lpDecimalSep,  6);
+  
+!     fmt->lpThousandSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6));
+      GetLocaleInfoW(lcid, LOCALE_STHOUSAND, fmt->lpThousandSep, 6);
+  
+      GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+***************
+*** 111,126 ****
+      GetLocaleInfoA(lcid, LOCALE_SMONGROUPING, buf, sizeof(buf));
+      fmt->Grouping = getGrouping(buf);
+  
+!     fmt->lpDecimalSep = NEW_ARRAY(UChar, 6);
+      GetLocaleInfoW(lcid, LOCALE_SMONDECIMALSEP,  fmt->lpDecimalSep,  6);
+  
+!     fmt->lpThousandSep = NEW_ARRAY(UChar, 6);
+      GetLocaleInfoW(lcid, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6);
+  
+      GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR,  (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+      GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT));
+  
+!     fmt->lpCurrencySymbol = NEW_ARRAY(UChar, 8);
+      GetLocaleInfoW(lcid, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8);
+  }
+  
+--- 111,126 ----
+      GetLocaleInfoA(lcid, LOCALE_SMONGROUPING, buf, sizeof(buf));
+      fmt->Grouping = getGrouping(buf);
+  
+!     fmt->lpDecimalSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6));
+      GetLocaleInfoW(lcid, LOCALE_SMONDECIMALSEP,  fmt->lpDecimalSep,  6);
+  
+!     fmt->lpThousandSep = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 6));
+      GetLocaleInfoW(lcid, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6);
+  
+      GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR,  (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+      GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT));
+  
+!     fmt->lpCurrencySymbol = reinterpret_cast<LPWSTR>(NEW_ARRAY(UChar, 8));
+      GetLocaleInfoW(lcid, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8);
+  }
+  
+***************
+*** 290,296 ****
+              formatInfo.currency.Grouping = 0;
+          }
+  
+!         result = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, buffer, STACK_BUFFER_SIZE);
+  
+          if (result == 0) {
+              DWORD lastError = GetLastError();
+--- 290,296 ----
+              formatInfo.currency.Grouping = 0;
+          }
+  
+!         result = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE);
+  
+          if (result == 0) {
+              DWORD lastError = GetLastError();
+***************
+*** 300,306 ****
+  
+                  buffer = NEW_ARRAY(UChar, newLength);
+                  buffer[0] = 0x0000;
+!                 GetCurrencyFormatW(fLCID, 0, nBuffer,  &formatInfo.currency, buffer, newLength);
+              }
+          }
+      } else {
+--- 300,306 ----
+  
+                  buffer = NEW_ARRAY(UChar, newLength);
+                  buffer[0] = 0x0000;
+!                 GetCurrencyFormatW(fLCID, 0, nBuffer,  &formatInfo.currency, reinterpret_cast<LPWSTR>(buffer), newLength);
+              }
+          }
+      } else {
+***************
+*** 312,318 ****
+              formatInfo.number.Grouping = 0;
+          }
+  
+!         result = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, STACK_BUFFER_SIZE);
+  
+          if (result == 0) {
+              if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+--- 312,318 ----
+              formatInfo.number.Grouping = 0;
+          }
+  
+!         result = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, reinterpret_cast<LPWSTR>(buffer), STACK_BUFFER_SIZE);
+  
+          if (result == 0) {
+              if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+***************
+*** 320,331 ****
+  
+                  buffer = NEW_ARRAY(UChar, newLength);
+                  buffer[0] = 0x0000;
+!                 GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, newLength);
+              }
+          }
+      }
+  
+!     appendTo.append(buffer, (int32_t) wcslen(buffer));
+  
+      if (buffer != stackBuffer) {
+          DELETE_ARRAY(buffer);
+--- 320,331 ----
+  
+                  buffer = NEW_ARRAY(UChar, newLength);
+                  buffer[0] = 0x0000;
+!                 GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, reinterpret_cast<LPWSTR>(buffer), newLength);
+              }
+          }
+      }
+  
+!     appendTo.append(buffer, (int32_t) u_strlen(buffer));
+  
+      if (buffer != stackBuffer) {
+          DELETE_ARRAY(buffer);
 *** misc/icu/source/layout/CoverageTables.cpp	Sat May  8 01:28:42 2004
---- misc/build/icu/source/layout/CoverageTables.cpp	Fri Jan 19 16:03:21 2007
+--- misc/build/icu/source/layout/CoverageTables.cpp	Mon Apr 30 17:32:58 2007
 ***************
 *** 44,49 ****
 --- 44,53 ----

  {
      for (le_int32 fixup = 0; fixup < fFixupCount; fixup += 1) {
*** misc/icu/source/layout/MPreFixups.h	Mon Apr 12 20:51:32 2004
--- misc/build/icu/source/layout/MPreFixups.h	Fri Jan 19 16:03:20 2007
***************
*** 31,36 ****
--- 31,38 ----

+ }
+ 
+ #endif // ALLOW_UNALIGNED_HACK
  
  /**
   * This class is used to access data which stored in big endian order
*** misc/icu/source/layout/MPreFixups.cpp	Sat May  8 01:28:44 2004
--- misc/build/icu/source/layout/MPreFixups.cpp	Mon Apr 30 17:32:58 2007
***************
*** 40,45 ****
--- 40,51 ----
