Modified: trunk/Source/WebCore/ChangeLog (114223 => 114224)
--- trunk/Source/WebCore/ChangeLog 2012-04-16 05:21:58 UTC (rev 114223)
+++ trunk/Source/WebCore/ChangeLog 2012-04-16 06:12:05 UTC (rev 114224)
@@ -1,3 +1,23 @@
+2012-04-15 Kent Tamura <tk...@chromium.org>
+
+ WebCore::weekDayShortLabels() for ICU always returns the fallback labels
+ https://bugs.webkit.org/show_bug.cgi?id=83991
+
+ Reviewed by Hajime Morita.
+
+ We need to specfiy 1-based index to udat_getSymbols() with
+ UDAT_SHORT_WEEKDAYS. Also, udat_countSymbols() with UDAT_SHORT_WEEKDAYS
+ returns 8.
+
+ No new tests because this behavior depends on locale setting.
+
+ * platform/text/LocalizedCalendarICU.cpp:
+ (WebCore::createLabelVector): Add startIndex argument.
+ (WebCore::createMonthLabels):
+ Pass UDAT_JANUARRY(0) as startIndex to createLabelVector().
+ (WebCore::createWeekDayShortLabels):
+ Pass UDAT_SUNDAY(1) as startIndex to createLabelVector().
+
2012-04-15 MORITA Hajime <morr...@google.com>
Unreviewed attempt to chromium-win build fix.
Modified: trunk/Source/WebCore/platform/text/LocalizedCalendarICU.cpp (114223 => 114224)
--- trunk/Source/WebCore/platform/text/LocalizedCalendarICU.cpp 2012-04-16 05:21:58 UTC (rev 114223)
+++ trunk/Source/WebCore/platform/text/LocalizedCalendarICU.cpp 2012-04-16 06:12:05 UTC (rev 114224)
@@ -79,24 +79,24 @@
return labels.release();
}
-static PassOwnPtr<Vector<String> > createLabelVector(UDateFormatSymbolType type, int32_t size)
+static PassOwnPtr<Vector<String> > createLabelVector(UDateFormatSymbolType type, int32_t startIndex, int32_t size)
{
ScopedDateFormat dateFormat;
if (!dateFormat.get())
return PassOwnPtr<Vector<String> >();
- if (udat_countSymbols(dateFormat.get(), type) != size)
+ if (udat_countSymbols(dateFormat.get(), type) != startIndex + size)
return PassOwnPtr<Vector<String> >();
OwnPtr<Vector<String> > labels = adoptPtr(new Vector<String>());
labels->reserveCapacity(size);
for (int32_t i = 0; i < size; ++i) {
UErrorCode status = U_ZERO_ERROR;
- int32_t length = udat_getSymbols(dateFormat.get(), type, i, 0, 0, &status);
+ int32_t length = udat_getSymbols(dateFormat.get(), type, startIndex + i, 0, 0, &status);
if (status != U_BUFFER_OVERFLOW_ERROR)
return PassOwnPtr<Vector<String> >();
Vector<UChar> buffer(length);
status = U_ZERO_ERROR;
- udat_getSymbols(dateFormat.get(), type, i, buffer.data(), length, &status);
+ udat_getSymbols(dateFormat.get(), type, startIndex + i, buffer.data(), length, &status);
if (U_FAILURE(status))
return PassOwnPtr<Vector<String> >();
labels->append(String::adopt(buffer));
@@ -106,7 +106,7 @@
static PassOwnPtr<Vector<String> > createMonthLabels()
{
- OwnPtr<Vector<String> > labels = createLabelVector(UDAT_MONTHS, 12);
+ OwnPtr<Vector<String> > labels = createLabelVector(UDAT_MONTHS, UCAL_JANUARY, 12);
return labels ? labels.release() : createFallbackMonthLabels();
}
@@ -132,7 +132,7 @@
static PassOwnPtr<Vector<String> > createWeekDayShortLabels()
{
- OwnPtr<Vector<String> > labels = createLabelVector(UDAT_SHORT_WEEKDAYS, 7);
+ OwnPtr<Vector<String> > labels = createLabelVector(UDAT_SHORT_WEEKDAYS, UCAL_SUNDAY, 7);
return labels ? labels.release() : createFallbackWeekDayShortLabels();
}